Workspace's context menu shows keyboard shortcuts (Ctrl+A, Ctrl+D, Ctrl+G, Ctrl+Shift+G) but the workspace has none — clicking shows the hint, the keys do nothing #176
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#176
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/components/workspace/ContextMenu.tsx:73-94lists 7 context menu items with keyboard shortcut hints:Ctrl+ACtrl+DDelCtrl+GCtrl+Shift+GThe workspace has no global keyboard shortcut handler (per #156, still open). A user sees the shortcut hint next to the menu item, presses the key, nothing happens. The hint is a lie.
Verified:
grep -rn 'addEventListener.*keydown\|useKeyboardShortcuts' src/components/workspace/returns 0 matches for the global workspace (only the BottomThreadBar's AlternativesPopover Escape handler and the AppHeader's filename-edit Enter/Escape handler are wired, neither of which is a global shortcut).The Editor has the shortcuts (per
useKeyboardShortcuts.ts); the Workspace doesn't.Where
src/components/workspace/ContextMenu.tsx:73-94src/components/workspace/Suggested fix shape
Two options:
Remove the shortcut hints from the context menu. The hints promise functionality that doesn't exist. Drop the
shortcut:field for workspace menu items until the shortcuts are implemented.Implement the shortcuts. Add a
useWorkspaceShortcutshook that registersCtrl+A,Ctrl+D,Del,Ctrl+G,Ctrl+Shift+G,Ctrl+Shift+],Ctrl+Shift+[against the workspace's existinghandleSelectAll,handleDelete,handleDuplicate,handleGroup,handleUngroup,handleBringToFront,handleSendToBackcallbacks. The pattern is the same as the Editor'suseKeyboardShortcuts.ts— copy the shape.Option 2 is the right product move. The Editor already has the model. The Workspace is the bulk-of-time surface; users will expect power-user shortcuts.
Severity
Medium. The hint in the UI is a UI lie. Power users will press the keys and find nothing.
Discovered by
Gap analysis (2026-10-02) of context menu affordances.
Related
False positive
The workspace already has global keyboard shortcuts —
fb4ed81(fix #156, 2026-10-03 10:18 PT) shippeduseKeyboardShortcuts.ts+ the wiring inWorkspace.tsx+ a 22-test unit suite + a Help-modal cheatsheet. This issue was filed ~20 min after that commit landed (2026-10-03T17:37:51Z), so the "no workspace shortcut hook" claim is stale.Evidence:
src/components/workspace/useKeyboardShortcuts.ts:97-220registers the globalkeydownlistener and dispatchesCtrl/Cmd + A/D/G(with Shift+G for ungroup),Ctrl/Cmd + Shift+Dfor auto-digitize,Delete/Backspacefor delete, plus undo/redo/save/export/zoom/help/escape. Test filesrc/components/workspace/useKeyboardShortcuts.test.tscovers all 22 cases — all pass onmain(commit5fa763d).src/pages/Workspace.tsx:114-165callsuseKeyboardShortcuts({ onSelectAll, onDuplicate, onDelete, onGroup, onUngroup, … })and the hook'sonDelete/onDuplicate/onGroup/onUngroupcallbacks route to the samedispatch({ type: 'DELETE_SELECTED' | 'DUPLICATE_SELECTED' | 'GROUP_SELECTED' | 'UNGROUP_SELECTED' })actions used by the context-menuhandleSelectAll/handleDelete/handleDuplicate/handleGroup/handleUngroupat lines 227-249.onSelectAll/onDelete/onDuplicate/onGroup/onUngrouppassed to<ContextMenu>at lines 364-368) are equivalent dispatch paths — both invoke the same reducer actions, so pressing the key and clicking the menu item produce the same state transition.The advertised hints therefore do exactly what the menu does; no UI lie.
The only honest residual gap is that
Bring to FrontandSend to Back(lines 257-268) have no keyboard shortcut. If you want to addCtrl+Shift+]/Ctrl+Shift+[, that's a small follow-up — but the issue as filed is inaccurate, so closing.RightClickMenucomponent exists but is not used anywhere —DesignCard'sonContextMenuonly callse.preventDefault(), so the menu never opens, the user has no right-click affordance on designs #242