1a8b91edca2ad1ed4f60be2533f055a25b7e84ae
- Thread CRUD: create, update, delete with cascade candidate cleanup - Candidate CRUD: create, update, delete with all item-compatible fields - getAllThreads with subquery aggregates for candidateCount and price range - getThreadWithCandidates with candidate+category join - resolveThread: atomic transaction creating collection item from candidate data - Category fallback to Uncategorized on resolution if category deleted Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description