Problem
In the desktop/web app, responding to a permission prompt is click-only. The SessionPermissionDock (packages/app/src/pages/session/composer/session-permission-dock.tsx) renders Deny / Allow Always / Allow Once as buttons with onClick handlers and no keyboard path — there's no command id and nothing to rebind.
The TUI had this regress and then restored (#7954): enter → allow once, a → always, d / esc → deny. Those shortcuts never made it to the desktop/web permission dock.
Proposal
Bring the same per-request keyboard responses to the app's permission dock — register commands (e.g. permission.allow, permission.allowAlways, permission.deny) wired to the existing decide() path (session-composer-state.ts), so they show up in the keybind settings and can be rebound like other commands.
Notes
This is distinct from permissions.autoaccept (⌘⇧A), which toggles auto-accept mode rather than responding to the currently pending request.
Precedent: #7954 (TUI shortcuts restored).
Problem
In the desktop/web app, responding to a permission prompt is click-only. The
SessionPermissionDock(packages/app/src/pages/session/composer/session-permission-dock.tsx) renders Deny / Allow Always / Allow Once as buttons withonClickhandlers and no keyboard path — there's no command id and nothing to rebind.The TUI had this regress and then restored (#7954):
enter→ allow once,a→ always,d/esc→ deny. Those shortcuts never made it to the desktop/web permission dock.Proposal
Bring the same per-request keyboard responses to the app's permission dock — register commands (e.g.
permission.allow,permission.allowAlways,permission.deny) wired to the existingdecide()path (session-composer-state.ts), so they show up in the keybind settings and can be rebound like other commands.Notes
This is distinct from
permissions.autoaccept(⌘⇧A), which toggles auto-accept mode rather than responding to the currently pending request.Precedent: #7954 (TUI shortcuts restored).