Sari la conținut

Changelog

Changelog

Repere selectate din ultimele versiuni. Pentru versiunile complete de API și politica privind modificările incompatibile (breaking changes), consultați Versiunea API și politica LTS.

Modificări detaliate pentru fiecare endpoint în parte: Specificația OpenAPI și Referința API interactivă.


2026-04 · Analize în Dashboard per cod QR

  • Dashboard: Butonul de analize din lista de coduri QR deschide acum pagina de statistici a codului QR respectiv la /dashboard/codes/{id}.
  • Routing: Aliasul /dashboard/codes redirecționează în continuare către /dashboard, dar nu mai interceptează rutele detaliate precum /dashboard/codes/{id}.
  • API: Pagina de detalii încarcă codul QR direct prin GET /v1/codes/:id; astfel, aceasta nu mai depinde de limitele de paginare ale listei.
  • Teste: Testele de regresie acoperă redirecționarea aliasului și încărcarea directă a codului.

2026-04 · Dialog de ștergere în Dashboard pentru codurile QR

  • Dashboard: Pictograma de coș de gunoi din lista de coduri QR deschide acum un dialog React dedicat, în locul unui popup nativ de browser.
  • Feedback: După ștergere, apare o notificare de tip toast pentru succes sau eroare.
  • Teste: packages/dashboard/tests/dashboard.test.ts previne regresiile pentru confirm() în fluxul de ștergere a codurilor QR.
  • Dashboard: Codurile scurte (shortcodes) din lista de coduri QR pot fi acum accesate direct ca linkuri externe de redirecționare. Pictograma de link extern de lângă, de exemplu, wu3qaa deschide https://qr3.app/{shortCode} într-o filă nouă.
  • i18n: S-au adăugat textele pentru tooltip în germană și engleză.
  • Teste: packages/dashboard/tests/dashboard.test.ts protejează href-ul linkului, comportamentul de filă nouă, noopener noreferrer și pictograma împotriva regresiilor.

2026-04 · Rută Redirect-Worker pentru coduri QR dinamice

  • Fix: Codurile QR dinamice de la https://qr3.app/{shortCode} sunt procesate din nou de Redirect-Worker. Ruta de producție folosește acum qr3.app/*, deoarece rutele Cloudflare Workers nu acceptă parametri de cale de tip :code.
  • Securizare: Căile care nu se potrivesc sunt redirecționate către originea paginii de destinație (landing origin), astfel încât paginile normale precum /de/pricing să nu fie blocate de Redirect-Worker.
  • Teste: packages/redirect/tests/unit/redirect.test.ts verifică ruta wildcard, procesarea codurilor scurte și trecerea directă către origine (origin pass-through).

2026-04 · Prezentare generală scanări DPP în Workspace (Q3.4.2)

  • Neu: GET /v1/workspace/stats/dpp?days=30 — agreghează toate scanările dpp_scans din spațiul de lucru (workspace) al cheii API (active_dpps, scans_by_day, top_dpps cu nume produs/categorie).
  • Dashboard: Card pe pagina principală (/dashboard) cu diagramă cu bare pe 30 de zile + liste de top — în paralel cu cardurile de coduri QR.
  • Public: Link scurt de marketing GET /dpp/dpp_<id> (un singur segment) pentru demo-uri live, în paralel cu /dpp/{gtin}/{serial}.

2026-04 · Analize scanări DPP (Q3.4.1)

  • Neu: GET /v1/dpp/:id/stats?days=30 — scanări agregate ale resolverului public GS1 per DPP. Câmpuri: total_scans, period_scans, scans_by_day, top_countries, top_devices, top_representations.
  • Neu: Tabelul dpp_scans (migrarea 0011) — separat de scans (Redirect-Worker). Adresele IP sunt criptate (hashed) cu un salt rotativ zilnic, adresele IP brute neajungând niciodată în D1.
  • Dashboard: Card cu mini-grafic (SVG, fără bibliotecă de grafice) pe /dashboard/dpp/:dppId cu bare pe 30 de zile + defalcări Top 3. Stare goală (empty state) de îndată ce un DPP este live, dar nu are încă scanări.

