- nodes/machineGroupControl@69bdf11 makes DOWNSTREAM single-writer
(handlePressureChange = live aggregate; optimizer target moved to
AT_EQUIPMENT). Closes the ps-mgc-flow-contract failure.
- test/inflow-overcapacity-stability now starts the basin at maxLevel
so PS percControl is immediately 100 % (the actual storm condition)
and uses real-time waits between ticks so movementManager intervals
fire — the previous setImmediate yield was too fast for moves to
progress, making pumps look perma-parked even when behaviour was OK.
Park observations dropped from 83 to 3 across the sim window; final
ctrl converges to ~88 % across all 3 pumps.
All 82 cross-node + node integration tests now pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- ps-mgc-flow-contract: asserts PS's view of MGC outflow equals the live
per-pump aggregate at every tick. Currently FAILS — exposes that
MGC's flow.predicted.downstream reverts to optimalControl's bestFlow
target after handlePressureChange writes the correct flow.act, leaving
PS with stale outflow values. The mirror added in dc27a56 is necessary
but not sufficient.
- dead-zone-signal: asserts the Schmitt-trigger transitions
(engaged 100% → keep-alive 1% → off 0%) across startLevel↓/stopLevel↓
with proper rising-edge re-arm. Currently PASSES.
- inflow-overcapacity-stability: 45 s sim at 2× station capacity;
asserts pumps don't thrash or park in accelerating residue. Currently
FAILS — pumps end up at ctrl=0 in 'accelerating' state, suggesting
the residue-unpark fix doesn't fully cover steady-state over-capacity.
- realistic-startup-timing: re-runs the varying-demand-during-startup
scenario with PRODUCTION-default state.time (starting=10s, warm=5s)
instead of the 1-2 s used elsewhere. Currently PASSES — confirms the
dispatch-reorder fix holds under realistic transition windows.
Honest summary: 2 pass, 2 fail. The two failures expose genuine
remaining defects in the PS↔MGC measurement contract and the
residue-unpark policy. They're committed FAILING so the bugs are
captured under version control until the underlying fixes land.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>