verify:fast ran every step serially, so its wall clock was the sum of steps with no ordering relationship between them. Static checks and per-package typechecks are each independent, so they now run as bounded-concurrency groups. static checks ~6.0s -> ~1.6s (11 validators, mostly node startup) typecheck 11.0s -> 7.4s (engine + dashboard) no-change run 28.1s -> 22.3s Ordering that matters is untouched: bootstrap, builds, and boot smoke stay serial and in plan order, and each group is a barrier. A failing group awaits its in-flight siblings before throwing rather than abandoning partial tsbuildinfo/dist state, and reports the first failure in plan order so the message does not depend on which sibling lost the race. FUSION_VERIFY_FAST_SERIAL=1 restores the old behavior when interleaved child output makes a failure hard to read. Boot smoke is now 84% of a no-change run (18.8s); it re-runs initdb into a throwaway HOME every time. Left alone -- caching that would change what the gate proves. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
21 KiB
21 KiB