Skip to content

fix(ci): increase browser test per-file timeout to 300s #50

fix(ci): increase browser test per-file timeout to 300s

fix(ci): increase browser test per-file timeout to 300s #50

Triggered via push April 5, 2026 16:30
Status Failure
Total duration 6m 57s
Artifacts

release.yml

on: push
Matrix: desktop_build
iOS TestFlight
0s
iOS TestFlight
Publish CLI
0s
Publish CLI
Publish GitHub Release
0s
Publish GitHub Release
Finalize release
0s
Finalize release
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 1 warning
Preflight
Process completed with exit code 1.
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > keeps long proposed plans lightweight until the user expands them: apps/web/src/components/ChatView.browser.tsx#L1877
AssertionError: expected 'Toggle SidebarOK CodeProjectsProjectB…' not to contain 'deep hidden detail only after expand' - Expected + Received - deep hidden detail only after expand + Toggle SidebarOK CodeProjectsProjectBrowser test thread32d agoFilesNo files found.PR ReviewMerge ConflictsSkillsSettingsToggle SidebarBrowser test threadProjectAdd actionCommitfiller user message 1412:01:24 PMassistant filler 1412:01:27 PM • 4.0sfiller user message 1512:01:30 PMassistant filler 1512:01:33 PM • 4.0sfiller user message 1612:01:36 PMassistant filler 1612:01:39 PM • 4.0sfiller user message 1712:01:42 PMassistant filler 1712:01:45 PM • 4.0sfiller user message 1812:01:48 PMassistant filler 1812:01:51 PM • 4.0sfiller user message 1912:01:54 PMassistant filler 1912:01:57 PM • 4.0sfiller user message 2012:02:00 PMassistant filler 2012:02:03 PM • 4.0sfiller user message 2112:02:06 PMassistant filler 2112:02:09 PM • 4.0sPlanShip plan mode follow-up + Step 1: capture the thread-open trace + Step 2: identify the main-thread bottleneck + Step 3: keep collapsed cards cheap + Step 4: render the full markdown only on demand + Step 5: preserve export and save actions + Step 6: add regression coverage + Step 7: verify route transitions stay responsive + Step 8: confirm no server-side work changed + Step 9: confirm short plans still render normally + Step 10: confirm long plans stay collapsed by default + Step 11: confirm preview text is still useful + Step 12: confirm plan follow-up flow still works + Step 13: confirm timeline virtualization still behaves + Step 14: confirm theme styling still looks correct + Step 15: confirm save dialog behavior is unchanged + Step 16: confirm download behavior is unchanged + Step 17: confirm code fences do not parse until expand + Step 18: confirm preview truncation ends cleanly + Step 19: confirm markdown links still open in editor after expand + Step 20: confirm deep hidden detail only appears after expand + + export const hiddenPlanImplementationDetail = 'deep hidden detail only after expand'; + Expand planAsk anything, @tag files/folders, or use / to show available commandsGPT-5.4Localmain .xterm-dom-renderer-owner-16 .xterm-rows span { display: inline-block; height: 100%; vertical-align: top;}.xterm-dom-renderer-owner-16 .xterm-rows { pointer-events: none; color: #000000ff; font-family: "SF Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; font-size: 12px; font-kerning: none; white-space: pre}.xterm-dom-renderer-owner-16 .xterm-rows .xterm-dim { color: #00000080;}.xterm-dom-renderer-owner-16 span:not(.xterm-bold) { font-weight: normal;}.xterm-dom-renderer-owner-16 span.xterm-bold { font-weight: bold;}.xterm-dom-renderer-owner-16 span.xterm-italic { font-style: italic;}@Keyframes blink_underline_16 { 50% { border-bottom-style: hidden; }}@Keyframes blink_bar_16 { 50% { box-shadow: none; }}@Keyframes blink_block_16 { 0% { background-color: #26384eff; color: #000000; } 50% { background-color: inherit; color: #26384eff; }}.xterm-dom-renderer-owner-16 .xterm-rows.xterm-focus .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: blink_underline_16 1s step-end infinite;}.xterm-dom-renderer-owner-16 .xterm-rows.xterm-focus .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: blink_bar_16 1s step-end infinite;}.xterm-dom-renderer-owner-16 .xterm-rows.xterm-focus .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: blink_block_16 1s step-end infinite;}.xterm-dom-renderer-owner-16 .xterm-rows .xterm-cursor.xterm-cursor-block { background-color: #26384eff; color: #000000;}.xterm-dom-renderer-owner-16 .xterm-rows .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: #26384eff !important; color: #000000 !important;}.xterm-dom-renderer-owner-16 .xterm-rows .xterm-cursor.xterm-cursor-outline { outline: 1px solid #26384eff; outline-offset: -1px;}.xterm-dom-renderer-owner-16 .xterm-rows .xterm-cursor.xterm-cursor-bar { box-shadow: 1px 0 0 #26384eff inset;}.xterm-dom-renderer-owner-16
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > creates a fresh draft after the previous draft thread is promoted: apps/web/src/components/ChatView.browser.tsx#L1835
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_269_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_26a_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:1835:44 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ src/components/ChatView.browser.tsx:1835:6
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > creates a new thread from the global chat.new shortcut: apps/web/src/components/ChatView.browser.tsx#L685
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_234_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_235_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:685:40 ❯ waitForNewThreadShortcutLabel src/components/ChatView.browser.tsx:1788:12 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ waitForNewThreadShortcutLabel src/components/ChatView.browser.tsx:685:2 ❯ src/components/ChatView.browser.tsx:1788:6
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > prefers draft state over sticky composer settings and defaults: apps/web/src/components/ChatView.browser.tsx#L1707
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_1vv_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_200_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:1707:44 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ src/components/ChatView.browser.tsx:1707:6
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > falls back to defaults when no sticky composer settings exist: apps/web/src/components/ChatView.browser.tsx#L1669
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_1sq_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_1sr_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:1669:44 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ src/components/ChatView.browser.tsx:1669:6
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > hydrates the provider alongside a sticky claude model: apps/web/src/components/ChatView.browser.tsx#L1631
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_1pl_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_1pm_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:1631:44 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ src/components/ChatView.browser.tsx:1631:6
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > snapshots sticky codex settings into a new draft thread: apps/web/src/components/ChatView.browser.tsx#L1585
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_1mg_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_1mh_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:1585:44 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ src/components/ChatView.browser.tsx:1585:6
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > shows a project quick-new button on desktop and creates a thread from it: apps/web/src/components/ChatView.browser.tsx#L1552
TimeoutError: locator.click: Timeout 29431ms exceeded. Call log: - waiting for locator('[data-vitest="true"]').contentFrame().getByTestId('project-quick-new-thread-button') - locator resolved to <button type="button" data-slot="button" id="base-ui-_r_1jf_" aria-label="Create new thread in Project" data-testid="project-quick-new-thread-button" class="group/button select-none items-center justify-center gap-2 whitespace-nowrap text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring/80 focus-visible:ring-offset-2 focus-visible:ring-offset-background active:scale-[0.99] border size-…>…</button> - attempting click action 2 × waiting for element to be visible, enabled and stable - element is not visible - retrying click action - waiting 20ms 2 × waiting for element to be visible, enabled and stable - element is not visible - retrying click action - waiting 100ms 55 × waiting for element to be visible, enabled and stable - element is not visible - retrying click action - waiting 500ms ❯ click src/components/ChatView.browser.tsx:1552:33
[chromium] src/components/ChatView.browser.tsx > ChatView timeline estimator parity (full app) > keeps the new thread selected after clicking the new-thread button: apps/web/src/components/ChatView.browser.tsx#L1497
VitestBrowserElementError: Cannot find element with locator: getByTestId('new-thread-button') <body> <div style="position: fixed; inset: 0px; width: 100vw; height: 100vh; display: grid; overflow: hidden;" > <div aria-hidden="true" style="position: fixed; inset: 0px; pointer-events: none; z-index: 9999;" > <div … /> <svg … /> </div> <div class="relative isolate min-h-dvh" > <div … /> </div> </div> <div data-base-ui-portal="" data-slot="toast-portal-anchored" id="_r_1g6_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="outline-none" data-slot="toast-viewport-anchored" role="region" tabindex="-1" /> </div> <div data-base-ui-portal="" data-slot="toast-portal" id="_r_1g7_" > <div aria-atomic="false" aria-label="Notifications" aria-live="polite" aria-relevant="additions text" class="fixed z-[9999] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-header-offset:52px] [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)] data-[position*=top]:top-[calc(var(--toast-inset)+var(--toast-header-offset))] data-[position*=bottom]:bottom-(--toast-inset) data-[position*=left]:left-(--toast-inset) data-[position*=right]:right-(--toast-inset) data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2" data-position="top-right" data-slot="toast-viewport" role="region" style="--toast-frontmost-height: 0px;" tabindex="-1" /> </div> </body>... ❯ toBeInTheDocument src/components/ChatView.browser.tsx:1497:44 Caused by: Caused by: Error: Matcher did not succeed in time. ❯ src/components/ChatView.browser.tsx:1497:6
eslint(no-unused-vars): scripts/pre-release-validate.ts#L348
Variable 'stdout' is declared but never used. Unused variables should start with a '_'.