A 5e storytelling engine with an LLM DM

Fix SRD chunking so recall actually finds class features and conditions master

The DM's recall tool was basically useless for anything that lived inside a large file — class features like Sneak Attack, conditions like Grappled, and core mechanics like Opportunity Attack all got diluted into massive single-file embeddings. Named entities in their own files (spells, monsters) searched fine, but subsections didn't. The chunker now cascades through ## → ### → #### → **Bold** headings instead of stopping at ###, and the threshold dropped from 4K to 1.5K chars. This takes the SRD from 905 to 3,090 chunks — every class feature, glossary definition, and combat rule gets its own embedding. Also fixes the SQLite check_same_thread error that was breaking recall in live play (the MCP server runs tools on a different thread than the one that created the connection). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>