feat: failure attribution, companion preflight, superseded (0.0.50) - #49
Merged
Conversation
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.
summary
apply_patchretry loop or lose their exec child no longer masquerade as wall clock timeouts: a seven day read of 175 engine jobs found 34 foreground kills (41% of everygpt-5.6-solwrite run), and their event streams split into 19 genuine overruns, 12 patch retry loops and 3UnknownProcessIddeaths, so only 19 were ever a sizing problem.patch_thrashandexec_lostnow terminate early off live child stderr (neither string reaches the structured event stream) and join the repeated class in the breakercleanupRequiredleaving a non terminal record, and reconciliation hardcodedfailureKind: "died"over the recordedpolicy, destroying the attribution exactly where the resumable patch needed it. reconciliation now preserves a resumable set kind and falls back todiedonly when none was recorded--skip-git-repo-checkfor read only consults and fails fast for writes, while the recordedrequestkeeps the user's declared intent so the inference never rides a resumed thread; a single flight bounce no longer destroys the staged brief, since the raw transport was consumed at dispatch entry while the guard threw later; and the sol foreground write warning (58 records, 34 of them successful) moves from post mortem to preflight with the measured 41%timeout,policyandpatch_thrashwith a live thread are all resumable now, after two policy kills lost 413s and 443s of completed work with zero output/fusion:statsstops reporting a structurally false unverified rate: all 34 salvaged attempts sat atunverifiedforever because the wrapper binds only to the resume job, so one package read as two engine records. they are now derived assupersededin their own bucket, never recordable and never written to disktest plan
already verified
npm test-> 1102 tests, 1101 pass, 0 fail, 1 skipped (the skip is a pre-existing platform gatedt.skip)node --testexits 0 on a skipreviewer should verify
failure: patch_thrashwell before 570s instead of burning the full deadlinecodex task(consult, no--write) in a directory with no ancestor.gitruns, while the same call with--writefails fast naming--skip-git-repo-check/fusion:statsrenders asupersededline and the acceptance buckets still sum to the terminal record countnotes
76 pass, 0 failwhile 64 process dependent tests, including every test it had just written, were skipped. the brief's done criterion accepted the exit code, so an implementation brief now has to demand# fail 0and# skipped 0