Found 3 issues. The most impactful is Lyra’s 19x mining↔resting oscillation caused by the FSM (live code) lacking a RESTING guard on P61 mining — cycle #111’s fix was applied to the behavior tree (dead code) instead. Second, 11/14 encounter JointTasks route to Glowmist Predator Run due to pure nearest-distance POI selection with no randomization. Third, rejected divine revelations still broadcast atmosphere_shift events because the conversion is unconditional regardless of acceptance.
— HIGH: Lyra mining↔resting oscillation (19x each way) — FSM lacks RESTING guard
Fix: Add RESTING exclusion to `creature-fsm.ts:1215`: (code change) Also apply the same fix to the woodcutting transition if it exists with the same pattern (check for a `from: ‘*’` → `WOODCUTTING` transition without RESTING exclusion). —
— MEDIUM: JointTask hunting gravity well — all encounters resolve to Glowmist Predator Run
Fix: Randomize among nearby candidates in `poi-manager.ts`. Replace `getNearestPOIByType` with a version that collects all POIs within 1.5x the nearest distance and picks randomly: (code change) This ensures both hunting grounds get roughly equal traffic when creatures are in the middle of the map,…
— MEDIUM: Rejected revelations still broadcast atmosphere_shift events
Fix: Skip the atmosphere_shift broadcast when the revelation was rejected: (code change) Note: The `return null` approach requires the caller (around line 237) to handle null — check if the think function returns the event or void, and adjust accordingly. If the function can’t return early,…