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

41 lines
1.9 KiB
Markdown

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