Skip to content

Wait for new check runs before accepting Check re-run CI - #692

Merged
JacobStephens2 merged 5 commits into
mainfrom
issue-686
Oct 14, 2026
Merged

JacobStephens2 merged 5 commits into
mainfrom
issue-686

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

Prevent a Check re-run from accepting old attempts or a listing that omits known failures.

Check re-run
  read fresh check IDs + retain known failed IDs
  request failed workflow jobs
  wait for each requested check name with a new ID
  require known failed names throughout the watch
  assess CI after all listed checks finish

Closes #686

Evidence

  • Before: cargo test --bin thirdshift ci::tests::a_check_rerun_waits_through_a_missing_failed_check_until_its_new_attempt_fails -- --exact failed with CI Passed, not Failed when only unrelated green checks were listed.
    After: The regression passes; the watch waits for the new failed attempt and returns Ci::Failed.
  • Both reviewers' written reproductions failed as predicted. Their retained tests now pass: an old ID omitted from the fresh listing cannot end the watch, and a refused workflow's disappearing failure cannot establish green CI.
  • Validation: cargo test (full suite), cargo check, cargo clippy --all-targets -- -D warnings, and cargo fmt --check all pass. Focused CI coverage: 25 scripted tests and 23 integration tests pass.

Test seams

  • ci::rerun through its existing Outside core: scripted GitHub listings, re-run requests, outcomes and progress lines.
  • The existing CLI Scenario::run seam: unreadable/empty listings prevent Delivery and Self-merge.

Unaddressed findings

  • Standards: None. The one finding was reproduced and fixed.
  • Spec: None. The one finding was reproduced and fixed.
  • Security: None. Guidance-mode review of the pinned diff and supporting GitHub check parsing, Delivery and Self-merge code found no introduced security findings. All 25 CI unit tests and 23 CI integration tests passed in a sandbox with no external network or credentials.

Both axes read every changed file: src/ci.rs and tests/ci.rs. No changed file was left unread.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Blast Radius: CI

Changes the Check re-run gate for Delivery and Self-merge. Missing known failures stop verification; the initial CI watch keeps its existing behavior.

Built with codex · gpt-6.1-sol · high

@JacobStephens2
JacobStephens2 merged commit 3574ae7 into main Oct 14, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-686 branch October 14, 2026 19:42
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.

Check re-run reads CI as passed before the re-run's checks are listed, and Self-merges red CI

1 participant