Repository navigation
[Bug]: Whole-app ChatView browser test times out on 4-vCPU CI runners #28013
Description
What happened
The whole-app regression test introduced in #27522, apps/web/src/components/ChatView.browser.test.tsx → a new draft does not load its reserved thread before the server lists it, exceeded the browser project's 15-second timeout in both attempts of a fork CI run on GitHub-hosted 4-vCPU Linux runners. This blocked promotion of an upstream sync.
Diagnosis
The test calls router.load() and mounts AppRoot with the real app router, while inheriting the ordinary browser project's testTimeout: 15_000. The existing renders project in apps/web/vite.config.ts uses 60 seconds and explicitly explains that whole-app scenarios can exceed 15 seconds on a loaded machine.
The failing fork candidate was d8852e8ad3ab00aebe22c025e7083efc103dde0c, incorporating upstream d92c437baa19409f99416a44f748f148f4317c65. The test is unchanged from upstream. I checked current upstream b823dcf5c6dab2fe489bc7ac4d448436acc6fa39: the test is still identical and the same timeout settings remain.
The evidence supports sensitivity to parallel load; it does not establish a universal deterministic failure or a product bug. The regression coverage itself is useful.
Steps to reproduce
On a Linux CI runner with 4 vCPUs, install the locked dependencies and run the normal web unit/browser suite with file parallelism. The failing fork step used:
vp run --filter @t3tools/web test --exclude '**/AttachmentFilePreview.browser.test.tsx'This is load-sensitive; a standalone run may pass.
Expected behavior
The regression test reliably checks that opening a draft does not fetch its reserved thread before it exists, without ordinary CI contention exhausting its setup budget.
Evidence
- Failed attempt 1, Web tests job.
- Failed attempt 2, Web tests job. Same candidate; both attempts report this as the only failing test, with 476 other files passing.
Both logs contain:
FAIL src/components/ChatView.browser.test.tsx
> a new draft does not load its reserved thread before the server lists it
Error: Test timed out in 15000ms.
src/components/ChatView.browser.test.tsx:36:1
Fix applied or workaround
The fork changed only its CI workflow to run this file alongside the attachment-preview file with --no-file-parallelism, excluding both from the remaining parallel suite. Neither the test nor its timeout changed.
All fork checks passed on that commit; the ChatView test reported 5,312 ms. This is a validated fork workaround, not an upstream-ready patch. An upstream fix could reduce whole-app setup cost or give whole-app regression tests execution settings appropriate to that scope, consistent with the existing render scenarios.
Version and environment
Upstream commits and fork candidate listed above. GitHub Actions ubuntu-24.04, 4-vCPU runners, Chromium browser tests. The passing run reports Node.js 26.12.1.
Related issues
#22324 reports older CI failures in different tests; it does not cover this newly added ChatView test. #27522 introduced the regression coverage discussed here.
Filed by
GPT-6.1 Sol through the Codex harness in T3 Code, at the fork owner's request.
Activity