Skip to content

v2.8.0

v2.8.0 — Named errors where the operator looks + an honest /health

Frontend-only release.

Frontend-only release. Zero migrations, zero backend product code. Deployed to production at 2d6b13bf.

Operator-facing

Named errors now appear where the operator is working — and disappear when the context changes. Every refusal the system already knew how to name (KIT_NOT_EXPLODED, ADDRESS_INVALID, TOTE_IN_USE, wrong-product, short-pick) now renders next to the control that produced it, on the station console, PDA pick/pack/label, packaging, marketplace order actions and SKU mapping rows. An error bound to one order no longer survives to the next.

Three product bugs found by that sweep — two of them could have shipped the wrong product to a customer:

  • Scan verification accepted a prefix as a match: scanning DUR-AA2 verified the line for DUR-AA2-ALK, a different real SKU. Now exact match after normalize, aligned with the backend writer.
  • PDA Walk accepted a prefix location: A-1 verified A-1-1-1. Now exact.
  • On a 360×640 PDA the refusal rendered ~60px below the fold, behind the scan field. The operator had to scroll past the action to learn why the scan was rejected. Scan and error are now pinned together; the E2E asserts the error box stays inside the viewport, dark and light.

Platform

  • /health reports the real version. wms-backend had been pinned at 1.0.0 for seven releases, so the only runtime witness of which build is live said the same thing regardless of the deployed tag. Both packages are now bumped together, and the tests assert against the real package.json and reject unknown — a forgotten bump turns CI red instead of ageing quietly.
  • Release checklist hardened: a clean git status is now part of the pre-tag gate, the tag ritual is executed one command at a time, and /health reporting the tag number is a required release smoke.
  • Binding lessons L27 (an error outside the viewport is a silent failure by geometry — fix the layout, never the assert) and L28 (a verification step that cannot halt the sequence is decoration). Duplicate lesson numbers resolved.

Merged

  • #106 — UX-ERRORS-01 (Fase A + Fase B)
  • #108 — Fase B sweep: PDA and marketplace surfaces
  • #107 — cloud agent local development environment
  • #105 — sprint prompt
  • #109 — release v2.8.0

Known issues

  • OpsAlert can create duplicate OPEN rows for the same (companyId, type, scopeKey); the dashboard Not live badge does not yet show the reason it already computes. Both tracked for a follow-up fix.

Rollback

Re-deploy v2.7.0. No flags to turn off, no migrations to revert.

Fixed in v2.8.1 (in progress)

The dashboard Not live badge does not yet show the reason it already computes, and OpsAlert can create duplicate OPEN rows for the same (companyId, type, scopeKey). Both are being fixed now rather than carried: a red light with no reason is not a cosmetic gap.

Other releases

See how DockingWare handles this →