docs: context handover pentru sesiunea 2026-08-31
Nu repeta infrastructura — e deja documentata in repo — ci doar ce s-a schimbat azi si ce a ramas: starea serviciilor la finalul sesiunii, verificarea reindexarii care era in curs, cele patru fire terminate (Gitea/repo-uri, memorie comuna + flux plan-Opus/exec-Sonnet, atasamente Discord, mutarea Mariei pe LXC 171), si ce a ramas de decis (onboot pe LXC 301, auditul sistematic, modelul Mariei). Include si capcanele invatate pe pielea noastra azi, ca sa nu se repete: verifica pe ce container esti inainte de a concluziona ceva, nu reporni prototipul de pe 104, rclone sync sterge la destinatie, si nu taia iesirea comenzilor de diagnostic cu `head` — exact asta a produs concluzia gresita "nu asculta nimic pe 8091". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
This commit is contained in:
127
CONTEXT_HANDOVER_20260831.md
Normal file
127
CONTEXT_HANDOVER_20260831.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# Context handover — 2026-08-31
|
||||
|
||||
Sesiune lungă, patru fire de lucru terminate și unul în curs. Totul e comis și împins.
|
||||
|
||||
> **Infrastructura e deja documentată în acest repo** — nu o repet aici. Punctele de
|
||||
> intrare: [`CLAUDE.md`](CLAUDE.md), [`proxmox/README.md`](proxmox/README.md) și, pentru
|
||||
> chatboți, [`docs/chatboti-si-punti.md`](docs/chatboti-si-punti.md) (scris azi).
|
||||
> Documentul ăsta e doar despre **ce s-a schimbat azi și ce a rămas**.
|
||||
|
||||
---
|
||||
|
||||
## 1. Ce rulează acum (starea la finalul sesiunii)
|
||||
|
||||
| | Stare |
|
||||
|---|---|
|
||||
| **Maria (WhatsApp + RAG)** | **LXC 171**, asociată la +40723197939, funcțională. 11 documente, sincronizare Drive la 10 min. |
|
||||
| Prototipul Maria de pe LXC 104 | **oprit și dezactivat**. `llama-qwen35.service` (LLM-ul, port 8091) și `flowise.service` rămân pornite acolo. |
|
||||
| Puntea Discord | activă, cu atașamente (imagini + fișiere text). |
|
||||
| Reindexare RAG | **era în curs la finalul sesiunii** — vezi „De verificat întâi" mai jos. |
|
||||
|
||||
## 2. De verificat întâi, la reluare
|
||||
|
||||
Reindexarea pornită după corectarea `efactura-erori-rag.xml` s-ar putea să nu fi terminat.
|
||||
|
||||
```bash
|
||||
pgrep -af "sync.py" # gol = gata
|
||||
ls -la ~/.maria-bridge/rag_index.json # mtime recent = reconstruit
|
||||
python3 -c "
|
||||
import json,collections
|
||||
e=json.load(open('/home/claude/.maria-bridge/rag_index.json'))
|
||||
c=collections.Counter(x['source'] for x in e)
|
||||
print(len(e),'chunk-uri,',len(c),'documente')
|
||||
print(c.get('efactura-erori-rag.xml'),'din efactura-erori-rag.xml (8 = structurat corect, ~41 = inca text simplu)')
|
||||
"
|
||||
```
|
||||
|
||||
O reindexare completă durează **~18–21 de minute** (embedding CPU-only, ~7,3 s per chunk).
|
||||
Nu e blocată — chiar durează atât. Dacă a eșuat, se reia cu:
|
||||
`cd proxmox/lxc171-claude-agent/maria-whatsapp-bridge/rag && MARIA_BRIDGE_DIR=$HOME/.maria-bridge ~/.maria-bridge/venv/bin/python sync.py --force`
|
||||
|
||||
## 3. Ce s-a făcut azi
|
||||
|
||||
### Git și Gitea
|
||||
- **`romfast/workspace` dădea 500** de pe 2026-04-06: patru gitlink-uri fără `.gitmodules`
|
||||
făceau Gitea 1.24.3 să dea panic pe listarea rădăcinii. Scoase din index. **Nu era vina
|
||||
botului**, cum se bănuia inițial.
|
||||
- **`/workspace/claude-agent` e acum repo propriu** (`git@gitea.romfast.ro:romfast/claude-agent.git`),
|
||||
scos din repo-ul `workspace` unde fusese comis din greșeală.
|
||||
|
||||
### Memorie și mod de lucru al botului Discord
|
||||
- `~/.claude/projects/-workspace-claude-agent/memory` e **symlink** către memoria lui
|
||||
`-workspace-romfastsql`. Firele Discord porneau amnezice fiindcă memoria e per director
|
||||
de proiect. Copia veche: `memory.bak-2026-08-31`.
|
||||
- **Regula nouă:** orice cerere de dezvoltare → citește `claude-agent/TODO.md`, planifică
|
||||
cu `Agent(subagent_type: "Plan", model: "opus")`, execută pe Sonnet, actualizează
|
||||
`TODO.md`. Scrisă în `claude-agent/CLAUDE.md` + `claude-agent/docs/flux-dezvoltare.md`.
|
||||
Testată pe sesiuni reale: prima versiune era prea blândă și agentul sărea peste plan la
|
||||
sarcini mici — întărită explicit cu „mărimea nu e criteriu".
|
||||
- **`claude-agent/TODO.md`** e registrul viu al funcționalităților. Nimic blocat acum.
|
||||
|
||||
### Puntea Discord — atașamente
|
||||
Imagini (png/jpeg/gif/webp, max 4, max 3,5 MB brut) → blocuri `image`; fișiere text →
|
||||
inserate în prompt (max 4, trunchiate la 100 KB); restul doar numite. Merge și mid-tur ca
|
||||
steering. 31 de teste noi; suita: 426 pass.
|
||||
|
||||
### Maria — mutare completă pe LXC 171
|
||||
- **Sincronizare Drive** prin `rclone authorize` (fără cont de serviciu). Procedura
|
||||
completă: [`docs/rclone-google-drive-headless.md`](docs/rclone-google-drive-headless.md).
|
||||
Script: `maria-whatsapp-bridge/ops/setup-drive.sh`.
|
||||
- **`.xml` acceptat și preferat peste `.md`** la același nume de bază; chunking per
|
||||
problemă (un `<eroare_x>` = un chunk, cu mesajul și rezolvarea împreună).
|
||||
- **Lacăt `flock` între reindexări** + scriere atomică a indexului. Descoperit când
|
||||
timer-ul a pornit peste o rulare manuală și două procese scriau același fișier.
|
||||
- **Fix LID**: după asociere nu răspundea nimic. WhatsApp livrează self-chat-ul ca
|
||||
`51947713372214@lid`, iar filtrul compara doar cu `<număr>@s.whatsapp.net` — arunca tot,
|
||||
tăcut. Reparat; mesajele respinse se loghează acum cu motivul.
|
||||
- 26 de teste noi (prima suită a proiectului Maria).
|
||||
|
||||
### Documentație
|
||||
- **[`docs/chatboti-si-punti.md`](docs/chatboti-si-punti.md)** — care chatbot e care.
|
||||
Trei lucruri numite „Maria", doi boți pe Discord, două punți WhatsApp pe **același
|
||||
număr**. A costat o oră de diagnostic azi: Maria răspundea de pe LXC 104, iar toate
|
||||
verificările se făceau pe 171.
|
||||
- **[`proxmox/lxc301-docker-template/README.md`](proxmox/lxc301-docker-template/README.md)** —
|
||||
singurul guest nedocumentat. Vezi mai jos, are un risc real.
|
||||
|
||||
## 4. Ce a rămas de făcut
|
||||
|
||||
### a) LXC 301 — conflict de IP cu VM 109 (decizie a utilizatorului)
|
||||
LXC 301 e predecesorul lui VM 109 (vechiul DR Oracle 19c). Și-a păstrat **IP-ul static
|
||||
10.0.20.37** — același pe care VM 109 l-a moștenit de la el — și are **`onboot: 1`**.
|
||||
|
||||
La un reboot al lui pveelite pornește singur și ocupă adresa. VM 109 are `onboot: 0`, deci
|
||||
nimeni nu observă nimic până la următorul test DR, când VM 109 găsește adresa luată.
|
||||
|
||||
**Recomandat, neexecutat:** `ssh root@10.0.20.202 "pct set 301 -onboot 0"`.
|
||||
Ștergerea completă cere verificat întâi că `basevol-301-disk-0` nu e șablonul din care
|
||||
s-au clonat alte containere.
|
||||
|
||||
### b) Auditul de infrastructură, dacă se dorește
|
||||
Coverage-ul e bun — LXC 301 era singurul guest fără pagină proprie. Ce **nu** s-a făcut:
|
||||
verificarea sistematică a fiecărui README existent față de starea live. Divergențele
|
||||
găsite azi (prototipul Maria pe 104, LLM-ul pe 8091, Gitea rupt de 5 luni) au ieșit la
|
||||
iveală accidental, nu dintr-un audit.
|
||||
|
||||
### c) Model de răspuns al Mariei
|
||||
Rămâne `Qwen3.5-2B-Q4` pe LXC 104 — decizia utilizatorului a fost „păstrez deocamdată, cu
|
||||
RAG-ul complet". Răspunsurile factuale (e-Factura) sunt acum corecte și ancorate în
|
||||
documente; cele explicative sunt încă vagi. De reevaluat după câteva întrebări reale.
|
||||
|
||||
## 5. Capcane de reținut
|
||||
|
||||
- **Verifică întâi pe ce container ești.** `8099` și `11434` există și pe 104 și pe 171,
|
||||
cu conținut diferit. Nu repeta ora pierdută azi.
|
||||
- **Nu reporni prototipul de pe 104.** Ar răspunde în paralel, pe același număr, cu un
|
||||
index de 24 de chunk-uri.
|
||||
- **`rclone sync` e distructiv pe destinație.** Depozitul Mariei e oglindă a Drive-ului;
|
||||
un document adăugat manual din dashboard dispare la următoarea sincronizare.
|
||||
- **Maria nu are voie la infrastructură** — e chatbot pentru clienții ERP ROA. Nimic din
|
||||
`proxmox/`, niciun IP sau credențial în depozitul ei. Regula e în `claude-agent/CLAUDE.md`.
|
||||
- **Nu tăia ieșirea comenzilor de diagnostic cu `head`.** Concluzia „nu ascultă nimic pe
|
||||
8091" a fost greșită exact din cauza asta și a trimis diagnosticul pe pistă falsă.
|
||||
|
||||
## 6. Comiteri
|
||||
|
||||
`ROMFASTSQL`: `b29b9f2..824b215` (14 comiteri) · `claude-agent`: `6d0bfe1..c97ba0c` (9 comiteri)
|
||||
· `workspace`: `d24dca3`. Toate împinse pe gitea.romfast.ro.
|
||||
Reference in New Issue
Block a user