Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
7c5c6c8
feat(menus): retire legacy Menu flat fields behind private LegacyMenu…
ScottMorris Aug 17, 2026
6e2e4e2
refactor(menus): migrate build/validation readers onto MenuDocument
ScottMorris Aug 17, 2026
4feeb85
test(menus): rewrite Rust test fixtures onto MenuDocument
ScottMorris Aug 17, 2026
fe341c3
feat(menus): drop legacy fields from the guest-js Menu type
ScottMorris Aug 17, 2026
22abf9f
feat(menus): remove store sync-layer and legacy-mirror writes from Me…
ScottMorris Aug 17, 2026
48ef4ee
feat(menus): invert menu generators onto MenuDocument and wire direct…
ScottMorris Aug 17, 2026
58b2d76
refactor(menus): migrate remaining TS readers off legacy Menu fields
ScottMorris Aug 17, 2026
e3d4a87
test(menus): rewrite vitest fixtures onto MenuDocument; add generator…
ScottMorris Aug 17, 2026
7250c0e
chore(format): ignore generated plugin `dist-js` output in prettier
ScottMorris Aug 17, 2026
46a1474
fix(menus): backfill legacy motion audio into the document on migration
ScottMorris Aug 19, 2026
166efb1
fix(menus): guard `doc()` invariant with migrate-on-entry in IPC comm…
ScottMorris Aug 19, 2026
ea06b06
fix(menus): restore interaction-graph action validation and connectio…
ScottMorris Aug 19, 2026
766f4e1
refactor(menus): reuse `MenuDocument::buttons()` in auto-nav
ScottMorris Aug 19, 2026
081d605
fix(menus): editor duration clearing, nav cleanup on delete, button-j…
ScottMorris Aug 19, 2026
5726d08
fix(menus): pin zero-duration motion-menu capacity behaviour; log dro…
ScottMorris Aug 19, 2026
893022e
fix: bump project schema version to 2 for the legacy-mirror removal
ScottMorris Aug 19, 2026
3d99738
docs: document generated-menu navigation behaviour in SPEC.md
ScottMorris Aug 19, 2026
beb2bf0
test: use struct-update syntax in schema-version guard tests
ScottMorris Aug 19, 2026
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
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.claude
dist
dist-js
node_modules
coverage
.pnpm-store
Expand Down
11 changes: 11 additions & 0 deletions SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,17 @@ That means generated menus should derive from:

Generated menus should remain editable after creation. The user should be able to accept a generated baseline and then customise layout, navigation, labels, and art.

### 14.5 Generated menu navigation

Autogenerated menus (currently chapter-selection grids, with the same generator machinery available to other generated menu types) ship with fully wired remote-navigation, not placeholder buttons the user must connect manually.

- Every generated button gets up/down/left/right links from its layout geometry — a grid wires row/column neighbours, a single-column list wires a simple vertical chain.
- Every link the generator creates is bidirectional: linking a button's `navRight` to a neighbour also sets that neighbour's `navLeft` back to it, and so on for the other three directions. This guarantees no generated button is reachable only in one direction and unreachable in the other, which would strand it behind a remote press with no way back.
- A trailing utility row (Previous/Back/Next, for paginated chapter grids) is chained left-to-right by position and anchored onto the closest column of the grid's last row, so the utility row and the grid form a single connected navigation graph rather than two disjoint ones.
- Each generated menu sets `interaction.defaultFocusId` to a real button (the first grid item, falling back to the first utility button for pages with no grid items) so the menu has a sane initial remote-navigation focus the moment it's generated, before any manual editing.

Generated menus remain fully editable after creation — a user can rewire, add, or remove any of these links from the authored navigation model like any hand-authored menu.

### 14.7 Menu themes and style architecture

Menu themes do not need to be implemented in v1, but the architecture should preserve room for them early.
Expand Down
Loading
Loading