diff --git a/apps/web/tests/chat-scroll-contract.e2e.ts b/apps/web/tests/chat-scroll-contract.e2e.ts index 5e0e23934a..4d22e66e98 100644 --- a/apps/web/tests/chat-scroll-contract.e2e.ts +++ b/apps/web/tests/chat-scroll-contract.e2e.ts @@ -23,7 +23,7 @@ import { webSnapshotMode, type WebScaffold, } from './scaffold.ts' -import { expandOwningTurnProcess, newEnglishPage, saveFailureShot } from './support.ts' +import { expandOwningTurnProcess, newEnglishPage, openSettings, saveFailureShot } from './support.ts' const MODE = webSnapshotMode() const HISTORY_SESSION_ID = 'chat-scroll-history-e2e' @@ -677,7 +677,7 @@ describe('web e2e: long Chat scroll contract', () => { }) }, 180_000) - it.skipIf(MODE === 'record')('follows a growing process group independently of the outer transcript', async () => { + it.skipIf(MODE === 'record')('follows a growing Standard-mode process group independently of the outer transcript', async () => { const parts = [ 'GROUP_SCROLL_START\n\n', ...Array.from({ length: 4 }, (_, batch) => Array.from({ length: 20 }, (_, row) => @@ -701,6 +701,14 @@ describe('web e2e: long Chat scroll contract', () => { }, async (world) => { await world.page.emulateMedia({ reducedMotion: 'no-preference' }) await openSeed(world.page, HISTORY_FIXTURE, HISTORY_FIXTURE.markers.assistant(HISTORY_FIXTURE.turns)) + await openSettings(world.page, 'en') + await world.page.getByRole('dialog', { name: 'Settings', exact: true }) + .getByText('Work details', { exact: true }).locator('../..') + .getByRole('button', { name: 'Detailed', exact: true }).click() + await world.page.getByRole('menuitem', { name: 'Standard', exact: true }).click() + await expect.poll(() => world.scaffold.ctx.settings.describe().find(row => row.ns === 'ui-chat')?.value) + .toMatchObject({ transcriptView: 'standard' }) + await world.page.keyboard.press('Escape') const gates = parts.slice(1).map(() => Promise.withResolvers()) const dispose = world.scaffold.ctx.on('llm/stream', async function* (_options, next) { let index = -1 diff --git a/apps/web/tests/desktop-locale.e2e.ts b/apps/web/tests/desktop-locale.e2e.ts index e392789d8d..7065c95552 100644 --- a/apps/web/tests/desktop-locale.e2e.ts +++ b/apps/web/tests/desktop-locale.e2e.ts @@ -33,6 +33,7 @@ describe.skipIf(MODE === 'record')('web e2e: native and Client locale preference }) await page.exposeFunction('nativeLocaleChanged', (locale: string) => { reported.push(locale) }) await page.addInitScript(() => { + Object.defineProperty(globalThis, 'dshDesktop', { value: { protocolVersion: 1 } }) const bridge = globalThis as typeof globalThis & { nativeLocaleRead(): Promise nativeLocaleChanged(locale: string): Promise diff --git a/apps/web/tests/expected/steer-all/mid-steer.expected.md b/apps/web/tests/expected/steer-all/mid-steer.expected.md index 37a6c38e98..136b0ae8b5 100644 --- a/apps/web/tests/expected/steer-all/mid-steer.expected.md +++ b/apps/web/tests/expected/steer-all/mid-steer.expected.md @@ -10,7 +10,7 @@ - button "Copy" - status: Deep diving... - button "Deep diving for {{duration}}" [disabled] [expanded] -- button "Analyzing the request · The user wants me to ask them a checkpoint question first, then continue with whatever they interject. Let me do exactly that." +- button "Think The user wants me to ask them a checkpoint question first, then continue with whatever they interject. Let me do exactly that." - text: "Interjection: include the word BANANA in your final reply." - button "Copy" - text: "Interjection: include the word ORANGE in your final reply." diff --git a/apps/web/tests/ptc-round.e2e.ts b/apps/web/tests/ptc-round.e2e.ts index 4c95f6f14a..96960dba6b 100644 --- a/apps/web/tests/ptc-round.e2e.ts +++ b/apps/web/tests/ptc-round.e2e.ts @@ -81,7 +81,8 @@ describe('web e2e: PTC mode round renders nested sub-calls', () => { await row.waitFor({ state: 'attached', timeout: 30_000 }) await expandOwningTurnProcess(page, row) await row.waitFor({ state: 'visible' }) - await page.getByRole('button', { name: 'Preparing to run code', exact: true }).waitFor() + await row.getByText('Code', { exact: true }).waitFor() + expect(await row.getAttribute('data-tool')).toBe('run_code') expect(sessionEvents.some(event => event.type === 'tool/call')).toBe(false) expect(await row.getByRole('button').count()).toBe(0) expect(await row.locator('pre').count()).toBe(0) diff --git a/snapshots/web/ptc-round/preparing.expected.md b/snapshots/web/ptc-round/preparing.expected.md index c3b9eac0bd..4a32df4c2c 100644 --- a/snapshots/web/ptc-round/preparing.expected.md +++ b/snapshots/web/ptc-round/preparing.expected.md @@ -1,3 +1,2 @@ -- button "Preparing to run code" [expanded] - 'button "Think The user wants me to write a single `run_code` program that:"' - text: Preparing tool call Code diff --git a/snapshots/web/steering/mid-steer.expected.md b/snapshots/web/steering/mid-steer.expected.md index 505c03941c..c6d5fbfd73 100644 --- a/snapshots/web/steering/mid-steer.expected.md +++ b/snapshots/web/steering/mid-steer.expected.md @@ -10,7 +10,8 @@ - button "Copy" - status: Deep diving... - button "Deep diving for {{duration}}" [disabled] -- button "Waiting for your action · Ready to continue?" +- text: Running +- button "Ask question waiting" - text: "Interjection: include the word BANANA in your final reply." - button "Copy" - region "Ready to continue?":