Commit graph

1 commit

Author SHA1 Message Date
Shay
494edeee90 feat(workbench): unify route truth into one registry (Wave M B3.5-a)
Adds `workbench-ui/src/app/routes.ts` as the single source of truth for
navigation routes. App, LeftNav, the command palette, ⌘-digit shortcuts,
and the landing-route preference now all derive from `WORKBENCH_ROUTES`.

Fixes the live palette-drift bug: the command palette's hand-maintained
NAV_COMMANDS listed 10 routes and silently dropped Demos and Calibration,
so they were unreachable via ⌘K. The landing-route tuple was likewise
missing Replay and Calibration. Deriving every list from one registry
makes that drift structurally impossible.

- routes.ts carries a `section` field for grouped wayfinding nav
  (Converse · Cognition · Determinism · Evidence · Discipline ·
  Substrate · Settings) — a display skin only; one workbench, one
  address space, one Evidence Chain Rail.
- App is data-driven via ROUTE_ELEMENTS (route id → element); a registry
  route without an element fails routes.test rather than rendering undefined.
- Honest keyboard model: ten routes pin ⌘1–0; Demos and Calibration are
  palette-only (no chord advertised).
- routes.test.tsx guards the contract: element-map parity, unique
  ids/paths/digits, landing-route coverage (Replay + Calibration), and
  palette reachability of every command-visible route.

Verified: pnpm build green; routes/Shell/CommandPalette/routeConformance/
prefs/Settings + hexScan/schemaDrift/enumCoverage suites all pass (108 tests).
2026-06-13 04:43:28 -07:00