The lossy subscriber now states fetch_ms (40): when its layer 1 chain re-anchors at
group 9, it FETCHes the receipts of the groups the anchor skipped (6, 7, 8; 6 the one
its relay dropped, 7 and 8 those refused from the hold). They arrive 40 ms later in
ascending order and each links forward from the one before: history, verified at 525.
Their layers wait for them rather than being refused at the re-anchor: 6's is then
late (unit 6), 7's and 8's in time and applied (units 7, 8).
trace.json states fetch_ms on every subscriber and fetched_ms on every object. The
generator and staged_verify.py model the fetch (moq_settle: a gap per re-anchor,
filled forward or backward, anything else outside the model). Both trace tests feed
fetched receipts through admit_on, require History for each, and compare when each
was fetched; joule-moq's answers the FETCH from the receipts the relay holds.
Co-Authored-By: Claude Opus 5.5 <[email protected]>