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
8 changes: 7 additions & 1 deletion docs/en/phase-0-reactflow-parity-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,10 @@ Phase 543 is GitHub #207 / `avalonia-node-map-aj8`, the whiteboard renderer proj

Phase 544 is GitHub #208 / `avalonia-node-map-32n`, the whiteboard primitive persistence schema policy gate. This docs/tests-only slice records `WHITEBOARD_PRIMITIVE_PERSISTENCE_SCHEMA_POLICY_GATE`: future whiteboard primitives must decide whether first-class drawing state belongs in the current `GraphDocument` schema or a separate annotation surface before any persistence work starts. The policy keeps `GraphDocumentSerializer`, `GraphDocumentCompatibility`, and `CurrentSchemaVersion` as graph document compatibility evidence only, and requires any later schema version change to define migration policy, compatibility test coverage, workspace persistence boundaries, clipboard fragments boundaries, and screenshot artifacts boundaries. Phase 544 records the whiteboard primitive persistence schema policy gate without persisted whiteboard primitive state. It authorizes no schema version changes, no runtime UI behavior, no renderer work, no screenshot manifest expansion, no public drawing API, no toolbar/tool activation, no eraser behavior, no retained API removal, and no full React Flow whiteboard parity.

## Phase 545 Update

Phase 545 is GitHub #209 / `avalonia-node-map-7ns`, the whiteboard Cookbook and screenshot proof route gate. This docs/tests-only slice records `WHITEBOARD_COOKBOOK_SCREENSHOT_PROOF_ROUTE_GATE`: future whiteboard primitive visual proof must define a Cookbook route, shell state, and screenshot metadata before any proof can support rectangle/freehand drawing claims. The proof route must specify before/after visual evidence, non-overlap requirements, and dependency on the model, renderer, and persistence gates before any screenshot manifest row is added. Phase 545 records the whiteboard Cookbook and screenshot proof route gate without implementing the proof route. It authorizes no screenshot manifest expansion, no runtime UI behavior, no UI redesign, no drawing tool implementation, no renderer changes, no persistence/schema changes, no pointer coordinator edits, no retained API removal, 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 @@ -543,6 +547,8 @@ Phase 543 records the whiteboard renderer projection and hit-testing proof gate

Phase 544 records the whiteboard primitive persistence schema policy gate through GitHub #208 / `avalonia-node-map-32n`. It keeps `GraphDocumentSerializer`, `GraphDocumentCompatibility`, and `CurrentSchemaVersion` scoped to graph document compatibility evidence, then requires a later schema-changing issue to decide between the current `GraphDocument` schema and a separate annotation surface, define schema version and migration policy, add compatibility test coverage, and keep workspace persistence, clipboard fragments, and screenshot artifacts separate from first-class whiteboard state.

Phase 545 records the whiteboard Cookbook and screenshot proof route gate through GitHub #209 / `avalonia-node-map-7ns`. It keeps visual proof as a later gated implementation path: a future issue must define the Cookbook route, shell state, screenshot metadata, before/after visual evidence, and non-overlap requirements after the model, renderer, and persistence gates are in place, and before any screenshot manifest expansion or whiteboard visual parity claim.

| 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 Down Expand Up @@ -662,5 +668,5 @@ Current coverage includes scene-level route captures plus ten manifest-driven fu
- Phase 542 is GitHub #206 / `avalonia-node-map-b31`; it records the whiteboard primitive core model contract gate and `WHITEBOARD_PRIMITIVE_CORE_MODEL_CONTRACT_GATE` without production model type, public API changes, runtime UI behavior, renderer work, persistence/schema migration, screenshot manifest expansion, toolbar/tool activation, eraser behavior, retained API removal, or full React Flow whiteboard parity.
- Phase 543 is GitHub #207 / `avalonia-node-map-aj8`; it records the whiteboard renderer projection and hit-testing proof gate and `WHITEBOARD_RENDERER_HIT_TEST_PROOF_GATE` without renderer rewrite, new persistence/schema behavior, screenshot manifest expansion, public drawing API, toolbar/tool activation, eraser behavior, retained API removal, or full React Flow whiteboard parity.
- Phase 544 is GitHub #208 / `avalonia-node-map-32n`; it records the whiteboard primitive persistence schema policy gate and `WHITEBOARD_PRIMITIVE_PERSISTENCE_SCHEMA_POLICY_GATE` without schema version changes, runtime UI behavior, renderer work, screenshot manifest expansion, public drawing API, toolbar/tool activation, eraser behavior, retained API removal, or full React Flow whiteboard parity.
- Phase 545 is GitHub #209 / `avalonia-node-map-7ns`; it will own the whiteboard Cookbook and screenshot proof route gate and Cookbook/screenshot proof route.
- Phase 545 is GitHub #209 / `avalonia-node-map-7ns`; it records the whiteboard Cookbook and screenshot proof route gate and `WHITEBOARD_COOKBOOK_SCREENSHOT_PROOF_ROUTE_GATE` without screenshot manifest expansion, runtime UI behavior, UI redesign, drawing tool implementation, renderer changes, persistence/schema changes, pointer coordinator edits, retained API removal, or full React Flow whiteboard parity.
- 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, and Phase 541 unless a focused test proves a specific missing contract.
8 changes: 7 additions & 1 deletion docs/zh-CN/phase-0-reactflow-parity-audit.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,10 @@ Phase 543 是 GitHub #207 / `avalonia-node-map-aj8`,记录 whiteboard renderer

