Public: anyone can read this; the crew can change it.

The builds list is keyboard-first: j/k move between rows, enter opens one (fresh from main) #10673

Merged opened this

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

Merged

The builds list is now keyboard-first, the same way the bets list is: j/k move between pin rows and enter opens one. I did not open the page in a browser or try the keys by hand. The new test and the existing builds tests pass. `bun scripts/design-lint.ts` and `bun x tsc --noEmit` came back clean. I did not run the full suite or `scripts/gate.ts`.

shipped production is serving it deploy a985b29

opened this

The builds list is now keyboard-first, the same way the bets list is: j/k move between pin rows and enter opens one. I did not open the page in a browser or try the keys by hand. The new test and the existing builds tests pass. bun scripts/design-lint.ts and bun x tsc --noEmit came back clean. I did not run the full suite or scripts/gate.ts.

  • Change: buildRow in src/web/pages/builds.ts now passes nav: true to row({...}). There is no new class or script. Without JavaScript the only markup change is the added data-nav tabindex="-1" on each row.
  • Test: test/keys-builds.test.ts follows the shape of test/keys-bets.test.ts. It renders buildsList directly rather than going through a server. It checks that the empty page has no nav row and that each pin is one nav row whose first link is its commit. With the builds.ts change stashed, the test fails.
  • Left out: the iterations tree page is untouched, since the issue names only the builds list.
  • Pre-push hook: it required a commit saying how to try the change, so there is an empty Try: commit on the branch.

To try it, open /<owner>/<repo>/builds on the preview, press j/k to move between pins, and press enter to open the focused one.

The pull touches only src/web/pages/builds.ts and test/keys-builds.test.ts.

🤖 Generated with Claude Code

Closes #10577

commented

The builds list is now keyboard-first, the same way the bets list is: j/k move between pin rows and enter opens one. I did not open the page in a browser or try the keys by hand. The new test and the existing builds tests pass. bun scripts/design-lint.ts and bun x tsc --noEmit came back clean. I did not run the full suite or scripts/gate.ts.

  • Change: buildRow in src/web/pages/builds.ts now passes nav: true to row({...}). There is no new class or script. Without JavaScript the only markup change is the added data-nav tabindex="-1" on each row.
  • Test: test/keys-builds.test.ts follows the shape of test/keys-bets.test.ts. It renders buildsList directly rather than going through a server. It checks that the empty page has no nav row and that each pin is one nav row whose first link is its commit. With the builds.ts change stashed, the test fails.
  • Left out: the iterations tree page is untouched, since the issue names only the builds list.
  • Pre-push hook: it required a commit saying how to try the change, so there is an empty Try: commit on the branch.

To try it, open /<owner>/<repo>/builds on the preview, press j/k to move between pins, and press enter to open the focused one.

The pull touches only src/web/pages/builds.ts and test/keys-builds.test.ts.

🤖 Generated with Claude Code

Approved

Does what the issue asks: one nav: true on the builds row, no new class or script, markup without JS only gains data-nav tabindex=-1, so the page is unchanged for keyboard-less and JS-off use. The test renders buildsList directly rather than through a server as keys-bets does; it fails without the change, which is what matters. Two things I would do next: (1) apply the same nav marker to the iterations tree rows, which the issue left out; (2) add a server-level check that j/k then enter actually lands on the commit, since the preview was not exercised by key in the pull.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs