Changelog
Changelog
Kuraterede højdepunkter fra de seneste udgivelser. For fuldstændige API-versioner og breaking change-politik, se API-versionering & LTS-politik.
Detaljerede ændringer for de enkelte endepunkter: OpenAPI-specifikation og interaktiv API-reference.
2026-04 · Dashboard-analyse pr. QR-kode
- Dashboard: Analyse-knappen i QR-kodelisten åbner nu statistikside for den pågældende QR-kode under
/dashboard/codes/{id}. - Routing: Aliasset
/dashboard/codesviderestiller stadig til/dashboard, men fanger ikke længere detaljerede ruter som/dashboard/codes/{id}. - API: Detaljesiden indlæser QR-koden direkte via
GET /v1/codes/:id; derved er den ikke længere afhængig af grænser for listepaginering. - Tests: Regressionstest dækker alias-viderestillingen og den direkte indlæsning af koden.
2026-04 · Dashboard-slettedialog for QR-koder
- Dashboard: Skraldespandsikonet i QR-kodelisten åbner nu en dedikeret React-dialog i stedet for en nativ browser-popup.
- Feedback: Efter sletning vises en toast-besked for succes eller fejl.
- Tests:
packages/dashboard/tests/dashboard.test.tsforhindrer regressioner påconfirm()i QR-kode-sletteflowet.
2026-04 · Dashboard-kortlink-test for dynamiske QR-koder
- Dashboard: Shortcodes i QR-kodelisten er nu direkte klikbare som eksterne viderestillingslinks. Det eksterne link-ikon ved siden af f.eks.
wu3qaaåbnerhttps://qr3.app/{shortCode}i en ny fane. - i18n: Tooltip-tekster tilføjet for tysk og engelsk.
- Tests:
packages/dashboard/tests/dashboard.test.tsbeskytter link-href, ny fane-adfærd,noopener noreferrerog ikon mod regressioner.
2026-04 · Redirect-Worker-rute for dynamiske QR-koder
- Fix: Dynamiske QR-koder under
https://qr3.app/{shortCode}behandles igen af Redirect-Worker. Produktionsruten bruger nuqr3.app/*, fordi Cloudflare Worker-ruter ikke understøtter:code-stiparametre. - Hærdning: Ikke-matchende stier sendes videre til landing-origin, så normale sider som
/de/pricingikke blokeres af Redirect-Worker. - Tests:
packages/redirect/tests/unit/redirect.test.tstester wildcard-ruten, shortcode-behandling og origin-pass-through.
2026-04 · Workspace-DPP-scannings-oversigt (Q3.4.2)
- Ny:
GET /v1/workspace/stats/dpp?days=30— aggregerer alledpp_scansfor API-nøgle-workspacet (active_dpps,scans_by_day,top_dppsmed produktnavn/kategori). - Dashboard: Kort på startside (
/dashboard) med 30-dages søjlediagram + toplister — parallelt med QR-kode-kortene. - Public: Marketing-kortlink
GET /dpp/dpp_<id>(ét segment) til live-demoer, parallelt med/dpp/{gtin}/{serial}.
2026-04 · DPP-scanningsanalyse (Q3.4.1)
- Ny:
GET /v1/dpp/:id/stats?days=30— aggregerede scanninger fra den offentlige GS1-resolver pr. DPP. Felter:total_scans,period_scans,scans_by_day,top_countries,top_devices,top_representations. - Ny: Tabel
dpp_scans(migration0011) — adskilt frascans(Redirect-Worker). IP-adresser hashes med en dagligt roterende salt, rå IP’er når aldrig D1. - Dashboard: Mini-diagramkort (SVG, intet diagrambibliotek) på
/dashboard/dpp/:dppIdmed 30-dages søjler + top 3-opdelinger. Empty-state så snart et DPP er live, men endnu ikke har haft nogen scanninger.
2026-04 · Live EU-overensstemmelsessimulator (Q3.3.7)
- Ny:
POST /v1/dpp/:id/validate-update— simulerer delvise opdateringer stateless (status, markedsliste, …) uden persistens. Svaret indeholdereu_compliance+preview.changed_fields. - Dashboard: Simulatorkort i DPP-detaljer (
/dashboard/dpp/:dppId) — chips tilDE/AT/FR/IT/ES/NL+ Custom, status-dropdown, Forhåndsvis EU-indvirkning / Gem ændringer / Nulstil. Non-blocking via RemixuseFetcher. - Hærdning: Udflyttede simulator-hjælpere (
readUpdatePatchFromForm,marketCountriesKey) + 18 nye enhedstest; fejlretning: Enlig ikke-ISO-input sletter ikke længere markedslisten.
2026-04 · Live EU-overensstemmelsesforhåndsvisning i oprettelsesformularen (Q3.3.6)
- Ændret:
POST /v1/dpp/validateleverer yderligereeu_compliance— samme validator somGET /v1/dpp/:id/eu-compliance, stateless før lagring. - Dashboard: Forhåndsvisning under det eksisterende valideringspanel + nyt Save-Guard-banner før submit-knapperne, hvis der er udestående fejl/advarsler (i18n-pluralisering DE/EN).
2026-04 · EU-validator + tekstil-UI (Q3.3.4 + Q3.3.5)
- Ny: EU-overensstemmelsesvalidator med 5 tekstilregler (
TEXTILE_AGEC_REQUIRED,TEXTILE_MICROPLASTICS_CONSISTENCY,TEXTILE_SVHC_THRESHOLD,TEXTILE_GREENWASHING,TEXTILE_ESPR_READY). - Ny:
GET /v1/dpp/:id/eu-compliancemedcompliant/espr_ready/issues[]/summary. - Dashboard: EU-overensstemmelsessektion i DPP-detaljer (oversigtsfliser, grupperede problemkort, ESPR-Ready-badge i headeren).
2026-04 · Tekstil-DPP-skema (Q3.3.1–Q3.3.3)
- Ny: Kategori
textilemed obligatorisk AGEC-kæde (vævning/strikning → farvning/trykning → konfektionering), pr. fiberorigin_country+recycled_pct,svhc_substances[], ESPR-tilvalg (PEF, levetid, genanvendelighed). - Ny: Basisfelt
market_countries: string[](ISO 3166-1 alpha-2) på alle DPP-kategorier — styrer FR-specifikke AGEC-regler og den franske obligatoriske forbrugeroplysning. - Ny: Forbruger-HTML-skabelon med AGEC-mikroplastadvarselsboks, 3-trins oprindelseskæde (flag-piller), SVHC-liste, holdbarheds- og genanvendelighedssektion.
- Migration:
0010_dpp_market_countries(D1).
2026-04 · DPP-masseimport (Q3.2.1–Q3.2.5)
- Ny:
POST /v1/dpp/importaccepterer CSV og XLSX (Worker-kompatibel via SheetJSxlsx, ~283 KB gzip bundle). - Skaleret: abonnementsbaseret grænse (Free 100 → Enterprise 10k) + chunked
db.batch()à 100 + 5 MB body-grænse. - Ny: Fejlrapport som CSV i feltet
errors_csvi 201-svaret;GET /v1/dpp/import/templates/:category?format=csv|xlsxleverer færdige skabeloner til batteri og tekstil. - Dashboard: Drag-and-drop-upload under
/dashboard/dpp/importmed skabelon-proxy og inline CSV-download.
Ikke-breaking — LTS-udvidelser
Alle ovennævnte ændringer er additive:
- Eksisterende
POST /v1/dpp/validate-klienter ignorerer det nyeeu_compliance-felt uden ændringer. - Eksisterende
battery-flows er uændrede. market_countrieser valgfri og har standardværdien[].
Se API-versionering for breaking change-politikken.