Files
workspace/claude-agent/docs/discord-bridge-context.md
Claude Agent 47d9fb26d5 docs: persist Maria WhatsApp+RAG documentation (was written but never committed)
Adds docs/maria-whatsapp-rag-prototype.md and docs/discord-bridge-context.md,
and links them from CLAUDE.md. Includes the 2026-08-31 update: local Ollama
install for embeddings, rclone installed (DRIVE_REMOTE still pending a
Google service account the user must create), and a confirmed end-to-end
indexing test with 6 real documents pulled from Drive.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 15:42:47 +00:00

1.9 KiB

Puntea Discord — cum se acumulează și se golește contextul

Sursă: romfastsql/proxmox/lxc171-claude-agent/discord-bridge/ (bot.py, runner.py, session_store.py).

Model

Fiecare fir de Discord (thread) e mapat pe o sesiune Claude Code reală, nu pe o fereastră de memorie proprie (spre deosebire de chatbot-ul Maria/Flowise, care folosește Buffer Window Memory cu k=5).

  • session_store.py ține în state.json câte o înregistrare per thread_id, cu câmpul sid = session id-ul Claude Code.
  • La fiecare tur nou pe același fir, runner.py pornește procesul cu claude --resume <sid> --autocompact auto — deci contextul se acumulează la nesfârșit în sesiunea Claude Code, cu compactare automată (--autocompact auto) gestionată de Claude Code însuși când se apropie de limita de context (nu e o ștergere, e un sumar intern).
  • Dacă procesul moare/repornește, se reia cu --resume pe același sid — contextul supraviețuiește restart-urilor botului.

Când se golește efectiv

Nu există curățare automată pe timp (nu e un TTL/cron). Contextul unui fir se resetează DOAR manual, din Discord:

  • /new — pornește o sesiune nouă (sid = None), fir „curat".
  • /new fork:True — sesiune nouă, dar pornită dintr-un fork al contextului curent (păstrează istoricul până la acel punct, apoi ramifică).

bot.py:645 apelează runner.reset(tid, fork=...), care în runner.py:333 oprește procesul curent și șterge proc.sid (la fork, marchează following --resume cu fork în loc de resume simplu).

De reținut

  • Nu confunda acest mecanism cu Maria (Flowise): acolo fereastra e fixă (ultimele 5 schimburi, per sessionId), aici fereastra e "tot" + auto-compact intern Claude Code, golit doar la /new.
  • Comanda /cleanup (cleanup.py) NU are legătură cu contextul conversației — curăță procese orfane rămase în urma firelor (memorie RAM), nu istoricul de chat.