a705e573a9
The remaining feedback loop: reflect() dumped her full self-state (incl. self_narrative) into the prompt and asked her to "update" it -> paraphrase -> save -> feed back -> calcify. That (not the model) is what generated the recurring "supportive presence balancing emotional intelligence for Brian" drift — even Dolphin echoed it when handed the saved narrative. Fix (her inner life now runs on one cognition model): - reflect() no longer rewrites self_narrative/relationship. It uses associative grist (cognition.spontaneous_seed + activate) instead of rereading the bio, reflects THROUGH a stable IDENTITY_ANCHOR (lens, not canvas), and updates only the transient state (mood axes + noticings + metacognition + journal). - self_narrative is now slow-consolidated: every CONSOLIDATE_EVERY (5) reflections, _consolidate_self() re-derives it from accumulated reflections + the anchor — never from the old narrative (the anti-loop core). Tethered to the anchor so it grows without drifting into generic-helper land. - reset_self_narrative() + ran once on prod (her narrative was deeply drifted: "my core identity as a tool for support... serve Brian and other users"). - Prompts drop the self_narrative/relationship fields. Tests updated + consolidation tests. Suite 75 green, ruff clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>