Skip to content

Commit ed03fc4

Browse files
committed
fix(ci): keep external coverage reporting nonblocking
1 parent 5cfd1ae commit ed03fc4

6 files changed

Lines changed: 42 additions & 7 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,10 @@ jobs:
316316
with:
317317
files: coverage.xml
318318
use_oidc: true
319-
fail_ci_if_error: true
319+
# Coverage floors are enforced locally above. Codecov is reporting
320+
# only and must not mask a green test job when the repo is not yet
321+
# enabled in the external service.
322+
fail_ci_if_error: false
320323

321324
test-integration:
322325
runs-on: ubuntu-latest

‎docs/PROJECT_CLOSURE.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ Push, PR mutations and release actions require explicit owner authorization.
8787
- Per owner allocation, Codex performed the dependency remediation,
8888
documentation, Mac verification, and Git closeout; Grok/Grokw remained
8989
paused to preserve its remaining weekly quota.
90+
- Repository-owned coverage gates are green and remain blocking. Codecov OIDC
91+
currently returns `Repository not found`; its upload is non-blocking
92+
reporting until the one-time external activation in
93+
[operations/codecov-setup.md](operations/codecov-setup.md) is completed.
9094
- Production status remains `candidate`; none of this closes the live Iceberg,
9195
restore/replay, fresh soak/rollback, external pen-test, or npm approval gates.
9296

‎docs/STATUS.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ findings; see
3535
[security-runtime-image-trivy-2026-07-30.md](security-runtime-image-trivy-2026-07-30.md).
3636
The dependency failure, resolution, and clean Mac verification are recorded in
3737
[dependency-compatibility-2026-07-30.md](dependency-compatibility-2026-07-30.md).
38+
All repository-owned coverage floors remain blocking; Codecov upload is
39+
non-blocking reporting until the repository is enabled in that external
40+
service, as recorded in
41+
[operations/codecov-setup.md](operations/codecov-setup.md).
3842
The exact post-remediation GitHub SHA must still complete all required checks
3943
before the external closure gate is claimed.
4044

‎docs/operations/codecov-setup.md‎

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,25 @@ run.
66

77
## How uploads work today
88

9-
- `ci.yml` calls `codecov/codecov-action@v4` with `use_oidc: true` during
10-
the `test-unit` job.
9+
- `ci.yml` calls pinned `codecov/codecov-action` v7.0.0 with
10+
`use_oidc: true` during the `test-unit` job.
1111
- OIDC uploads do not require a long-lived `CODECOV_TOKEN`; the action
1212
exchanges the GitHub OIDC token for a short-lived Codecov credential.
1313
- `fail_ci_if_error: false` keeps CI green even if Codecov is temporarily
14-
unreachable.
14+
unreachable or the repository has not yet been enabled there.
15+
- Coverage still fails closed inside CI: the full suite enforces a 60%
16+
line/branch floor, `diff-cover` enforces 80% on changed code, and
17+
security-critical modules have separate 90% gates.
18+
19+
## Current external status
20+
21+
On 2026-07-30, CI run
22+
[`30575838038`](https://github.com/brownjuly2003-code/agentflow/actions/runs/30575838038)
23+
completed every test and local coverage gate successfully. Codecov OIDC token
24+
exchange and upload queueing also succeeded, but Codecov returned
25+
`Repository not found` while processing the report. This is an external
26+
repository-activation gap, not a test or coverage failure. Complete the
27+
one-time setup below before treating the Codecov dashboard or badge as current.
1528

1629
## One-time setup
1730

@@ -40,7 +53,8 @@ Expected response: `Valid!`.
4053
## Verify the pipeline
4154

4255
1. Push a commit to `main` or open a pull request.
43-
2. Confirm the `Upload coverage` step in `test-unit` succeeds.
56+
2. After the repository is enabled in Codecov, confirm the `Upload coverage`
57+
step reports a successful external upload.
4458
3. Open the Codecov dashboard and confirm a new report appears for the
4559
commit SHA.
4660
4. Reload `README.md` on GitHub — the `codecov` badge should resolve to
@@ -57,3 +71,8 @@ Expected response: `Valid!`.
5771
- Coverage for `tests/`, `scripts/`, `examples/`, `sdk-ts/`, and
5872
`notebooks/` is ignored because those directories are not part of the
5973
production surface.
74+
75+
These Codecov policies are additional reporting/status checks once the
76+
external repository is enabled. The blocking repository-owned coverage floors
77+
remain the `pytest-cov`, `diff-cover`, and module-specific commands in
78+
`.github/workflows/ci.yml`.

‎docs/release-readiness.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ The required `lint` job now contains strict MkDocs and claims validation. The
8181
required `test-unit` job contains the 80% changed-code coverage gate and depends
8282
on the 3.11/3.12/3.13 `python-compat` matrix, so a failed compatibility lane
8383
cannot be bypassed merely because its job name is not a separate protected
84-
context.
84+
context. The same job enforces a 60% full-suite line/branch floor and separate
85+
90% floors for security-critical modules. Codecov upload is non-blocking
86+
reporting until the repository is enabled in that external service; see
87+
[operations/codecov-setup.md](operations/codecov-setup.md).
8588

8689
The 2026-07-30 closing remediation additionally covers two clean-install
8790
boundaries: the core-only API imports and serves health/entity/query without

‎tests/unit/test_audit_quality_gates.py‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ def test_required_ci_quality_gates_are_local_and_fail_closed() -> None:
1919
)
2020

2121
assert checkout["with"]["fetch-depth"] == 0
22+
assert "--cov-fail-under=60" in workflow
2223
assert "diff-cover coverage.xml --compare-branch=origin/main --fail-under=80" in workflow
24+
assert "--fail-under=90" in workflow
2325
assert "mkdocs build --strict" in workflow
2426
assert "python scripts/validate_project_claims.py" in workflow
25-
assert "fail_ci_if_error: true" in workflow
27+
assert "fail_ci_if_error: false" in workflow
2628

2729

2830
def test_dev_profile_pins_quality_gate_tool_families() -> None:

0 commit comments

Comments
 (0)