Phase 544 是 GitHub #208 / `avalonia-node-map-32n`,记录 whiteboard primitive persistence schema policy gate。本 docs/tests-only slice 记录 `WHITEBOARD_PRIMITIVE_PERSISTENCE_SCHEMA_POLICY_GATE`:后续 whiteboard primitives 必须先决定 first-class drawing state 属于当前 `GraphDocument` schema 还是 separate annotation surface,才允许开始任何 persistence work。该 policy 继续把 `GraphDocumentSerializer`、`GraphDocumentCompatibility` 和 `CurrentSchemaVersion` 限制为 graph document compatibility evidence,并要求后续任何 schema version change 都必须定义 migration policy、compatibility test coverage、workspace persistence boundaries、clipboard fragments boundaries 和 screenshot artifacts boundaries。Phase 544 记录 whiteboard primitive persistence schema policy gate,但不实现 persisted whiteboard primitive state。它不授权 no schema version changes、no runtime UI behavior、no renderer work、no screenshot manifest expansion、no public drawing API、no toolbar/tool activation、no eraser behavior、no retained API removal 或 no full React Flow whiteboard parity。

## Phase 545 更新

Phase 545 是 GitHub #209 / `avalonia-node-map-7ns`,记录 whiteboard Cookbook and screenshot proof route gate。本 docs/tests-only slice 记录 `WHITEBOARD_COOKBOOK_SCREENSHOT_PROOF_ROUTE_GATE`:后续 whiteboard primitive visual proof 必须先定义 Cookbook route、shell state 和 screenshot metadata,才能支撑 rectangle/freehand drawing claims。该 proof route 必须说明 before/after visual evidence、non-overlap requirements,并依赖 model, renderer, and persistence gates 都到位后,才允许加入任何 screenshot manifest row。Phase 545 记录 whiteboard Cookbook and screenshot proof route gate,但不实现 proof route。它不授权 no screenshot manifest expansion、no runtime UI behavior、no UI redesign、no drawing tool implementation、no renderer changes、no persistence/schema changes、no pointer coordinator edits、no retained API removal 或 no full React Flow whiteboard parity。

## Phase 489 更新

Phase 489 通过 PR #102 关闭 GitHub #101 / `avalonia-node-map-6sc`,完成 `perf/renderer-virtualization-spike` 分支上的 renderer virtualization design spike。本 slice 只做 docs/tests:先定义未来声明 ItemsRepeater/Skia-style renderer virtualization、background graph index 或扩大 graph-size claim 前必须满足的 proof contract。不做 public API change,也不做 runtime change。当前证据仍只支持 viewport-budgeted scene projection/rendering,不是真正的 renderer virtualization contract;`xlarge` 继续保持 telemetry-only。
Expand Down Expand Up @@ -543,6 +547,8 @@ Phase 543 记录 whiteboard renderer projection and hit-testing proof gate,通

Phase 544 记录 whiteboard primitive persistence schema policy gate,通过 GitHub #208 / `avalonia-node-map-32n`。它继续把 `GraphDocumentSerializer`、`GraphDocumentCompatibility` 和 `CurrentSchemaVersion` 限制为 graph document compatibility evidence,并要求后续 schema-changing issue 在当前 `GraphDocument` schema 与 separate annotation surface 之间做出决定,定义 schema version 与 migration policy,补齐 compatibility test coverage,并把 workspace persistence、clipboard fragments 和 screenshot artifacts 与 first-class whiteboard state 分开。

Phase 545 记录 whiteboard Cookbook and screenshot proof route gate,通过 GitHub #209 / `avalonia-node-map-7ns`。它把 visual proof 保留为后续 gated implementation path:future issue 必须在 model、renderer 与 persistence gates 到位之后,定义 Cookbook route、shell state、screenshot metadata、before/after visual evidence 和 non-overlap requirements,并且这些条件先于任何 screenshot manifest expansion 或 whiteboard visual parity claim。

