mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 14:15:44 +00:00
An inspection report mirrored its outcome onto the inventory item but never touched the item's status, and the loading paths gated on status alone. Cargo that passed, reached READY_FOR_LOADING and was then re-inspected as FAILED kept that status and loaded anyway. Gate loading on the inspection outcome. load() is the single choke point every loading path runs through, including loadItemsOntoTrain, so the check sits there: nothing but PASSED travels, and the message names the outcome so the operator knows what to fix. A failed or under-review re-inspection also pulls the cargo back out of the ready queue. load() refuses it either way, but leaving it READY_FOR_* would keep it on the loading and pickup lists as though nothing had happened. Reversing a held inspection now needs a reason. Passing cargo whose current inspection is FAILED or NEEDS_REVIEW is rejected without remarks, so the record says why cargo that was deliberately held may now travel. A first-time pass is unaffected. Mark Selected as Inspected skips failed and under-review items instead of clearing them. Overturning a failure is a deliberate, reasoned act, never a side effect of ticking a row in a list; those items are reported back with a reason telling the operator to re-inspect them individually. Verified: freight-api type-check passes; 15 warehouse suites pass (90 tests, 12 of them new). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>