fix: persist ProceedAlways permission outcome in compact mode (#3069)

Compact mode confirmation dialog uses ProceedAlways for "Allow always"
option, but persistPermissionOutcome() only handled ProceedAlwaysProject
and ProceedAlwaysUser, causing the permission to never be saved.

Now ProceedAlways is treated as project scope (same as ProceedAlwaysProject).
This commit is contained in:
易良 2026-04-10 13:45:34 +08:00 committed by GitHub
parent cf81ac47ff
commit d8e06f5c91
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -174,6 +174,7 @@ export async function persistPermissionOutcome(
payload?: ToolConfirmationPayload,
): Promise<void> {
if (
outcome !== ToolConfirmationOutcome.ProceedAlways &&
outcome !== ToolConfirmationOutcome.ProceedAlwaysProject &&
outcome !== ToolConfirmationOutcome.ProceedAlwaysUser
) {
@ -181,9 +182,9 @@ export async function persistPermissionOutcome(
}
const scope =
outcome === ToolConfirmationOutcome.ProceedAlwaysProject
? 'project'
: 'user';
outcome === ToolConfirmationOutcome.ProceedAlwaysUser
? 'user'
: 'project';
// Read permissionRules from the stored confirmation details first,
// falling back to payload for backward compatibility.