You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The keyboard model is one of the app's strongest features (customizable registry, conflict detection, live help dialog, spatial nav) — these are the remaining gaps that break the "mouse optional" promise:
Panel resizing is mouse-only.ResizablePanel.tsx:316-321 — divider has only onMouseDown/onDblClick; no role="separator", no tabIndex, no arrow-key resize. A keyboard-first user can never adjust the AI-terminal/diff/notes split.
Zoom in/out are invisible and non-rebindable.src/lib/shortcuts.ts:49-98 registers them imperatively outside the keybinding registry, so unlike everything else they don't appear in the Keyboard Shortcuts dialog and can't be customized; only app.reset-zoom is registered (defaults.ts:350-357). The AZERTY-variant rationale justifies hiding duplicate bindings, not the canonical zoom rows.
No visible focus indicator outside dialogs. The comprehensive :focus-visible rule is scoped to .dialog-panel (styles.css:73-95 — the comment says so explicitly). .icon-btn (:920-931) has hover/active but no focus-visible; .new-task-placeholder:focus-visible { outline: none } (:1506-1508) while its accent border is driven by store focus, which DOM-Tab focus doesn't set — tabbing to it shows nothing.
Activity