Files
claude-agent/TODO.md
Claude Agent 6dedcade2d docs(todo): corectie — Maria rula pe LXC 104, nu era "fara LLM"
Intrarile precedente ("Maria nu are backend LLM", "puntea WhatsApp nu e
asociata") erau gresite: descriau instalarea din git de pe LXC 171, in timp ce
Maria conectata la WhatsApp rula pe LXC 104. Inlocuite cu o singura intrare care
descrie mutarea in curs si pasul urmator.

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

116 lines
5.5 KiB
Markdown

# TODO — progresul funcționalităților
Registrul viu al lucrului cerut prin puntea Discord. **Botul îl citește la începutul
oricărei cereri de dezvoltare și îl actualizează la final** — vezi
[docs/flux-dezvoltare.md](docs/flux-dezvoltare.md).
Stări: `🔵 planificat` · `🟡 în lucru` · `⛔ blocat` · `✅ gata` · `❌ abandonat`
---
## 🟡 În lucru
*(nimic în acest moment)*
---
## ⛔ Blocate
### Maria — mutarea de pe LXC 104 pe LXC 171
- **Situația:** există DOUĂ instalări. Cea care răspunde pe WhatsApp e prototipul din
`/root/maria-whatsapp-bridge/` de pe **LXC 104 (Flowise)**, în afara git-ului: acolo e
sesiunea WhatsApp asociată și LLM-ul (Qwen3.5-2B-Q4, port 8091). Versiunea din git,
de pe LXC 171, are tot ce s-a construit (11 documente, .xml, sincronizare Drive) dar
n-a fost niciodată asociată.
- **De ce contează:** indexul prototipului are 24 de chunk-uri dintr-un singur fișier
(`roaauto_instructiuni.txt`), fără nimic despre e-Factura — de aici răspunsurile
inventate.
- **Făcut:** pe 171, `LLM_URL=http://10.0.20.161:8091` (LLM-ul de pe 104, testat
end-to-end: întrebarea despre token eFactura primește acum răspunsul corect din
documente). Cod QR generat, așteaptă scanare.
- **Următorul pas:** utilizatorul scanează QR-ul din dashboard; după ce 171 confirmă
`connected: true` și răspunde corect pe WhatsApp, se opresc serviciile prototipului de
pe 104 (întâi asocierea nouă, apoi oprirea celei vechi — altfel Maria dispare de tot,
iar cât timp merg amândouă răspund amândouă).
- **Actualizat:** 2026-08-31
---
## 🔵 Planificate
### Mesaje vocale din Discord
- **Unde:** `romfastsql/proxmox/lxc171-claude-agent/discord-bridge/bot.py`
- **Ce ar însemna:** atașamentele audio (mesajele vocale Discord) transcrise local
înainte de a intra în prompt. Whisper rulează pe CPU pe LXC 171, deci trebuie
măsurat întâi costul în timp per mesaj.
- **De ce nu acum:** nu a fost cerut; e singura limitare rămasă după atașamente.
- **Actualizat:** 2026-08-31
---
## ✅ Gata
### Maria — sincronizare Google Drive
- **Unde:** `maria-whatsapp-bridge/ops/setup-drive.sh`, `rag/sync.py`,
`docs/rclone-google-drive-headless.md` (în romfastsql)
- **Ce face:** `rclone` autorizat cu token obținut pe stația Windows (`rclone authorize`,
fără cont de serviciu Google), dosarul fixat pe ID. `maria-sync.timer` trage la 10 min.
- **Rezultat:** depozitul a trecut de la 6 la 11 documente — au intrat SAF-T D406,
e-Factura (`.md` + `.xml`), roaauto și roagest, care lipseau complet.
- **Terminat:** 2026-08-31
### Maria indexează .xml, preferat peste .md
- **Unde:** `maria-whatsapp-bridge/rag/store.py` (`DOC_EXTENSIONS`,
`documents_for_index`), `rag/indexer.py` (`chunk_xml`), `rag/sync.py`,
`discord-bridge/dashboard/api.py` + `index.html`, `tests/`
- **Ce face:** `.xml` intră în depozit și, când același document există și ca `.md`,
doar `.xml` se indexează (`.xml` > `.md` > `.txt`); cel umbrit rămâne pe disc și e
marcat în dashboard. XML-ul se taie câte un chunk per problemă, cu mesajul de eroare
și rezolvarea împreună.
- **De ce:** la `d406_saft_knowledge`, `.xml` e cu 3 luni mai nou și cu 50% mai mare
decât `.md`. Tăierea pe linii goale ar fi separat eroarea de rezolvare.
- **Verificat:** 20 de teste noi (suita Maria, prima ei suită); puntea Discord 426 pass.
- **Terminat:** 2026-08-31
### Atașamente Discord → Claude (imagini + fișiere text)
- **Unde:** `romfastsql/proxmox/lxc171-claude-agent/discord-bridge/bot.py`
(`build_user_content`), `runner.py` (`user_message`), `tests/test_attachments.py`
- **Ce face:** imaginile png/jpeg/gif/webp ajung ca blocuri `image` (max 4, max 3,5 MB),
fișierele text intră în prompt (max 4, trunchiate la 100 KB), restul sunt doar numite.
Merge și mid-tur, ca steering. Un mesaj doar cu poză nu mai e respins ca gol.
- **Verificat:** 31 de teste noi, suita 426 pass; blocurile de imagine testate pe CLI-ul
real (`--input-format stream-json`), Claude descrie corect imaginea.
- **Terminat:** 2026-08-31
### Plan cu Opus, execuție cu Sonnet
- **Unde:** [docs/flux-dezvoltare.md](docs/flux-dezvoltare.md), referit din `CLAUDE.md`
- **Ce face:** orice cerere de dezvoltare trece întâi printr-un subagent `Plan` pe Opus;
planul se postează în fir, apoi execuția merge pe Sonnet, în sesiunea firului.
- **Terminat:** 2026-08-31
### Memorie comună claude-agent ↔ romfastsql
- **Ce face:** `~/.claude/projects/-workspace-claude-agent/memory` e symlink către memoria
proiectului `romfastsql`, deci firele Discord nu mai pornesc fără context.
- **Terminat:** 2026-08-31
### Repo propriu pentru claude-agent + reparare Gitea
- **Ce face:** `/workspace/claude-agent` e repo separat
(`git@gitea.romfast.ro:romfast/claude-agent.git`), scos din `romfast/workspace`.
Gitlink-urile fără `.gitmodules` care dădeau 500 pe pagina repo-ului `workspace` au
fost scoase din index.
- **Terminat:** 2026-08-31
---
## Jurnal
Cea mai recentă intrare prima. O linie per schimbare de stare.
- 2026-08-31 — ⛔ Maria rulează de fapt pe LXC 104 (prototip, în afara git); mutare pe 171 în curs
- 2026-08-31 — ✅ Maria — sincronizare Google Drive, 6 → 11 documente
- 2026-08-31 — ✅ Maria indexează .xml, preferat peste .md
- 2026-08-31 — ✅ Atașamente Discord → Claude (imagini + fișiere text)
- 2026-08-31 — ✅ Plan cu Opus, execuție cu Sonnet
- 2026-08-31 — ✅ Memorie comună claude-agent ↔ romfastsql
- 2026-08-31 — ✅ Repo propriu pentru claude-agent + reparare Gitea