test(verify): follow redirects, and allow the guard's deliberate drops #185

Merged
pat-s merged 2 commits from test/union-check-and-redirects into main 2026-08-31 13:01:31 +00:00

2026-08-31

test(verify): fail a slot still serving an ABI-risky binary of another minor
The comprehensive production sweep passed 236/0 while 2608 records were
being served that crash at load: the exact failure this whole effort was
about. Nothing in the suite looked for them.

The guard in bincraft drops them at index time, so it only takes effect
where a reindex has run since it shipped. amd64/resolute is clean;
fourteen slots are not, and no check said so.

A package carrying a Path in any per-minor index is risky by
construction, which is the signal for the ones absent from this minor's
index. Serving such a package from the generic slot with a binary built
under a different minor is the crash; that count must be zero.
2026-08-31 12:58:58 +00:00
test(verify): follow redirects, and allow the guard's deliberate drops
Two checks that no longer matched the system.

fetch() did not pass -L, so every --live check against a routed index read
a 302 body instead of the index a client receives. It also did not bypass
the edge, so a run right after a reindex measured stale copies. Both were
fixed on the branch behind #180 but the merge captured that PR at an
earlier commit, so neither reached main.

The union check asserted flat is a subset of every per-minor index. Since
bincraft learned to drop an ABI-risky package whose only binary was built
under another R minor, that is deliberately false: amd64/resolute drops
2228 from its 4.6 index, and those absences are the fix working.

What must never go missing is a generic package built under this very
minor - safe to serve, no reason to disappear. That is what it now
asserts, reporting the deliberate drops alongside.
2026-08-31 12:55:51 +00:00