fix(ci): increase browser test per-file timeout to 300s #50
release.yml
on: push
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 '_'.
|