Repository navigation
Name what a Pickup run or Security run dispatched, and when, in its stage - #923
Merged
Merged
Conversation
…tage A Pickup run or Security run now enters a `dispatched Run` or `dispatched Spec run` stage when it dispatches, so status reads `dispatched Spec run · 19 hr 46 min` instead of `starting`, and `died at dispatched Spec run` if its process goes. A dispatch stage has no Usual range and is never Silent or Slow: the dispatched Command carries its own health. A Pickup run's record carries the title its Ready issue was listed with. Closes #889 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
A Pickup run or Security run now enters a stage naming what it dispatched, timed from the dispatch. A Pickup run's Command record keeps the title its Ready issue was listed with.
died at dispatched Run.starting,died before first stageor their outcome, with(title unavailable).stage_text, so it shows the same words.docs/guide.mdlists the new stages and their health rule.Evidence
a_pickup_or_security_run_enters_a_stage_naming_what_it_dispatched_and_whenanda_dispatch_found_to_be_a_spec_by_its_launch_checks_renames_the_pass_stagefail. With the health change removed,a_dispatch_stage_is_never_slow_or_silent_since_its_dispatched_command_carries_healthfails: the pass reads"state":"silent"and has a"dispatched Run"Usual range.After: they pass, along with these new or extended tests:
cargo test: exit 0, 55 of 55 test binaries ok.cargo clippy --all-targetsis clean.Merge Danger
Door: two-way
The change adds stage names and fills in a title that was already a field. Older readers skip unknown stage names, so a rollback leaves new records readable.
Blast Radius: status
status,showand the Console read the new stages. A Security run'sSecurity fix publishingstage now ends at the dispatch rather than at the Command's end, so its Usual range will narrow as new records arrive.Review
Both reviewers read every changed file. There were no generated-output exclusions and no changed file was left unread. Fixed after review:
Work::issue_urlis now the one place that reads a Work's issue,StageName::dispatchedis exhaustive, and the comments say whatis_dispatchchecks and why an Architect run is left out.Unaddressed findings
Standards
StageName::parseto replace the string lists inknownandis_dispatch: declined.is_dispatchfollows the existingStageName::knownshape over persisted, tolerant stage names (src/logs/command_record.rs,StageName::known), and rewriting both goes beyond this issue. Its doc comment was fixed.dispatchingand renamed instarted: declined. The rename exists because the launch checks can change the dispatched kind after the dispatch is kept (see the existing comment inRecord::started, "The launch checks have now established whether the issue is a Spec"). It is pinned bya_dispatch_found_to_be_a_spec_by_its_launch_checks_renames_the_pass_stage..lines().find(|line| line.starts_with(…))idiom is already used in the existing status tests (tests/status.rs,status_shows_each_idle_pass_until_its_own_kind_starts_work).Spec
Security fix publishingshrinks: declined. The new end time is when the publishing session actually ended. The old one also counted the whole dispatched Run, which belongs to that Run's own stages, and the issue asks that a pass's dispatch be timed from the dispatch.dispatched Rununtil it ends: declined.src/security.rsfixdispatches one fix, then calls onlyrecord_security_fix_endingbefore the Security run ends, so there is no "between fixes" state inside one Security run.Security
Closes #889
🤖 Generated with Claude Code
Built with claude · claude-opus-5-5 · medium
Security review outcome
No unaddressed introduced findings.