Repository navigation
Pause Security after failed fixes and offer fixing - #582
Merged
Merged
Conversation
…. Please try a different model.) 2026-10-08T20:34:30Z, host thirdshift. Uncommitted work at the time of failure is included in this commit.
JacobStephens2
marked this pull request as draft
October 8, 2026 20:34
JacobStephens2
marked this pull request as ready for review
October 9, 2026 05:43
Preserve failed Security-fix lifecycle tracking alongside Spec-sized fixes and reuse of private finding issues. Update the failure fixtures and help text, and cover failed Spec fixes pausing Security and Pickup until closure. Validation: cargo check --all-targets; cargo fmt --check; cargo clippy --all-targets -- -D warnings; cargo test --no-fail-fast (1605 passed, 0 failed, 1 ignored).
This was referenced Oct 9, 2026
Closed
Merged
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
A failed Security fix keeps its Claim and pauses Fencing until the Day shift closes its issue. Pickup excludes Security fixes even when GitHub prevented Claim creation. A Security run that leaves a reproduced finding unfixed with permission undecided offers both ways to allow fixing on stderr and in its Run notification.
The pending record keeps Fencing paused if recording the ending fails. Successful fixes awaiting review allow further Security work. The README documents the Fencing cron command, its yield to work the Day shift shaped, and its pauses for failed fixes and findings awaiting triage. Help and domain documentation describe the same behavior.
Closes #544
Evidence
After:
a_failed_fix_keeps_its_claim_and_pauses_security_and_pickup_until_closedcovers public/private records, failures before/after a push, the skip reason, no notification on a skip, and resumption after closure.review_failed_fix_before_claim_is_not_retried_by_pickupcovers the Claim-creation failure.After:
review_failed_fix_marker_write_error_still_pauses_security,a_failed_fix_still_pauses_after_its_failure_record_patch_is_rejected, anda_failed_fix_preserves_private_edits_made_during_its_run_and_still_pausesretain coverage of those cases.a_successful_fix_awaiting_review_does_not_pause_allowed_security_workprotects the successful path.After:
an_undecided_run_offers_both_ways_to_allow_a_reproduced_fixchecks the command and setting in stderr and the notification, and suppresses them forno-security-fix,fix = false, or an unreproduced finding.cargo check --all-targets,cargo fmt --check, andcargo clippy --all-targets -- -D warningspassed.cargo test --test security_runpassed all 79 tests. The finalcargo test --no-fail-fastpassed: 1,603 passed, 0 failed, 1 ignored across 43 test targets.Test seams
Review coverage
Independent Standards and Spec reviews used
git diff issue-427...HEAD, withissue-427pinned tof54c0148560d202ba8ea2ec60b20813206016f23. Both axes read all 12 changed files and reported zero findings. No coverage follow-up was needed. Changed files left unread: none under either axis.Unaddressed findings
Standards
None.
Spec
None.
Merge Danger
Door: two-way
The code can be reverted; it adds lifecycle lines to existing private records without a data migration.
Blast Radius: Scheduling
Security-fix Claim retention, Security/Pickup scheduling, and the fixing offer. An unfinished dispatch stays paused if its ending cannot be recorded, until the Day shift closes its fix issue.
Built with codex · gpt-6.1-sol · xhigh