docs(website): theming phases 6-8 as built, and phase 9 cancelled #107

Merged
whitlocktech merged 1 commits from docs/theming-nav-phase-6-8 into edge 2026-08-08 05:11:47 +00:00
Member

Docs pair for RunicGateway/website#124. Targets edge.

Ticks phases 6–8 in website/THEMING_AND_NAV.md §8, adds "Phases 6–8 as landed", marks phase 9 cancelled, and documents the nav write path in BACKEND_DESIGN.md.

Five ways the build differed from the design, each with its reason:

  • The server had no way to store a nav row. §8 scoped 6–8 as client work, and for the merge that is right — but updateSettings would have written a nav object as "[object Object]", which reads back as absent. A save that 200s and does nothing, for ever.
  • The server deliberately cannot check that a to exists. The base NAV arrays are client constants; a server-side copy would be a second source of truth for navigation that drifts the first time a route is added. The server validates shape, the client owns membership — which is also what makes deleting a route in code safe with no migration.
  • hidden: false is accepted and never stored, so hiding stays subtractive and no row can read like an instruction to force something visible.
  • The nav editor cannot be hidden, enforced in three places — including one that covers a row edited straight in the database.
  • Orders are written only when something actually moved, compared against the base restricted to the rows the editing admin can see, so filtering the palette by role or shard feature is not mistaken for a reorder.

Phase 9 is cancelled rather than deferred, per the org lead. The finding that motivated it is kept as the record: the §4.8 rgba() literals carry a hue, so they are a rough edge in the three dark presets and not merely a blocker for a hypothetical light one. Anyone picking it up later starts from the census in §4.8.

api-route-inventory.json is unchanged — phases 6–8 add no routes, and the regenerated manifest is byte-identical.

Checklist

  • I have read CONTRIBUTING.md.
  • The change builds and existing tests/checks pass locally.
  • I have added or updated tests/docs where it makes sense.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Opus 5). I have reviewed and understand
    every change, and take responsibility for it. AI-authored commits are
    marked with a Co-Authored-By / Assisted-By trailer.

License

  • I agree that my contribution is licensed under this project's license
    (GNU GPL v3.0 or later), and I have the right to contribute it.
Docs pair for RunicGateway/website#124. Targets **`edge`**. Ticks phases 6–8 in [`website/THEMING_AND_NAV.md`](website/THEMING_AND_NAV.md) §8, adds "Phases 6–8 as landed", marks **phase 9 cancelled**, and documents the nav write path in [`BACKEND_DESIGN.md`](website/BACKEND_DESIGN.md). Five ways the build differed from the design, each with its reason: - **The server had no way to store a nav row.** §8 scoped 6–8 as client work, and for the merge that is right — but `updateSettings` would have written a nav object as `"[object Object]"`, which reads back as absent. A save that 200s and does nothing, for ever. - **The server deliberately cannot check that a `to` exists.** The base `NAV` arrays are client constants; a server-side copy would be a second source of truth for navigation that drifts the first time a route is added. The server validates shape, the client owns membership — which is also what makes deleting a route in code safe with no migration. - **`hidden: false` is accepted and never stored**, so hiding stays subtractive and no row can read like an instruction to force something visible. - **The nav editor cannot be hidden**, enforced in three places — including one that covers a row edited straight in the database. - **Orders are written only when something actually moved**, compared against the base restricted to the rows the editing admin can see, so filtering the palette by role or shard feature is not mistaken for a reorder. **Phase 9 is cancelled rather than deferred**, per the org lead. The finding that motivated it is kept as the record: the §4.8 `rgba()` literals carry a *hue*, so they are a rough edge in the three dark presets and not merely a blocker for a hypothetical light one. Anyone picking it up later starts from the census in §4.8. `api-route-inventory.json` is unchanged — phases 6–8 add no routes, and the regenerated manifest is byte-identical. ## Checklist - [x] I have read [CONTRIBUTING.md](CONTRIBUTING.md). - [x] The change builds and existing tests/checks pass locally. - [x] I have added or updated tests/docs where it makes sense. - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Opus 5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` / `Assisted-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it.
wtclaude added 1 commit 2026-08-08 05:04:18 +00:00
Marks the nav wiring and the builder UI landed, and records the five places the
build differed from the design:

- The server had no way to store a nav row. The design scoped 6-8 as client
  work, but updateSettings would have written a nav object as "[object Object]"
  — a save that 200s and does nothing, for ever.
- The server deliberately cannot check that a `to` exists: the base NAV arrays
  are client constants, and a server-side copy would be a second source of truth
  for navigation. Shape is the server's question, membership the client's.
- `hidden: false` is accepted and never stored, so hiding stays subtractive.
- The nav editor cannot be hidden, enforced in three places.
- Orders are written only when something actually moved, compared against the
  base restricted to the rows the editing admin can see.

Phase 9 (hue-carrying rgba literals + Parchment) is cancelled rather than
deferred. The finding that motivated it is kept as the record: those literals
carry a hue, so they are a rough edge in the three dark presets and not only a
blocker for a hypothetical light one.

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech merged commit d7dd0e5078 into edge 2026-08-08 05:11:47 +00:00
whitlocktech deleted branch docs/theming-nav-phase-6-8 2026-08-08 05:11:48 +00:00
Sign in to join this conversation.
No description provided.