Skip to content

Name the Carried Cause in the COVERAGE_IS_PARTIAL Status Line - #3479

Merged
ptr727 merged 2 commits into
developfrom
fix/coverage-partial-carry-text
Oct 25, 2026
Merged

ptr727 merged 2 commits into
developfrom
fix/coverage-partial-carry-text

Conversation

@ptr727

@ptr727 ptr727 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Summary

Answers #3424. status=COVERAGE_IS_PARTIAL said "the review covering the head states it read fewer files than the pull request changed" on the two carry paths in coverage() too. On those paths no round covering the head states partial coverage, and the bracketed reason said so.

  • pr_review_rounds.py now holds the carry reason's prefix as CARRIED_PARTIAL. report_verdict keys on it, so the line follows the reason coverage() gave rather than re-deriving which path it took.
  • On a carry path the line now leads with that reason and names the remedy that clears it: a round on the head stating full coverage, unless a round on it already states a reading this cannot believe. The direct path keeps its text and its remedy.
  • Tests: two carry-path cases (the head states nothing, and the head states 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

  • Full suite: uv run --no-project --with-requirements tests/requirements.txt python -m unittest discover -s tests, 2948 tests run, OK (7 skipped).
  • Local strict review: two rounds. Round 1 raised two introduced findings, both fixed in 81ca8d8: the branch condition re-derived coverage()'s path, and the remedy tail contradicted the carry path. Round 2 raised none.

🤖 Generated with Claude Code

ptr727 and others added 2 commits October 25, 2026 12:04
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>
Copilot AI lite review requested due to automatic review settings October 25, 2026 19:16
@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ptr727

ptr727 commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head 81ca8d885568f56bf5ca8f2b350955db53af09e3, the content this pull request carries at that commit against develop, and it recorded 0 findings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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_PARTIAL reason 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

codecov Bot commented Oct 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.99%. Comparing base (18ee2fc) to head (81ca8d8).

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           
Flag Coverage Δ
python-3.13 80.99% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit 5f5ea25 into develop Oct 25, 2026
14 checks passed
@ptr727
ptr727 deleted the fix/coverage-partial-carry-text branch October 25, 2026 19:28
ptr727 added a commit that referenced this pull request Oct 25, 2026
## 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)
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.

2 participants