The emergency callout arrives at t≈30, which makes a NON-ZERO START a first-class
case for the storm clock. Measured before writing anything, and the debris module
failed two ways that had nothing to do with the callout:
· the same storm flown twice through one module spawned DIFFERENT crates
(wildnight height 1.582 m then 1.165 m). main.js builds one debris module at
boot and clear()s it per phase change; clear() rewound the leaf accumulators
and not the piece PRNG. Live on main today — night 2 of the seven-night week
never flew night 1's crates, and no test looked.
· an entry at t=45, past the wildnight's t=38 event, gave every LATER crate the
skipped crate's height, spin axis and phase — the stream sat 5 draws behind.
Skipping history corrupted the future, not just the present.
One cause: a crate's jitter came off a shared stream whose POSITION encoded how
much history had happened. Keyed on the event itself now, so a crate is a pure
function of its event — the move weather.core.js's header already argues for.
debris.enterAt(t0, dt) for the one part that is a genuine path integral: the
ambient leaf layer. A t=0 run has 6 leaves crossing the grass at t=30 and a cold
entry has ZERO, staying becalmed ~7 s while the 2.5 s EMA climbs off zero —
DESIGN.md line 149 makes that moving grass the gust front's tell, and gate 1's
whole premise is that the grass is the only briefing a callout gets. It runs the
ladder rather than skipping it, and the ladder ACCUMULATES: i*dt is the more
accurate ladder and therefore the wrong one (1770 of 1800 steps disagree, first
at step six), because main.js, fixedLoop and sail.js all accumulate.
Pins: +5 (522 -> 527). Wind order-independence broadened to every storm and five
scalar observables plus the exact callout ladder, and a BACKWARDS peak scan
cross-checking what the dispatch will quote. All four mutations went red; the
first draft of the stormStats case could not fail (it memoises per def, so it was
comparing an object to itself) and was rewritten rather than shipped.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>