From c735b590432f8127a46e1dd6e8f0289761a42a46 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 25 Apr 2026 00:10:00 +0100 Subject: [PATCH] fix(browser): remove stale snapshotForAI references --- .../browser/src/browser-tool.actions.ts | 2 +- extensions/browser/src/browser-tool.test.ts | 4 +--- extensions/browser/src/browser/pw-ai.ts | 1 - extensions/browser/src/browser/pw-session.ts | 7 ------ .../src/browser/routes/agent.snapshot.ts | 24 +++++++------------ 5 files changed, 10 insertions(+), 28 deletions(-) diff --git a/extensions/browser/src/browser-tool.actions.ts b/extensions/browser/src/browser-tool.actions.ts index 0aedc75faee..d9a25976e14 100644 --- a/extensions/browser/src/browser-tool.actions.ts +++ b/extensions/browser/src/browser-tool.actions.ts @@ -157,7 +157,7 @@ function canRetryChromeActWithoutTargetId(request: Parameters function isAriaRefsUnsupportedError(err: unknown): boolean { const msg = String(err).toLowerCase(); - return msg.includes("refs=aria") && msg.includes("_snapshotforai"); + return msg.includes("refs=aria") && msg.includes("not support"); } function withRoleRefsFallback( diff --git a/extensions/browser/src/browser-tool.test.ts b/extensions/browser/src/browser-tool.test.ts index cf30842df2a..f5ea4dbac60 100644 --- a/extensions/browser/src/browser-tool.test.ts +++ b/extensions/browser/src/browser-tool.test.ts @@ -512,9 +512,7 @@ describe("browser tool snapshot maxChars", () => { it("falls back to role refs when a node snapshot cannot provide aria refs", async () => { mockSingleBrowserProxyNode(); gatewayMocks.callGatewayTool - .mockRejectedValueOnce( - new Error("INVALID_REQUEST: Error: refs=aria requires Playwright _snapshotForAI support."), - ) + .mockRejectedValueOnce(new Error("INVALID_REQUEST: Error: refs=aria not supported.")) .mockResolvedValueOnce({ ok: true, payload: { diff --git a/extensions/browser/src/browser/pw-ai.ts b/extensions/browser/src/browser/pw-ai.ts index 2afc3af9594..cd968270db3 100644 --- a/extensions/browser/src/browser/pw-ai.ts +++ b/extensions/browser/src/browser/pw-ai.ts @@ -13,7 +13,6 @@ export { getPageForTargetId, listPagesViaPlaywright, refLocator, - type WithSnapshotForAI, } from "./pw-session.js"; export { diff --git a/extensions/browser/src/browser/pw-session.ts b/extensions/browser/src/browser/pw-session.ts index 212f3dc3a08..3ab151e81d7 100644 --- a/extensions/browser/src/browser/pw-session.ts +++ b/extensions/browser/src/browser/pw-session.ts @@ -57,13 +57,6 @@ export type BrowserNetworkRequest = { failureText?: string; }; -type SnapshotForAIResult = { full: string; incremental?: string }; -type SnapshotForAIOptions = { timeout?: number; track?: string }; - -export type WithSnapshotForAI = { - _snapshotForAI?: (options?: SnapshotForAIOptions) => Promise; -}; - type TargetInfoResponse = { targetInfo?: { targetId?: string; diff --git a/extensions/browser/src/browser/routes/agent.snapshot.ts b/extensions/browser/src/browser/routes/agent.snapshot.ts index 104c4783a60..b39760013cb 100644 --- a/extensions/browser/src/browser/routes/agent.snapshot.ts +++ b/extensions/browser/src/browser/routes/agent.snapshot.ts @@ -481,22 +481,14 @@ export function registerBrowserAgentSnapshotRoutes( const snap = plan.wantsRoleSnapshot ? await pw.snapshotRoleViaPlaywright(roleSnapshotArgs) - : await pw - .snapshotAiViaPlaywright({ - cdpUrl: profileCtx.profile.cdpUrl, - targetId: tab.targetId, - ssrfPolicy: ctx.state().resolved.ssrfPolicy, - ...(typeof plan.resolvedMaxChars === "number" - ? { maxChars: plan.resolvedMaxChars } - : {}), - }) - .catch(async (err) => { - // Public-API fallback when Playwright's private _snapshotForAI is missing. - if (String(err).toLowerCase().includes("_snapshotforai")) { - return await pw.snapshotRoleViaPlaywright(roleSnapshotArgs); - } - throw err; - }); + : await pw.snapshotAiViaPlaywright({ + cdpUrl: profileCtx.profile.cdpUrl, + targetId: tab.targetId, + ssrfPolicy: ctx.state().resolved.ssrfPolicy, + ...(typeof plan.resolvedMaxChars === "number" + ? { maxChars: plan.resolvedMaxChars } + : {}), + }); if (plan.labels) { const labeled = await pw.screenshotWithLabelsViaPlaywright({ cdpUrl: profileCtx.profile.cdpUrl,