Context
Phase 565 will refresh the queue after the Phase 560-564 annotation-store planning gates. Before workspace save/load can persist whiteboard annotations, AsterGraph needs a bounded sidecar document and serializer contract that can carry the internal annotation-store snapshot without changing GraphDocument itself.
Scope
Define and verify the internal sidecar document/serializer contract for whiteboard annotations:
- map
GraphWhiteboardAnnotationStoreSnapshot, metadata, identity/reference, primitive payload, and migration metadata into a sidecar payload shape;
- keep ownership separate from
GraphDocument and workspace graph serialization;
- define deterministic round-trip and validation behavior for malformed or incompatible sidecar payloads;
- add focused tests/docs for the serializer contract and compatibility boundary.
Out of scope
No workspace save/load integration, no file/database I/O beyond focused serializer contract tests, no GraphDocument schema change, no schema version bump, no clipboard/export behavior change, no screenshot manifest expansion, no renderer or pointer behavior change, no toolbar or eraser change, no public API exposure, and no full React Flow whiteboard parity claim.
Dependency / Stack
Depends on Phase 565 / GitHub #253 / avalonia-node-map-wml. Do not start implementation before the Phase 565 queue refresh lands.
Acceptance Criteria
- Internal sidecar document and serializer contract is covered by focused tests.
- Round-trip tests preserve annotation metadata, identity/reference, primitive payload, and migration metadata.
- Compatibility tests reject or isolate unsupported payloads without mutating
GraphDocument.
- Docs keep the claim internal and explicitly state no workspace save/load behavior change, no GraphDocument schema change, no public API exposure, and no full whiteboard parity.
Context
Phase 565 will refresh the queue after the Phase 560-564 annotation-store planning gates. Before workspace save/load can persist whiteboard annotations, AsterGraph needs a bounded sidecar document and serializer contract that can carry the internal annotation-store snapshot without changing GraphDocument itself.
Scope
Define and verify the internal sidecar document/serializer contract for whiteboard annotations:
GraphWhiteboardAnnotationStoreSnapshot, metadata, identity/reference, primitive payload, and migration metadata into a sidecar payload shape;GraphDocumentand workspace graph serialization;Out of scope
No workspace save/load integration, no file/database I/O beyond focused serializer contract tests, no GraphDocument schema change, no schema version bump, no clipboard/export behavior change, no screenshot manifest expansion, no renderer or pointer behavior change, no toolbar or eraser change, no public API exposure, and no full React Flow whiteboard parity claim.
Dependency / Stack
Depends on Phase 565 / GitHub #253 /
avalonia-node-map-wml. Do not start implementation before the Phase 565 queue refresh lands.Acceptance Criteria
GraphDocument.