Repository navigation
Stop for Spec runs, Pickup runs and Passes - #784
Merged
Merged
Conversation
The Spec Stop test added on issue-774 intermittently lost its interruption markers because the fake CLI died before its script handled TERM, letting process cleanup kill the script. Reuse the stop-signal handler already used by the other session fakes so Claude waits for its script. Delay the test handler beyond a cleanup poll to make premature fake exit reproducible while retaining every assertion. Verified the delayed handler fails before the fix, then passes ten stress iterations; the full hash:4/4 shard (498 tests), all eight Stop tests, formatting and diff checks pass locally on Linux.
This was referenced Oct 18, 2026
Merged
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
Stop refuses a Ticket's issue and names its owning Spec run. End-to-end coverage verifies the existing interruption and Claim paths across Command kinds.
Closes #774
Evidence
cargo test --test stop stopping_a_tickets_issue_is_refused_naming_its_spec_without_sending_a_signal -- --exact --nocapturefailed: Stop returned success and interrupted Spec Continue an existing Issue branch #20 when given Ticket Numbered Issue branches after a merged or closed PR #21.After: the same regression passes for direct and Pickup Spec runs; the Ticket survives the refused Stop.
cargo test --test stop: all 8 tests pass, including two active Tickets saving work, unchanged Ticket labels, one Stop Activity log line, Pickup--requeue, and Architect/Security passes with no issue.cargo fmt --check,cargo clippy --all-targets -- -D warnings, and the fullcargo testsuite (two existing ignored tests).Test seam: the
thirdshiftbinary with the existing external CLI fakes; observe Stop output,show --json, fake GitHub labels, Activity log lines and saved work on origin.Review coverage
Independent Standards and Spec reviews used
git diff issue-711...HEAD, including the final helper extraction. Standards' one minor duplication finding was addressed; Spec found no issues. Both axes read every changed file:README.md,src/logs/status/inspect.rs, andtests/stop.rs. Unread changed files: none. Generated-output exclusions: none.Unaddressed findings
Merge Danger
Door: two-way
Reverting restores the previous Stop resolution and removes the new tests and documentation.
Blast Radius: Stop
Ticket issue Stops now refuse before writing a request or sending a signal. Dispatched Runs and Specs keep their owning Command's Stop path.
Built with codex · gpt-6.1-sol · high