Repository navigation
🚑 fix: transcript: a dry run under a busy run ID says busy, as the call does - #426
Merged
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
A transcript dry run read the record of its run ID without the lock probe. While another call held the run, the dry run answered RESUME_UNSAFE with exit 1, or planned and started uv, where execution answers TEMPORARY with exit 75. The dry run now probes the run lock first, as the agent extension does. The probe creates no lock file and keeps no lock. The contenders scenario proves both answers while a real call holds the run. XT-102-T1 is done, so XT-102 is Shipped and leaves the queue. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pascalandy
force-pushed
the
fix/xt-102-t1-dry-run-lock
branch
from
November 2, 2026 02:00
edb249e to
6437f8e
Compare
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.
While another call ran a transcript, its dry run under the same
--run-iddid not say "busy". It read the record without the lock and answeredRESUME_UNSAFE(exit 1), or planned and starteduv. The call itself answersTEMPORARY(exit 75), so an agent read the dry run as "never repeat" when it only had to wait.The dry run now probes the run lock first, as the
agentextension does. A busy run answersTEMPORARYwith exit 75,run_id, and the hintncly run view <id>, and starts no program. The probe creates no lock file and keeps no lock, and the dry run still writes no record. Card XT-102-T1, the last todo card of XT-102, so XT-102 is Shipped and leaves the queue.Proof: the new steps of
transcript_contenders.txtarfailed before the fix (RESUME_UNSAFE, exit 1, while a real call heldb1) and pass after;just checkexit 0; verify-nicely by another agent passed.extensions/transcript/spec/records-and-replay.mdgives the dry run's lock probe and itsTEMPORARYanswertranscript_contenders.txtarruns the dry run while a real call holdsb1. It failed before the fix withRESUME_UNSAFE, exit 1transcript.run.busyjust checkpassestranscriptand part oftranscript-runat edb249e, PASSjust signoffpassed on 6437f8e, rebased on main after the stack ✨ feat: template: a build stops at 5 rounds, and a ledger keeps every finding #418, ✨ feat: template: finish proves the first failing run and one state of open work, and release runs finish again #421, ✨ feat: template: one case matrix before the first review, and signoff runs the first failing run again #424Evidence of verify-nicely (run
20261101-192614-378169, paths shortened):Reviewed with codex-loop: 1 round with gpt-6.1-sol. Sol verdict: approved
Created with Claude Opus 5.5 in Claude Code.