Files
rar-autopass/TODOS.md
Claude Agent 458c3fd43c fix(5.19): re-snapshot held pe caile de re-punere in coada
Finding #1 (/code-review high): create_prezentari (reactivare) si reresolve_account
re-calculau `held` din comutatorul contului la tranzitia -> queued, dar caile de
re-punere din dashboard/admin lasau `held` pe valoarea VECHE:
  - submissions_admin.requeue_submission (API /repune + web)
  - web post_corectie_trimitere
  - web post_repune_trimitere (calea cod_prestatie)
  - web post_bulk_fix

Consecinta: un rand ingerat pe Auto ON (held=0) care esueaza, apoi contul trecut pe
Auto OFF, la re-punere pastra held=0 -> worker-ul (claim_one AND held=0) il auto-trimitea
la RAR (FINALIZATA ireversibil) desi contul e Auto OFF. Directia inversa: rand held=1
repus pe cont trecut Auto ON ramanea blocat.

Fix: held=held_for_account(conn, account_or_default(account_id)) pe toate cele 4 UPDATE-uri
-> queued (paritate cu caile deja corecte). Bulk-fix hoisteaza snapshot-ul o data inainte
de bucla. Worker requeue_with_backoff neatins (opereaza doar pe randuri deja claim-uite,
held=0 -> corect).

Test: tests/test_held_requeue_snapshot.py (ambele directii). 1535 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 10:12:57 +00:00

5.7 KiB

TODOS

Elemente deferate din review-uri. Negrupte de un PRD curent; de promovat cand devin prioritare.

Din hardening 80/20 (/autoplan, 2026-07-03)

  • Traefik IP-allowlist pe /v1 + /metrics in fereastra de lansare (T4) — cu zero clienti API, suprafata anonima de ingestie n-are apelant legitim extern (ROAAUTO propriu vine de la IP cunoscut). O regula Traefik declarativa (allowlist IP ROAAUTO + admin) elimina complet ingestia anonima in perioada cea mai riscanta. Deferat: P0-1 (auth obligatoriu pe /v1) + T3 (startup guard) acopera deja gaura principala. De activat cand: primesc trafic de scanare pe /v1 SAU inainte de expunere cu presa. Effort: S (config Traefik). Depinde de: acces la config Traefik in Dokploy.

