Skip to main content

v0.99.4 — Product Withdrawal & Recall, Honest Publish Gate, Full Verifier Review

A compliance-workflow release. Adds end-to-end product withdrawal and recall handling (including a proper public view for a recalled passport), an honest publish gate with a clear readiness picture, and a full-submission view for verifiers.

Product Withdrawal and Recall

Operators can now formally withdraw a published battery passport, with a reason aligned to EU Battery Regulation and the General Product Safety Regulation (for example recall, safety defect, counterfeit, end of life, market withdrawal, supersession, or non-compliance).

  • Public withdrawn passport page. When a passport has been withdrawn, scanning its QR code or visiting its link now shows a clear, styled notice: the withdrawal reason, the date, a statement from the manufacturer, a link to any successor product, and contact details. This replaces a bare "not found" response with an honest, informative page.
  • Re-edit window and republication. After withdrawal, operators get an edit window to correct and republish the passport, with clear banners and a warning before the window closes.
  • Verifier visibility. Verifiers have a dedicated "Withdrawn Products" view so withdrawals are auditable across the products they oversee.

The machine-readable API mirrors this: a request for a withdrawn passport returns a clear "withdrawn" response with the reason and any successor link, so connected systems can react correctly. See DPP endpoints.

Honest Publish Gate

A named publish gate now runs before any passport goes live, on both the submit-for-review path and the verifier approval path. Instead of a single percentage, it reports specific, actionable gaps:

  • Missing mandatory regulatory fields
  • A carbon footprint whose lifecycle stages do not add up
  • An unsatisfied certificate requirement
  • Missing traceability links
  • A malformed battery identifier or a GTIN that does not match your registered GS1 prefixes

DPP Readiness View

The misleading single "percent complete" indicator has been replaced with a readiness view across five honest dimensions: form fields, the compliance gate, documents, traceability, and identity. QR code generation is held back until a passport is genuinely ready, and overclaiming "verified" badges have been removed. The traceability score is now a real computed value rather than a placeholder.

Full Verifier Review

Verifiers now see the complete submission when reviewing a passport, including the product data, every uploaded certificate, and the supplier chain, rather than a single document in isolation. This closes a gap where a verifier could approve without full context.

Trust and Integrity

  • Published passports now carry a JSON-LD trust envelope, and each published version is captured as an integrity-checked snapshot.
  • A version history route lets a holder of a passport retrieve a specific published version for audit. See DPP endpoints.
  • A pre-publish preview and a nightly compliance recheck were added so issues are surfaced early and kept visible over time.

Security

  • Cross-tenant protections were strengthened across component linking, traceability, and status changes, with database-level guards against unauthorised status flips.
  • The email unsubscribe endpoint was hardened with rate limiting and stricter validation.
  • Personal data scrubbing in error reporting was improved.
  • Battery management system telemetry is now rejected for products that have been withdrawn, revoked, or deprecated.

Fixes

  • Fixed a crash on the products list when a product was in a withdrawn or revoked state.
  • The public sitemap now refreshes when products are approved, deprecated, withdrawn, or republished.
  • The product wizard preserves uploaded file fields when the form re-renders.