Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/en/phase-0-reactflow-parity-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,10 @@ Phase 555 is GitHub #229 / `avalonia-node-map-71c`, the whiteboard primitive era

Phase 556 is GitHub #230 / `avalonia-node-map-bck`, the whiteboard primitive persistence implementation decision. It records `GraphWhiteboardPrimitivePersistenceOutcome.DeferredUntilSeparateAnnotationStoreContract` and `GraphWhiteboardPrimitivePersistenceBoundary` coverage for `GraphDocumentCompatibility`, `WorkspacePersistence`, `ClipboardFragment`, `ScreenshotArtifact`, and `SceneExportArtifact`. The current slice intentionally defers saved whiteboard primitive state until a separate annotation store contract exists, keeping `GraphDocumentSerializer`, `GraphDocumentCompatibility`, workspace save/load, clipboard fragments, scene export artifacts, and screenshot artifacts graph-scoped. Phase 556 is stacked on Phase 555 and must not merge before PR #235. It adds no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no saved whiteboard primitive state, no renderer rewrite, no retained API removal, and no full React Flow whiteboard parity.

## Phase 559 Update

Phase 559 is GitHub #241 / `avalonia-node-map-8ca`, the post-annotation-store contract implementation queue refresh. This docs/tests-only slice records `WHITEBOARD_ANNOTATION_STORE_IMPLEMENTATION_QUEUE_REFRESH` after the annotation-store contract skeleton and splits the next work into in-memory annotation-store adapter, workspace/sidecar persistence policy, clipboard/export serialization boundary, screenshot/Cookbook proof expansion, and migration/compatibility proof follow-ups. It authorizes no production annotation store, 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, and no full React Flow whiteboard parity.

## Phase 489 Update

Phase 489 closed GitHub #101 / `avalonia-node-map-6sc` through PR #102 as a renderer virtualization design spike on branch `perf/renderer-virtualization-spike`. This slice was docs/tests only: it defined the proof contract required before any future ItemsRepeater/Skia-style renderer virtualization, background graph index, or graph-size claim expansion. It made no public API change and no runtime change. The current evidence remains viewport-budgeted scene projection/rendering, not a true renderer virtualization contract; `xlarge` stays telemetry-only.
Expand Down Expand Up @@ -619,6 +623,8 @@ Phase 557 records the whiteboard annotation store contract gate through GitHub #

Phase 558 records the whiteboard annotation store contract skeleton through GitHub #239 / `avalonia-node-map-84u`. It adds `WHITEBOARD_ANNOTATION_STORE_CONTRACT_SKELETON` as internal Core contract coverage only: `GraphWhiteboardAnnotationStoreContract`, `GraphWhiteboardAnnotationStoreMetadata`, `GraphWhiteboardAnnotationIdentity`, `GraphWhiteboardPrimitiveReference`, `GraphWhiteboardAnnotationPrimitivePayload`, `GraphWhiteboardAnnotationRecord`, `GraphWhiteboardAnnotationStoreSnapshot`, `GraphWhiteboardAnnotationMigrationMetadata`, and `IGraphWhiteboardAnnotationStoreBoundary` define store ownership, workspace-scoped lifetime, annotation identity, primitive reference, style/geometry/edit lifecycle payload shape, migration/schema metadata, and a persistence-neutral read/write boundary. This skeleton keeps no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, no renderer or pointer behavior change, no public API exposure, no saved whiteboard primitive state, and no full React Flow whiteboard parity.

Phase 559 records the post-annotation-store contract implementation queue refresh through GitHub #241 / `avalonia-node-map-8ca`. It adds only `WHITEBOARD_ANNOTATION_STORE_IMPLEMENTATION_QUEUE_REFRESH` and keeps the next annotation-store work split into Phase 560 in-memory annotation-store adapter, Phase 561 workspace/sidecar persistence policy, Phase 562 clipboard/export serialization boundary, Phase 563 screenshot/Cookbook proof expansion, and Phase 564 migration/compatibility proof. This queue refresh keeps no production annotation store, 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, and no full React Flow whiteboard parity.

