trackForward sent the identical box to all five target frames. On batch 19
(extracted at 0.5 fps - one frame every 2 s) a truck entering the frame
outruns a static seed, so the action either missed it or grabbed the wrong
part.
- geometry handling lifted to module-level shapeBox(), reused for the drawn
shape and for each assist result
- first frame still uses the drawn box exactly; frames 2-5 are seeded with
the previous run's shape grown x1.5 about its centre (SEED_GROWTH)
- a frame SAM3 refuses keeps the last good seed for the next attempt
- REQ-189 rewritten to the chaining contract, including the accepted cost:
a bad read can carry forward; this is not tracking, no motion model