Permission prompt UX: add session-scoped approval and fix free-text input auto-submit

Resolved 💬 6 comments Opened Feb 28, 2026 by likeshumidity Closed Mar 28, 2026

Current behavior

The permission prompt offers roughly three options: Yes, Yes always, and No (with a way to provide text feedback). This is too coarse — there's a big gap between "allow once" and "allow permanently." Additionally, typing free-text feedback that starts with a number (e.g., "2 except not for...") pattern-matches against the numbered option and auto-submits before the user finishes typing.

Proposed behavior

Five distinct options:

| Key | Action | Persistence |
|-----|--------|-------------|
| 1 | Yes | This invocation only |
| 2 | Yes for this session | Until /clear, new session, or context compaction |
| 3 | Yes always | Permanent across sessions |
| 4 | No | Deny this invocation |
| 5 | _(free-text)_ | User types nuanced feedback/instructions |

Key details

  • Session-scoped approval (option 2) is the most-used sweet spot in practice. "Yes always" is too permanent for many tool calls, but re-approving the same action 15 times per session creates friction. Session scope should reset on /clear, new session start, and context compaction — erring on the side of safety by not carrying approvals across compaction boundaries.
  • Free-text input (option 5) should not auto-submit on number key presses. The current behavior where typing "2 except..." matches and submits option 2 makes it effectively impossible to give conditional feedback that starts with a digit. The text input mode should require an explicit Enter/Return to submit, and should be clearly distinguished from the numbered option selection.

Why this matters

Power users interact with the permission prompt dozens of times per session. The current binary of "once vs. forever" pushes people toward either excessive clicking or overly permissive permanent rules. A session-scoped middle ground would significantly improve the workflow without compromising safety.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