v2.14.0
v2.14.0 — The desktop pack verifies
Minor release. One additive migration (nullable witness columns). ## Operator-facing **A desktop packer can no longer close a B2B pack blind.** Every line must be scanned (exact match
Minor release. One additive migration (nullable witness columns).
Operator-facing
A desktop packer can no longer close a B2B pack blind. Every line must be scanned (exact match — alternate barcodes included), counted, and confirmed; a wrong product refuses with the named floor reason, right next to the scan field. Each confirmed line records who verified it, when, and how (scan). No scanner on the desk means the handheld — no bypass, by design.
The B2B PDA pack is untouched. The ecommerce station pack is untouched — B2B and ecommerce keep their own floors.
Platform
The scan requirement is enforced at the API, not just the screen: confirms for non-ecommerce channels require a verified scan value matched against the target line. Witness columns are additive and nullable — historical rows stay honest, with no fake witnesses backfilled.
Migration
Additive nullable witness columns on pack lines and warehouse task items.
Rollback
Re-deploy v2.13.0 (old code ignores the columns; the scan requirement disappears).