Files
claude-agent/TODO.md
Claude Agent c97ba0ce9c docs(todo): Maria e mutata si functionala pe LXC 171
Asociere reusita, prototipul de pe 104 oprit, si reparat filtrul de JID care
arunca tacut toate mesajele dupa asociere (WhatsApp foloseste acum LID).
Nimic nu mai e blocat.

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

113 lines
5.2 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
*(nimic blocat)*
---
## 🔵 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 mutată pe LXC 171, cu tot ce s-a construit
- **Ce s-a făcut:** LXC 171 asociat la WhatsApp (+40723197939, dispozitiv nou al aceluiași
cont); prototipul de pe LXC 104 oprit și dezactivat. `llama-qwen35` rămâne pe 104 și e
folosit de 171 prin rețea (`LLM_URL=http://10.0.20.161:8091`).
- **Rezultat:** Maria a trecut de la 24 de chunk-uri dintr-un singur fișier la 173 din 11
documente, plus sincronizare Drive automată.
- **Un blocaj găsit pe drum:** după asociere nu răspundea nimic. WhatsApp livrează
self-chat-ul cu JID de tip LID (`51947713372214@lid`), iar filtrul compara doar cu
`<număr>@s.whatsapp.net` — arunca tot, fără nicio urmă în log. Reparat în
`whatsapp/index.js`; mesajele respinse se loghează acum cu motivul.
- **Verificat:** „token efactura expirat" → preluat, căutat în RAG, răspuns trimis.
- **Terminat:** 2026-08-31
### 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 mutată pe LXC 171; reparat filtrul care arunca mesajele LID
- 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