2026-04 · Simulator live de conformitate UE (Q3.3.7)

  • Neu: POST /v1/dpp/:id/validate-update — simulează actualizări parțiale stateless (status, listă de piețe, …) fără persistență. Răspunsul conține eu_compliance + preview.changed_fields.
  • Dashboard: Card simulator în detaliile DPP (/dashboard/dpp/:dppId) — cipuri pentru DE/AT/FR/IT/ES/NL + personalizat, meniu derulant pentru status, Preview EU impact / Save changes / Reset. Non-blocking prin Remix useFetcher.
  • Securizare: Funcții ajutătoare (helpers) de simulator externalizate (readUpdatePatchFromForm, marketCountriesKey) + 18 teste unitare noi; remediere bug: introducerea unei singure valori non-ISO nu mai șterge lista de piețe.

2026-04 · Previzualizare live a conformității UE în formularul de creare (Q3.3.6)

  • Geändert: POST /v1/dpp/validate returnează în plus eu_compliance — același validator ca GET /v1/dpp/:id/eu-compliance, stateless înainte de salvare.
  • Dashboard: Previzualizare sub panoul de validare existent + un nou banner de protecție la salvare (Save-Guard) înainte de butoanele de trimitere, dacă există erori/avertismente nerezolvate (pluralizare i18n DE/EN).

2026-04 · Validator UE + UI pentru textile (Q3.3.4 + Q3.3.5)

  • Neu: Validator de conformitate UE cu 5 reguli pentru textile (TEXTILE_AGEC_REQUIRED, TEXTILE_MICROPLASTICS_CONSISTENCY, TEXTILE_SVHC_THRESHOLD, TEXTILE_GREENWASHING, TEXTILE_ESPR_READY).
  • Neu: GET /v1/dpp/:id/eu-compliance cu compliant / espr_ready / issues[] / summary.
  • Dashboard: Secțiune de conformitate UE în detaliile DPP (dale de rezumat, carduri de probleme grupate, insignă ESPR-Ready în antet).

2026-04 · Schemă DPP pentru textile (Q3.3.1–Q3.3.3)

  • Neu: Categoria textile cu lanț obligatoriu AGEC (țesut/tricotat → vopsit/imprimat → confecționare), per fibră origin_country + recycled_pct, svhc_substances[], ESPR-Opt-in (PEF, durată de viață, Recyclability).
  • Neu: Câmp de bază market_countries: string[] (ISO 3166-1 alpha-2) pentru toate categoriile DPP — controlează regulile AGEC specifice Franței și nota obligatorie pentru consumatorii francezi.
  • Neu: Șablon HTML pentru consumatori cu casetă de avertizare AGEC pentru microplastic, lanț de origine în 3 etape (pastile cu steaguri), listă SVHC, secțiune de Durability și Recyclability.
  • Migrare: 0010_dpp_market_countries (D1).

2026-04 · Import în masă (Bulk) DPP (Q3.2.1–Q3.2.5)

  • Neu: POST /v1/dpp/import acceptă CSV și XLSX (compatibil cu Workers prin SheetJS xlsx, pachet gzip de ~283 KB).
  • Scalat: limită bazată pe plan (Free 100 → Enterprise 10k) + db.batch() fragmentat (chunked) de câte 100 + limită de 5 MB pentru body.
  • Neu: Raport de erori în format CSV în câmpul errors_csv al răspunsului 201; GET /v1/dpp/import/templates/:category?format=csv|xlsx oferă șabloane gata de utilizare pentru baterii și textile.
  • Dashboard: Încărcare prin glisare și plasare (drag-and-drop) la /dashboard/dpp/import cu proxy de șabloane și descărcare CSV inline.

Modificări non-breaking — Extinderi LTS

Toate modificările menționate mai sus sunt aditive:

  • Clienții existenți ai POST /v1/dpp/validate ignoră noul câmp eu_compliance fără modificări.
  • Fluxurile battery existente rămân neschimbate.
  • market_countries este opțional și are valoarea implicită [].

Consultați Versiunea API pentru politica privind modificările incompatibile (breaking changes).