Summary
The `coverage` CI check has been failing on `main` for at least the last several runs (confirmed 2026-07-13 and 2026-07-14), and fails identically on every PR opened against it — not something any individual PR is causing.
What's failing
The global thresholds (90% lines / 94% functions / 89% statements / 76% branches) aren't met because `src/tools/` — the MCP-server-mode tool handlers — are almost entirely untested:
```
src/tools | 10.47 | 0 | 0 | 11.04
check-server.ts | 14.28 | 0 | 0 | 15.78
ci-report.ts | 13.04 | 0 | 0 | 14.28
diff-runs.ts | 15.78 | 0 | 0 | 15.78
get-history.ts | 11.53 | 0 | 0 | 13.63
get-last-run.ts | 13.04 | 0 | 0 | 13.04
helpers.ts | 4.76 | 0 | 0 | 5
lock-verify.ts | 10.34 | 0 | 0 | 11.11
record.ts | 16.66 | 0 | 0 | 16.66
replay.ts | 10.71 | 100 | 0 | 10.71
scan.ts | 11.53 | 0 | 0 | 13.04
score-server.ts | 11.53 | 0 | 0 | 11.53
test-servers.ts | 4.28 | 0 | 0 | 4.68
verify-tool.ts | 13.04 | 0 | 0 | 13.04
watch.ts | 10.34 | 0 | 0 | 10.34
```
`src/types` and `src/integrations/index.ts` are also at 0%.
Impact
Every PR's `coverage` check is red regardless of what the PR actually touches, which makes it useless as a real signal — it's already failing before any diff-specific coverage is even considered.
Not included here
Not attempting a fix in this issue — writing meaningful tests for 14 largely-untested tool handlers is a real body of work, not a quick fix, and deserves its own scoped effort (or a decision to adjust the threshold/scope it to changed files only) rather than a rushed pass bundled into an unrelated PR.
Summary
The `coverage` CI check has been failing on `main` for at least the last several runs (confirmed 2026-07-13 and 2026-07-14), and fails identically on every PR opened against it — not something any individual PR is causing.
What's failing
The global thresholds (90% lines / 94% functions / 89% statements / 76% branches) aren't met because `src/tools/` — the MCP-server-mode tool handlers — are almost entirely untested:
```
src/tools | 10.47 | 0 | 0 | 11.04
check-server.ts | 14.28 | 0 | 0 | 15.78
ci-report.ts | 13.04 | 0 | 0 | 14.28
diff-runs.ts | 15.78 | 0 | 0 | 15.78
get-history.ts | 11.53 | 0 | 0 | 13.63
get-last-run.ts | 13.04 | 0 | 0 | 13.04
helpers.ts | 4.76 | 0 | 0 | 5
lock-verify.ts | 10.34 | 0 | 0 | 11.11
record.ts | 16.66 | 0 | 0 | 16.66
replay.ts | 10.71 | 100 | 0 | 10.71
scan.ts | 11.53 | 0 | 0 | 13.04
score-server.ts | 11.53 | 0 | 0 | 11.53
test-servers.ts | 4.28 | 0 | 0 | 4.68
verify-tool.ts | 13.04 | 0 | 0 | 13.04
watch.ts | 10.34 | 0 | 0 | 10.34
```
`src/types` and `src/integrations/index.ts` are also at 0%.
Impact
Every PR's `coverage` check is red regardless of what the PR actually touches, which makes it useless as a real signal — it's already failing before any diff-specific coverage is even considered.
Not included here
Not attempting a fix in this issue — writing meaningful tests for 14 largely-untested tool handlers is a real body of work, not a quick fix, and deserves its own scoped effort (or a decision to adjust the threshold/scope it to changed files only) rather than a rushed pass bundled into an unrelated PR.