Repository navigation
Name the Carried Cause in the COVERAGE_IS_PARTIAL Status Line - #3479
Conversation
On the carry paths no round covering the head states partial coverage, so the line no longer claims the head's review read fewer files. It leads with the reason the head reads as partial instead. Closes #3424 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The status line now tests the reason coverage() built rather than re-deriving which path it took, and the carry path names the remedy that clears it: a round on the head stating full coverage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
A recorded local strict-review pass covers head |
There was a problem hiding this comment.
🟢 Approval recommended
No unresolved review issues were identified, and all approval assessments indicate readiness.
No open issues 🎉
What changed in this PR
This pull request clarifies COVERAGE_IS_PARTIAL status messages for carried partial-coverage results while preserving direct-path behavior.
Changes:
- Adds a shared
CARRIED_PARTIALreason prefix. - Reports distinct causes and remedies for carried versus direct partial coverage.
- Expands tests for carried, unbelievable-head, and direct coverage cases.
| File | Summary |
|---|---|
tests/test_pr_review.py |
Verifies direct and carried partial-coverage status messages and remedies. |
scripts/pr_review.py |
Selects path-specific partial-coverage status messages and remedies. |
scripts/pr_review_rounds.py |
Defines and propagates the carried-partial reason. |
Review effort: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3479 +/- ##
========================================
Coverage 80.98% 80.99%
========================================
Files 25 25
Lines 8895 8898 +3
========================================
+ Hits 7204 7207 +3
Misses 1691 1691
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
## Summary Promotes the pull requests merged into develop since release 2.0.1181. - [#3479](#3479): `status=COVERAGE_IS_PARTIAL` no longer says the head's own review read fewer files on the carry paths. It leads with the carried reason there and names the remedy that clears it. - [#3480](#3480): `cleanup` re-reads a ref still at the deleted tip for a few seconds before it reports `DELETE_NOT_CONFIRMED`, since the ref read can lag a delete that landed. - [#3481](#3481): `pr_review.py cleanup` loads one copy of the gate rather than a second one under the name `pr_review`. Closes #3424 Closes #3436 Closes #3461 ## Constituent coverage Each change this promotion carries had coverage on its own pull request into develop, at its merged head: | Pull request | Merged head | Coverage | | --- | --- | --- | | [#3479](#3479) | `81ca8d88` | attested local pass at the merged head, base `develop`, and a Copilot table on the merged head naming exactly its 3 changed files, no open findings | | [#3480](#3480) | `2c71411c` | attested local pass at the merged head, base `develop`, and a Copilot table on the merged head naming exactly its 3 changed files, no open findings | | [#3481](#3481) | `1747bd78` | attested local pass at the merged head, base `develop`, and a Copilot table on the merged head naming exactly its 2 changed files, no open findings | 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Summary
Answers #3424.
status=COVERAGE_IS_PARTIALsaid "the review covering the head states it read fewer files than the pull request changed" on the two carry paths incoverage()too. On those paths no round covering the head states partial coverage, and the bracketed reason said so.pr_review_rounds.pynow holds the carry reason's prefix asCARRIED_PARTIAL.report_verdictkeys on it, so the line follows the reasoncoverage()gave rather than re-deriving which path it took.reviewed=4 changed=3), each asserting the carry lead and remedy. The direct-path case now asserts its own lead and the absence of the carry wording. A mutation back to the old source fails both carry cases.Verification
uv run --no-project --with-requirements tests/requirements.txt python -m unittest discover -s tests, 2948 tests run, OK (7 skipped).introducedfindings, both fixed in 81ca8d8: the branch condition re-derivedcoverage()'s path, and the remedy tail contradicted the carry path. Round 2 raised none.🤖 Generated with Claude Code