# 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 Lucide** — `act_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 grafit~dark si hartie~light** — 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.)
