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
As a frequent user, I want keyboard shortcuts for the actions and destinations I use often across the whole app, not just one component, so that I can work without reaching for the mouse.
Context & Motivation
Today the app has only a handful of one-off shortcuts (e.g. Alt+N for a new conversation, plus a few easter eggs), and no discoverable, app-wide set of shortcuts for common navigation and actions. This should cover the app broadly: navigating to frequently used destinations, toggling the sidebar, and other common actions where a shortcut would genuinely save time, not be limited to a single page or component.
Acceptance Criteria
Frequently used navigation destinations (e.g. Dashboard, Board, Buddy, PM Dashboard, Knowledge Base) have documented keyboard shortcuts.
A keyboard shortcut toggles the sidebar (collapse/expand, once that feature exists).
Other frequent, high-value actions get a shortcut where it clearly makes sense (e.g. opening the Buddy, jumping to search), decided case by case rather than exhaustively.
Shortcuts do not fire while typing in an input, textarea, or other text-entry context, and do not override shortcuts the browser already owns.
Shortcuts are discoverable: a visible hint on the relevant control and/or a central "keyboard shortcuts" list, not tribal knowledge.
New shortcuts follow the same conventions as the existing ones (see Technical Notes) so they don't conflict with each other or with the browser/OS.
Technical Notes
There is already a small, deliberate pattern to build on: useNewConversationShortcut.ts implements Alt+N using event.code (physical key, layout-independent) rather than event.key, explicitly avoids Ctrl+N because browsers reserve it, and rejects ctrlKey/metaKey to avoid firing on AltGr chords — reuse this convention for new shortcuts rather than inventing a new one per shortcut. ShortcutHint.tsx is an existing small component that shows a shortcut's keys on hover/focus of the control it belongs to; extend that pattern for discoverability rather than building a separate mechanism.
There is currently no central, app-wide shortcut registry or "keyboard shortcuts" help view — each shortcut so far is a one-off hook wired into a single component. Decide whether this needs a shared registry (to avoid collisions as more shortcuts are added) before spreading many independent keydown listeners across the app.
User Story
As a frequent user, I want keyboard shortcuts for the actions and destinations I use often across the whole app, not just one component, so that I can work without reaching for the mouse.
Context & Motivation
Today the app has only a handful of one-off shortcuts (e.g.
Alt+Nfor a new conversation, plus a few easter eggs), and no discoverable, app-wide set of shortcuts for common navigation and actions. This should cover the app broadly: navigating to frequently used destinations, toggling the sidebar, and other common actions where a shortcut would genuinely save time, not be limited to a single page or component.Acceptance Criteria
Technical Notes
There is already a small, deliberate pattern to build on:
useNewConversationShortcut.tsimplementsAlt+Nusingevent.code(physical key, layout-independent) rather thanevent.key, explicitly avoidsCtrl+Nbecause browsers reserve it, and rejectsctrlKey/metaKeyto avoid firing onAltGrchords — reuse this convention for new shortcuts rather than inventing a new one per shortcut.ShortcutHint.tsxis an existing small component that shows a shortcut's keys on hover/focus of the control it belongs to; extend that pattern for discoverability rather than building a separate mechanism.There is currently no central, app-wide shortcut registry or "keyboard shortcuts" help view — each shortcut so far is a one-off hook wired into a single component. Decide whether this needs a shared registry (to avoid collisions as more shortcuts are added) before spreading many independent
keydownlisteners across the app.