Skip to content

feat(web): keyboard row navigation on five more list pages - #2572

Merged
Makisuo merged 5 commits into
mainfrom
feat/list-keys
Nov 13, 2026
Merged

Makisuo merged 5 commits into
mainfrom
feat/list-keys

fix(web): one focused row at a time, and a select's Escape stays the …

7c2189e
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review succeeded Nov 13, 2026 in 15m 8s

Confidence 10/10 · No issues found

🟢 Confidence 10/10 · safe to merge. Scene tests pin stepping, Enter and Escape on all five pages; only the scroll command's DOM effect is unproven.
no findings · tests covered · risk medium

Extracts one shared row-keyboard module and row-focus look, moves the traces list onto it and gives J/K/arrows/Enter/Escape to five more list pages. Behaviour is unchanged where it should be, and each page's focusable list matches the rows it draws.

  • list-keys.ts: one document key stream, pure focus step, key-to-action map and scroll command
  • row-focus.ts: data-focused / data-list-row marker and look, drawn by tableRow, listRow, gridListRow and selectableRow
  • Services, metrics table, investigations, dashboards and the alerts inbox adopt the list keys
  • Dashboards and the alerts inbox keep the focused row by id; the traces list moves onto the shared stream
What was checked
  • Each page's focusable rows are the same array its view draws (inboxIncidentsOf vs inboxTab's inboxOrder; focusableOf vs the page's isReady gate in view.ts:147)
  • steppedFocus matches the traces and errors hub math it replaced: -1 and out-of-range go to 0, both ends clamp
  • The traces move keeps the f/F extra keys, the peek-time Escape block and the focused-control Enter guard

7c2189e · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.