fix: keyboard round 3 — question walk clamps, Tab focus toggle, Alt+arrow isolation, search Esc

Owner live-test rounds on waves A/B:
- Alt+arrows no longer ALSO walk the question rows (dock ignores
  alt/meta/ctrl combos; session cycling keeps them exclusively)
- question walk clamps at the ends — no wrap (faster to navigate)
- plain Tab toggles focus between the thinking field and the answer
  rows (walked row by default); focus follows the walk while in the
  rows; Shift+Tab stays the global thinking-level cycle
- Esc in the sessions search blurs back to normal (claims the key so
  the window Esc chain does not fire)
- cheat sheet gains the Tab-in-question display entry
This commit is contained in:
amosblomqvist
2026-09-18 08:34:46 +03:00
parent 8b158972db
commit ab5d5da9fb
4 changed files with 79 additions and 22 deletions
+2
View File
@@ -33,6 +33,7 @@ export type KeyAction =
| "rename-session"
| "cheat-sheet"
| "find"
| "question-focus"
| "question-next-row"
| "question-prev-row"
| "question-pick-row"
@@ -74,6 +75,7 @@ export const KEYBOARD_ACTIONS: readonly KeyActionDef[] = [
// The question dock's row machine (wave B) — displayOnly: the dock owns
// the keys while a question is expanded; the registry never dispatches
// them, so bare arrows stay free everywhere else.
{ id: "question-focus", label: "Question · focus thinking ↔ rows", scope: "chat", binding: "tab", displayOnly: true },
{ id: "question-next-row", label: "Question · next row", scope: "chat", binding: "arrowdown", displayOnly: true },
{ id: "question-prev-row", label: "Question · previous row", scope: "chat", binding: "arrowup", displayOnly: true },
{ id: "question-pick-row", label: "Question · pick row", scope: "chat", binding: "space", displayOnly: true },