Repository navigation
Codex: no built-in sub-agents; web search per setting (fixes chat-endpoint sessions) - #463
Conversation
…X_WEB_SEARCH (auto: off on endpoints)
There was a problem hiding this comment.
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.
|
Fixed in e18a4d7: the setting is now |
Codex 0.160 (pinned in #456) adds two tools to every request: a
namespacetool,multi_agent_v1(built-in sub-agents), and the provider-sideweb_searchtool. 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
-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.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;onandoffforce it. Exported to ticks and jobs (allowlist and deploy script).Verification
codex_bridge.supported_requestreturns False (tool typesnamespace,web_search); with them it returns True (function tools only).Written and reviewed by Claude.