| GitHub | Bead | 标题 | 优先级 | 可能 write set | 并行边界 |
| --- | --- | --- | --- | --- | --- |
| #193 | `avalonia-node-map-8l6` | Phase 535: refresh post-lasso visual feedback parity queue | P2 | parity roadmap docs 和 focused docs tests | Current docs/test queue refresh。它用 tracker-backed follow-ups 替换 stale Phase 534 current row,因此会阻塞下一批 implementation wave。 |
Expand Down Expand Up @@ -662,5 +668,5 @@ Phase 544 记录 whiteboard primitive persistence schema policy gate,通过 Gi
- Phase 542 是 GitHub #206 / `avalonia-node-map-b31`;它记录 whiteboard primitive core model contract gate 和 `WHITEBOARD_PRIMITIVE_CORE_MODEL_CONTRACT_GATE`,不新增 production model type,不做 public API changes、runtime UI behavior、renderer work、persistence/schema migration、screenshot manifest expansion、toolbar/tool activation、eraser behavior、retained API removal 或 full React Flow whiteboard parity。
- Phase 543 是 GitHub #207 / `avalonia-node-map-aj8`;它记录 whiteboard renderer projection and hit-testing proof gate 和 `WHITEBOARD_RENDERER_HIT_TEST_PROOF_GATE`,不做 renderer rewrite、new persistence/schema behavior、screenshot manifest expansion、public drawing API、toolbar/tool activation、eraser behavior、retained API removal 或 full React Flow whiteboard parity。
- Phase 544 是 GitHub #208 / `avalonia-node-map-32n`;它记录 whiteboard primitive persistence schema policy gate 和 `WHITEBOARD_PRIMITIVE_PERSISTENCE_SCHEMA_POLICY_GATE`,不做 schema version changes、runtime UI behavior、renderer work、screenshot manifest expansion、public drawing API、toolbar/tool activation、eraser behavior、retained API removal 或 full React Flow whiteboard parity。
- Phase 545 是 GitHub #209 / `avalonia-node-map-7ns`;它将承接 whiteboard Cookbook and screenshot proof route gate 和 Cookbook/screenshot proof route
- Phase 545 是 GitHub #209 / `avalonia-node-map-7ns`;它记录 whiteboard Cookbook and screenshot proof route gate 和 `WHITEBOARD_COOKBOOK_SCREENSHOT_PROOF_ROUTE_GATE`,不做 screenshot manifest expansion、runtime UI behavior、UI redesign、drawing tool implementation、renderer changes、persistence/schema changes、pointer coordinator edits、retained API removal 或 full React Flow whiteboard parity
- 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 都不修改产品代码;除非 focused test 证明存在具体 missing contract。
35 changes: 35 additions & 0 deletions tests/AsterGraph.Demo.Tests/ReactFlowParityRoadmapDocsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1334,6 +1334,41 @@ public void ParityRoadmapDocs_RecordPhase544WhiteboardPrimitivePersistenceSchema
Assert.Contains("Phase 544 记录 whiteboard primitive persistence schema policy gate", chineseParity, StringComparison.Ordinal);
}

[Fact]
public void ParityRoadmapDocs_RecordPhase545WhiteboardCookbookScreenshotProofRouteGateInBothLocales()
{
var englishParity = ReadRepoFile("docs/en/phase-0-reactflow-parity-audit.md");
var chineseParity = ReadRepoFile("docs/zh-CN/phase-0-reactflow-parity-audit.md");

foreach (var contents in new[] { englishParity, chineseParity })
{
Assert.Contains("Phase 545", contents, StringComparison.Ordinal);
Assert.Contains("GitHub #209", contents, StringComparison.Ordinal);
Assert.Contains("avalonia-node-map-7ns", contents, StringComparison.Ordinal);
Assert.Contains("whiteboard Cookbook and screenshot proof route gate", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("WHITEBOARD_COOKBOOK_SCREENSHOT_PROOF_ROUTE_GATE", contents, StringComparison.Ordinal);
Assert.Contains("Cookbook route", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("shell state", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("screenshot metadata", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("before/after visual evidence", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("non-overlap requirements", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("model, renderer, and persistence gates", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no screenshot manifest expansion", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no runtime UI behavior", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no UI redesign", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no drawing tool implementation", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no renderer changes", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no persistence/schema changes", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no pointer coordinator edits", contents, StringComparison.OrdinalIgnoreCase);
Assert.Contains("no full React Flow whiteboard parity", contents, StringComparison.OrdinalIgnoreCase);
Assert.DoesNotContain("whiteboard screenshot proof route is implemented", contents, StringComparison.OrdinalIgnoreCase);
Assert.DoesNotContain("Cookbook screenshot manifest now includes whiteboard primitives", contents, StringComparison.OrdinalIgnoreCase);
}

Assert.Contains("Phase 545 records the whiteboard Cookbook and screenshot proof route gate", englishParity, StringComparison.Ordinal);
Assert.Contains("Phase 545 记录 whiteboard Cookbook and screenshot proof route gate", chineseParity, StringComparison.Ordinal);
}

[Fact]
public void ParityRoadmapDocs_RecordPhase501PostPhase500QueueRefreshInBothLocales()
{
Expand Down
Loading