New Features
-
Standalone installs are more self-contained, and
codex appnow opens or installs Desktop correctly on Windows and Intel Macs (#17022, #18500). -
The TUI can open
/sideconversations for quick side questions, and queued input now supports slash commands and!shell prompts while work is running (#18190, #18542). -
Plan Mode can start implementation in a fresh context, with context-usage shown before deciding whether to carry the planning thread forward (#17499, #18573).
-
Plugin workflows now include tabbed browsing, inline enable/disable toggles, marketplace removal, and remote, cross-repo, or local marketplace sources (#18222, #18395, #17752, #17751, #17277, #18017, #18246).
-
Filesystem permissions now support deny-read glob policies, managed deny-read requirements, platform sandbox enforcement, and isolated
codex execruns that ignore user config or rules (#15979, #17740, #18096, #18646). -
Tool discovery and image generation are now enabled by default, with higher-detail image handling and original-detail metadata support for MCP and
js_replimage outputs (#17854, #17153, #17714, #18386).
Bug Fixes
-
App-server approvals, user-input prompts, and MCP elicitations now disappear from the TUI when another client resolves them, instead of leaving stale prompts behind (#15134).
-
Remote-control startup now tolerates missing ChatGPT auth, and MCP startup cancellation works again through app-server sessions (#18117, #18078).
-
Resumed and forked app-server threads now replay token usage immediately so context/status UI starts with the restored state (#18023).
-
Security-sensitive flows were tightened: logout revokes managed ChatGPT tokens, project hooks and exec policies require trusted workspaces, and Windows sandbox setup avoids broad user-profile and SSH-root grants (#17825, #14718, #18443, #18493).
-
Sandboxed
apply_patchwrites work correctly with split filesystem policies, and file watchers now notice files created after watching begins (#18296, #18492). -
Several TUI rough edges were fixed, including fatal skills-list failures, invalid resume hints, duplicate context statusline entries,
/modelmenu loops, redundant memory notices, and terminal title quoting in iTerm2 (#18061, #18059, #18054, #18154, #18580, #18261).
Documentation
-
Added a security-boundaries reference to
SECURITY.mdfor sandboxing, approvals, and network controls (#17848, #18004). -
Documented custom MCP server approval defaults and exec-server stdin behavior (#17843, #18086).
-
Updated app-server docs for plugin API changes, marketplace removal, resume/fork token-usage replay, and warning notifications (#17277, #17751, #18023, #18298).
-
Added a short guide for the responses API proxy (#18604).
Chores
-
Split plugin and marketplace code into
codex-core-plugins, moved more connector code intoconnectors, and continued breaking up the large core session/turn modules (#18070, #18158, #18200, #18206, #18244, #18249). -
Refactored config loading and
AGENTS.mddiscovery behind narrower filesystem and manager abstractions (#18209, #18035). -
Stabilized Bazel and CI with flake fixes, native Rust test sharding, scoped repository caches, stronger Windows clippy coverage, and updated
rules_rs/LLVM pins (#17791, #18082, #18366, #18350, #18397). -
Added core CODEOWNERS and a smaller development build profile (#18362, #18612).
-
Removed the stale core
models.jsonand updated release preparation to refresh the active model catalog (#18585).
Changelog
Full Changelog: rust-v0.121.0...rust-v0.122.0
-
#17958 Support remote compaction for Azure responses providers @ivanmurashko
-
#17848 [docs] Add security boundaries reference in SECURITY.md @evawong-oai
-
#17990 Auto install start-codex-exec.sh dependencies @pakrym-oai
-
#17892 Migrate archive/unarchive to local ThreadStore @wiltzius-openai
-
#17989 [codex] Restore remote exec-server filesystem tests @starr-openai
-
#15134 Dismiss stale app-server requests after remote resolution @ebrevdo
-
#17885 feat: Support alternate marketplace manifests and local string @xl-openai
-
#18003 [docs] Revert extra changes from PR 17848 @evawong-oai
-
#17714 Support original-detail metadata on MCP image outputs @fjord-oai
-
#17022 Significantly improve standalone installer @efrazer-oai
-
#17853 [mcp] Add dummy tools for previously called but currently missing tools. @mzeng-openai
-
#18004 [docs] Restore SECURITY.md update from PR 17848 @evawong-oai
-
#17896 Clarify realtime v2 context and handoff messages @bxie-openai
-
#17742 removing network proxy for yolo @won-openai
-
#17999 [codex] Make command exec delta tests chunk tolerant @euroelessar
-
#18033 feat: introduce codex-pr-body skill @bolinfest
-
#17877 Display YOLO mode permissions if set when launching TUI @canvrno-oai
-
#18022 Async config loading @pakrym-oai
-
#17854 Update ToolSearch to be enabled by default @mzeng-openai
-
#17831 [codex][mcp] Add resource uri meta to tool call item. @mzeng-openai
-
#18070 Extract plugin loading and marketplace logic into codex-core-plugins @xl-openai
-
#18078 Fix MCP startup cancellation through app server @etraut-openai
-
#17151 [codex] Route Fed ChatGPT auth through Fed edge @jackz-oai
-
#17791 Stabilize Bazel tests (timeout tweaks and flake fixes) @ddr-oai
-
#18085 [1/8] Add MCP server environment config @aibrahim-oai
-
#18054 fix(tui): remove duplicate context statusline item @etraut-openai
-
#17287 [code mode] defer mcp tools from exec description @sayan-oai
-
#18057 Prefill rename prompt with current thread name @etraut-openai
-
#18059 Fix invalid TUI resume hints @etraut-openai
-
#17153 Launch image generation by default @won-openai
-
#18042 Make yolo skip managed-network tool enforcement @won-openai
-
#17826 [codex] Add remote thread store implementation @wiltzius-openai
-
#18086 [2/8] Support piped stdin in exec process API @aibrahim-oai
-
#18061 Avoid fatal TUI errors on skills list failure @etraut-openai
-
#15979 feat(permissions): add glob deny-read policy support @viyatb-oai
-
#18055 Improve external agent plugin migration for configured marketplaces @alexsong-oai
-
#18035 Refactor AGENTS.md discovery into AgentsMdManager @pakrym-oai
-
#18158 Move more connector logic into connectors crate @pakrym-oai
-
#17843 Add server-level approval defaults for custom MCP servers @mzeng-openai
-
#18178 fix: drop lock earlier; was held across send_event().await unnecessarily @bolinfest
-
#18000 Make thread unsubscribe test deterministic @starr-openai
-
#17996 Add codex_hook_run analytics event @abhinav-oai
-
#18184 fix: fix clippy issue in examples/ folder @bolinfest
-
#18023 fix(app-server): replay token usage after resume and fork @fcoury-oai
-
#18172 [codex] Make realtime startup context truncation deterministic @bxie-openai
-
#18192 Throttle Windows Bazel test concurrency @starr-openai
-
#18200 [codex] Split codex op handlers @pakrym-oai
-
#17387 Register agent tasks behind use_agent_identity @adrian-openai
-
#18026 Add OTEL metrics for hook runs @abhinav-oai
-
#18092 [codex] Update realtime V2 VAD silence delay and 1.5 prompt @bxie-openai
-
#18188 Add tabbed lists, single line rendering, col width changes @canvrno-oai
-
#18206 [codex] Split codex turn logic @pakrym-oai
-
#18169 Use codex-auto-review for guardian reviews @jeffsharris
-
#18196 Use in-process app-server for unknown-thread MCP read test @mzeng-openai
-
#18096 feat(sandbox): add glob deny-read platform enforcement @viyatb-oai
-
#17971 fix: deprecate use_legacy_landlock feature flag @viyatb-oai
-
#18209 Refactor config loading to use filesystem abstraction @pakrym-oai
-
#17862 Stream apply_patch changes @akshaynathan
-
#18244 Split codex session modules @pakrym-oai
-
#17713 feat: add opt-in provider runtime abstraction @celia-oai
-
#18182 feat: Handle alternate plugin manifest paths @xl-openai
-
#18219 Move Computer Use tool suggestion to core @leoshimo-oai
-
#18231 codex: split thread/read view loading @wiltzius-openai
-
#18126 fix(exec-policy) rules parsing @dylan-hurd-oai
-
#17825 [codex] Revoke ChatGPT tokens on logout @sashank-oai
-
#18304 Fix Windows exec policy test flake @etraut-openai
-
#18246 Sync local plugin imports, async remote imports, refresh caches after… @alexsong-oai
-
#18097 defer all tools behind feature flag @sayan-oai
-
#17563 Add PermissionRequest hooks support @abhinav-oai
-
#18267 Support Ctrl+P/Ctrl+N in resume picker @etraut-openai
-
#18261 fix(tui): use BEL for terminal title updates @etraut-openai
-
#17740 feat(config): support managed deny-read requirements @viyatb-oai
-
#18249 Move codex module under session @pakrym-oai
-
#18351 Fix config-loader tests after filesystem abstraction race @bolinfest
-
#18021 Guardian -> Auto-Review @won-openai
-
#17232 Make app tool hint defaults pessimistic for app policies @colby-oai
-
#17499 feat(tui): add clear-context plan implementation @fcoury-oai
-
#18352 codex: route thread/read persistence through thread store @wiltzius-openai
-
#18263 enable tool search over dynamic tools @sayan-oai
-
#18350 ci: make Windows Bazel clippy catch core test imports @bolinfest
-
#18362 Add core CODEOWNERS @aibrahim-oai
-
#18366 ci: scope Bazel repository cache by job @bolinfest
-
#17305 Add sorting/backwardsCursor to thread/list and new thread/turns/list api @ddr-oai
-
#18020 [3/6] Add pushed exec process events @aibrahim-oai
-
#12640 Update models.json @github-actions
-
#18373 Show default reasoning in /status @aibrahim-oai
-
#18379 Attribute automated PR Babysitter review replies @etraut-openai
-
#18087 [4/6] Abstract MCP stdio server launching @aibrahim-oai
-
#18370 perf(tui): defer startup skills refresh @fcoury-oai
-
#18222 /plugins: Add v2 tabbed marketplace menu @canvrno-oai
-
#18227 [codex] Propagate rate limit reached type @richardopenai
-
#18380 exec-server: preserve fs helper runtime env @starr-openai
-
#18381 Remove the tier constraint from connectors directory requests @xl-openai
-
#18211 refactor: narrow async lock guard lifetimes @bolinfest
-
#18017 [codex] Add cross-repo plugin sources to marketplace manifests @xli-oai
-
#18398 refactor: use cloneable async channels for shared receivers @bolinfest
-
#18296 fix: fix fs sandbox helper for apply_patch @viyatb-oai
-
#18397 [codex] Upgrade rules_rs and llvm to latest BCR versions @zbarsky-openai
-
#18082 bazel: use native rust test sharding @bolinfest
-
#18384 Update image resizing to fit 2048 square bounds @pakrym-oai
-
#17277 feat: Add remote plugin fields to plugin API @xl-openai
-
#18395 /plugins: Add inline enablement toggles @canvrno-oai
-
#14718 fix: trust-gate project hooks and exec policies @viyatb-oai
-
#17891 [TUI] add external config migration prompt when start TUI @alexsong-oai
-
#18369 Feat/auto review dev message marker @won-openai
-
#18298 feat: Budget skill metadata and surface trimming as a warning @xl-openai
-
#18449 [codex] Describe uninstalled cross-repo plugin reads @xli-oai
-
#18220 [codex] Add owner nudge app-server API @richardopenai
-
#17752 [codex] Add marketplace remove command and shared logic @xli-oai
-
#18382 Add max context window model metadata @aibrahim-oai
-
#18325 Revert "[codex] drain mailbox only at request boundaries" @jif-oai
-
#18386 Update image outputs to default to high detail @pakrym-oai
-
#18499 Fix plugin cache panic when cwd is unavailable @etraut-openai
-
#18212 [5/6] Wire executor-backed MCP stdio @aibrahim-oai
-
#18573 feat(tui): show context used in plan implementation prompt @fcoury-oai
-
#18500 Support
codex appon macOS (Intel) and Windows @etraut-openai -
#18542 Queue slash and shell prompts in the TUI @etraut-openai
-
#18524 Add fallback source for external official marketplace @alexsong-oai
-
#18571 Log realtime session id @aibrahim-oai
-
#18585 Remove unused models.json @aibrahim-oai
-
#18190 Add
/sideconversations @etraut-openai -
#18580 Avoid redundant memory enable notice @etraut-openai
-
#18443 Do not grant Windows sandbox ACLs on USERPROFILE @efrazer-oai
-
#18493 Filter Windows sandbox roots from SSH config dependencies @efrazer-oai
-
#17978 Persist and prewarm agent tasks per thread @adrian-openai
-
#18601 Soften Fast mode plan usage copy @pash-openai
-
#18596 chore(multiagent) skills instructions toggle @dylan-hurd-oai
-
#18599 fix(guardian) disable skills message in guardian thread @dylan-hurd-oai
-
#18440 Use thread IDs in TUI resume hints @etraut-openai
-
#18605 TUI: remove simple legacy_core re-exports @etraut-openai
-
#18221 [codex] Add workspace owner usage nudge UI @richardopenai
-
#17980 [codex] Use AgentAssertion downstream behind use_agent_identity @adrian-openai
-
#17751 [codex] Add marketplace/remove app-server RPC @xli-oai
-
#17721 Stabilize marketplace/remove installedRoot test @xli-oai
-
#18492 fix: FS watcher when file does not exist yet @jif-oai
-
#18646 feat: add
--ignore-user-configand--ignore-rules@jif-oai
Fetched April 21, 2026


