ci(codecov): raise the project coverage floor to 95% - #65
Merged
Conversation
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
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
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.
Raises the Codecov project status target from 80% to 95%.
coverage: status: project: default: - target: 80% + target: 95% patch: falseWhy
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 astarget: 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. Enablingpatch: { 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:coveragereports but never fails, so the first signal of a regression is a CI comment rather than the developer's own run. Vitest supportscoverage.thresholdsinvitest.config.tsif 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