Surfaced by a role-based review; verified against current code.
Problem: vitest.config declares thresholds: { lines: 31, functions: 24 }, but CI runs npm test (vitest run), not test:coverage — so thresholds are never applied. A PR that deletes tests or drops coverage will never fail CI; the config gives a false sense of a gate that doesn't exist.
Fix: Run test:coverage in CI so the threshold is a real gate; ratchet the numbers up as the open test tickets land.
Files: .github/workflows/ci.yml, vitest.config.ts
Surfaced by a role-based review; verified against current code.
Problem:
vitest.configdeclaresthresholds: { lines: 31, functions: 24 }, but CI runsnpm test(vitest run), nottest:coverage— so thresholds are never applied. A PR that deletes tests or drops coverage will never fail CI; the config gives a false sense of a gate that doesn't exist.Fix: Run
test:coveragein CI so the threshold is a real gate; ratchet the numbers up as the open test tickets land.Files:
.github/workflows/ci.yml,vitest.config.ts