New Features
- Code mode can now call standalone web search directly, including from nested JavaScript tool calls, and receive plaintext search results. (#26719)
- Tool and connector input schemas now preserve
oneOfandallOf, and large schemas keep more shallow structure when compacted, improving compatibility with richer MCP tools. (#24118, [#27084]) codex doctornow includes editor and pager environment details in the local report while redacting raw values in JSON output. (#27081)- Plugin marketplace automation is more informative and responsive:
codex plugin marketplace list --jsonnow includes each marketplace source, and plugin lists can return from the cached remote catalog before refreshing in the background. (#27009, [#26932])
Bug Fixes
codex resume --last "..."andcodex fork --last "..."now treat the trailing argument as the initial prompt instead of misreading it as a session ID. (#26818)- MCP startup warnings from subagents now stay in the thread that owns them, avoiding duplicate parent-thread alerts and stuck startup spinners in the TUI. (#26639)
- Image edits now use the exact referenced image file paths instead of guessing from conversation history, so attached-image edits land on the intended input. (#26486)
- Bare URLs with
~in the path are now linkified end to end in the TUI instead of being truncated before the tilde. (#27088) - Thread resets such as
/new,/clear, and/forkno longer drop cloud-managed requirements or feature flags during TUI config reloads. (#25177) - Sandbox execution now preserves approved escalation decisions and enforces configured proxy-only networking more consistently. (#24981, [#27035])
Chores
- Release builds once again publish separate symbol archives with line tables, improving post-release crash symbolication without bringing back the earlier full-debug build slowdown. (#26202)
- The embedded V8 toolchain was updated to
rusty_v8149.2.0. (#26464)
Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.138.0...rust-v0.139.0
- [#26741] fix(remote-control): preserve enrollment on generic websocket 404s @apanasenko-oai
- [#26804] fix(core-plugins): send Codex product SKU to plugin-service @ericning-o
- [#26464] build(v8): update rusty_v8 to 149.2.0 @cconger
- [#26895] ci: use bazel environment for BuildBuddy secret @bolinfest
- [#24981] fix: preserve approval sandbox decisions in unified exec @bolinfest
- [#26818] fix(tui): accept prompts with resume and fork @fcoury-oai
- [#24820] deps: update starlark to 0.14.2 @bolinfest
- [#26639] fix(tui): scope MCP startup status by thread @fcoury-oai
- [#26719] [codex] Enable standalone web search in code mode @rka-oai
- [#26632] feat: add v2 agent residency lru @jif-oai
- [#26974] Ignore proc-macro-error2 advisory @jif-oai
- [#26969] feat: count V2 concurrency by active execution @jif-oai
- [#26994] Rename multi-agent v2 close_agent to interrupt_agent @jif-oai
- [#26997] Avoid reopening v2 descendants on resume @jif-oai
- [#26821] [codex] Exclude external tool output from memories @rka-oai
- [#26202] [codex] Restore release symbol artifacts with line tables @nornagon-openai
- [#26852] fix(app-server): avoid blocking connection cleanup @apanasenko-oai
- [#26923] Add HTTP window ID to Responses client metadata @ningyi-oai
- [#26680] [codex-analytics] report compaction analytics details @rhan-oai
- [#26637] [codex] Speed up external agent session imports @stefanstokic-oai
- [#27009] [plugins] Expose marketplace source in marketplace list JSON @mpc-oai
- [#27024] ci: template custom runner names by repo @bolinfest
- [#26230] fix: preserve auto review across config and delegation @viyatb-oai
- [#27038] [codex] Clarify PR babysitter state mutations @anp-oai
- [#27037] [codex] Calm multi-agent v2 usage prompts @jif-oai
- [#26687] Pair thread environment settings @pakrym-oai
- [#27054] cli: add -P sandbox permissions profile alias @bolinfest
- [#27035] Enforce configured network proxy in codex sandbox @viyatb-oai
- [#26486] Route image edits through referenced file paths @won-openai
- [#27060] [codex-analytics] stop sending codex error subreason @rhan-oai
- [#27044] [codex] Require complete main-agent skill reads @fchen-oai
- [#24118] feat: support oneOf and allOf in tool input schemas @celia-oai
- [#26934] [codex] Prune stale curated plugin caches @xl-openai
- [#26932] Use cached remote plugin catalog for plugin list @xl-openai
- [#26091] [codex] Add OTEL counter descriptions @richardopenai
- [#27081] feat(doctor): report editor and pager environment @fcoury-oai
- [#27084] chore: preserve one more schema layer during large tool compaction @celia-oai
- [#26840] Add typed file URIs @anp-oai
- [#27088] fix(tui): linkify complete bare URLs with tildes @fcoury-oai
- [#27068] Show effective sandbox modes in /debug-config @canvrno-oai
- [#27092] Add extra config to StoredThread, leave empty for now @kumquatexpress
- [#27096] Update web search citation prompt @yuning-oai
- [#25177] Preserve cloud requirements across TUI thread resets @canvrno-oai
- [#27106] [codex] Remove remote compaction failure log @pakrym-oai