2fef2f3a3b
The PTY suite was the CI wall-clock bottleneck, run serially via fileParallelism:false. The original reason for serializing was a node-pty constraint — it needs child_process.fork(), not worker_threads — but that only dictates the pool TYPE, not single-file execution. Each test already spawns its own isolated PTY subprocess (helpers/term.ts, run.ts: no shared ports, temp files, or mutable globals; cwd is the read-only fixtures dir), so files parallelize safely. Set pool:"forks" explicitly (the real node-pty requirement) and fileParallelism:true. Measured: the PTY suite drops ~37s -> ~13s (~3x), and the full `vp run ci` graph drops ~41s -> ~20s cold (no task cache, no prebuilt dist). Verified stable across 9 isolated PTY runs (incl. maxForks capped to 4 to mimic a 4-core CI runner) and 3 cold full-graph runs — 110 PTY tests pass every time, zero flakes. testTimeout stays 15s (slowest test ~2s) to absorb CPU contention on smaller runners.