- Fix beadWorkspaceScanner.test.ts: make beforeEach async to use top-level await
- Fix parser.real-logs.integration.test.ts: change sequence test to non-decreasing (real logs have duplicate sequences)
- Fix FleetSummaryBar.test.tsx: correct expected separator count from 5 to 4
All 2484 tests now pass (was 89 failed due to wrong Node.js version + 3 test bugs).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Phase 9 implementation: Bead workspace scanner and project breakdown.
- Add beadWorkspaceScanner.ts to scan .beads/issues.jsonl files
- Count CLOSED beads per project, deriving project from bead id prefix
- Use close_reason/closed_at/assignee for productivity tracking
- Add configurable workspace list in config.ts (WorkspaceConfig interface)
- Extend GET /api/productivity to add byProject array
- Add By Project section to ProductivityPanel React component
- Add tests for bead workspace scanner
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>