You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TestSubprocessClaudeBackgroundStatesAndCleanup/timeout in internal/llm (now internal/llmadapters after #499) is flaky. Two independent failures on 2026-07-11, both on code that did not touch the LLM subprocess path:
--- FAIL: TestSubprocessClaudeBackgroundStatesAndCleanup (0.34s)
--- FAIL: TestSubprocessClaudeBackgroundStatesAndCleanup/timeout (0.05s)
subprocess_test.go:388: ReadFile(record): open .../TestSubprocessClaudeBackgroundStatesAndCleanuptimeout.../001/records.jsonl: no such file or directory
Immediately re-running the test (-count=2) passed.
The shape of the failure — the timeout subtest killing the fake subprocess before it has flushed records.jsonl — suggests a race between the timeout-triggered cleanup and the helper process's record write, i.e. the test asserts on a file the child may not have created yet when the timeout fires quickly. Worth either synchronizing the fake's record write with the parent's expectation or tolerating a missing record file in the timeout case, whichever matches the intent of the assertion.
TestSubprocessClaudeBackgroundStatesAndCleanup/timeoutininternal/llm(nowinternal/llmadaptersafter #499) is flaky. Two independent failures on 2026-07-11, both on code that did not touch the LLM subprocess path:static-smokejob on PR test(configcmd): byte-exact config show --json goldens (477.1) #495 (test-only config goldens): the subtest failed; the fulltestjob passed on the same commit; a rerun passed.Immediately re-running the test (
-count=2) passed.The shape of the failure — the
timeoutsubtest killing the fake subprocess before it has flushedrecords.jsonl— suggests a race between the timeout-triggered cleanup and the helper process's record write, i.e. the test asserts on a file the child may not have created yet when the timeout fires quickly. Worth either synchronizing the fake's record write with the parent's expectation or tolerating a missing record file in the timeout case, whichever matches the intent of the assertion.