Found 3 issues in an otherwise healthy simulation. Gorath is trapped in a 26x stuck recovery loop because the recovery algorithm deterministically picks the same unreachable POI — fix by blacklisting recently-failed recovery targets. Scheduled meal transitions (P78-P74) lack weather guards, causing creatures to leave shelter during meteor showers even at low hunger — fix by adding `!ctx.shouldSeekShelter` to all 4 meal transitions. Vex’s social thoughts repeat “quartz berries” verbatim because memory retrieval has no cross-invocation suppression — fix by tracking recently-used memory IDs and excluding them from subsequent retrievals.
— MEDIUM: Gorath stuck recovery loop at (89.3, 37.8) — 26x in 30 minutes
Fix: In `pet-brain.ts`, add a short-lived blacklist of recently-used recovery targets. (code change) This ensures Gorath picks a different POI after each failed recovery, breaking the deterministic loop. —
— MEDIUM: Scheduled meal transitions override shelter during meteor showers
Fix: Add `!ctx.shouldSeekShelter` guard to all 4 scheduled meal transitions. In `creature-fsm.ts`: (code change) This ensures creatures stay sheltered during dangerous weather unless critically hungry (the P90 transition with its `hunger > 85` guard handles that case). —
— MEDIUM: Vex’s social thoughts are repetitive (“quartz berries” 3x)
Fix: Track recently-used memory IDs per creature and exclude them from the next N retrievals. In `pet-brain.ts`, add a rolling suppression window: (code change) And in the memory retrieval function (likely `memory-retriever.ts`), add an exclusion clause: (code change) This forces diversity by…