fix(vscode): restore permission auto-accept replies

Route live VS Code permission requests directly to directory-scoped permission replies instead of blocking on the refresh-only state preflight.

When auto-accept is enabled after prompts are already visible, reply to the authoritative local requests first, then reconcile and deduplicate the server pending list. Keep state verification for reconnect and refresh flows so stale resolved requests are not resurrected.

Add regression coverage for live events, existing prompts, directory routing, retry behavior, stale reconciliation, and network failures.
This commit is contained in:
Bohdan Triapitsyn
2026-08-01 03:14:59 +03:00
parent 4f63dbf96c
commit f1e8e03c31
7 changed files with 161 additions and 25 deletions
+7 -2
View File
@@ -1137,12 +1137,17 @@ export async function respondToPermission(
sessionId: string,
requestId: string,
response: "once" | "always" | "reject",
directoryOverride?: string,
): Promise<void> {
await waitForConnectionOrThrow()
const directory = resolveDirectoryForBlockingRequest("permission", sessionId, requestId)
const directory = directoryOverride
|| resolveDirectoryForBlockingRequest("permission", sessionId, requestId)
|| getSessionDirectory(sessionId)
|| dir()
const result = await getRequestReplyClient("permission", sessionId, requestId).permission.reply({
const client = directoryOverride
? opencodeClient.getScopedSdkClient(directoryOverride)
: getRequestReplyClient("permission", sessionId, requestId)
const result = await client.permission.reply({
requestID: requestId,
reply: response,
...(directory ? { directory } : {}),