iwb_canvas_engine 5.0.1
iwb_canvas_engine: ^5.0.1 copied to clipboard
Scene-based canvas engine for Flutter: model, rendering, input, JSON serialization.
Changelog #
All notable changes to iwb_canvas_engine are documented here.
5.0.1 - 2026-03-03 #
Changed #
- Improved public API dartdoc coverage for key exported types:
- documented
ActionCommittedandEditTextRequested - documented
ActionType,CanvasMode, andDrawToolvalues - documented
SceneDataException,SceneDataErrorCode, andClearSceneResult - documented the remaining public
SceneWriteTxnmethods that previously had no API comments
- documented
- Release artifacts now advertise
5.0.1as the current package version.
5.0.0 - 2026-02-18 #
Breaking #
- JSON read and write now support only
schemaVersion = 5. - Public write APIs use
layerIdfor content-layer addressing. - Serialized content layers require stable
layers[].id.
Changed #
- Refreshed repository documentation for release readiness:
README.mdis now a concise package landing pageAPI_GUIDE.mdis the single integration referenceARCHITECTURE.mdis focused on module boundaries and invariantsDEVELOPMENT_PLAN.mdis reduced to active-plan status onlyAGENTS.mdnow includes a clear document map and validation policy- example docs were aligned with current demo capabilities and platform template guidance
- Release artifacts, docs, and public API wording were aligned to the
5.xline. - Command signals became strictly state-change based rather than invocation-based.
- Snapshot and JSON validation became stricter and more explicit.
- Runtime now exposes clearer clear-scene semantics and better transaction contracts.
4.0.0 - 2026-02-16 #
Breaking #
- The typed layer model replaced the legacy
LayerSnapshot(isBackground: ...)shape. - Public interactive input moved to
CanvasPointerInputandhandleDoubleTap(...). - Legacy public interactive and view types were removed in favor of
SceneControllerInteractive/SceneViewInteractiveand their aliases. SceneWriteTxnselection mutators now expose explicit changed/no-op semantics.
Changed #
- Listener notifications and interactive streams were formalized as asynchronous boundaries.
- Runtime fail-fast behavior after
dispose()was expanded and documented. - Render caches became more consistent and more aggressively bounded.
- The public export surface was narrowed to the supported API only.
SceneBuilderwas added as a canonical import gateway.
3.0.0 - 2026-02-13 #
Breaking #
- Runtime snapshot boundaries became strict and now throw
SceneDataExceptionfor malformed snapshots. - Public write APIs now reject malformed
NodeSpec,NodePatch, and invalid transform values. - Text write APIs no longer accept writable
size. - Interactive streams became asynchronous.
Changed #
- Transactional repaint and signal delivery were deferred and coalesced.
- Copy-on-write transactions and indexed lookup improved write-path cost.
- Spatial index and hit-testing guardrails were added for large scenes.
- Text bounds became engine-derived at runtime.
2.0.1 - 2026-02-10 #
Breaking #
SceneWriteTxnstopped exposing internal node-id bookkeeping helpers.ActionCommittedpayloads and node ids became immutable snapshots.
Changed #
- Commit finalization now completes before signal delivery.
- Selection normalization and delete behavior were hardened.
- Runtime commit invariant assertions were expanded.
2.0.0 - 2026-02-10 #
Breaking #
iwb_canvas_engine.dartbecame the single supported public entrypoint.- Mutable scene internals were removed from the public surface.
- Public write callbacks switched to
SceneWriteTxn.
Added #
- Stable public runtime aliases:
SceneControllerandSceneView. SceneRenderStateas the supported view/painter read contract.- Guardrails around the single-entrypoint and safe transaction model.
Changed #
- Commit flow was split into clearer no-op, signals-only, and full state-change branches.
- Interactive controller internals were refactored away from raw writer misuse.
1.0.0 - 2026-02-10 #
Breaking #
- The initial immutable public API line was finalized and legacy mutable entry points were removed.
Added #
- Stable snapshot/spec/patch contracts.
- Strict JSON codec contracts through
SceneDataException. - Automated validation for invariants, import boundaries, and rendering parity.
Changed #
- Package documentation and release artifacts were aligned around the initial stable release.