Repository navigation
Open
Labels
Description
Problem
Codecov is purely informational across the board:
fail_ci_if_error: false×3:ci.yml:174,server-ci.yml:125,.github/actions/rust-ci/action.yml:122- No
.github/codecov.ymlexists - Current baseline: 29.32% line coverage (server backend, no gates per AGENTS.md)
- Codecov upload failures silently swallowed
Coverage drops do not block merges; Codecov infrastructure failures don't block either.
Fix
4a. Create .github/codecov.yml
Keep Codecov informational for now (baseline 29.32% can't support strict thresholds). Make coverage changes visible via patch-level thresholds.
# .github/codecov.yml
coverage:
status:
project:
default:
target: auto
threshold: 2%
base: auto
informational: true # Keep informational until coverage >50%
patch:
default:
target: 80%
informational: true # Patch coverage shows red comment, non-blocking
flags:
individual:
- name: server
paths:
- server/
comment:
layout: "diff, flags, files"
behavior: default4b-d. KEEP fail_ci_if_error: false everywhere
Do NOT flip to true because:
- Codecov upload failures are infrastructure (API down, token expired), not coverage
- Flipping would block PRs when Codecov has transient issues
- The
informational: truein codecov.yml already makes coverage changes visible
Current locations to leave unchanged:
.github/workflows/ci.yml:174.github/workflows/server-ci.yml:125.github/actions/rust-ci/action.yml:122
Future Work (Out of Scope for This Issue)
When overall coverage exceeds 50%, revisit:
- Flip
informational: falseonpatchstatus (block merge on new-code coverage <80%) - Add
informational: falseonprojectstatus (block merge on >2% drop) - Flip
fail_ci_if_error: trueonce Codecov SLA is verified
Track in a separate issue once coverage milestone is hit.
Verification Gate
# PR that drops coverage by 3% on a patch
git checkout -b remediation/test-coverage-drop
# Modify a covered file to skip tests
git commit -am "test: drop coverage"
git push origin remediation/test-coverage-drop
gh pr create --base develop --head remediation/test-coverage-drop \
--title "test: coverage drop" --draft
# Expected: Codecov comment appears with "Red" on patch coverage
# Expected: PR is NOT blocked from merge
gh pr view --json mergeable
# Should be: MERGEABLERisk
LOW. Configuration-only change. No semantic change to gating.
Rollback
rm .github/codecov.yml
git commit -am "revert: codecov config"
git pushEffort
~45 min
Provenance
Adversarial 4-member hyperplan, 3 rounds. Phase 4 of umbrella.
Activity
fix(ci): unmask SonarCloud scan, add new-vuln detection, codecov config
fix(ci): harden CI against rubber-stamping (PRs to develop, continue-…