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>
95 lines
5.2 KiB
Markdown
95 lines
5.2 KiB
Markdown
# 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.
|