Skip to content

Codex: no built-in sub-agents; web search per setting (fixes chat-endpoint sessions) - #463

Merged
renmengye merged 2 commits into
mainfrom
fix/codex-no-subagents
Oct 3, 2026
Merged

renmengye merged 2 commits into
mainfrom
fix/codex-no-subagents

Conversation

@renmengye

Copy link
Copy Markdown
Member

Codex 0.160 (pinned in #456) adds two tools to every request: a namespace tool, multi_agent_v1 (built-in sub-agents), and the provider-side web_search tool. Through a chat-only endpoint the kernel's Codex bridge rejects both tool types, so every such session fails at once with "unsupported bridge request" (zero turns), and a Codex author on a self-hosted chat endpoint churns: run, session error, new run.

Change

  • Every kernel-launched Codex session passes -c features.multi_agent=false, after the operator's own args, so it cannot be re-enabled. Multi-agent work goes through the kernel's own channels (sibling view, messages, reports, lines), which contracts can switch per run; built-in sub-agents would bypass them.
  • Codex's built-in web search follows a new operator setting, OUTERLOOP_CODEX_WEB_SEARCH: auto (default) keeps it on native provider sessions and drops it on endpoint sessions, where the provider-side tool cannot run anyway; on and off force it. Exported to ticks and jobs (allowlist and deploy script).

Verification

  • Captured a real Codex 0.160 request: without the flags codex_bridge.supported_request returns False (tool types namespace, web_search); with them it returns True (function tools only).
  • Launch test now asserts the sub-agent flag follows operator args in every containment/endpoint/resume combination, and web search is dropped exactly for endpoint sessions; unit test for the setting.
  • Gate: ruff check, ruff format --check, mypy, pytest.

Written and reviewed by Claude.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Round 1 — reviewed head 8bc1160f — reviewer summarizer:hermes/gpt-5.6-terra over coverage+credentials+deployment+general+lifecycle+prose.

terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.

Verdict: 3 blocking, 1 advisory.

3 findings attached to the lines below.

The on setting cannot enable web search on chat-bridge sessions. [credentials+general+lifecycle] When OUTERLOOP_CODEX_WEB_SEARCH=on, harness.py omits its disable override, but every chat-bridge launch later appends web_search="disabled", so endpoint sessions still run with web search disabled. (src/outerloop/codex_bridge.py:362; high confidence)

Merged four findings. The chat-bridge forced-on failure is corroborated by credentials, general, and lifecycle; its blocking severity follows the general review. No findings rejected.

Comment thread src/outerloop/harness.py
Comment thread src/outerloop/harness.py Outdated
Comment thread CHANGELOG.md Outdated
@renmengye

Copy link
Copy Markdown
Member Author

Fixed in e18a4d7: the setting is now auto (default) or off. A forced on could not be honoured (the chat bridge disables the provider-side tool on endpoint sessions, and a Codex config can disable it on native ones), so it is removed rather than documented as something it is not. The override uses the quoted TOML form web_search="disabled" (as the bridge does), verified against the real 0.160 binary. Changelog entry shortened.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Round 1 — reviewed head e18a4d76 — reviewer hermes/gpt-5.6-terra.

terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.

Verdict: no defects found.

@renmengye
renmengye merged commit 61791d2 into main Oct 3, 2026
5 checks passed
@renmengye
renmengye deleted the fix/codex-no-subagents branch October 3, 2026 14:09
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