Move duplicated files from chat + batch-agent into shared/: - shared/ws_context.py — Redis-based tool call round-trip - shared/llm.py — LiteLLM factory (get_llm, embed) - shared/agents/ — 4 domain agents (task, note, project, timeline) Update all service imports to use shared.* instead of app.*. Delete 12 duplicated files across both services.
Chat Service
Owns: deep_agent (home + floating chat), memory middleware, domain agents (task, note, project, timeline), LLM orchestration.
Tables owned
memory_corememory_associativememory_episodicmemory_proactive
Tables read (cross-service)
users(for encryption_key — memory decryption)
Endpoints
POST /chat(REST fallback)
Redis channels
- Subscribe:
chat:request:{user_id} - Publish:
ws:out:{user_id}(stream frames + tool calls) - BRPOP:
tool:result:{call_id}(30s timeout)