| GitHub | Bead | Title | Priority | Likely write set | Parallelism |
| --- | --- | --- | --- | --- | --- |
| #193 | `avalonia-node-map-8l6` | Phase 535: refresh post-lasso visual feedback parity queue | P2 | parity roadmap docs and focused docs tests | Current docs/test queue refresh. Blocks the next implementation wave because it replaces the stale Phase 534 current row with tracker-backed follow-ups. |
Expand All @@ -645,6 +651,12 @@ Phase 558 records the whiteboard annotation store contract skeleton through GitH
| #230 | `avalonia-node-map-bck` | Phase 556: whiteboard primitive persistence implementation decision | P4 | persistence implementation decision, schema/version evidence, workspace and clipboard boundaries | Depends on Phase 555; stacked after PR #235 and do not merge before Phase 555. Records `DeferredUntilSeparateAnnotationStoreContract` with boundary coverage only; no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no saved whiteboard primitive state, or full whiteboard parity claim. |
| #237 | `avalonia-node-map-zfe` | Phase 557: whiteboard annotation store contract gate | P4 | annotation-store contract docs, persistence boundary requirements, and focused docs tests | Depends on Phase 556; stacked after PR #236 and do not merge before Phase 556. Defines the separate annotation-store contract gate only; no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, no saved whiteboard primitive state, or full whiteboard parity claim. |
| #239 | `avalonia-node-map-84u` | Phase 558: whiteboard annotation store contract skeleton | P4 | internal Core annotation-store contract types, boundary tests, and parity docs | Depends on Phase 557; stacked after PR #238 and do not merge before Phase 557. Adds the internal contract skeleton only; no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, no renderer or pointer behavior change, no public API exposure, no saved whiteboard primitive state, or full whiteboard parity claim. |
| #241 | `avalonia-node-map-8ca` | Phase 559: post-annotation-store contract implementation queue refresh | P4 | parity roadmap docs and focused docs tests | Depends on Phase 558; stacked after PR #240 and do not merge before Phase 558. This is a docs/test queue refresh only: it assigns Phase 560 through Phase 564 without production annotation store, file/database I/O, GraphDocument schema changes, workspace persistence behavior changes, clipboard/export serialization behavior changes, screenshot manifest expansion, renderer or pointer behavior changes, toolbar or eraser changes, public API exposure, saved whiteboard primitive state, or full whiteboard parity claim. |
| #242 | `avalonia-node-map-nia` | Phase 560: in-memory whiteboard annotation store adapter proof | P3 | in-memory annotation-store adapter tests and internal boundary proof | Depends on Phase 559. Owns an in-memory adapter proof only, with no file/database I/O, workspace persistence behavior change, GraphDocument schema change, public API exposure, or full whiteboard parity claim. |
| #243 | `avalonia-node-map-xd8` | Phase 561: whiteboard annotation workspace sidecar persistence policy | P4 | workspace/sidecar persistence policy docs and compatibility criteria | Depends on Phase 559. Owns sidecar policy decisions only, before any workspace persistence behavior change, schema version bump, or saved whiteboard primitive state. |
| #244 | `avalonia-node-map-0gi` | Phase 562: whiteboard annotation clipboard/export serialization boundary | P4 | clipboard/export serialization boundary docs and focused compatibility tests | Depends on Phase 559. Owns serialization boundary policy only, before any clipboard/export serialization behavior change or public API exposure. |
| #245 | `avalonia-node-map-kri` | Phase 563: whiteboard annotation screenshot and Cookbook proof expansion | P4 | screenshot/Cookbook proof planning, route criteria, and non-overlap evidence requirements | Depends on Phase 559. Owns screenshot/Cookbook proof expansion planning only, before screenshot manifest expansion, renderer changes, or toolbar/eraser changes. |
| #246 | `avalonia-node-map-vyg` | Phase 564: whiteboard annotation migration and compatibility proof | P4 | migration/compatibility proof docs, schema policy criteria, and compatibility test plan | Depends on Phase 559 plus Phase 560, Phase 561, and Phase 562. Owns migration/compatibility proof planning only, before schema version bumps, GraphDocument schema changes, saved whiteboard primitive state, or full whiteboard parity claims. |

## Recommended Parallel Worktree Plan

Expand Down Expand Up @@ -704,6 +716,12 @@ Phase 558 records the whiteboard annotation store contract skeleton through GitH
- `feature/phase-556-whiteboard-persistence-decision`: owns #230 / `avalonia-node-map-bck`; current stacked implementation/deferred-decision worktree after Phase 555, with no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no saved whiteboard primitive state, and no full React Flow whiteboard parity.
- `docs/phase-557-whiteboard-annotation-store-contract`: owns #237 / `avalonia-node-map-zfe`; current stacked docs/test contract gate after Phase 556, with no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, and no saved whiteboard primitive state.
- `feature/phase-558-whiteboard-annotation-store-contract-skeleton`: owns #239 / `avalonia-node-map-84u`; current stacked internal Core contract skeleton after Phase 557, with no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, no renderer or pointer behavior change, no public API exposure, and no saved whiteboard primitive state.
- `docs/phase-559-annotation-store-implementation-queue`: owns #241 / `avalonia-node-map-8ca`; current stacked docs/test queue refresh after Phase 558, with no production annotation store, 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, and no full React Flow whiteboard parity.
- `feature/phase-560-whiteboard-annotation-store-memory-adapter`: owns #242 / `avalonia-node-map-nia`; future in-memory annotation-store adapter proof after Phase 559.
- `docs/phase-561-whiteboard-annotation-sidecar-persistence-policy`: owns #243 / `avalonia-node-map-xd8`; future workspace/sidecar persistence policy worktree after Phase 559.
- `docs/phase-562-whiteboard-annotation-clipboard-export-boundary`: owns #244 / `avalonia-node-map-0gi`; future clipboard/export serialization boundary worktree after Phase 559.
- `visual/phase-563-whiteboard-annotation-cookbook-screenshot-proof`: owns #245 / `avalonia-node-map-kri`; future screenshot/Cookbook proof expansion worktree after Phase 559.
- `docs/phase-564-whiteboard-annotation-migration-compatibility-proof`: owns #246 / `avalonia-node-map-vyg`; future migration/compatibility proof worktree after Phase 559 and the adapter/persistence/serialization boundary slices.

