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
Check · Review · Land · Live done — Landed and live in production.
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
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:
buildRowinsrc/web/pages/builds.tsnow passesnav: truetorow({...}). There is no new class or script. Without JavaScript the only markup change is the addeddata-nav tabindex="-1"on each row. - Test:
test/keys-builds.test.tsfollows the shape oftest/keys-bets.test.ts. It rendersbuildsListdirectly 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 thebuilds.tschange 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
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.
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.tsandbun x tsc --noEmitcame back clean. I did not run the full suite orscripts/gate.ts.buildRowinsrc/web/pages/builds.tsnow passesnav: truetorow({...}). There is no new class or script. Without JavaScript the only markup change is the addeddata-nav tabindex="-1"on each row.test/keys-builds.test.tsfollows the shape oftest/keys-bets.test.ts. It rendersbuildsListdirectly 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 thebuilds.tschange stashed, the test fails.Try:commit on the branch.To try it, open
/<owner>/<repo>/buildson the preview, pressj/kto move between pins, and press enter to open the focused one.The pull touches only
src/web/pages/builds.tsandtest/keys-builds.test.ts.🤖 Generated with Claude Code
Closes #10577