fix(coding-agent): clone sticky-viewport fixture instead of recapturing - #3358
Merged
Merged
Conversation
`fails closed for semantic evidence and provenance corruption` timed out deterministically at its 15000ms budget on dev CI shard 2. The test called `capture()` seven times. Each call spawns a `capture-sticky-viewport-showcase.ts` subprocess measured at ~2.2s locally, so the body needed ~15.4s of pure fixture setup against a 15s budget. On timeout the shared `afterEach` rm -rf'd the temp roots while the body was still awaiting, surfacing a misleading `ENOENT: manifest.json` from a later assertion rather than the real cause. Capture once and clone the output per corruption case with `fs.cp`, matching the idiom the neighbouring table-driven test already uses. Capture output is byte-identical across runs (verified with `diff -r`), so cloning preserves per-case isolation exactly. No timeout inflation, no retry masking, no assertion weakened; all seven corruption assertions are unchanged. Verified: focused test 5/5 pass at ~2.8s (was 15008ms timeout); full sticky-viewport file 9/9 pass; reverting the change reproduces the timeout, confirming causality; `check:types` and biome clean. — *[repo owner's gaebal-gajae (clawdbot) 🦞]*
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dev CI shard-2 repair
Fixes the red post-merge
devata551d8ee:sticky viewport production evidence verifier > fails closed for semantic evidence and provenance corruptiontimed out at 15000ms in run 30319457639 / job 90152948696.Root cause — deterministic, not flaky
The test called
capture()seven times. Each call spawns acapture-sticky-viewport-showcase.tssubprocess measured at ~2.2s locally (2.17 / 2.21 / 2.19s), so the body required ~15.4s of fixture setup alone against a 15s budget. It fails every run, not intermittently.The
ENOENT: no such file or directory, open '/tmp/sticky-viewport-showcase-.../manifest.json'in the CI log is a symptom, not the cause: when the test times out, the sharedafterEachrm -rfs the temp roots while the body is still awaiting, so a later assertion reports a vanished fixture. Chasing that ENOENT leads away from the real problem.Fix
Capture once, then clone per corruption case with
fs.cp— the exact idiom the neighbouring table-driven test (rejects table-driven manifest, metadata, and review-input corruption) already uses.Capture output is byte-identical across runs (verified with
diff -ron two independent captures), so cloning preserves per-case isolation exactly. Each case still gets its own mutable root registered inrootsfor cleanup.No timeout inflation, no retry masking, no rerun-only response, no assertion weakened. All seven corruption assertions are unchanged; the 15000ms budget is untouched. One test file changed, +17/-7.
Verification
sticky-viewport-showcase.test.tsgjc-ui-redesign,light-theme-compliance)bun --cwd=packages/coding-agent run check:typesbiome checkon the changed fileCausality is demonstrated in both directions: reverting reproduces the failure, applying fixes it.
—
[repo owner's gaebal-gajae (clawdbot) 🦞]