Continut mutat din repo-ul romfast/workspace, unde fusese comis din greseala (commit-urile 0558bae si 47d9fb2 de acolo). Acolo e acum ignorat. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
1.9 KiB
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 înstate.jsoncâte o înregistrare perthread_id, cu câmpulsid= session id-ul Claude Code.- La fiecare tur nou pe același fir,
runner.pypornește procesul cuclaude --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
--resumepe acelașisid— 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.