**Goal:** per-`(channel, speaker)` sessions with conversation continuity, bounded for the Jetson. **Sub-steps** - [ ] Session key = `(channel, speaker/chat-id)`. - [ ] Wire session → `conversation` history (per session). - [ ] Lifecycle: create / idle-expire, with a bounded cap so memory stays in budget. _M2 · Workstream A._
Goal: per-
(channel, speaker)sessions with conversation continuity, bounded for the Jetson.Sub-steps
(channel, speaker/chat-id).conversationhistory (per session).M2 · Workstream A.