You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Gateway hub: text adapters on SessionManager + serve as interactive adapter (from #114 items 2–3) #144
Part of #113. Promoted from #114 items 2 and 3 now that #136 (P1, #134) put serve's run queue on SessionManager. This is the next step of decision wiki/decisions/0001-gateway-as-hub.md: the gateway owns sessions, queues and policy (Hermes-style), and every surface connects through it as an adapter.
Lich now has two session-queue implementations: the gateway's src/gateway/bus.ts and serve's SessionManager. That is the drift 0001 was meant to prevent.
Ossuary sends every session over one WebSocket, and serve serializes frames per connection until each prompt.submit finishes, so Ossuary sessions still queue behind each other despite feat: event envelope + SessionManager (P1 / #134) #136. (Found by code reading on main@4718fb4; not yet reproduced.)
Scope
A. Text adapters on the gateway core (#114 item 2)
Gateway persistence (history survives a restart) and per-chat profiles were the other half of item 2's trigger. Decide whether they're in A or a follow-up.
References
Decision: wiki/decisions/0001-gateway-as-hub.md (status still proposed)
Summary
Part of #113. Promoted from #114 items 2 and 3 now that #136 (P1, #134) put serve's run queue on
SessionManager. This is the next step of decisionwiki/decisions/0001-gateway-as-hub.md: the gateway owns sessions, queues and policy (Hermes-style), and every surface connects through it as an adapter.Why now
SessionManager(src/serve/prompts.ts,src/session/manager.ts).src/gateway/bus.tsand serve'sSessionManager. That is the drift 0001 was meant to prevent.prompt.submitfinishes, so Ossuary sessions still queue behind each other despite feat: event envelope + SessionManager (P1 / #134) #136. (Found by code reading onmain@4718fb4; not yet reproduced.)Scope
A. Text adapters on the gateway core (#114 item 2)
GatewayBusconversation queueing ontoSessionManager(one queue implementation) — fix(gateway): one session queue, LRU eviction, telegram-only /start, awaited shutdown, webhook usage/502 #174src/gateway/access.ts— Policy in feat(gateway): GatewayPolicy and declared adapter capabilities #178 (per-chat profiles: follow-up)/startrewrite, eviction by insertion order, shutdown not awaited); webhookusage: null; webhook returning HTTP 200 on agent errors — fix(gateway): one session queue, LRU eviction, telegram-only /start, awaited shutdown, webhook usage/502 #174B. Serve as the interactive adapter (#114 item 3)
lich servebecomes the gateway's WebSocket JSON-RPC adaptertool.invoke/tool.result)text_deltastreamingdeadline_msand fallback actionshealthOut of scope
orders.jsonlfile bus / persona orchestrator (Future: deferred architecture work & revisit triggers (from #113) #114 item 4; needs B's client-executed tools first)Open question
Gateway persistence (history survives a restart) and per-chat profiles were the other half of item 2's trigger. Decide whether they're in A or a follow-up.
References
wiki/decisions/0001-gateway-as-hub.md(status still proposed)wiki/comparisons/lich-vs-hermes.mdGenerated by Claude Code