From 4617d71ba7f6bc506f347d4fa3dad50b0ef20187 Mon Sep 17 00:00:00 2001 From: can1357 Date: Sat, 18 Jul 2026 20:22:02 +0200 Subject: [PATCH] fix(browser): keep raw AbortSignal identity through run facade Native combinators (AbortSignal.any, fetch) brand-check internal slots that a Proxy cannot forward; return signals unwrapped from bindBrowserRunFacade so tab.signal composes with native cancellation. --- packages/coding-agent/src/tools/browser/run-cancellation.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/coding-agent/src/tools/browser/run-cancellation.ts b/packages/coding-agent/src/tools/browser/run-cancellation.ts index d2313af14..2fc638fce 100644 --- a/packages/coding-agent/src/tools/browser/run-cancellation.ts +++ b/packages/coding-agent/src/tools/browser/run-cancellation.ts @@ -117,6 +117,10 @@ export function bindBrowserRunFacade(target: T, signal: AbortS return wrapped; } if (value && typeof value === "object") { + // Never proxy AbortSignals: native combinators (AbortSignal.any, fetch) + // brand-check internal slots that a Proxy cannot forward, and reading a + // signal needs no abort gating anyway. + if (value instanceof AbortSignal) return value; const wrapped = bindBrowserRunFacade(value, signal); cache.set(prop, wrapped); return wrapped;