Skip to content

Changelog

Changelog

Επιλεγμένα σημαντικά σημεία των πρόσφατων εκδόσεων. Για τις πλήρεις εκδόσεις API και την πολιτική διασπαστικών αλλαγών (breaking changes), ανατρέξτε στην Έκδοση API & Πολιτική LTS.

Λεπτομερείς αλλαγές σε μεμονωμένα endpoints: Προδιαγραφή OpenAPI και διαδραστική αναφορά API.


2026-04 · Analytics πίνακα ελέγχου (Dashboard) ανά QR-Code

  • Dashboard: Το κουμπί Analytics στη λίστα QR-Code ανοίγει πλέον τη σελίδα στατιστικών του αντίστοιχου QR-Code στη διαδρομή /dashboard/codes/{id}.
  • Routing: Το ψευδώνυμο (alias) /dashboard/codes συνεχίζει να ανακατευθύνει στο /dashboard, αλλά δεν παρεμποδίζει πλέον λεπτομερείς διαδρομές όπως η /dashboard/codes/{id}.
  • API: Η σελίδα λεπτομερειών φορτώνει το QR-Code απευθείας μέσω GET /v1/codes/:id. Έτσι, δεν εξαρτάται πλέον από τα όρια σελιδοποίησης (pagination limits) της λίστας.
  • Tests: Οι δοκιμές παλινδρόμησης (regression tests) καλύπτουν την ανακατεύθυνση του alias και την απευθείας φόρτωση του κώδικα.

2026-04 · Διάλογος διαγραφής QR-Code στο Dashboard

  • Dashboard: Το εικονίδιο του κάδου απορριμμάτων στη λίστα QR-Code ανοίγει πλέον έναν προσαρμοσμένο διάλογο React αντί για ένα εγγενές (native) αναδυόμενο παράθυρο του προγράμματος περιήγησης.
  • Feedback: Μετά τη διαγραφή, εμφανίζεται μια ειδοποίηση toast για επιτυχία ή σφάλμα.
  • Tests: Το αρχείο packages/dashboard/tests/dashboard.test.ts αποτρέπει παλινδρομήσεις στη μέθοδο confirm() στη ροή διαγραφής QR-Code.

2026-04 · Δοκιμή σύντομου συνδέσμου Dashboard για δυναμικά QR-Codes

  • Dashboard: Οι σύντομοι κωδικοί (shortcodes) στη λίστα QR-Code είναι πλέον άμεσα κλικάσιμοι ως εξωτερικοί σύνδεσμοι ανακατεύθυνσης. Το εικονίδιο εξωτερικού συνδέσμου δίπλα π.χ. στο wu3qaa ανοίγει τη διεύθυνση https://qr3.app/{shortCode} σε νέα καρτέλα.
  • i18n: Προστέθηκαν κείμενα tooltip για Γερμανικά και Αγγλικά.
  • Tests: Το αρχείο packages/dashboard/tests/dashboard.test.ts προστατεύει το href του συνδέσμου, τη συμπεριφορά νέας καρτέλας, το noopener noreferrer και το εικονίδιο από παλινδρομήσεις.

2026-04 · Διαδρομή Redirect-Worker για δυναμικά QR-Codes

  • Fix: Τα δυναμικά QR-Codes στη διεύθυνση https://qr3.app/{shortCode} επεξεργάζονται ξανά από τον Redirect-Worker. Η διαδρομή παραγωγής (production route) χρησιμοποιεί πλέον το qr3.app/*, επειδή οι διαδρομές Cloudflare Workers δεν υποστηρίζουν παραμέτρους διαδρομής :code.
  • Θωράκιση: Οι διαδρομές που δεν ταιριάζουν προωθούνται στο αρχικό landing origin, ώστε κανονικές σελίδες όπως η /de/pricing να μην αποκλείονται από τον Redirect-Worker.
  • Tests: Το αρχείο packages/redirect/tests/unit/redirect.test.ts ελέγχει τη διαδρομή wildcard, την επεξεργασία shortcode και την προώθηση στο origin (pass-through).

