diff --git a/apps/vscode-e2e/src/visual/__screenshots__/electron-chat-dark-sidebar.png b/apps/vscode-e2e/src/visual/__screenshots__/electron-chat-dark-sidebar.png index cb69da51e5..e8497070ef 100644 Binary files a/apps/vscode-e2e/src/visual/__screenshots__/electron-chat-dark-sidebar.png and b/apps/vscode-e2e/src/visual/__screenshots__/electron-chat-dark-sidebar.png differ diff --git a/apps/vscode-e2e/src/visual/electron.visual.ts b/apps/vscode-e2e/src/visual/electron.visual.ts index 8d4072ea7b..d8db7ebec5 100644 --- a/apps/vscode-e2e/src/visual/electron.visual.ts +++ b/apps/vscode-e2e/src/visual/electron.visual.ts @@ -238,7 +238,16 @@ for (const scenario of scenarios) { const sidebar = running.page.locator(".part.sidebar") await expect(sidebar).toBeVisible() - await expect(sidebar).toHaveScreenshot(`electron-${scenario.name}-sidebar.png`) + + // Mask the dynamic token counter so system-prompt changes that alter + // token counts do not cause pixel diffs when layout is unchanged. + const webviewFrame = running.page.frameLocator('iframe[src*="extensionId=ZooCodeOrganization.zoo-code"]') + const tokenCountMask = webviewFrame + .frameLocator("iframe") + .locator('[data-testid="context-tokens-count"],[data-testid="context-window-size"]') + await expect(sidebar).toHaveScreenshot(`electron-${scenario.name}-sidebar.png`, { + mask: [tokenCountMask], + }) if (scenario.webviewSnapshot) { const webview = running.page.locator('iframe[src*="extensionId=ZooCodeOrganization.zoo-code"]')