vitest-host-load-timeout-flake
Done. Wrote the verified solution to ~/vitest-host-load-timeout-flake.md, with a reusable triage script at ~/scripts/triage-vitest-flake.sh.
Diagnosis: Host-contention flake, not a regression. Vitest's testTimeout is wall-clock, and at loadavg 8.9–14.6 on 16 cores the runner is oversubscribed: event-loop/timer drift, libuv threadpool and worker-startup contention, and GC starvation inflate a ~904 ms test past its budget. The 27.8 s is scheduling delay, not CPU work.
Fix (layered):
1. Triage rule — isolate the test, check vitest related against changed files, run the full suite independently. All three green ⇒ flake.
2. Durable config — CI testTimeout: 30_000, retry: 2, pool: 'forks' with maxForks: cores - 1 to prevent oversubscription.
3. Scope slow tests with per-test { timeout } and vi.waitFor instead of global inflation.
4. Capture nproc//proc/loadavg in CI logs for future classification.
Verification performed:
- bash -n scripts/triage-vitest-flake.sh → syntax OK; usage guard works.
- Markdown fences balanced (12 = 6 pairs).
- Grounded in real host state: nproc = 16, /proc/loadavg = 13.08 7.28 8.27, matching the incident profile.
The markdown includes the exact commands, the full vitest.config.ts, the standalone script, and a four-point verification/acceptance checklist. The script's exit code distinguishes "consistent with flake" (0) from "inconclusive/possible regression" (1).
# Evidence - Problem class: vitest-host-load-timeout-flake - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-09-20T13:11:05.967Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "A vitest suite reports one test failing on a timeout (27.8s) while the host is loaded (loadavg 8.9-14.6 on 16 cores), but the same test passes in isolation in under a second (904ms, 2 tests). Triage: the failing test is unrelated to the changed file set, passes standalone, and an independent full-suite run on the same tree is green (159 files / 1265 tests). Conclusion: host-contention flake, not regression. Rule: before treating a gate failure as real, isolate the single test and check whether the changed files are in its file set; a green independent full-suite run on the same tree settles it.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "vitest-host-load-timeout-flake", "provider": "openrouter", "solved_at": "2026-09-20T13:11:05.967Z", "version": ""}Done. Wrote the verified solution to ~/vitest-host-load-timeout-flake.md, with a reusable triage script at ~/scripts/triage-vitest-flake.sh.
Diagnosis: Host-contention flake, not a regression. Vitest's testTimeout is wall-clock, and at loadavg 8.9–14.6 on 16 cores the runner is oversubscribed: event-loop/timer drift, libuv threadpool and worker-startup contention, and GC starvation inflate a ~904 ms test past its budget. The 27.8 s is scheduling delay, not CPU work.
Fix (layered):
1. Triage rule — isolate the test, check vitest related against changed files, run the full suite independently. All three green ⇒ flake.
2. Durable config — CI testTimeout: 30_000, retry: 2, pool: 'forks' with maxForks: cores - 1 to prevent oversubscription.
3. Scope slow tests with per-test { timeout } and vi.waitFor instead of global inflation.
4. Capture nproc//proc/loadavg in CI logs for future classification.
Verification performed:
- bash -n scripts/triage-vitest-flake.sh → syntax OK; usage guard works.
- Markdown fences balanced (12 = 6 pairs).
- Grounded in real host state: nproc = 16, /proc/loadavg = 13.08 7.28 8.27, matching the incident profile.
The markdown includes the exact commands, the full vitest.config.ts, the standalone script, and a four-point verification/acceptance checklist. The script's exit code distinguishes "consistent with flake" (0) from "inconclusive/possible regression" (1).
# Evidence - Problem class: vitest-host-load-timeout-flake - Model: openrouter/deepseek/deepseek-v4.1-flash - Solved: 2026-09-20T13:11:05.967Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "A vitest suite reports one test failing on a timeout (27.8s) while the host is loaded (loadavg 8.9-14.6 on 16 cores), but the same test passes in isolation in under a second (904ms, 2 tests). Triage: the failing test is unrelated to the changed file set, passes standalone, and an independent full-suite run on the same tree is green (159 files / 1265 tests). Conclusion: host-contention flake, not regression. Rule: before treating a gate failure as real, isolate the single test and check whether the changed files are in its file set; a green independent full-suite run on the same tree settles it.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "vitest-host-load-timeout-flake", "provider": "openrouter", "solved_at": "2026-09-20T13:11:05.967Z", "version": ""}