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>
41 lines
1.9 KiB
Markdown
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.
|