Several modules are below the 85% branch coverage threshold or have significant gaps. Raising coverage prevents regressions and improves confidence in refactors.
Low Coverage Modules (branches < 80%)
Module
Statements
Branches
Functions
Lines
`src/index.js`
89%
74%
62%
89%
`src/api/server.js`
83%
76%
82%
85%
`src/api/routes/auth.js`
81%
75%
90%
84%
`src/api/routes/guilds.js`
86%
70%
95%
88%
`src/api/utils/redisClient.js`
50%
67%
75%
43%
`src/api/ws/logStream.js`
79%
74%
68%
81%
`src/modules/config.js`
90%
69%
95%
90%
`src/modules/ai.js`
87%
62%
89%
88%
`src/modules/rateLimit.js`
90%
68%
71%
91%
`src/modules/welcome.js`
79%
69%
71%
82%
`src/modules/triage.js`
84%
75%
66%
88%
`src/modules/starboard.js`
79%
83%
100%
78%
Subtasks
`redisClient.js` — Mock Redis connection states, test fallback behavior (43% lines → 85%+)
`ai.js` — Test edge cases: token limits, streaming failures, thread reuse (62% branches → 85%+)
`config.js` — Test config merge, nested key access, invalid input (69% branches → 85%+)
`welcome.js` — Test DM failures, missing channel, disabled state (69% branches → 85%+)
`rateLimit.js` — Test memory cap eviction, mute escalation (68% branches → 85%+)
`guilds.js` — Test pagination, permission checks, channel listing (70% branches → 85%+)
`logStream.js` — Test WebSocket lifecycle, auth failures, reconnection (74% branches → 85%+)
`triage.js` — Test buffer overflow, concurrent eval, abort handling (75% branches → 85%+)
`auth.js` — Test OAuth flow edge cases, token refresh, session expiry (75% branches → 85%+)
Acceptance Criteria
All listed modules above 85% branch coverage
No test relies on implementation details (test behavior, not internals)
Tests run in <10s total (no slow network mocks)