# 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 --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.