Skip to content

Commit c03784d

Browse files
committed
fix(session): release a settled approval overlay before delivering
1 parent 13cfb0d commit c03784d

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

‎src/session/approval-resume.ts‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,11 @@ export function createApprovalResume(args: {
545545

546546
const outcome = await args.gate.resolveSuspended(request, stillCurrent);
547547
if (!overlayAbort.signal.aborted) overlayAbort.abort();
548+
// The overlay is gone, but its aborted controller still feeds every
549+
// permission prompt's signal while registered. A resumed call can prompt
550+
// (approve_worker_call checks the worker's frozen call) before delivery
551+
// below resolves, and would be denied unseen.
552+
args.registerOverlayAbort?.(undefined);
548553
const timedOutDuringOverlay =
549554
overlayAbort.signal.reason === APPROVAL_TIMEOUT_RESULT_TEXT ||
550555
(await timeoutWatch);

0 commit comments

Comments
 (0)