# Changelog ## 0.3.0 — session modes + live HUD Lyra stopped being a wishy-washy companion during live poker. She now switches register based on what she's actually doing at the table. ### Conversation modes - **Two modes** — 💬 **Talk** (the companion, default) and ♠ **Cash** (live cash copilot). A mode bundles a prompt card + a tool allow-list (`lyra/modes.py`). - **Two-register Cash voice** — quiet, act-first logging when Brian feeds facts (stack, hand, read → logged in one line, no narration); full warm companion voice when he asks for strategy or signals tilt/card-dead/steaming. Mental game and strategy never get clipped. - **Tool gating by mode** — Talk offers journaling + read-only poker lookups; Cash unlocks the full live toolset. `tools.specs(allow=…)` does the filtering. - **Auto-switch** — opening a session (`start_session`) flips the chat into Cash mode automatically; the UI badge/HUD follow. Manual switch overrides anytime. - Mode persists per chat session (new `mode` column); Cash mode forces the cloud backend, since tools only fire there. ### Mental-game rituals - Brian's own rituals are now first-class, live tools (not just post-hoc recap sections): **Scar Notes** (with the punt / cooler / standard distinction), **Confidence Bank** (good process, banked regardless of result), **Alligator Blood** mode (an invokable adversity state — she'll suggest it when he's card-dead/short/stuck, and her coaching register shifts while it's on), and **Reset** (a tilt circuit-breaker; mental marker, stats stay continuous). - Rituals show on the HUD (🐊 banner, Confidence Bank + Scar Notes panels) and feed the recap's Scar Notes / Confidence Bank sections with what actually happened. ### Session HUD - **Live HUD** at `/session` (bottom-nav tab on mobile, header link on desktop) — polls every 5s: header (venue/stakes/elapsed/live net), stack with **stack-over-time sparkline**, hands this session (tap → replay), villains seen, her notes, and session stats. - **Stack tracking** — new `log_stack` tool + `poker_stack_log` table → current stack, **live net while still sitting** (stack − buy-in), and the sparkline series. ### Next - Strategy RAG (poker books/notes) plugs into Cash's coaching register. ## 0.2.0 — first working system The leap from "chat + memory baseline" to a working, persistent companion with a real poker copilot. Highlights: ### Self & inner life - **Autonomy Core** — evolving self-state (mood, valence/energy/confidence/curiosity, self-narrative, relationship), injected into every turn. - **Dream cycle** — unattended loop driven by four drives (continuity, coherence, curiosity, stability); consolidates memory and reflects on its own. Runs as a systemd service on the MI50 (free/local). - **Two-step metacognitive reflection** — draft → examine own draft for flattery / sycophantic drift / repetition → revise; what she catches is stored as metacognition. - **Time awareness** — perceives the current moment, time since Brian last spoke, and time since her own last reflection. - **Permanent journal** — every reflection + a deliberate "knowing" journal note kept forever (the capped lists are just a working window). - **Accurate self-model** — knows her own architecture (memory tiers, dream cycle); won't recite stale specs or confabulate how she works. - **Anti-repetition** — idle reflections draw varied grist (resurfaced memories / "wander" prompts) and are permitted non-Brian interiority. ### Memory & consolidation - Tiered memory: exchanges → session gists → profile → monthly eras → narrative. - Map-reduce consolidation; gists dated by the real conversation, not the run. ### Poker copilot - Structured **session / hand / villain** tracking + stats ($/hr by stake/venue/game). - **Hand-history reconstruction** from rough shorthand → replayable table viewer with live stacks, progressive board, step-through; `x` for unknown cards (never invented). - **Auto-accumulating villain dossiers** + player lookup; stats emerge with sample size. - **Deterministic equity tool** (`analyze_spot`, treys) — exact equity / made hands / outs; mandated over LLM eyeballing. - **Session recap** generation (`.md`, Brian's format) + export; `/hands` browser. - **Backfill** of historical sessions/villains from curated `.md` logs. ### Tools & web - **Tool-calling** in chat (cloud): poker tools, `journal_write`, `note`. - Web UI: Markdown chat, **cloud model selector**, live **/logs**, **/self** (read her mind), **/journal**, **/hands** + **/hand/{id}** replayer, **/recap/{id}**. - **👍/👎 rating system** — feedback on replies and thoughts stored as `(context, content, rating)`; `/ratings/export` (JSONL) seeds future fine-tuning. - RTO black-and-orange theme across all pages. ### Ops - Role-based backends (cloud / MI50 / local Ollama); MI50 OpenAI-compatible backend. - systemd user services for `lyra-web` and `lyra-dream`, with bounded stop timeouts. - SQLite WAL + busy-timeout so the dream process and web server coexist. ## 0.1.0 — scaffold - uv project, SQLite memory with cosine recall, LLM router (local/cloud), persona + chat loop, web UI baseline, ChatGPT history import.