-
Notifications
You must be signed in to change notification settings - Fork 3.4k
v0.8.66: Correct approval UI copy for session-scoped approvals #3766
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationrelease-blockerMust be fixed before the next releaseMust be fixed before the next releasesecuritySecurity, isolation, permissions, or trust-boundary workSecurity, isolation, permissions, or trust-boundary worktuiTerminal UI behavior, rendering, or interactionTerminal UI behavior, rendering, or interactionuxUser experience, interaction, or presentation polishUser experience, interaction, or presentation polishv0.8.66Targeting v0.8.66Targeting v0.8.66
Milestone
Description
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationrelease-blockerMust be fixed before the next releaseMust be fixed before the next releasesecuritySecurity, isolation, permissions, or trust-boundary workSecurity, isolation, permissions, or trust-boundary worktuiTerminal UI behavior, rendering, or interactionTerminal UI behavior, rendering, or interactionuxUser experience, interaction, or presentation polishUser experience, interaction, or presentation polishv0.8.66Targeting v0.8.66Targeting v0.8.66
Projects
StatusShow more project fields
Done
Why this matters
The approval modal currently tells users that
a/ option 2 means "always" or "Approve always for this kind", but the runtime only approves matching tool calls for the current TUI session. That is a trust-boundary copy bug: users should be able to understand exactly how long an approval lasts before they press the key.Current behavior
The compact approval controls hardcode the second action as "always":
crates/tui/src/tui/widgets/mod.rs:1760-1772The full approval option also uses the
ApprovalOptionApproveAlwayslabel:crates/tui/src/tui/widgets/mod.rs:1876-1879crates/tui/src/tui/widgets/mod.rs:1898-1899But the runtime maps that option to a session-scoped decision:
crates/tui/src/tui/approval.rs:1200-1204And the TUI handler stores the tool/grouping keys in the in-memory session approval set:
crates/tui/src/tui/ui.rs:9505-9512Focused test evidence also matches session-scoped behavior:
crates/tui/src/tui/approval.rs:2665—benign_a_two_approves_for_sessionDesired behavior
a, option 2) as long as the label is honest.Repro or evidence
Open an approval prompt that offers the second approval option. The UI presents option 2 /
aas always/permanent, whileApprovalOption::ApproveAlwaysmaps toReviewDecision::ApprovedForSessionand is stored only inapp.approval_session_approved.Acceptance criteria
benign_a_two_approves_for_session.Related