Skip to content

Scale the ACP subprocess waits for the slow platform too - #50

Merged
its-janghoon merged 1 commit into
developfrom
feature/scale-acp-subprocess-waits
Sep 21, 2026
Merged

its-janghoon merged 1 commit into
developfrom
feature/scale-acp-subprocess-waits

Conversation

@its-janghoon

Copy link
Copy Markdown
Contributor

Third in the sequence after #47 and #49, and a different failure from either.

stdin EOF exits cleanly gives a subprocess five seconds to exit and failed at 6.5s with a bare TimeoutError — not a spawn timeout, so neither earlier fix reached it. Windows process teardown is slower and five seconds was tight enough to flake.

Every wait in the ACP test client is on a subprocess round trip, so all three bounds now go through the same scaler as the harness: the request wait, the notification wait's default, and the explicit values callers pass it.

The pattern is the finding

This is the third place a fixed millisecond figure met a slower platform — after the spawn timeout and the ready timeout. A bound written as a literal beside a subprocess is one that will eventually be too small on somebody's machine, and slowPlatform is where that correction belongs rather than in each number.

Still worth repeating from #47: these are mitigations. What actually changed diagnostically is that a subprocess timeout now reports what the child printed, where before both streams were discarded at two separate layers.

Gates

typecheck        0 errors across the monorepo
packages/redrob  3380 pass / 0 fail
acp suite        15/15

A third Windows shard failed, and this one was not a spawn timeout: `stdin EOF
exits cleanly` gave a subprocess five seconds to exit and failed at 6.5s with a
bare `TimeoutError`. Windows process teardown is slower, and five seconds was
tight enough to flake.

Every wait in the ACP test client is on a subprocess round trip, so all three
bounds now go through the same scaler as the harness: the request wait, the
notification wait's default, and the explicit values callers pass to it.

This is the third place a fixed millisecond figure met a slower platform, after
the spawn timeout and the ready timeout. The pattern is the point -- a bound
written as a literal beside a subprocess is a bound that will eventually be too
small on somebody's machine, and `slowPlatform` is where that correction belongs
rather than in each number.
@its-janghoon
its-janghoon merged commit 5006f80 into develop Sep 21, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant