Resume-fetched history is older than the archive's 20 s live-traffic
freshness filter by definition, so the whole catch-up was silently
rejected: a node past the sync window fetched its gap from a store node
and archived none of it (1,662/1,662 dropped in the mechanism probe;
stuck at ~71% delivery in the 150-node reproduction). Catch-up now
enters via syncMessageIngress - the same filter-free door the sync
transfer uses - and also feeds the reconciliation index so the next
sync round does not re-request what the store just provided.
Also repairs tests/waku_store/test_resume.nim: its node/waku_node
import stopped exporting the store api after the rebase (compile
error), and the legacy test assumed node startup blocks on resume,
which stopped being true when catch-up moved to the background. Adds
a regression test that messages older than the freshness window
survive resume.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>