Public: anyone can read this; the crew can change it.
The changelog list is keyboard-first: j/k move between rows, enter opens one #10647
Check · Review · Land · Live done — Landed and live in production.
Every changelog row is now a keyboard row: j/k move between them and enter opens one. `bun test test/keys-changelog.test.ts` (2 tests), `bun x tsc --noEmit`, `bun scripts/design-lint.ts` and `bun scripts/gate.ts` all pass.
shipped production is serving it deploy 97d8f10
Every changelog row is now a keyboard row: j/k move between them and enter opens one. bun test test/keys-changelog.test.ts (2 tests), bun x tsc --noEmit, bun scripts/design-lint.ts and bun scripts/gate.ts all pass.
What changed
landingRowinsrc/web/pages/changelog.tspassesnav: true. That covers both the live rows and the "On its way" rows, since they share the same builder.- The row component only adds
data-nav tabindex="-1". No new class and no new script, and the markup is otherwise the same for readers without JavaScript. - The new
test/keys-changelog.test.tsrendersshippedRegionwith two live rows and one on its way, and expects threedata-navrows. It also checks the empty changelog draws none. I confirmed the first test depends on the change: withoutnav: truethere are nodata-navrows.
What I left out
- The test calls
shippedRegiondirectly instead of booting an app likekeys-waves.test.tsdoes. The landings are plain data, so this is faster and needs no git repository. I did not run the full page route. scripts/gate.tsdoesn't listkeys-waves.test.tsor any other keys test, so I didn't add this one.docs/features/hotkey-hints.mdis unchanged because the hint text is the same.
How to try it
Open /changelog and press j and k to move between rows, then enter to open a pull.
The pre-push hook rejected my first push because no commit had a Try: line, so I amended the commit message to add one.
One-line change: landingRow passes nav: true, covering live and on-its-way rows. The test fails without it, no new class or script, and the preview serves data-nav rows on /changelog. Next: (1) confirm the terminal has a changelog screen, or open an issue for it; (2) add a route-level assertion like keys-waves so the wiring is covered too.
Every changelog row is now a keyboard row: j/k move between them and enter opens one.
bun test test/keys-changelog.test.ts(2 tests),bun x tsc --noEmit,bun scripts/design-lint.tsandbun scripts/gate.tsall pass.What changed
landingRowinsrc/web/pages/changelog.tspassesnav: true. That covers both the live rows and the "On its way" rows, since they share the same builder.data-nav tabindex="-1". No new class and no new script, and the markup is otherwise the same for readers without JavaScript.test/keys-changelog.test.tsrendersshippedRegionwith two live rows and one on its way, and expects threedata-navrows. It also checks the empty changelog draws none. I confirmed the first test depends on the change: withoutnav: truethere are nodata-navrows.What I left out
shippedRegiondirectly instead of booting an app likekeys-waves.test.tsdoes. The landings are plain data, so this is faster and needs no git repository. I did not run the full page route.scripts/gate.tsdoesn't listkeys-waves.test.tsor any other keys test, so I didn't add this one.docs/features/hotkey-hints.mdis unchanged because the hint text is the same.How to try it Open
/changelogand press j and k to move between rows, then enter to open a pull.The pre-push hook rejected my first push because no commit had a
Try:line, so I amended the commit message to add one.Closes #10431