Files
project-lyra/CHANGELOG.md
T
serversdown dfb6425395 feat: session modes (Talk/Cash) + live session HUD
Lyra now switches register based on what she's doing at the table instead of
being a wishy-washy companion mid-session.

Modes (lyra/modes.py):
- Talk (default companion) + Cash (live cash copilot); a mode = prompt card +
  tool allow-list. Tool gating via tools.specs(allow=).
- Two-register Cash voice: act-first one-line logging when fed facts; full warm
  companion voice for strategy / tilt / mental game.
- mode persisted per chat session (new sessions.mode column); auto-switch into
  Cash when start_session fires; UI forces cloud backend in Cash (tools only
  fire there).

Stack tracking + HUD:
- log_stack tool + poker_stack_log table; live net while sitting (stack - buy-in).
- poker.hud() bundle; /session HUD page (stack sparkline, hands, villains, notes,
  stats) polling /session/data every 5s; Talk/Cash switcher + Session nav.

Endpoints: /session, /session/data, GET/POST /sessions/{id}/mode, /modes.
tests/test_modes.py (gating, mode roundtrip, stack/HUD); 36 tests green. v0.3.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 05:28:15 +00:00

4.5 KiB
Raw Blame History

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.

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.