The umbrella for the era after the v2 landing (#5): consolidating the legacy engine (crates/grida) and the v2 engine (crates/n0) into one engine by extraction — the successor program to the legacy seam program (#27).
The normative reference is the git-persisted program directory: docs/wg/consolidation/ — start at its index. The docs:
- index — start-here: reading order, the standing rules, working conventions
- goal — what n0 becomes (render CLIs, engine ecosystem, dev editor, render modes, format posture) and its non-goals
- topology — chassis vs know-how: the per-domain adoption map, render modes, the crate silhouette
- method — the step lifecycle, the three step shapes with worked examples, the gates
- glossary — the program vocabulary
- charter — the ratified route: phases 0–6 with entry/exit gates, the first three PRs, the owner decision registry, and the known unknowns
This issue tracks execution state (the position); the directory defines the program (the route).
Sequencing rule (binding on every PR in this program)
- Zero-behavior moves (crate cuts, re-exports) are gated by byte-identical sweeps alone — they never wait for the scoreboard.
- Capability-granting moves (n0 gaining an importer or any new rendering surface) are gated by the v1-vs-n0 scoreboard — no capability lands unmeasured.
- The conformance bar is the Chromium/consensus oracle, never v1 itself.
- Patrol-before-drop applies to every absorption step.
Milestones
First three PRs
- CI arming
- cg crate cut (no n0 changes)
- Scoreboard v0 (+ PR 4: the paint conformance suite)
Refs: #5 (the landing), #9 (v2 model tracking), #27 (predecessor), #1 (D6 context).
Execution log
Decision tracker index
The umbrella for the era after the v2 landing (#5): consolidating the legacy engine (
crates/grida) and the v2 engine (crates/n0) into one engine by extraction — the successor program to the legacy seam program (#27).The normative reference is the git-persisted program directory:
docs/wg/consolidation/— start at its index. The docs:This issue tracks execution state (the position); the directory defines the program (the route).
Sequencing rule (binding on every PR in this program)
Milestones
--no-ff; CI arming PR (required checks: declared pixel-sweep subset, seam architecture tests, lock-additions-only, wasm build, CI-hosted v2 gate baselines); decision issues filed; the two long-pole docs lanes started (anchor-spec WG graduation, htmlcss font-provider study)from_styledadapter scored; D6 (editor-core ownership, The engine migration — history & the consolidation guideline (residue from gridaco/grida) #1) decided via the timeboxed spike.grida→n0 converter over a pinned real-document corpus; v2 archive story decided; text-oracle identity decided at this boundary onlycrates/gridacontracts by subtraction; wasm switch + freeze-contract retirement coordinated with the product sideFirst three PRs
Refs: #5 (the landing), #9 (v2 model tracking), #27 (predecessor), #1 (D6 context).
Execution log
182bb7f2; permanent gates and CI-owned n0 baselines are onmain, and all post-merge push workflows are green.mainruleset still contains only deletion and non-fast-forward protection; registerconsolidation gates / armedandcanvas build / buildas required checks.cdba65c0;crates/cgis the skia-free workspace crate, legacy retainsgrida::cgthrough a re-export, and the declared 65-fixture sweep is byte-identical. Non0or frozen-surface change.Decision tracker index