The "calls getCurrentProject() on mount" test uses vi.resetModules() with
dynamic imports which can be slow. The per-test 10_000ms timeout was not
being respected by vitest, causing it to fail at the 5000ms default.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The coverage script parses "All files" from vitest text table output, but
vitest was only configured with json-summary reporter. This caused frontend
coverage to show as 0%, pulling overall coverage below threshold.
Frontend line coverage is 68.4%, making overall coverage 66.4% vs 64.60% threshold.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add end-to-end coverage tracking: backend collects vitest coverage,
records metrics with threshold/baseline tracking, and blocks acceptance
on regression. Frontend displays coverage in gate/review panels with
a "Collect Coverage" button. Includes 20 Rust tests, 17 Vitest tests,
and 14 Playwright E2E tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add workflow engine with acceptance gates, test recording, and review
queue. Frontend displays gate status (blocked/ready), test summaries,
failing badges, and warnings. Proceed action is disabled when gates
are not met. Includes 13 unit tests (Vitest) and 9 E2E tests
(Playwright) covering all five acceptance criteria.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>