Repository navigation
Conversation
f69934c to
6372e3b
Compare
When select() times out and poll() then finds the process gone, the child may have written its final response and exited in between. Raising at that point discarded a complete reply that base would have read on the next pass. Once the process has exited everything it wrote is already in the pipe, so a zero-timeout select tells the two cases apart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Codex Medium <noreply@openai.com>
|
Reviewed and tested on a fresh Omarchy worker VM. The problem is real, and the change is proportionate to it. On What ran, on the worker:
I pushed one commit to your branch, 6d70929. In The second opinion was Codex Medium. It found that race, and it reviewed the fix in a second round and found nothing else open. It can read my notes, so its agreement on the rest isn't guaranteed to be independent. This is waiting on the maintainer. Nothing is needed from you. |
quattro now asks for the limits before account/read, so the initialized notification goes through rpc_send ahead of the reordered requests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
quattro's account/read fallback swallows only TimeoutError so a missing plan never costs the limits already read. With app-server exits now raised as RuntimeError, an exit during that fallback escaped to the outer handler and reported the limits as unavailable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This branch had stopped merging cleanly: #13733 on The merge needed one follow-up (37e9c87). Tested on a disposable Omarchy worker at 37e9c87:
Reviewed by Claude Opus 5.5 only. There was no second opinion this time: Codex Medium is configured, but the bot's daily cap on reviews was used up, so nobody else has checked the merge or the follow-up. For the same reason the class check could not be repeated, so the |
|
| exec 1>&- | ||
| sleep 2 |
There was a problem hiding this comment.
Poll exit path remains untested The startup fixture closes stdout while the child is still alive. That makes
select report EOF, so the test exercises the readline() error path rather than the new proc.poll() check. The account/read fixture also reaches EOF. A regression in poll-based exit detection could therefore pass all the new tests; a fixture that keeps the stdout pipe open briefly after the direct child exits would cover that path.
Summary
The approval-policy change previously included in this PR was removed because upstream commit 4cd8a08, merged as #7649, already resolved it with
-a on-request. Issue #8032 was closed by that PR, so this PR does not close it.Testing
bash test/shell.d/agent-usage-codex-scanner-test.shgit diff --checkThe full
./test/shellsuite was also started; it reported an unrelated missingomarchy-pkgscheckout inconfig-test.shand did not complete within the task timeout.