**Goal:** move the three existing channels onto the `Channel` trait without behavior change. **Sub-steps** - [ ] `genie-api` HTTP route → trait (reference adapter). - [ ] Voice loop → trait. - [ ] Telegram handler → trait (preserve the #77/#78 per-chat concurrency fix). _Depends on the `Channel` trait boundary. M2 · Workstream A._
Goal: move the three existing channels onto the
Channeltrait without behavior change.Sub-steps
genie-apiHTTP route → trait (reference adapter).Depends on the
Channeltrait boundary. M2 · Workstream A.