You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The extension's tab tools (open_new_tab, switch_to_tab, close_tab) and TabsController are not integrated with the per-invocation ctx.signal cancellation model. In particular, TabsController.waitUntilTabLoaded() polls via waitUntil() (up to a few seconds, default 60s elsewhere) with raw setTimeout and cannot be interrupted when the task is stopped or disposed.
Goal
Pass the task AbortSignal into extension tab tool execution (packages/extension/src/agent/tabTools.ts).
Make TabsController.waitUntilTabLoaded() and the underlying waitUntil() accept { signal } so first-party tab operations do not outlive stop/dispose.
For remote content-script / background calls that cannot be truly cancelled, add a run-id or late-result guard so stale results cannot mutate the active run.
Context
Follow-up from the robust-aborting work in #532.
The extension's tab tools (
open_new_tab,switch_to_tab,close_tab) andTabsControllerare not integrated with the per-invocationctx.signalcancellation model. In particular,TabsController.waitUntilTabLoaded()polls viawaitUntil()(up to a few seconds, default 60s elsewhere) with rawsetTimeoutand cannot be interrupted when the task is stopped or disposed.Goal
AbortSignalinto extension tab tool execution (packages/extension/src/agent/tabTools.ts).TabsController.waitUntilTabLoaded()and the underlyingwaitUntil()accept{ signal }so first-party tab operations do not outlive stop/dispose.Notes
packages/extension/src/agent/tabTools.ts,packages/extension/src/agent/TabsController.ts,packages/extension/src/agent/MultiPageAgent.ts.Planned in #532.