Skip to content

Ordering train: per-stratum tail support receipts (#652) + late-producer input DAG (#653) - #660

Open
MaxGhenis wants to merge 154 commits into
mainfrom
tail-stratum-support-652
Open

Ordering train: per-stratum tail support receipts (#652) + late-producer input DAG (#653)#660
MaxGhenis wants to merge 154 commits into
mainfrom
tail-stratum-support-652

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Two ordering fixes from the first builds to reach the deep pipeline, shipped as one train because both govern late-stage execution order.

#652 — capital-gains tail: declared per-stratum support with receipts

The 1% rung cannot satisfy the tail's donor requirements in two filing-status strata (verified from real checkpoints: JOINT short 6,042, SEPARATE short 353; every stratum clears at 10% — the 10% dev run passed the tail empirically — and at full scale). Thin strata now receive named, counted insufficient_support receipts bound into the tail manifest and checkpoint identity; adequate strata attach byte-identically (regression-pinned); full-scale behavior provably unchanged (analytical counts in the report).

#653 — late-producer input dependency DAG

The 10% dev run died in adult care reading sstb_self_employment_income_before_lsr — 43,260 nonfinite inputs, all ASEC-origin native clone-0 people, because the producer ran before the post-PUF transfer filled its inputs. The #649 producer schedule proves target-producers precede their checks but never modeled producer inputs. Now: a canonical 38-producer, 71-edge dependency DAG, import-validated (cycles rejected by name), topological waves (1,1,17,14,3,2) derived not hand-ordered, byte-stable under registry iteration order, bound into checkpoint identity. A callback-aware AST audit confirms zero undeclared configured reads across all producers.

Verification

Implemented by two lanes, then one combined adversarial QA gate re-derived the stratum tables and provenance from the real build checkpoints, ran the negative-path suites, and found no production defect (report sha b79f6d39…). Battery: 5,907 passed / 0 failed; #583 guard exactly 495; ruff clean; changelog covers both issues.

Merge gate: all CI lines green plus the next 1% smoke showing the two thin-strata receipts and reaching past source completion. Real-build receipts will be posted here.

Fixes #652. Fixes #653.

🤖 Generated with Claude Code

MaxGhenis and others added 27 commits August 12, 2026 16:07
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The round-13 lane evolved the shared checkpoint fixture (missing-sentinel
column) after recording the no-nullable-boolean golden, then died before
re-recording. The constant was stale, not the compatibility: the worktree
writer's bytes for this frame are sha-identical to origin/main's writer
(e55095d2…), verified by running both against the same fixture.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tant

CI falsified both golden constants: the same writer produces different
whole-file bytes on macOS and Linux because the HDF5 wheels differ —
run-stable per platform, unpinnable across platforms (my earlier repin
chased the same mirage from the other side). The real contract for
frames without nullable booleans is write determinism plus staying on
schema version 2; the test now asserts exactly that via a double-write
byte-equality and the existing schema_version check.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fourteen rounds of measurement showed 1% sits below the tail's own
support floor (JOINT short 6,042 usable donors; SEPARATE short 353)
while ~4% clears every filing-status stratum naturally, and wall time
is donor-dominated (1% = 32 min, 10% = 64 min), so the 4% rung costs
barely more than 1% and exercises the whole pipeline without support
receipts. Grammar only: fraction→token map, Logbook rung sets, CLI
help, and a live-store migration extending builds_rung_fraction_token;
no gate or tolerance changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The rung-grammar commit missed the release-id regex, which fails closed
exactly as designed — the 4% launch died at ID generation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Round 13 put materializer_version inside the pool_h5 receipt, so a
stripped stacked manifest now retains a detectable marker and refuses
at the stacked-only-field check — earlier and named, strictly stronger.
The guard test expected only the deeper canonical-envelope refusal and
went red on the message. It now pins both behaviors: a lazy strip is
caught by the marker, a complete strip still refuses at the canonical
envelope.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant