-
Notifications
You must be signed in to change notification settings - Fork 1.7k
[Bug] Codex-native parents are not woken when independent child sessions complete #8281
Copy link
Copy link
Open
Labels
BugSomething isn't workingSomething isn't workingP2-mediumPriority: bug with workaround, important feature requestPriority: bug with workaround, important feature requestcomp:harness-t1Highest-usage harnessesHighest-usage harnessescomp:runnerComponent: agent runner, execution engineComponent: agent runner, execution enginetriagedIssue has been triaged by the botIssue has been triaged by the botvalidated:reproducedRepro agent validated the issue can be reproducedRepro agent validated the issue can be reproduced
Description
Activity
Metadata
Metadata
Assignees
Labels
BugSomething isn't workingSomething isn't workingP2-mediumPriority: bug with workaround, important feature requestPriority: bug with workaround, important feature requestcomp:harness-t1Highest-usage harnessesHighest-usage harnessescomp:runnerComponent: agent runner, execution engineComponent: agent runner, execution enginetriagedIssue has been triaged by the botIssue has been triaged by the botvalidated:reproducedRepro agent validated the issue can be reproducedRepro agent validated the issue can be reproduced
Description
A
codex-nativeparent that delegates to an independent, declared Omnigent child throughsys_session_sendis not automatically woken when the child completes. The result reaches the parent's inbox, but the orchestrator remains idle until another message arrives. The same workflow progresses with a Claude-native parent.These children are separate Omnigent-managed CLI sessions, not Codex internal sub-agent threads or
/sideforks.Steps to reproduce
codex-nativeparent and a declared asynchronous child agent.sys_session_send, then end its turn awaiting the completion notification.The guard in
omnigent/runner/app.py::_schedule_subagent_wakereturns whenever the parent harness iscodex-native, regardless of whether the child is an internal Codex thread or an independent worker. This guard was introduced with #7215; its breadth was already noted in that review.Controlled runner tests reproduce the missing wake through normal dispatch, session-snapshot reconstruction, and restart recovery. They also show why simply deleting the parent-harness check is insufficient: the latter two recovery paths currently lose the child's existing
omnigent.wrappermarker, which distinguishes Codex-owned threads that should remain quiet.Expected behavior
Independent Omnigent workers wake their parent regardless of the parent's harness. Codex-owned internal threads and
/sidechats continue to suppress Omnigent inbox wakes. Duplicate completion reports do not produce duplicate notifications.Environment
0.16.0.dev0; observed on394fa67b8, reproduced in controlled tests againsted0f29cb6.0.156.1, native harness, existing local subscription authentication.A focused fix and regression tests are prepared; no new transport or polling mechanism is needed.