2026-04 · Επισκόπηση σαρώσεων DPP χώρου εργασίας (Workspace) (Q3.4.2)

  • Neu: GET /v1/workspace/stats/dpp?days=30 — συγκεντρώνει όλες τις σαρώσεις dpp_scans του χώρου εργασίας (workspace) του API-Key (active_dpps, scans_by_day, top_dpps με όνομα προϊόντος/κατηγορία).
  • Dashboard: Κάρτα στην αρχική σελίδα (/dashboard) με ραβδόγραμμα 30 ημερών + κορυφαίες λίστες (top lists) — παράλληλα με τις κάρτες QR-Code.
  • Public: Σύντομος σύνδεσμος μάρκετινγκ GET /dpp/dpp_<id> (ένα τμήμα) για ζωντανές επιδείξεις (live demos), παράλληλα με το /dpp/{gtin}/{serial}.

2026-04 · Analytics σαρώσεων DPP (Q3.4.1)

  • Neu: GET /v1/dpp/:id/stats?days=30 — συγκεντρωτικές σαρώσεις του δημόσιου GS1 resolver ανά DPP. Πεδία: total_scans, period_scans, scans_by_day, top_countries, top_devices, top_representations.
  • Neu: Πίνακας dpp_scans (Migration 0011) — ξεχωριστά από το scans (Redirect-Worker). Οι διευθύνσεις IP κατακερματίζονται (hashed) με καθημερινά εναλλασσόμενο salt, οι ακατέργαστες IP δεν φτάνουν ποτέ στη D1.
  • Dashboard: Κάρτα μικρογραφήματος (SVG, χωρίς βιβλιοθήκη γραφημάτων) στη διαδρομή /dashboard/dpp/:dppId με ράβδους 30 ημερών + αναλύσεις των κορυφαίων 3 (top-3 breakdowns). Κατάσταση κενού (empty-state) μόλις ένα DPP είναι ενεργό αλλά δεν έχει ακόμη σαρώσεις.

2026-04 · Ζωντανός προσομοιωτής συμμόρφωσης ΕΕ (Live EU Compliance Simulator) (Q3.3.7)

  • Neu: POST /v1/dpp/:id/validate-update — προσομοιώνει μερικές ενημερώσεις χωρίς διατήρηση κατάστασης (stateless) (κατάσταση, λίστα αγορών, …) χωρίς μόνιμη αποθήκευση. Η απάντηση περιλαμβάνει τα eu_compliance + preview.changed_fields.
  • Dashboard: Κάρτα προσομοιωτή στις λεπτομέρειες DPP (/dashboard/dpp/:dppId) — chips για DE/AT/FR/IT/ES/NL + Custom, αναπτυσσόμενο μενού κατάστασης (status dropdown), Preview EU impact / Save changes / Reset. Μη αποκλειστικό (non-blocking) μέσω του Remix useFetcher.
  • Θωράκιση: Εξωτερικευμένοι βοηθοί προσομοιωτή (readUpdatePatchFromForm, marketCountriesKey) + 18 νέα unit tests. Διόρθωση σφάλματος (bugfix): Η εισαγωγή μεμονωμένου μη-ISO κειμένου δεν διαγράφει πλέον τη λίστα αγορών.

2026-04 · Ζωντανή προεπισκόπηση συμμόρφωσης ΕΕ στη φόρμα δημιουργίας (Q3.3.6)

  • Geändert: Το POST /v1/dpp/validate παρέχει επιπλέον το eu_compliance — ο ίδιος validator όπως στο GET /v1/dpp/:id/eu-compliance, stateless πριν από την αποθήκευση.
  • Dashboard: Προεπισκόπηση κάτω από το υπάρχον πλαίσιο επικύρωσης (validation panel) + νέο Save-Guard-Banner πριν από τα κουμπιά υποβολής (submit), εάν υπάρχουν εκκρεμή σφάλματα/προειδοποιήσεις (Errors/Warnings) (i18n-πληθυντικός DE/EN).

