Adds focused regression coverage for residual high-risk seams on main that are still untested and not claimed by open coverage PRs #298–#307 (main tip still at fa5c0f68). Also refreshes the canary mobile lockfile and unflakes the calendar-aged composer draft prune assertion.
start / followUp / refinePlan throw before persisting a row or opening a Google stream; refinePlan/approvePlan return null when the research is missing or not awaiting a plan.input, previousInteractionId, collaborativePlanning: true) and clears planPending.research/start, research/followup, and research/refinePlan prompts are rejected at the protocol boundary.Transcript inbox capacity reached (503); a rejected empty batch (413) does not consume a slot.reconnectThreadWithFeedback reports failure when reconnect cannot start, and when the chat is removed while waiting for connected.test/research/research.service.validation.test.ts (added)test/transcriptInbox.capacity.test.ts (added)test/research.schemas.test.tsapps/desktop/test/thread-reconnect.test.tsapps/desktop/test/composer-draft-thread-switch.test.ts (Date.now()-relative prune fixtures)apps/mobile/bun.lock (CI stabilizer)These paths are stuck-state and data-validation hazards: empty research briefs that would otherwise persist/stream, inbox overflow when projection fails closed, and reconnect UI that can report success after the chat is gone. None duplicate open #298–#307 claims. No production behavior changes.
bun run lint / bun run typecheck / bun run docs:check / bun run check cleanbun run test: all 674 files passed (Bun 1.4.0-canary)Cursor Agent and others added 8 commits ·
View commitsOnly the target repository owner can merge this pull request.
Sign in to comment.
Update README.md
#125 mobile-fixes ← main
Updated 2 months ago
test: cover research input guards, inbox capacity, and reconnect failures
#308 main ← cursor/missing-test-coverage-5f6a
Updated 17 hours ago