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

7.1 KiB
Raw Blame History

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, proxmox/README.md și, pentru chatboți, 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.

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