Context
Phase 559 will split the post-Phase-558 annotation-store work into tracker-backed implementation candidates. Phase 558 added only an internal, persistence-neutral annotation-store contract skeleton; there is still no production store or saved whiteboard primitive state.
Scope
Implement the first bounded in-memory whiteboard annotation-store adapter proof:
- consume the internal Phase 558 annotation-store boundary and model types;
- keep storage in-memory and session-scoped only;
- prove create/read/update/delete snapshot behavior with focused tests;
- preserve GraphDocument, workspace persistence, clipboard/export, screenshots, renderer, pointer, toolbar, and public API boundaries.
Out of scope
No file/database I/O, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization behavior change, no screenshot manifest expansion, no renderer or pointer behavior change, no toolbar or eraser changes, no public API exposure, no saved whiteboard primitive state claim, and no full React Flow whiteboard parity claim.
Dependency / stacking
Depends on Phase 559 and should be stacked after the Phase 559 queue refresh lands or is accepted as the active stack base.
Context
Phase 559 will split the post-Phase-558 annotation-store work into tracker-backed implementation candidates. Phase 558 added only an internal, persistence-neutral annotation-store contract skeleton; there is still no production store or saved whiteboard primitive state.
Scope
Implement the first bounded in-memory whiteboard annotation-store adapter proof:
Out of scope
No file/database I/O, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization behavior change, no screenshot manifest expansion, no renderer or pointer behavior change, no toolbar or eraser changes, no public API exposure, no saved whiteboard primitive state claim, and no full React Flow whiteboard parity claim.
Dependency / stacking
Depends on Phase 559 and should be stacked after the Phase 559 queue refresh lands or is accepted as the active stack base.