feat: web switch for her inner voice (Dolphin/3090 | Qwen-32B/MI50 | Off)
Her introspection (reflect/think) voice is now switchable live from the web settings, read each cycle by the dream loop — so Brian can flip it off the 3090 before gaming without touching config or restarting. - memory: runtime key/value settings table + get_setting/set_setting. - self_state: INTROSPECTION_MODES (dolphin=local/dolphin3:8b, mi50=Qwen-32B, off=paused) + introspection_target()/set_introspection_mode(); default "dolphin". reflect() resolves from the live setting and SKIPS entirely when off. - thoughts.think(): same resolution + skip-when-off. - server: GET/POST /settings/introspection. - index.html: "Inner Voice (introspection)" selector in Settings, applies instantly. - tests: routing (dolphin/mi50), off-skip for think + reflect. Suite 77, ruff clean. Default = Dolphin on the 3090 (richer voice). Flip to MI50 or Off in Settings before gaming — that was the GPU-contention culprit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -99,6 +99,14 @@ def test_consolidation_rebuilds_narrative_from_reflections(lyra, monkeypatch):
|
||||
assert "steady" in out["relationship"]
|
||||
|
||||
|
||||
def test_reflect_skipped_when_introspection_off(lyra):
|
||||
calls = lyra
|
||||
from lyra import self_state
|
||||
self_state.set_introspection_mode("off")
|
||||
self_state.reflect()
|
||||
assert calls == [] # paused -> no draft/examine LLM calls at all
|
||||
|
||||
|
||||
def test_consolidation_skips_with_too_few_reflections(lyra):
|
||||
from lyra import memory, self_state
|
||||
st = self_state.load()
|
||||
|
||||
Reference in New Issue
Block a user