Delay a startup's execsequence by (t* − eta) instead of firing it at tick 0. Previously the ladder fired immediately for every starting pump; a faster-than-slowest startup then reached `operational` early and sat at its minimum flow (calcFlow at min position is non-zero) from warmup-end until its delayed ramp — leaking ~one pump's minimum flow into the group total before the rendezvous instant t* (the 207→309 staging bump observed live). Now the whole startup (ladder + ramp) is delayed: the ladder begins at (t* − eta), completes at (t* − rampS), then the queued flowmovement ramps to finish exactly at t*. The slowest pump (eta == t*) still fires at tick 0. Sum-of-flows is monotonic through the transition. Updated movementScheduler.basic.test.js mixed-speed multi-startup assertions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
machineGroupControl Test Suite Layout
Required EVOLV layout:
- basic/
- integration/
- edge/
- helpers/
Baseline structure tests:
- basic/structure-module-load.basic.test.js
- integration/structure-examples.integration.test.js
- edge/structure-examples-node-type.edge.test.js