You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
GatedStream.Dispose does not end pending reads, so net472 readiness rows wait out the 5 s release bound #441
tests/OpenCode.Sdk.Tests/Support/GatedStream does not override Dispose, so closing it does not end a pending ReadChunkAsync. A real pipe's reader ends when the pipe closes.
On net472, StreamReader.ReadLineAsync() takes no cancellation token. A gated stdout therefore waits out PipeOutputPump's 5-second release bound instead of ending at the close. sdk-runtime measured the two recorded-exit rows in OpenCodeServerReadinessTests at master: 5.07 s and 5.05 s on net472, against about 1 s for the rows that use real pipes.
The rows pass, so this is a realism and wall-time gap in the fixture, not a red test. The cost is a fixture that differs from production in exactly the path those rows test (stream end at close), plus about 4 s per row on net472.
Suggested fix:GatedStream.Dispose faults or ends the pending reads, the way a closed pipe does. The two rows would then finish at the close, near the real-pipe timing.
Out of TST-E4's scope (its roadmap steps don't name it). The readiness rows are in RT-E2 C's in-flight files, so the fix goes after RT-E2 C merges. Reported by sdk-runtime during TST-E4 planning, 2026-10-17.
Activity