3df060a1cdf1160bc5dc510bd3b908c1b3020a06
reflect() is now two steps: draft a reflection, then read her own draft back critically and revise it — catching flattery, sycophantic drift toward "warm supportive presence," or just-restating-herself — and commit the honest version. What she catches is stored as a new `metacognition` layer, rendered into her chat context and shown on /self. This is her thinking about how she thinks, and a direct counter to the drift we observed. - self_state: _EXAMINE_PROMPT + two-step reflect (draft -> examine -> revise), falls back to the draft if the examine step won't parse; metacognition capped at 5 and surfaced in render_for_context - fix: load() deep-copies DEFAULT_STATE — the shallow copy let a fresh Lyra's first reflect mutate the module-level default's nested lists - self.html: "How she's caught herself thinking" card - tests: two-step revise + critique recording, and draft-fallback on bad parse Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lyra
A persistent, autonomous AI assistant. From-scratch rewrite of an earlier attempt.
The design thinking that survives the rewrite lives in docs/ — start with docs/ARCH_v0-6-1.md. The previous implementation is preserved on the archive branch.
Status
Pre-MVP. Building toward the smallest useful version: chat with persistent memory across sessions.
Setup
uv sync
cp .env.example .env
# fill in ANTHROPIC_API_KEY and point LOCAL_BASE_URL at your Ollama
Architecture
The long-term target is the cognitive split in docs/ARCH_v0-6-1.md — Inner Self as the seat of consciousness, Executive for hard reasoning, Cortex Chat for drafting, Persona for voice. The MVP implements only the chat + memory baseline. Cognitive layers come back one at a time.
Description
Languages
HTML
46.7%
Python
32.1%
CSS
21.2%