2026-04 · Εργαλείο ελέγχου συμμόρφωσης ΕΕ (EU-Validator) + UI κλωστοϋφαντουργικών (Q3.3.4 + Q3.3.5)

  • Neu: Εργαλείο ελέγχου συμμόρφωσης ΕΕ (EU-Compliance-Validator) με 5 κανόνες κλωστοϋφαντουργικών (TEXTILE_AGEC_REQUIRED, TEXTILE_MICROPLASTICS_CONSISTENCY, TEXTILE_SVHC_THRESHOLD, TEXTILE_GREENWASHING, TEXTILE_ESPR_READY).
  • Neu: GET /v1/dpp/:id/eu-compliance με compliant / espr_ready / issues[] / summary.
  • Dashboard: Ενότητα συμμόρφωσης ΕΕ (EU-Compliance-Section) στις λεπτομέρειες DPP (πλακίδια σύνοψης, ομαδοποιημένες κάρτες ζητημάτων, σήμα ESPR-Ready στην κεφαλίδα).

2026-04 · Σχήμα DPP κλωστοϋφαντουργικών (Q3.3.1–Q3.3.3)

  • Neu: Κατηγορία textile με υποχρεωτική αλυσίδα AGEC (Ύφανση/Πλέξιμο → Βαφή/Εκτύπωση → Ραφή), ανά ίνα origin_country + recycled_pct, svhc_substances[], ESPR-Opt-in (PEF, διάρκεια ζωής, Recyclability).
  • Neu: Βασικό πεδίο market_countries: string[] (ISO 3166-1 alpha-2) σε όλες τις κατηγορίες DPP — ελέγχει τους ειδικούς κανόνες AGEC για τη Γαλλία (FR) και την υποχρεωτική γαλλική σημείωση καταναλωτή.
  • Neu: Πρότυπο HTML καταναλωτή (Consumer-HTML-Template) με πλαίσιο προειδοποίησης μικροπλαστικών AGEC, αλυσίδα προέλευσης 3 σταδίων (flag-pills), λίστα SVHC, ενότητα Durability και Recyclability.
  • Migration: 0010_dpp_market_countries (D1).

2026-04 · Μαζική εισαγωγή DPP (Q3.2.1–Q3.2.5)

  • Neu: Το POST /v1/dpp/import δέχεται CSV und XLSX (συμβατό με Workers μέσω του SheetJS xlsx, ~283 KB gzip bundle).
  • Skaliert: Όριο βάσει προγράμματος (Free 100 → Enterprise 10k) + τμηματικό (chunked) db.batch() ανά 100 + όριο σώματος (body limit) 5 MB.
  • Neu: Αναφορά σφαλμάτων ως CSV στο πεδίο errors_csv της απάντησης 201. Το GET /v1/dpp/import/templates/:category?format=csv|xlsx παρέχει έτοιμα πρότυπα για μπαταρίες και κλωστοϋφαντουργικά.
  • Dashboard: Μεταφόρτωση με μεταφορά και απόθεση (Drag-and-Drop-Upload) στη διαδρομή /dashboard/dpp/import με template-proxy και ενσωματωμένη (inline) λήψη CSV.

Μη διασπαστικές αλλαγές (Non-Breaking) — Επεκτάσεις LTS

Όλες οι παραπάνω αλλαγές είναι προσθετικές:

  • Οι υπάρχοντες πελάτες (clients) του POST /v1/dpp/validate αγνοούν το νέο πεδίο eu_compliance χωρίς αλλαγές.
  • Οι υπάρχουσες ροές battery παραμένουν αμετάβλητες.
  • Το πεδίο market_countries είναι προαιρετικό και έχει ως προεπιλογή το [].

Δείτε την Έκδοση API για την πολιτική διασπαστικών αλλαγών (breaking changes).