Initial commit: spatiul de lucru al puntii Discord
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
This commit is contained in:
40
docs/discord-bridge-context.md
Normal file
40
docs/discord-bridge-context.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user