diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 23c611b..bdbb30a 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -4,7 +4,7 @@ Living doc. Working priorities and open threads, organized by area. Not a spec specs live in `docs/` and `docs/superpowers/specs/`; this is the map of what's done, what's next, and what's parked. -- **Last updated:** 2026-07-10 +- **Last updated:** 2026-07-11 - **Frame (the load-bearing lens):** Lyra is the AI-with-tools (unchanged). The **pokerlog is its own separable system-of-record** — she's a *client* of it via tools, not its container. The logger must be correct/trustworthy first; Lyra's @@ -104,10 +104,22 @@ in-process module sharing `lyra.db` and reaching into `lyra.memory`/`llm`. - ⬜ **Human-editability sweep.** System-of-record must be fixable. Hand editor + disown ✅, `/players` browser + identity queue ✅. Audit for gaps (session-level edits, read edits, bulk fixes). +- ⬜ **Roster → hand seat/name resolution.** When a logged hand references a + *position* (CO, BTN…) that maps to a seated roster player, fill in their name + + link the observation — so "the CO 3-bet me" attaches to TAG without Brian naming + him. The hard part: hand positions ROTATE every hand while the roster tracks + fixed physical seats, so it needs seat-number + button-position tracking per hand + to map position→person (a wrong guess mislabels a villain — worse than blank). + Real feature, not a fill. (Brian's idea, 2026-07-11.) Pairs with the roster + active/seen work above. - Shipped this stretch: scouting desk (proactive recall + nameless-villain identity, all 6 phases), roster seat/unseat/clear, observed-hand fix + hand editor, villain-dup fix, conversation export (+ tool events), session-scoped - notes, no-cache app-shell header. + notes, no-cache app-shell header. **2026-07-11:** guaranteed hand logging + (force + tool-visible history), showdown reads via `analyze_spot` + de-mush, + idempotent hand logging, any-seat straddle capture, hero-stack auto-fill from the + stack log, and turn de-duplication (killed the SSE-stream + blocking-fallback + double execution). ## Parked / longer-horizon