f84e429ca4
- src/lib/assistant/context.ts: buildCampaignContext() assembles a system-aware snapshot led by an explicit systemConstraint (anti cross-system hallucination), party, recent encounters with computed difficulty, quest/note summaries. pickCreatureCandidates() pulls level/CR-appropriate creatures from the correct bestiary so LLM tips are grounded in real data. - src/lib/assistant/patterns.ts: difficultyTendency() + detectThemes() classify whether the DM's encounters skew too easy/hard, rating each fight against its party-level snapshot. - Encounter schema gains optional partyLevelsSnapshot + outcome (Dexie v7, additive). Combat tracker snapshots PC levels at start and rates difficulty against them. 17 assistant unit tests (context + patterns). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>