Files
ROMFASTSQL/CONTEXT_HANDOVER_20260831.md
Claude Agent f5c8df7adf fix(docs): LXC 301 e template Proxmox, nu container oprit — riscul de IP nu exista
Documentatia de ieri descria LXC 301 ca un container oprit cu `onboot: 1` care
ar fura 10.0.20.37 de la VM 109 la reboot-ul lui pveelite. Configul are insa
`template: 1`: un template nu poate fi pornit, iar `onboot` e ignorat pentru el.
Riscul reapare doar daca e convertit inapoi in container.

Verificat si ca `basevol-301-disk-0@__base__` nu are niciun clon, ceea ce
infirma cealalta grija din pagina — se poate sterge in siguranta (~916 MB).

Recomandarea `pct set 301 -onboot 0` din handover e marcata infirmata, nu
stearsa, ca sa nu reapara intr-o sesiune viitoare.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SGMEagPnRavdLhWFqJHdja
2026-08-31 21:15:31 +00:00

128 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. E un template Proxmox, nu un container oprit.
## 4. Ce a rămas de făcut
### a) LXC 301 — nimic urgent (corectat 2026-08-31)
Versiunea inițială a acestei secțiuni descria un conflict de IP activ cu VM 109. **Greșit:**
301 e marcat `template: 1`, deci nu poate fi pornit deloc și `onboot: 1` e ignorat. Nu
revendică 10.0.20.37 la reboot-ul lui pveelite, deci `pct set 301 -onboot 0` nu e necesar.
Verificat tot atunci: `basevol-301-disk-0@__base__` nu are niciun clon, deci `pct destroy 301`
ar fi sigur (~916 MB pe local-zfs). Opțional, la decizia utilizatorului — nu e urgent.
Singurul caz în care IP-ul redevine o problemă: dacă cineva convertește template-ul înapoi
în container. Atunci `-onboot 0` sau alt IP **înainte** de pornire.
### 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.