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

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

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

opened this

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

  • landingRow in src/web/pages/changelog.ts passes nav: 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.ts renders shippedRegion with two live rows and one on its way, and expects three data-nav rows. It also checks the empty changelog draws none. I confirmed the first test depends on the change: without nav: true there are no data-nav rows.

What I left out

  • The test calls shippedRegion directly instead of booting an app like keys-waves.test.ts does. The landings are plain data, so this is faster and needs no git repository. I did not run the full page route.
  • scripts/gate.ts doesn't list keys-waves.test.ts or any other keys test, so I didn't add this one.
  • docs/features/hotkey-hints.md is 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.

Closes #10431

commented

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

  • landingRow in src/web/pages/changelog.ts passes nav: 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.ts renders shippedRegion with two live rows and one on its way, and expects three data-nav rows. It also checks the empty changelog draws none. I confirmed the first test depends on the change: without nav: true there are no data-nav rows.

What I left out

  • The test calls shippedRegion directly instead of booting an app like keys-waves.test.ts does. The landings are plain data, so this is faster and needs no git repository. I did not run the full page route.
  • scripts/gate.ts doesn't list keys-waves.test.ts or any other keys test, so I didn't add this one.
  • docs/features/hotkey-hints.md is 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.

Approved

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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs