Repository navigation
Read check conclusions in CI watch, not in the GitHub adapter - #852
Merged
Merged
Conversation
The GitHub adapter now reports each check run's conclusion and each commit status's state as GitHub named it, and CI watch alone reads it as pending, passed or failed, in one exhaustive match. Readings are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new Conclusion now fails to compile in the test table until it has a row, as it already must in the reading. The navigation row names CI watch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
The GitHub adapter now reports each check as GitHub named it, and CI watch decides what it means. Readings are unchanged;
cancelledis still a failure (#839 will change that one reading).Fixtures in the prompts page, Base fix and Repair loop tests now build
Conclusion::Failure.docs/code-navigation.mdnames CI watch as the owner of check-state reading, beside Inherited failure.Evidence
CheckStatehad three values, so the in-memory adapter could not express a cancelled check, and the adapter's test could only assertPassed/Failed/Pending.After: new tests pass:
cargo test: 52 suites, 2012 passed, 0 failed, 2 ignored.cargo clippy --all-targets -- -D warningsclean.UPDATE_PROMPTS=1 cargo test prompts_pageleavesprompts/andsite/prompts/index.htmlunchanged (git statusclean).Merge Danger
Door: two-way
A refactor with behaviour preserved; revert restores the old type.
Blast Radius: CI-verdicts
Every Run's CI watch reads checks through the new match; a mapping slip would mis-judge CI. The two pinning tests cover each conclusion on both the head and the Base branch commit.
Review
Reviewed with
thirdshift-code-reviewagainstmain. Standards: 8 judgement calls, no hard violations. Spec: meets the spec; 3 minor findings. Addressed: S1 (Conclusiondoc no longer claimsUnfinishedis GitHub's name), S3 (countparameter renamedwanted), S5/P1 (every_conclusion()opens with a no-wildcard match, so a new conclusion can't compile without a test row), P2 (navigation row names CI watch). Both reviewers read every changed file; no changed file was left unread, and no generated output was excluded.Unaddressed findings
Standards
Unrecognised(String)stores a missing conclusion as""(possible Primitive Obsession). The issue fixes this shape: "an unrecognised value that keeps GitHub's text, which is empty when a completed check run has no conclusion."readingtreats both alike (Failed), so nothing differs.Checkliterals repeated across test fixtures (possible Shotgun Surgery). A pre-existing pattern the reviewer flagged as not introduced here; the issue lists exactly these fixtures to update ("the prompts page, the Base fix tests and the Repair loop tests"). A shared constructor is out of this change's scope.ci.rstests assert ongithub.steps(e.g.the_base_branch_commit_is_read_once_after_every_check_has_finished), and progress lines are an observable outcome of the in-memory seam.answersmap/collect in two execution tests (possible Duplicated Code). Two copies, which the reviewer called borderline; a helper would serve only these two tests.GLOSSARY.mdterm. The issue's own criterion uses this wording ("names CI watch as the owner of check-state reading") and its Decisions say "NoCONTEXT.mdor ADR change … 'Conclusion' and the verdict are implementation terms"; the reviewer judged it acceptable.Spec
checks_on. No change needed: the reviewer judged it consistent with the file's "Keep these pointers current when ownership moves".Closes #840
🤖 Generated with Claude Code
Built with claude · claude-opus-5-5 · medium
Security review outcome
No unaddressed introduced findings.