974ee33f71
Brian's own rituals (mined from his logs) become first-class, live tools instead of post-hoc recap sections: - Scar Note — instructive mistakes with the punt/cooler/standard distinction. - Confidence Bank — good process, banked regardless of result. - Alligator Blood — invokable adversity state; she suggests it when he's card-dead/short/stuck, and her coaching register shifts while it's on (live state injected into context per-turn via chat._mode_state_note). - Reset — tilt circuit-breaker; mental marker only, stats stay continuous. poker_rituals table + log_ritual/list_rituals/set_alligator/alligator_active; 4 tools added to the Cash toolset and taught in the mode card; HUD gains a 🐊 banner + Confidence Bank + Scar Notes panels; recap grounded via _rituals_block. tests/test_modes.py +5 ritual tests; 41 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5.2 KiB
5.2 KiB
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
modecolumn); 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_stacktool +poker_stack_logtable → 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;
xfor 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;/handsbrowser. - Backfill of historical sessions/villains from curated
.mdlogs.
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-webandlyra-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.