Skip to content

ci(codecov): raise the project coverage floor to 95% - #65

Merged
camcima merged 1 commit into
mainfrom
ci/raise-coverage-target
Aug 19, 2026
Merged

ci(codecov): raise the project coverage floor to 95%#65
camcima merged 1 commit into
mainfrom
ci/raise-coverage-target

Conversation

@camcima

@camcima camcima commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Raises the Codecov project status target from 80% to 95%.

 coverage:
   status:
     project:
       default:
-        target: 80%
+        target: 95%
     patch: false

Why

The 80% floor dates from bb44e55, which set it alongside disabling the patch status. Since then the suite has held 100% coverage of src/ — so the gate was sitting 20 points below reality and would have accepted a large silent regression (~370 of 1870 lines going uncovered) without failing a build.

95% keeps a deliberate buffer rather than pinning to 100%: a legitimately hard-to-reach branch shouldn't block a release, but anything beyond a couple of percent of drift now has to be justified.

Validated against Codecov's config validator (POST https://codecov.io/validate), which parses it as target: 95.0.

Two things this does not change, worth a separate decision

1. Patch status is still disabled (patch: false). That means new code carrying no tests at all cannot fail CI — only the project-wide average can, and on a 1870-line codebase a small untested PR barely moves it. This is exactly what happened on #52: patch coverage came back at 97.75% with 2 uncovered lines, and it was purely informational. Enabling patch: { default: { target: 90% } } (or similar) would make that a real gate. It was disabled deliberately in bb44e55, so I have not re-enabled it here.

2. There is no local coverage threshold. pnpm test:coverage reports but never fails, so the first signal of a regression is a CI comment rather than the developer's own run. Vitest supports coverage.thresholds in vitest.config.ts if you want the floor enforced in both places from one source of truth.

Happy to follow up with either.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JLxceiNFfXfpGoxdfQEZqw

The floor was set to 80% back when patch status was disabled, but the
suite has since held 100% coverage of src/, so 80% allowed a large
silent regression before CI would object.

Validated against Codecov's config validator.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JLxceiNFfXfpGoxdfQEZqw
Copilot AI lite review requested due to automatic review settings August 19, 2026 10:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@camcima
camcima merged commit a350deb into main Aug 19, 2026
7 checks passed
@camcima
camcima deleted the ci/raise-coverage-target branch August 19, 2026 10:56
@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (9932a58) to head (24ce378).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #65   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           61        61           
  Lines         1801      1801           
  Branches       268       267    -1     
=========================================
  Hits          1801      1801           

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

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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