Skip to content

Stop for Spec runs, Pickup runs and Passes - #784

Merged
JacobStephens2 merged 3 commits into
issue-711from
issue-774
Oct 18, 2026
Merged

JacobStephens2 merged 3 commits into
issue-711from
issue-774

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

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.

Stop
├── Spec run → end both Tickets; label only the Spec
├── Pickup run → triage or requeue its Run or Spec
├── Architect / Security run without an issue → end; keep labels
└── Ticket issue → refuse; name the Spec run

Closes #774

Evidence

  • Before: cargo test --test stop stopping_a_tickets_issue_is_refused_naming_its_spec_without_sending_a_signal -- --exact --nocapture failed: 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.
  • Final validation passed: cargo fmt --check, cargo clippy --all-targets -- -D warnings, and the full cargo test suite (two existing ignored tests).

Test seam: the thirdshift binary 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, and tests/stop.rs. Unread changed files: none. Generated-output exclusions: none.

Unaddressed findings

  • Standards: None.
  • Spec: None.

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

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.
@JacobStephens2
JacobStephens2 merged commit cc41ef0 into issue-711 Oct 18, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-774 branch October 18, 2026 22:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant