HardYards/web/world/js
type-two 3a2e4ff5e1 Lane C S15 gate 2.2: ONE storm picker — editor_stormsel.js is the shared storm+time selection; wind panel becomes a view of it + JUMP TO WORST SECOND
The store: one owner for 'which storm, which second' on the editor page.
Garbage keys refused loudly, no-op writes silent (the anti-ring guard that
lets a subscriber clamp from inside its own handler), listener errors
contained, default = the gate-2.3 pin (wildnight @ 60 s). editor.wind.js
drops its private stormKey/time and re-exports the store's STORM_KEYS —
one list, same array. B's editor_score.js patch proposed in THREADS.

Polish (my call): JUMP TO WORST SECOND — argmax of speedAt over grid ×
storm, venturi throats passed as exact probes, dt = the scrubber's own
0.5 s step. Writes the SHARED second. site_02 × wildnight: 51.11 m/s
@ 60.5 s at (-7.5, 0), the funnel plateau, found by scan not patience.

Selftest 413/0/0 (410 + 3). Five mutations red-then-green: no-op guard
off, validation off, singleton doubled, comparator flipped, probes
dropped — each reds its own assert with its own message.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 18:05:33 +10:00
..
tests Lane C S15 gate 2.2: ONE storm picker — editor_stormsel.js is the shared storm+time selection; wind panel becomes a view of it + JUMP TO WORST SECOND 2026-07-20 18:05:33 +10:00
broom.js Lane D: calibrate the douse to B's real ponds; fix the sagging-belly refusal 2026-07-17 09:23:17 +10:00
camera.js Sprint 13 gate 2.5: two camera fixes — spawn framing, aftermath cloth-swallow 2026-07-18 01:18:29 +10:00
contracts.js Palette audit + two temptation props: honest extras, in the factory 2026-07-18 16:01:27 +10:00
debris.js debris: delete the dead sail.nodes seam — sail._applyDebris is the one contact model 2026-07-18 19:03:36 +10:00
editor_score.js Lane B S14: collateral exposure on the card + the night-5 invoice line (pool item) 2026-07-18 16:29:41 +10:00
editor_stormsel.js Lane C S15 gate 2.2: ONE storm picker — editor_stormsel.js is the shared storm+time selection; wind panel becomes a view of it + JUMP TO WORST SECOND 2026-07-20 18:05:33 +10:00
editor.js editor: the honest edges — Enter commits, bounds are seen, keyboard zoom, separation ruled (S15 gate 3 + gate 1.1 ruling) 2026-07-19 11:11:05 +10:00
editor.wind.js Lane C S15 gate 2.2: ONE storm picker — editor_stormsel.js is the shared storm+time selection; wind panel becomes a view of it + JUMP TO WORST SECOND 2026-07-20 18:05:33 +10:00
garden.js Sprint 13: garden model exported as garden.js (B's gate-1.2 blocker) + applyMute(sky,on) as a value 2026-07-18 12:44:37 +10:00
hud.js rigging: the fabric bet is reachable — F cycles cloth/membrane in prep 2026-07-18 19:03:36 +10:00
interact.js Lane D: calibrate the douse to B's real ponds; fix the sagging-belly refusal 2026-07-17 09:23:17 +10:00
ladder.js Lane D: ladder survives a mid-carry knockdown, and the prompt names the right bracket 2026-07-18 01:00:01 +10:00
main.js docs: panel comment tells the truth; README wears the shipped name; THREADS review entry 2026-07-18 19:03:36 +10:00
player.js Lane D: the player leans into the wind (gate 2.4 — as a root pose, not a clip) 2026-07-18 01:33:47 +10:00
player.sim.js Lane D: the player leans into the wind (gate 2.4 — as a root pose, not a clip) 2026-07-18 01:33:47 +10:00
rigging.js rigging: the fabric bet is reachable — F cycles cloth/membrane in prep 2026-07-18 19:03:36 +10:00
rigging.selftest.js rigging: the fabric bet is reachable — F cycles cloth/membrane in prep 2026-07-18 19:03:36 +10:00
sail.js sail: break diverged corners on the production path; enforce pond cap post-flow 2026-07-18 19:03:36 +10:00
sail.selftest.js sail: break diverged corners on the production path; enforce pond cap post-flow 2026-07-18 19:03:36 +10:00
skyfx.js Lane C S13 gate 2.3 + D's sliver: ambient leaves from 30 km/h; hail pool hides at zero 2026-07-18 11:51:26 +10:00
testkit.js Gate 0: name the harness dispute's cause; make skips real (testkit) 2026-07-17 10:21:01 +10:00
weather.core.js Add validateSiteWind — the site JSON's wind block fails loud (SPRINT10) 2026-07-17 15:30:00 +10:00
weather.js Lane C S13 correction: the bench flew site_02 funnel-OFF and tree-FROZEN; wild-night headline dies 2026-07-18 13:08:21 +10:00
week.js Lane B S14: collateral exposure on the card + the night-5 invoice line (pool item) 2026-07-18 16:29:41 +10:00
world.js Sprint 14 gate 1 close: round-trip pinned, pool items landed, free-carport fixed 2026-07-18 16:14:34 +10:00