## UI Verification Policy

Expand Down Expand Up @@ -778,4 +796,10 @@ Current coverage includes scene-level route captures plus ten manifest-driven fu
- Phase 556 is GitHub #230 / `avalonia-node-map-bck`; it records the whiteboard primitive persistence implementation decision through `GraphWhiteboardPrimitivePersistenceOutcome.DeferredUntilSeparateAnnotationStoreContract` and `GraphWhiteboardPrimitivePersistenceBoundary` coverage for `GraphDocumentCompatibility`, `WorkspacePersistence`, `ClipboardFragment`, `ScreenshotArtifact`, and `SceneExportArtifact`. It keeps no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no saved whiteboard primitive state, and no full React Flow whiteboard parity.
- Phase 557 is GitHub #237 / `avalonia-node-map-zfe`; it records the whiteboard annotation store contract gate and `WHITEBOARD_ANNOTATION_STORE_CONTRACT_GATE` with store ownership, store lifetime, annotation identity, primitive reference, style/geometry serialization, edit lifecycle serialization, migration metadata, read/write API boundary candidates, and compatibility requirements across GraphDocument, workspace, clipboard/export, scene export, and screenshot artifacts. It keeps no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, no saved whiteboard primitive state, and no full React Flow whiteboard parity.
- Phase 558 is GitHub #239 / `avalonia-node-map-84u`; it records `WHITEBOARD_ANNOTATION_STORE_CONTRACT_SKELETON` with internal Core annotation-store contract types, annotation identity/reference records, primitive payload shape, migration metadata, and a persistence-neutral `IGraphWhiteboardAnnotationStoreBoundary`. It keeps no production annotation store, no GraphDocument schema change, no schema version bump, no workspace persistence behavior change, no clipboard/export serialization change, no screenshot manifest expansion, no renderer or pointer behavior change, no public API exposure, no saved whiteboard primitive state, and no full React Flow whiteboard parity.
- Phase 559 is GitHub #241 / `avalonia-node-map-8ca`; it records `WHITEBOARD_ANNOTATION_STORE_IMPLEMENTATION_QUEUE_REFRESH` and assigns Phase 560 through Phase 564 to the in-memory annotation-store adapter, workspace/sidecar persistence policy, clipboard/export serialization boundary, screenshot/Cookbook proof expansion, and migration/compatibility proof tracks. It keeps no production annotation store, 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, and no full React Flow whiteboard parity.
- Phase 560 is GitHub #242 / `avalonia-node-map-nia`; it is queued for the in-memory whiteboard annotation store adapter proof after Phase 559.
- Phase 561 is GitHub #243 / `avalonia-node-map-xd8`; it is queued for the whiteboard annotation workspace/sidecar persistence policy after Phase 559.
- Phase 562 is GitHub #244 / `avalonia-node-map-0gi`; it is queued for the whiteboard annotation clipboard/export serialization boundary after Phase 559.
- Phase 563 is GitHub #245 / `avalonia-node-map-kri`; it is queued for the whiteboard annotation screenshot/Cookbook proof expansion after Phase 559.
- Phase 564 is GitHub #246 / `avalonia-node-map-vyg`; it is queued for the whiteboard annotation migration/compatibility proof after Phase 559 and after the adapter, persistence policy, and serialization boundary decisions.
- Product code remains out of scope for Phase 478, Phase 484, Phase 490, Phase 491, Phase 492, Phase 493, Phase 494, Phase 495, Phase 497, Phase 498, Phase 499, Phase 500, Phase 501, Phase 502, Phase 503, Phase 504, Phase 505, Phase 506, Phase 507, Phase 508, Phase 509, Phase 510, Phase 511, Phase 512, Phase 513, Phase 520, Phase 521, Phase 522, Phase 523, Phase 524, Phase 525, Phase 526, Phase 527, Phase 528, Phase 529, Phase 535, Phase 539, Phase 540, Phase 541, Phase 546, Phase 550, Phase 551, and Phase 557 unless a focused test proves a specific missing contract.
Loading
Loading