feat(editor): editor prestatii unificat in modal - un select, un rand de chips (PRD 5.23)

Inlocuieste cele 3 controale de asociere cod RAR cu un singur rand de chips
+ un singur select care adauga instant la change. Stare = un hidden chips_state
JSON versionat; post_form_chips redus la 2 actiuni (add/remove). Optgroup
Sugestii (fuzzy/k-NN) + optiune "Nu se declara la RAR" in select, cu tinta
implicita evidentiata si placeholder care o numeste. exclus persistat prin
payload_json (treapta noua de precedenta in resolve_prestatii, round-trip complet).

Siguranta: itemii exclusi sunt scosi din payload la momentul trimiterii
(worker split_prestatii_excluse inainte de build_rar_payload + filtru defensiv),
ca sa nu ajunga NICIODATA la RAR ca codPrestatie:null.

Suita: 1680 passed, 1 skipped.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-08 15:45:34 +00:00
parent 0bc618763e
commit 56ebe1f7cb
20 changed files with 2839 additions and 552 deletions

View File

@@ -2,6 +2,44 @@
Elemente deferate din review-uri. Negrupte de un PRD curent; de promovat cand devin prioritare.
## Din /autoplan PRD 5.23 (2026-07-07)
- [ ] **Bulk in preview: "aplica maparea la toate cele N randuri identice"** — o decizie de mapare
repetata per rand e adevaratul consumator de timp; editorul unificat nu o rezolva. Ce: dupa o
mapare in preview/modal, ofera aplicarea la toate randurile din batch cu aceeasi operatie
nemapata. De ce: reduce deschiderile de modal (drumul 10x — vocea externa CEO). Pro: taie direct
timpul de corectie pe importuri mari. Contra: atinge panoul de preview (non-goal in 5.23).
Context: `reresolve_account` exista deja pentru re-rezolvare dupa `save_mapping` — de verificat
daca nu acopera deja cazul la nivel de cont; daca da, TODO-ul devine doar UI de confirmare.
Effort: M→S (CC). Prioritate: P2. Depinde de: 5.23 livrat.
- [ ] **Metrici de baza pentru bucla de mapare** — cate deschideri de modal per import, % randuri
auto-rezolvate, % sugestii acceptate. De ce: fara ele nu stim daca editorul (5.23) sau motorul
(5.14/5.18) merita urmatoarea investitie. Pro: decizie de produs pe date. Contra: telemetrie
noua. Context: contorizare in `/form-chips` + import commit; expunere in /metrics existent.
Effort: S. Prioritate: P3.
- [ ] **A11y touch targets pe chips (× sub 44px)** — UI-ul compact 11-12px face tintele de atins
mici pe mobil. De ce: operare de pe telefon in service. Pro: mai putine mis-tap-uri. Contra:
chips mai inalti = mai putine pe rand. Context: decizie 5.23 = consecventa cu designul compact
existent; de revizitat la un audit a11y global. Effort: S. Prioritate: P3.
## Din executie + code-review 5.23 (2026-07-08)
- [ ] **Curata calea legacy `/trimitere/{id}/mapeaza`** — formular per-operatie separat, cu propriile
"Sugestii:", care coexista cu editorul unificat de chips. Nu interfereaza (dispare cand tinta e
setata), dar e cod mort de UX vechi. Context: semnalat de worker la fix-ul de randare initiala.
Effort: S. Prioritate: P3.
- [ ] **Autocomplete/cautare in selectul de coduri RAR** — non-goal explicit in 5.23 (select nativ
pastrat). De reevaluat daca nomenclatorul creste peste ~18 coduri fixe. Effort: M. Prioritate: P3.
- [ ] **Race buton Salveaza in timpul unui `/form-chips` in zbor** — sectiunea chips e inerta pe
`.htmx-request`, dar butonul Salveaza al formularului parinte nu e blocat; un submit foarte rapid
ar putea trimite un `chips_state` neactualizat. Improbabil (dedup + fereastra mica). Context:
finding PLAUSIBLE din code-review. Effort: S. Prioritate: P3.
- [ ] **Conflict mapare din tab Mapari vs item marcat `exclus` din chips** — un item marcat exclus
explicit din editor domina o mapare salvata ulterior din tab-ul Mapari (`resolve_prestatii`
precedenta item-exclus > mapare cont); utilizatorul poate sa nu inteleaga de ce maparea "nu tine".
De clarificat semantica sau de adaugat un semnal in UI. Context: finding PLAUSIBLE din code-review.
Effort: S. Prioritate: P3.
## Din /autoplan PRD 5.21 (2026-07-06)
- [ ] **CLI administrare cache embeddings (`python3 -m tools.embcache stats|clear|rebuild`)** — v1 foloseste