Found 3 issues. The most impactful is topic fixation (Vex talks about “river stones” in every conversation) caused by the social think and encounter memory retrievers using only exact-string deduplication instead of word-overlap similarity — 3 nearly-identical memories pass dedup and dominate the LLM context. Also proposed: recovery target blacklisting for Gorath’s chronic stuck loop (8+ recoveries in 30 minutes), and filtering cooldown creature names from petSummary to stop wasting LLM calls on rejected divine revelations (14x for Kron).
(MEDIUM): Social Think Memory Retrieval Has No Word-Overlap Deduplication — Topic Fixation
Fix: Root Cause: `relationship-memory-retriever.ts` uses exact string equality for deduplication (line 46: `!memories.includes(result.content)`). This prevents true duplicates but allows semantically near-identical memories that share the same key phrases. The `retrieveEncounterMemories()` function in…
(MEDIUM): Gorath Chronic Stuck Recovery — No Recovery Target Blacklisting
Fix: Proposed Fix — `pet-brain.ts`: Add a recently-failed recovery targets set with a decay timer:
(LOW): `petSummary` Still Leaks Cooldown Creature Names to Divine Revelation Prompt
Fix: Root Cause: Cycle #120 correctly identified that `petSummary` (line 274 of `world-brain.ts`) includes ALL creatures without filtering out those on cooldown. The code at line 572 adds a `DO NOT pick` instruction, but the LLM (qwen3:4b) is small enough that it sometimes ignores this negative…
Files Modified
pet-brain.tsrelationship-memory-retriever.tsworld-brain.ts