b5c33f4701d6b98e26336b60bc7095075843745c
- Replace separate bot-crypto/bot-memories volumes with single bot-data:/data volume so user_keys.json and language_prefs.json persist across restarts - Remove redundant language_prefs.json infrastructure (constant, load/save, dict) — language preference now read from memories (last match wins) - Add robust JSON extraction in _extract_memories (regex fallback for markdown fences, embedded arrays, non-array responses) - Add info-level logging throughout memory extraction pipeline - Add asyncio.wait_for timeout (15s) on memory extraction to prevent hangs - Add !ai memory <fact> command for explicit, reliable memory storage - Update _get_preferred_language to return last match (most recent wins) - Update !ai forget to clear in-memory caches (pending translate/reply) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Description
Matrix AI voice agent - LiveKit + LiteLLM
Languages
Python
99.1%
Dockerfile
0.8%
Shell
0.1%