Din PRD 5.12 (2026-06-26)

  • Mai multi utilizatori per firma (flux de invitatie / alaturare la cont) — azi CUI e unic, deci al doilea email care vrea pe aceeasi firma e respins la signup (nu exista flux de „alatura-te firmei"). users permite tehnic mai multe loginuri per account_id, dar nu exista UI. Daca apare nevoia reala (mai multe persoane dintr-o firma), construieste: admin-ul firmei invita un email SAU al doilea cere acces si admin-ul aproba; membership pe account_id. Decizie user (2026-06-26): in 5.12 ramane 1 firma = 1 cont = 1 login + mesaj prietenos la CUI duplicat (US-001); acest flux = livrabila separata.

Din /autoplan PRD 5.11 (2026-06-26)

  • E2E smoke de first-run ca poarta de release — codifica scriptul de dogfooding (import -> mapcoloane -> preview -> commit -> lista apare + contoare) ca test E2E care trebuie sa treaca inainte de orice release. Motiv: cele 8 bug-uri din 5.11 sunt toate first-run friction nedogfooded end-to-end; fara o poarta, reapar ca 8 tichete noi. (CEO F2, severitate high.)

  • Control compensator optional pe auto-trimitere unattended — utilizatorul a ales (2026-06-26) scoaterea completa a hold-ului auto_send. Risc rezidual acceptat: o regula text gresita poate auto-trimite FINALIZATA (terminal, fara undo) pe randuri pe canalul API / remapare inline (fara gate de preview). Daca apar integratori reali, evalueaza un throttle „primele N auto-trimiteri pe o regula text noua cer confirmare" sau un kill-switch per cont. (CEO F5/F6, severitate critical ca risc, dar pre-launch exposure ~zero acum.)

Din /autoplan PRD 5.13 (2026-06-27)

  • Filtre de data 2x2 pe mobil — Azi/7zile/30zile/Custom stivuiesc full-width (4 randuri) pe mobil; grid 2x2 ar fi mai compact. Imbunatatire viitoare. (Design, low.)
  • Sprite <use href="#..."> pentru iconitele Lucideact_btn randeaza SVG inline pe fiecare rand (bloat DOM pe toate viewporturile, ascuns pe desktop). Optimizare deferata; inline acum (P5 simplu > optim prematur). (Eng §1, medium.)
  • "Eroare/Eroare" la nivel routes.py/labels.py — guard-ul de template (pill-only cand eticheta==stare) acopera cazul vizibil; curatarea logicii de continut ramane debt. (Design §2.)
  • Validare premisa "utilizare mobil reala" — inainte de orice extindere responsive viitoare, confirma device-mix-ul (analytics/cerere user). Daca ~95% desktop, nu mai investi in cardificare mobil. (CEO F1, high — premisa nedovedita acum.)

Din /plan-ceo-review PRD 5.15 (2026-06-28)

  • Validare premisa "utilizare mobil reala" (reluare F1 din 5.13) — partea slim/compact a lui 5.15 presupune utilizare reala pe mobil. Inainte de orice rafinare responsive viitoare, confirma device-mix-ul (analytics / cerere user). Daca ~95% desktop, nu mai investi in cardificare mobil. (CEO, high — premisa nedovedita.)

  • Deduparea/etichetarea temelor grafitdark si hartielight — 5.15 adauga 4 teme peste cele 3 existente (7 + Auto). grafit e ~ identic cu dark, hartie ~ identic cu light. Daca selectorul devine confuz sau matricea de test apasa, dedupica sau eticheteaza-le clar. (CEO, low — simplificare optionala.)

  • US-009/US-010 ca PRD separat daca propagarea design e urgenta — salvarea mapare-din-chip si bulk-fix sunt adiacente FUNCTIONALE (acceptate via SELECTIVE EXPANSION), dincolo de obiectivul pur de propagare design. Daca vrei sa livrezi designul rapid, pot fi scoase intr-un PRD propriu. (CEO, low.)

Din raport comparatie mockup 5.16 (2026-06-29)

Restul task-urilor din docs/raport-comparatie-mockup-5.16.md au fost livrate (T-1..T-9). Cele de mai jos raman explicit in coada la cererea userului.

  • Stare de eroare HTMX la incarcarea listei (D-4) — cand /_fragments/submissions da 500 sau pica reteaua, #submissions-wrap ramane blocat pe spinner ("se incarca…") fara mesaj. De adaugat un partial de eroare / hx-on::response-error cu "nu s-a putut incarca, reincearca". Robustete pre-existenta (nu introdusa de 5.16), impact functional real — candidatul cu cea mai mare valoare din lista. (Design D-4, medium.)

  • Retokenizare px completa in template-uri_submissions.html / _preview_* folosesc literali font-size:13px/12px/11px in loc de token-urile --fs-*. 5.16 a corectat doar instanta sub-12px (incalca pragul PRD). Restul ramane debt: schimbarea in masa (13px→--fs-sm =13.5px) misca layout-ul, deci necesita o baza de regresie vizuala inainte. (Eng, bounded — amanat ca scope creep fara baza AC.)

  • Diacritice in textul vizibil pentru user — mockup-urile folosesc diacritice complete ("Observații", "Salvează", "Adaugă"); aplicatia le omite in majoritatea label-urilor. Fontul le randeaza corect (US-001 confirmat). De aplicat pe label-uri/butoane/titluri, pastrand cod/comentariile fara diacritice. Decizie initiala (poarta de gust T3): nu se aplica acum — reintrodus in coada la cererea userului (2026-06-29) ca finisaj viitor. (Transversal, low.)