homelab-brain/homelab-ai-bot
Homelab Cursor d82b6f97ef feat(chatlogger): multi-tenant + Jarvis tool integration
Phase 2 of the chatlogger feature.

Multi-tenant:
- chatlogger-bot.service -> chatlogger-bot@.service (systemd template)
- /opt/chatlogger/<instance>.env per bot, all share /opt/chatlogger/chats.db
- existing bot migrated: chatlogger-bot@arakawa.service
- adding a second group bot is now: cp arakawa.env <name>.env, edit token+chats,
  systemctl enable --now chatlogger-bot@<name>

Jarvis (hausmeister-bot) tool:
- homelab-ai-bot/tools/chatlog.py (autodiscovered by tool_loader.py)
- 4 tools: chatlog_list_chats, chatlog_recent, chatlog_search, chatlog_since
- Reads SQLite directly via sys.path += /opt/homelab-brain/chatlogger
- SYSTEM_PROMPT_EXTRA tells the LLM when to use these (Concierge, Airbnb,
  Listing, 'aktueller Stand', 'wer hat zugesagt', 'muss ich reagieren').

Tested live: hausmeister-bot loads 48 tools (44 + 4 new), all chatlog
handlers callable, returns real messages from the @arakawa_concierge_bot
recording of -1003924901022.
2026-05-01 12:13:00 +02:00
..
__pycache__ rag: bessere Treffer + Anti-Halluzination 2026-03-26 15:07:31 +01:00
core feat(hausmeister): Host-Suppression via ALERT_SUPPRESS_HOSTS 2026-04-24 15:57:14 +02:00
data Auto-Sync: 2026-04-17 22:00 2026-04-17 22:00:10 +02:00
tools feat(chatlogger): multi-tenant + Jarvis tool integration 2026-05-01 12:13:00 +02:00
action_guard.py Action Guard: Bestätigung für kritische Tools (savetv_record, savetv_download, close_issue, create_issue) 2026-03-24 14:11:38 +01:00
context.py Plugin-System: tools/*.py auto-discovery, eine Datei pro Tool 2026-03-16 14:25:22 +07:00
daily_feed_report.py feat: /feeds Befehl + täglicher Feed-Report 22:00 2026-03-08 14:26:38 +01:00
JELLYFIN.md docs: Jellyfin Infrastruktur vollständig dokumentiert 2026-04-06 16:57:43 +02:00
llm.py rag_mode: RAG-first als Default + Persistenz, Router haertet persoenliche Fragen 2026-04-17 21:57:42 +02:00
memory_cleanup.py Memory: Report-Stats, Ablauf-Warnung, Cleanup-Skript 2026-03-15 16:04:06 +07:00
memory_client.py RAG v2: Klassifizierung (6 Typen, 3 Confidence), source_type, Auto-Supersede, /memory erweitert 2026-03-15 17:34:16 +07:00
model_library_routes.py Auto-Sync: 2026-04-09 17:15 2026-04-09 17:15:36 +02:00
monitor.py fix(ops): dokumentiere Smart-Home-Alert-Fixes und Matomo-Check 2026-04-25 14:50:16 +02:00
openmemory_client.py Hausmeister Kumpel-Modus: OpenMemory (CT 122) angebunden 2026-03-24 14:03:19 +01:00
patch_dr.py Auto-Sync: 2026-03-20 23:00 2026-03-20 23:00:11 +01:00
patch_dr2.py Auto-Sync: 2026-03-20 23:00 2026-03-20 23:00:11 +01:00
patch_llm.py Auto-Sync: 2026-03-20 23:00 2026-03-20 23:00:11 +01:00
rag_mode.py rag_mode: RAG-first als Default + Persistenz, Router haertet persoenliche Fragen 2026-04-17 21:57:42 +02:00
requirements.txt feat: Bot-Code + Core-Module persistent aufgenommen 2026-03-08 11:57:26 +01:00
savetv_auto_download.py fix(savetv): auto-download nur fuer Kino-Profil erlauben 2026-04-26 19:53:23 +02:00
savetv_enrich.py savetv_enrich: Sleep auf 0.5s reduziert für schnellere Verarbeitung 2026-03-27 13:57:44 +01:00
SAVETV_ENRICHER.md feat(savetv): erweitere Wunschfilm-Liste 2026-04-26 19:53:23 +02:00
savetv_extra_routes.py fix(savetv): /api/filelist returns dict {files,count} as documented and expected by Jellyfin-Server sync client 2026-04-20 19:21:54 +02:00
savetv_sync.py fix(savetv): verhindere parallele NAS-Syncs 2026-04-26 19:53:23 +02:00
savetv_web.py savetv: Web-UI API filtert DE/FR-Produktionslaender (Wikidata-Cache) 2026-03-31 12:54:27 +00:00
savetv_web.py.bak Auto-Sync: 2026-03-30 15:45 2026-03-30 15:45:09 +02:00
STATE.md docs: Save.TV Pipeline Doku + CT 116 RAM/DNS-Fix in homelab.conf 2026-03-28 20:59:25 +01:00
telegram_bot.py fix(telegram_bot): httpx/httpcore Log-Level auf WARNING (Token nicht mehr in Logs) 2026-03-31 14:30:43 +00:00
tool_loader.py Plugin-System: tools/*.py auto-discovery, eine Datei pro Tool 2026-03-16 14:25:22 +07:00
voice.py TTS: gpt-4o-mini-tts mit Instructions fuer deutschen Akzent 2026-03-15 15:42:58 +07:00