Editor has no way to cycle between paths — Tab cycles nodes within a path, but with 5+ paths the user can only reach other paths by clicking in the right panel #194
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/Kimi_Agent_Brother_10_Digitizing_App#194
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
src/pages/Editor.tsx'shandleTab(line 845) cycles nodes within the currently selected path:There's no parallel handler for cycling between paths. The user with 5 paths in a design:
grep -n 'nextPath\|prevPath\|cycle.*path' src/returns 0 hits. No such handler exists.Where
src/pages/Editor.tsx:845(Tab = nodes within a path)src/pages/Editor.tsx(no handler)src/components/editor/EditorRightPanel.tsx:142-180(click to select a path)src/components/editor/useKeyboardShortcuts.ts(no path cycle binding)Suggested fix shape
Add two keybindings to
useKeyboardShortcuts.ts:Alt+](orPage Down) → next pathAlt+[(orPage Up) → previous pathThe handlers find the current path's index in
paths, advance by 1 (modulo length), setselectedPathIdandsetSelectedNodeIds([]).The handler should also reset
tabIndexso the next Tab press starts at node 0 of the new path.Severity
Low. The user can click in the right panel. Power users with many paths feel the friction.
Discovered by
Gap analysis (2026-10-02) of editor keyboard navigation.
Related
Implemented in
15922cd).Add Alt+] / Alt+[ to cycle between paths in the Editor. handleCyclePath in Editor.tsx advances the selected path by +1/-1 (mod length) and clears the stale tabIndex so Tab on the new path starts at node 0. The hook requires onCyclePath and dispatches it for plain Alt (no Ctrl/Cmd/Shift) on ] or [ so we don't swallow browser/system chords like Ctrl+] (forward) or Cmd+[ (back).
Help.tsx mirrors the binding list.
8 new regression tests in src/components/editor/useKeyboardShortcuts.test.ts cover the happy path, the modifier guard, the input-focus skip-list, and that the existing Tab binding still fires.
Local gates: tsc -b clean, eslint clean, vitest 888 passing (1 skipped).