feat: add Codex hosted web search#93446
Conversation
7450a03 to
dcbdfcb
Compare
dcbdfcb to
5e18e4b
Compare
…lict-repair # Conflicts: # src/commands/migrate/apply.test.ts
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Codex review: needs maintainer review before merge. Reviewed June 15, 2026, 11:52 PM ET / 03:52 UTC. Summary PR surface: Source +871, Tests +1596, Docs +78. Total +2545 across 45 files. Reproducibility: not applicable. as a feature PR; the PR body includes live local and Crabbox proof for native and explicit-provider search paths. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land only if maintainers want Codex hosted search to be the default unpinned Codex search path; otherwise narrow hosted search to an explicit opt-in or pinned provider path. Do we have a high-confidence way to reproduce the issue? Not applicable as a feature PR; the PR body includes live local and Crabbox proof for native and explicit-provider search paths. Is this the best way to solve the issue? Likely yes on owner boundary because Codex-specific hosted search stays in the Codex plugin and uses the existing web-search provider seam, but the default-routing choice needs maintainer acceptance. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 6ffa0fb34897. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +871, Tests +1596, Docs +78. Total +2545 across 45 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Merged as 1e0062b44a515ed0ef8a5088ff96ba21f3badcc5 from source head 23824af49accd7bbaa86d5d99b8a720a31f8412c. Maintainer decision: accepted the Codex hosted-search default and provider/auth routing behavior described in the ClawSweeper review. Final focused verification on the exact source head after merging latest
The final blocker fixes preserve narrow tool policies for Codex |
Adds Codex as a selectable hosted web-search provider, routes native Codex search safely across model overrides, and isolates bounded hosted-search workers from configured tools.\n\nVerification: focused post-merge regression suite passed 202/202 tests on exact head 23824af.
Adds Codex as a selectable hosted web-search provider, routes native Codex search safely across model overrides, and isolates bounded hosted-search workers from configured tools.\n\nVerification: focused post-merge regression suite passed 202/202 tests on exact head 23824af.
Summary
web_searchwhen the provider reports support, while keeping OpenClaw's managedweb_searchtool as the fallback for unsupported providers.tools.web.search.provider: "codex", so any parent model/runtime can delegate a search to a bounded Codex worker without removing an existing provider preset./btwside-question policy context into Codex side forks.Verification
pnpm test extensions/codex/src/app-server/side-question.test.ts extensions/codex/src/app-server/provider-capabilities.test.ts extensions/codex/src/app-server/web-search.test.ts extensions/codex/src/app-server/dynamic-tool-build.test.ts extensions/codex/src/app-server/dynamic-tools.test.ts extensions/codex/src/app-server/thread-lifecycle.binding.test.ts extensions/codex/src/app-server/thread-lifecycle.test.ts extensions/codex/src/app-server/attempt-startup.test.ts extensions/codex/src/app-server/event-projector.test.ts src/agents/btw.test.ts src/auto-reply/reply/commands-btw.test.ts src/agents/harness/selection.test.ts -- --reporter=dot- passed 388 tests across 3 Vitest shards.pnpm test extensions/codex/src/web-search-provider.test.ts extensions/codex/media-understanding-provider.test.ts extensions/codex/index.test.ts extensions/codex/src/app-server/web-search.test.ts- passed 31 tests across 4 files.pnpm test src/plugins/web-provider-public-artifacts.test.ts src/plugins/contracts/registry.contract.test.ts src/plugins/contracts/loader.contract.test.ts- passed 26 tests across 3 files and 2 shards.pnpm tsgo:core- passed.pnpm tsgo:extensions- passed after the explicit-provider change.pnpm tsgo:test:src- passed.pnpm build- passed after the explicit-provider change; emitted the Codex web-search contract artifact and registered manifest provider.git diff --cached --checkbefore commit - passed.Real behavior proof
Behavior addressed: Codex app-server runs use Codex native hosted
web_searchwhen supported. OpenClaw users can also explicitly selecttools.web.search.provider: "codex"while using a different parent model/runtime; that managed tool delegates only the search to an isolated Codex worker.Real environment tested: Local Rosita OpenClaw agent with isolated config/state and live network access. The explicit-provider proof used parent model a non-Codex parent model, OpenClaw runtime,
tools.web.search.provider: "codex", and Codex modelgpt-5.5for the bounded search worker. A separate native-path proof used the Codex app-server harness withcodex/gpt-5.5.Exact steps or command run after this patch:
Evidence after fix: The cross-model run reported parent provider/model/harness a non-Codex provider/model using the
openclawruntime, exactly oneweb_searchcall, and zero tool failures. Its persisted tool result reportedprovider: "codex",model: "gpt-5.5", one hosted search action, andisError: false. The earlier native-path Rosita run persisted one Codexweb_search_callresponse item and returned its exact marker.Observed result after fix: The explicit-provider run returned Capital Plumbing & Heating (
https://capitalplumbing.ca/) and EZ Plumbing (https://www.ezplumbinginc.ca/) plusROSITA_CODEX_PROVIDER_CROSS_MODEL_OK. This proves a non-Codex parent model can use Codex as the configured OpenClaw web-search provider without removing another preset to trigger implicit behavior.What was not tested: Full
pnpm checkand cross-OS Crabbox/Testbox lanes were not run. Final autoreview was intentionally skipped at maintainer request so the local Rosita implementation and live proof could proceed directly.Current-main rebase proof
main(a447f9a43d) with zero commits behind at push time; all merge conflicts were resolved against current runtime, plugin SDK, provider, and test contracts.pnpm tsgo:core,pnpm tsgo:extensions, branch-widepnpm format:check, andgit diff --checkpassed.pnpm buildpassed after the current-main reconciliation commit.Crabbox live proof
run_6f65751b4c39Standard_D4ads_v6, leasecbx_da57866db36ddcbdfcb74a76e3ad4c969abde38edb4d64a5f0b2openai/gpt-5.5, runtimecodex, native Codex hosted search, one recordedweb_searchcall, zero tool failures, and two grounded source URLs fromwww.petetheplumber.comandmrmikesplumbing.ca.openai/gpt-5.4, runtimeopenclaw,tools.web.search.provider: "codex", successfulweb_searchexecution with zero tool failures, and two grounded source URLs fromprontoinc.caandprostarplumbing.ca.