v0.99.14: GS1 identifier integrity and prefixes required to publish
GS1 identifier integrity lands end to end: serial and batch identifiers are capped at entry to the length the resolver enforces, and registering a GS1 prefix becomes required to publish on every plan.
GS1 identifier integrity
- The 20-character cap is enforced at data entry for serial numbers (GS1 AI 21) and batch/lot IDs (AI 10): at most 20 printable ASCII characters, no spaces, with a specific error message when a value breaks the rule. Previously an over-length serial saved and published without complaint, and the passport's item-level Digital Link then returned "Product Not Found" forever; two live passports were unreachable at item level this way before the check shipped. See the 20-character rule.
- A registered GS1 prefix is required to publish, on every plan. The previous paid-plan-only interim is retired; with no prefix registered, the publish gate reports "GS1 prefix not registered — required to publish" and Company Profile → GS1 Prefixes is the resolution path. Together with global GTIN uniqueness and the ambiguity chooser from v0.99.11, this closes the practical path to publishing against a GTIN you do not own. See GS1 prefixes.
Voluntary passport polish
- The DPP Readiness dashboard card now counts only fields the gate actually enforces, so it agrees with the wizard header for voluntary products instead of showing the mandated-scope count.
Platform
- The runtime moved to Node.js 24 LTS, alongside a dependency-currency tranche. No API behaviour change.
- Consent-banner behaviour on the public site is covered by automated end-to-end tests.