Repository navigation
[compass] Fix: the "execution jobs" quick check fails on a slow machine at its first job ("exit code or streams missing") - #25
Merged
skulitom merged 2 commits intoOct 8, 2026
Conversation
… one 10 s wait (B-024) The "execution jobs" check started Windows PowerShell workers with waitMs 10000 and required the job to be finished in that first reply. On a cold runner PowerShell can take longer than 10 s to start, which failed CI on main at 2dbf078 with "exit code or streams missing" and the summary "running, exit code pending". The three steps that wait for a worker to finish (the exit-code job, the UTF-8 job and the recovered job) now read it again, 10 s at a time, for up to 30 s, and judge the result only then. A job that never finishes still fails with its summary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…p 30 s too (B-024 review) The second review's P3s: the descendant-PID step allowed 15 s against the other steps' 30 s, and the helper's name read like a yes/no test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Owner
Author
|
Compass review: ready to merge Tested by compass-merge on 2026-10-08 on head
|
skulitom
deleted the
compass/anode-fix-2026-10-07-jobs-check-slow-start
branch
October 8, 2026 00:22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Report
B-024 in Compass's
ANODE-BUGS.md(filed by compass-merge on 2026-10-07): the CI run ofmainat 2dbf078 (run 37551098000, attempt 1) failed one quick check,[FAIL] execution jobs InvalidOperationException: exit code or streams missing, with the job summaryrunning, exit code pendingafter about 10 s. The same tree passed locally, and CI passed on the next twomaincommits.Root cause
DevelopmentChecks.Jobsstarts each worker, a Windows PowerShell 5.1 process, withwaitMs: 10000(the mostseat_execandseat_joballow) and required the job to be finished in that first reply. A coldwindows-latestrunner can take longer than 10 s to start Windows PowerShell, so the job was stillrunningwhen the check judged it. Three steps had this shape: the exit-code job, the UTF-8 job and the recovered job. #17 fixed the same family (B-012) for the descendant-PID step only.Fix
A local
ReadUntilFinishedhelper reads the job again, 10 s at a time, until it reportsfinished, for up to 30 s, and the three steps judge the result only then. A job that never finishes still fails with its whole reply, as before. Reading without a cursor returns the output from the start, so thestdout/stderrequality checks are unchanged. Test code only; no product change, so no CHANGELOG entry (as with #17).How it was tested
scripts\build.ps1 -QuickTest -OutputDirectory artifacts\pkg-build): pass, 93/93, docs consistent.execution jobstook 3.8 s.selftest --quick, file restored byte for byte after each), delaying a worker's start by 11 s with[Threading.Thread]::Sleep(11000):exit code or streams missing(the CI message)client cancellation killed an already started commandStart-Sleep, which failed even with the fix: Windows PowerShell started with-EncodedCommandwritesStart-Sleep's progress record to stderr as CLIXML, sostderrwasn'tproblem. That is the experiment's artefact, not this check's; the experiments above use a delay that writes nothing.Second review
A fresh read-only Claude subagent (Codex is at its usage limit until Fri 10-09) found no P1 or P2: the loop always ends (about 40 s at worst), the wait stays inside
seat_job's 0 to 10000 range, re-reading neither loses nor repeats output,agentIdis always the job's owner, a failed or killed job still fails the check, and no other quick check uses a PowerShell job this way. Its P3s:ReadUntilFinished;ExecutionJobs.ReadAsyncreads the output beforefinished, so a job that ends in between can be reported finished without the end of its output. That is product code with a narrow window, so it's filed as B-025 for its own PR rather than folded into this test-only one.Manual check in a seat
None: this changes a quick check only.
🤖 Generated with Claude Code