2026 03 03_pre_wgpu_feature_validation_gate_checklist - mark-ik/graphshell GitHub Wiki
Date: 2026-03-03
Status: Execution checklist (feature/gate based only)
Purpose: Define the historical closure program that was required before starting the egui_glow -> egui_wgpu cut. The UI-backend cut has since landed; this checklist remains useful only as gate archaeology for deeper WebRender/runtime bridge work.
Canonical alignment:
testing/wr-wgpu_notes/2026-03-01_webrender_wgpu_renderer_implementation_plan.mdresearch/2026-03-01_webrender_wgpu_renderer_research.mdsubsystem_ux_semantics/2026-03-01_ux_execution_control_plane.mdsubsystem_ux_semantics/2026-02-28_ux_contract_register.mdviewer/2026-02-26_composited_viewer_pass_contract.md2026-03-02_scaffold_registry.md-
PLANNING_REGISTER.md(Β§0.12/Β§0.13deferral posture,Β§1Clanes and done gates)
This checklist is not time-based.
Progress is measured only by feature closure + validation gate evidence.
A gate is closed only when:
- feature semantics are implemented end-to-end,
- diagnostics evidence exists for the critical contract,
- scenario coverage exists for the critical path,
- spec/code parity artifacts are updated.
If any one item is missing, gate remains open.
Feature objective:
- Core UX baseline from the UX control-plane is coherent and executable (interaction correctness, viewer correctness, lifecycle/routing correctness, degradation clarity, spec/code parity).
Primary issue domains:
-
#292-#301(UX integration deliverables and parity) -
#302parity baseline maintenance
Validation gate:
-
Control-plane and matrix artifacts agree on status:
subsystem_ux_semantics/2026-03-01_ux_execution_control_plane.md2026-03-01_ux_migration_feature_spec_coverage_matrix.md2026-03-01_ux_migration_lifecycle_audit_register.md
-
No contradictory claim between docs and runtime behavior for active milestone slices.
Status: open
Feature objective:
- Graph camera/navigation/selection interactions are deterministic under normal and focus-churn paths.
Primary issue domains:
-
#173,#104,#101,#103,#271,#185,#102
Validation gate:
-
Critical interaction scenarios pass in harness:
- camera pan/zoom/reset/fit
- lasso + selection semantics under modifier combinations
- keyboard and pointer interaction coexistence
-
Diagnostics channels show no authority/routing ambiguity for camera dispatch in critical journeys.
-
User-visible regressions in
lane:stabilizationbug register are closed with scenario evidence.
Status: partial
Feature objective:
- Open/close/split/focus handoff and first-render activation are deterministic for Workbench/Frame/Tile flows.
Primary issue domains:
-
#174,#186,#187(primary) -
#118,#119(enabling decomposition)
Validation gate:
-
Scenario coverage for:
- spawn/activate first render
- close-pane successor focus handoff
- deterministic focus owner transitions across graph pane and node/tool panes
-
No blank viewport/focus-race repros in active stabilization register.
-
Coordinator-boundary invariants remain green for touched files.
Status: partial
Feature objective:
- Content-opening actions always route through Graphshell semantic ownership (no legacy bypass).
Primary issue domains:
#175
Validation gate:
- All open-in-new-view paths create/route through canonical Graphshell node/tile semantics.
- No legacy context-menu bypass path can create pane state outside declared intent flow.
- Routing diagnostics include explicit reason/path for open decision.
Status: open
Feature objective:
- F2/global command surface, contextual command surface, and radial/menu semantics share one command model.
Primary issue domains:
-
#176,#106,#107,#108,#178,#270
Validation gate:
- Command naming/scope reflects canonical semantics (no misleading surface labels).
- Command invocation parity exists across keyboard/pointer entry points.
- Disabled-state policy and context category mapping are explicit and test-covered.
Status: open
Feature objective:
- Settings/history/control surfaces behave as first-class panes with stable apply and return-path behavior.
Primary issue domains:
-
#109,#110,#177,#189
Validation gate:
- Settings changes with persistence semantics have scenario tests (including restart persistence where applicable).
- Tool pane entry/exit return-target behavior is deterministic.
- Control-surface state changes emit diagnostics or observable state transitions.
- Internal control-surface routing uses the canonical
verso://namespace (with legacygraphshell://compatibility only as an alias), and workbench authority does not depend on hand-built address strings.
Status: partial
Feature objective:
- Viewer render mode behavior and fallback/degraded states are explicit, deterministic, and diagnostics-visible.
Primary issue domains:
-
#162,#188,#111,#112 - related lanes:
lane:stabilization,lane:viewer-platform,lane:spec-code-parity
Validation gate:
-
Surface Composition Contract behavior is provable in runtime evidence:
- pass ordering for composited mode
- documented native-overlay affordance limitations
- fallback reason visibility
-
TileRenderMode-driven behavior is test-covered where applicable. -
Viewer/fallback docs match runtime reality.
Current status note:
- Fallback/degraded-state clarity itself is already landed:
TileRenderMode::PlaceholdervsCompositedTexturedegraded-state semantics are covered by the committedpre_wgpu_critical_path.rsscenarios, and viewer diagnostics/affordance language is canonical under#162+#188. - The remaining G6 work before a backend switch is narrower: compositor pass-contract proof, native-overlay limitation receipts, and any adapter-level bridge invariants that still need runtime evidence.
Status: partial
Feature objective:
- Reliability is enforced through scenario + diagnostics + semantic probes, not ad hoc manual repro loops.
-
#94,#251,#257,#261,#269,#272,#273
- Critical-path UxHarness scenarios exist and run as a required gate for affected areas.
- UxTree/Probe invariants catch ownership/focus/routing regressions before merge.
- Diagnostics evidence is present for all core authority boundaries.
- Address-routing coverage includes both system/workbench authority (
verso://...) and domain-record handoff (notes://..., plus any activegraph://.../node://...paths), so content identity and workbench placement failures are caught before merge.
Current status note:
- Critical-path UxHarness coverage is already closed by
#273; the committed suite inpre_wgpu_critical_path.rsis the current baseline for migration-adjacent UX flows. - The remaining blocker is turning that committed coverage into structural snapshot baseline/diff CI and merge-blocking automation (
#257), alongside the existing probe/diagnostics contracts.
Status: partial
- No pre-wgpu-critical feature remains in scaffold state for core UX closure paths.
Primary scaffold markers:
[SCAFFOLD:view-dimension-ui-wiring][SCAFFOLD:verse-protocol-handler][SCAFFOLD:wasm-mod-loader-runtime]
Validation gate:
- For each marker still present in the active scaffold registry and impacting core UX closure lanes: closure criteria met and marker removed or explicitly de-scoped from pre-wgpu closure.
- No βpartial but mergedβ slice in core path without explicit scaffold marker and closure gate.
Current status note:
- The active scaffold registry is narrower than this checklist's original snapshot:
[SCAFFOLD:viewer-wry-runtime-registration]is already closed, and[SCAFFOLD:divergent-layout-commit]is no longer an active registry marker. - The remaining G8 question is whether the still-active markers are either closed or explicitly de-scoped from pre-wgpu UX closure, rather than silently treated as background debt.
Status: open
Feature objective:
- Only begin renderer backend migration once application readiness is true by feature evidence.
Primary source:
testing/wr-wgpu_notes/2026-03-01_webrender_wgpu_renderer_implementation_plan.mdresearch/2026-03-01_webrender_wgpu_renderer_research.md-
PLANNING_REGISTER.md(Β§0.12/Β§0.13)
Validation gate:
-
Application readiness conditions are all true:
- authority boundaries explicit/enforced,
- core UX flows usable without constant regressions,
- app semantics complete enough for practical use,
- current-stack bugs are not dominating development,
- migration can be evaluated as upgrade, not desperation.
-
Runtime viewer bridge precondition (
#180) has current tracker-linked viability evidence; technical-definition-only or archived receipts are insufficient for authorization.
Current status note:
- Active canon now treats
#180/#183as upstream-first, non-milestone renderer work while Glow remains the milestone runtime composition policy. -
G9therefore authorizes backend-migration start only when the app-side feature gates are evidence-complete and#180is backed by current viability evidence rather than problem-definition or historical spike receipts alone.
Status: blocked (by G0-G8 + #180)
- No net-new UX feature expansion while any of G1, G2, G3, or G6 is open.
- Any PR touching a gate-owned area must include:
- contract-level scenario evidence,
- diagnostics evidence,
- parity doc delta where behavior changed.
- If a regression reopens a closed gate, that gate reverts to
openimmediately. -
G9cannot be manually overridden by schedule pressure.
- The next move is not βmore planning.β It is strict gate closure on partially implemented pre-wgpu features.
- The dominant risk is not missing ideas; it is accepting partially closed interaction contracts.
- Success criterion is not velocity of merged slices; it is number of gates moved from
open/partialtoclosedwith evidence.
- Close
G7's remaining automation work by landing#257snapshot baseline/diff CI on top of the committed critical-path suite. - Close the remaining
G6compositor/adapter evidence for render-mode fallback and affordance behavior. - Continue
G1residual closure where camera/selection determinism still lacks durable evidence. - Continue
G2/G3residual closure only where a slice directly discharges a listed residual or a regression proves the contract is not actually stable; do not re-plan already-canonical semantics. - Re-evaluate
G9only after G0-G8 status is evidence-complete.