v1.8.2 — the validator runs across the ladder
run_ladder.py now runs the zero-side validator at every rung of the m-ladder rather than at one basis size, printing the worst relative residual and tail bound per rung and writing the per-rung block to run.json. conventions.py §4 had specified this and the code did not deliver it.
conventions.py also now owns the support length L_DEFAULT, which was previously hardcoded in two places; both entry points import it. The README states the true runtime of the default sweep and offers a quick-check invocation.