Skip to content

Phase 566: whiteboard annotation sidecar serializer contract #254

@ExplodingUFO

Description

@ExplodingUFO

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions