New Features
- Added a built-in
request_permissionstool so running turns can request additional permissions at runtime, with new TUI rendering for those approval calls. (#13092, #14004) - Expanded plugin workflows with curated marketplace discovery, richer
plugin/listmetadata, install-time auth checks, and aplugin/uninstallendpoint. (#13712, #13540, #13685, #14111) - Upgraded app-server command execution with streaming stdin/stdout/stderr plus TTY/PTY support, and wired
execto the new in-process app server path. (#13640, #14005) - Web search settings now support full tool configuration (for example filters and location), not just on/off. (#13675)
- Added the new permission-profile config language and split filesystem/network sandbox policy plumbing for more precise policy control. (#13434, #13439, #13440, #13448, #13449, #13453)
- Image generation now saves output files into the current working directory. (#13607)
Bug Fixes
- Fixed auth error handling for cloud requirements fetch so 401s trigger the normal auth-recovery messaging instead of a generic workspace-config failure. (#14049)
- Fixed trust bootstrap to avoid running
gitcommands before project trust is established. (#13804) - Fixed Windows execution edge cases, including incorrect PTY
TerminateProcesssuccess handling and stricter sandbox startup cwd validation. (#13989, #13833, #13742) - Fixed plugin startup behavior so curated plugins are loaded in TUI sessions as expected. (#14050)
- Hardened network proxy policy parsing by rejecting global wildcard (
*) domains while preserving scoped wildcard support. (#13789) - Fixed approval payload compatibility for macOS automation permissions by accepting both supported input shapes. (#13683)
Documentation
- Clarified
js_replguidance for persistent bindings and redeclaration recovery to reduce avoidable REPL errors. (#13803)
Chores
- Reduced log/storage overhead by moving logs to a dedicated SQLite DB, adding timestamps to feedback logs, pruning old data, and tightening retention/row limits. (#13645, #13688, #13734, #13763, #13772, #13781)
- Improved Windows distribution automation by publishing CLI releases to winget. (#12943)
Changelog
Full Changelog: rust-v0.112.0...rust-v0.113.0
- #13626 feat(otel): safe tracing @owenlin0
- #13560 Refine realtime startup context formatting @aibrahim-oai
- #13615 Replay thread rollback from rollout history @aibrahim-oai
- #13642 fix(tui): clean up pending steer preview wrapping @charley-oai
- #13645 Add timestamped SQLite /feedback logs without schema changes @charley-oai
- #13654 tui: sort resume picker by last updated time @charley-oai
- #13540 support plugin/list. @xl-openai
- #13677 chore: remove unused legacy macOS permission types @celia-oai
- #13683 fix: accept two macOS automation input shapes for approval payload compatibility @celia-oai
- #13687 refactor: remove proxy admin endpoint @viyatb-oai
- #13669 copy current exe to CODEX_HOME/.sandbox-bin for apply_patch @iceweasel-oai
- #11874 fix(tui) remove config check for trusted setting @dylan-hurd-oai
- #13685 check app auth in plugin/install @sayan-oai
- #13697 change sound @aibrahim-oai
- #13607 Enabling CWD Saving for Image-Gen @won-openai
- #13621 [elicitations] Switch to use MCP style elicitation payload for mcp tool approvals. @mzeng-openai
- #13619 feat: status line with real data @jif-oai
- #13734 feat: prune old memories in DB @jif-oai
- #13688 Add timestamps to feedback log lines @etraut-openai
- #13742 fix: windows normalization @jif-oai
- #13514 [rmcp-client] Recover from streamable HTTP 404 sessions @caseychow-oai
- #13750 feat: drop sqlite db feature flag @jif-oai
- #13753 feat: drop discrepency metrics @jif-oai
- #13763 feat: limit number of rows per log @jif-oai
- #13703 Clarify sandbox permission override helper semantics @charley-oai
- #13770 fix(app-server): fix turn_start_shell_zsh_fork_executes_command_v2 flake @owenlin0
- #13630 feat(otel, core): record turn TTFT and TTFM metrics in codex-core @owenlin0
- #13674 app-server: Emit
thread/name/updatedevent globally @euroelessar - #13772 Move sqlite logs to a dedicated database @charley-oai
- #13620 chore: improve DB flushing @jif-oai
- #13711 feat: structured plugin parsing @sayan-oai
- #13781 Reduce SQLite log retention to 10 days @charley-oai
- #13780 fix: move unit tests in codex-rs/core/src/config/mod.rs into their own file @bolinfest
- #13783 fix: move unit tests in codex-rs/core/src/codex.rs into their own file @bolinfest
- #13787 fix bazel build @bolinfest
- #13789 fix: reject global wildcard network proxy domains @viyatb-oai
- #12943 Codex/winget auto update @iceweasel-oai
- #13800 chore(otel): reorganize codex-otel crate @owenlin0
- #13797 feat: add auth login diagnostics @joshka-oai
- #13695 utils/pty: add streaming spawn and terminal sizing primitives @euroelessar
- #13803 Clarify js_repl binding reuse guidance @fjord-oai
- #13810 docs: remove auth login logging plan @joshka-oai
- #13434 config: add initial support for the new permission profile config language in config.toml @bolinfest
- #13796 Add realtime startup context override @aibrahim-oai
- #13814 fix: include libcap-dev dependency when creating a devcontainer for building Codex @bolinfest
- #13808 chore(otel): rename OtelManager to SessionTelemetry @owenlin0
- #13712 feat: Add curated plugin marketplace + Metadata Cleanup. @xl-openai
- #13791 fix(core): skip exec approval for permissionless skill scripts @celia-oai
- #13675 Allow full web search tool config @rm-openai
- #13640 app-server: Add streaming and tty/pty capabilities to
command/exec@euroelessar - #13819 feat(app-server-protocol): address naming conflicts in json schema exporter @owenlin0
- #13804 fix: avoid invoking git before project trust is established @viyatb-oai
- #12752 fix: support managed network allowlist controls @viyatb-oai
- #13439 sandboxing: plumb split sandbox policies through runtime @bolinfest
- #13440 protocol: derive effective file access from filesystem policies @bolinfest
- #13816 fix(core): respect reject policy by approval source for skill scripts @celia-oai
- #13833 app-server: require absolute cwd for windowsSandbox/setupStart @iceweasel-oai
- #13670 Add Fast mode status-line indicator @etraut-openai
- #13445 safety: honor filesystem policy carveouts in apply_patch @bolinfest
- #13771 feat: simplify DB further @jif-oai
- #13692 Add guardian approval MVP @charley-oai
- #13851 tmp: drop artifact skills @jif-oai
- #13910 fix(core) rm guardian snapshot test @dylan-hurd-oai
- #13911 fix(ci) fix guardian ci @dylan-hurd-oai
- #13896 Fix TUI context window display before first TokenCount @etraut-openai
- #13448 seatbelt: honor split filesystem sandbox policies @bolinfest
- #13921 chore: use @plugin instead of $plugin for plaintext mentions @sayan-oai
- #13807 [elicitations] Support always allow option for mcp tool calls. @mzeng-openai
- #13449 linux-sandbox: plumb split sandbox policies through helper @bolinfest
- #13451 sandboxing: preserve denied paths when widening permissions @bolinfest
- #13452 protocol: keep root carveouts sandboxed @bolinfest
- #13874 Stabilize abort task follow-up handling @aibrahim-oai
- #13453 linux-sandbox: honor split filesystem policies in bwrap @bolinfest
- #13989 Fix inverted Windows PTY
TerminateProcesshandling @etraut-openai - #13912 fix(ci): restore guardian coverage and bazel unit tests @charley-oai
- #13877 Stabilize shell serialization tests @aibrahim-oai
- #13839 [app-server] Support hot-reload user config when batch writing config. @mzeng-openai
- #14005 Add in-process app server and wire up exec to use it @etraut-openai
- #13929 app-server: include experimental skill metadata in exec approval requests @celia-oai
- #14014 fix(core) patch otel test @dylan-hurd-oai
- #13841 tui: clarify pending steer follow-ups @charley-oai
- #13092 Add request permissions tool @mousseau-oai
- #14027 fix(bazel) add missing app-server-client BUILD.bazel @dylan-hurd-oai
- #14004 feat(tui) render request_permissions calls @dylan-hurd-oai
- #14052 Stabilize app list update ordering test @aibrahim-oai
- #13897 guardian initial feedback / tweaks @charley-oai
- #13884 Reduce app-server test timeout pressure @aibrahim-oai
- #13872 Stabilize zsh fork app-server tests @aibrahim-oai
- #13881 Stabilize RMCP pid file cleanup test @aibrahim-oai
- #13883 Stabilize PTY Python REPL test @aibrahim-oai
- #14058 Stabilize plan item app-server tests @aibrahim-oai
- #13943 Order websocket initialize after handshake @aibrahim-oai
- #13885 Stabilize thread resume replay tests @aibrahim-oai
- #13878 Serialize shell snapshot stdin test @aibrahim-oai
- #13876 Stabilize realtime startup context tests @aibrahim-oai
- #14050 fix(plugin): Also load curated plugins for TUI. @xl-openai
- #14049 fix: properly handle 401 error in clound requirement fetch. @xl-openai
- #14101 Stabilize shell approval MCP test @aibrahim-oai
- #14102 Stabilize interrupted task approval cleanup @aibrahim-oai
- #14103 Stabilize guardian approval coverage @aibrahim-oai
- #14060 Stabilize resumed rollout messages @aibrahim-oai
- #14114 fix(ci) Faster shell_command::unicode_output test @dylan-hurd-oai
- #14111 chore: plugin/uninstall endpoint @sayan-oai
- #14117 feat(otel): Centralize OTEL metric names and shared tag builders @owenlin0
- #13880 Stabilize RMCP streamable HTTP readiness tests @aibrahim-oai
- #14123 pass on save info to model + ui tweaks @won-openai
- #13886 Stabilize protocol schema fixture generation @aibrahim-oai