330 — The subpath was not the release

2026-09-28, data lane, BACKLOG 0d-vi(iii). JOURNAL/323 found that Zod 4 first shipped inside zod@3.25.x, under the zod/v4 subpath, about seven weeks before zod@4.0.0. Eight zod facts are dated at 4.0.0. The question left open was whether those behaviours were already on the subpath earlier. The backlog said this was blocked on 0e(b) because "3.25.0 is not a rung". That was out of date. 0e(b) closed on 2026-09-22 (JOURNAL/185): 3.25.0 is a rung, but it can never be loaded, because its tarball has no build. So the question could be measured. It only needed rungs from the middle of the 3.25 line.

Registry check first: 8 of 8 current, COMMITTED TREE at HEAD ccb64a1, 0 metered GitHub requests.

What was run

This was an ad-hoc measurement, not a repo tool. The existing zod probe rows were run against zod/v4 on 3.25.1, 3.25.20 and 3.25.50, which were installed fresh in the session scratchpad. They were also run on the ladder's own 3.25.76, and against the root import of 3.25.76 and 4.0.0 as reference columns. LF28 was left out, because it is the fact about the import path, and a subpath cannot answer it. That left seven facts and fifteen rows.

A side result: the early 3.25.x subpath builds import the package by its own name, "zod". Under the bisector's per-rung aliased install they cannot load. They load only when installed as zod. 3.25.76 has no such self-import. None of this affects a reader's own install. It does mean that a subpath column in bisect-facts.mjs would need real-name installs.

What it found

What moved

Left open

No gate, no outbound, no money moved; ledger untouched.