From d65ed92a5e440972626965d0af9a6345179783bc Mon Sep 17 00:00:00 2001 From: jif-oai Date: Wed, 15 Apr 2026 20:43:45 +0100 Subject: [PATCH] ## New Features - Added `codex marketplace add` and app-server support for installing plugin marketplaces from GitHub, git URLs, local directories, and direct `marketplace.json` URLs (#17087, #17717, #17756). - Added TUI prompt history improvements, including `Ctrl+R` reverse search and local recall for accepted slash commands (#17550, #17336). - Added TUI and app-server controls for memory mode, memory reset/deletion, and memory-extension cleanup (#17632, #17626, #17913, #17937, #17844). - Expanded MCP/plugin support with MCP Apps tool calls, namespaced MCP registration, parallel-call opt-in, and sandbox-state metadata for MCP servers (#17364, #17404, #17667, #17763). - Added realtime and app-server APIs for output modality, transcript completion events, raw turn item injection, and symlink-aware filesystem metadata (#17701, #17703, #17719). - Added a secure devcontainer profile with bubblewrap support, plus macOS sandbox allowlists for Unix sockets (#10431, #17547, #17654). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Bug Fixes - Fixed macOS sandbox/proxy handling for private DNS and removed the `danger-full-access` denylist-only network mode (#17370, #17732). - Fixed Windows cwd/session matching so `resume --last` and `thread/list` work when paths use verbatim prefixes (#17414). - Fixed rate-limit/account handling for `prolite` plans and made unknown WHAM plan values decodable (#17419). - Made Guardian timeouts distinct from policy denials, with timeout-specific guidance and visible TUI history entries (#17381, #17486, #17521, #17557). - Stabilized app-server behavior by avoiding premature thread unloads, tolerating failed trust persistence on startup, and skipping broken symlinks in `fs/readDirectory` (#17398, #17595, #17907). - Fixed MCP/tool-call edge cases including flattened deferred tool names, elicitation timeout accounting, and empty namespace descriptions (#17556, #17566, #17946). ## Documentation - Documented the secure devcontainer profile and its bubblewrap requirements (#10431, #17547). - Added TUI composer documentation for history search behavior (#17550). - Updated app-server docs for new MCP, marketplace, turn injection, memory reset, filesystem metadata, external-agent migration, and websocket token-hash APIs (#17364, #17717, #17703, #17913, #17719, #17855, #17871). - Documented WSL1 bubblewrap limitations and WSL2 behavior (#17559). - Added memory pipeline documentation for extension cleanup (#17844). ## Chores - Hardened supply-chain and CI inputs by pinning GitHub Actions, cargo installs, git dependencies, V8 checksums, and cargo-deny source allowlists (#17471). - Added Bazel release-build verification so release-only Rust code is compiled in PR CI (#17704, #17705). - Introduced the `codex-thread-store` crate/interface and moved local thread listing behind it (#17659, #17824). - Required reviewed pnpm dependency build scripts for workspace installs (#17558). - Reduced Rust maintenance surface with broader absolute-path types and removal of unused helper APIs (#17407, #17792, #17146). ## Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.120.0...rust-v0.121.0 - #17087 Add marketplace command @xli-oai - #17409 Fix Windows exec-server output test flake @etraut-openai - #17381 representing guardian review timeouts in protocol types @won-openai - #17399 TUI: enforce core boundary @etraut-openai - #17370 fix: unblock private DNS in macOS sandbox @viyatb-oai - #17396 update cloud requirements parse failure msg @alexsong-oai - #17364 [mcp] Support MCP Apps part 3 - Add mcp tool call support. @mzeng-openai - #17424 Stabilize marketplace add local source test @ningyi-oai - #17414 Fix thread/list cwd filtering for Windows verbatim paths @etraut-openai - #10431 feat(devcontainer): add separate secure customer profile @viyatb-oai - #17314 Pass turn id with feedback uploads @ningyi-oai - #17336 fix(tui): recall accepted slash commands locally @fcoury-oai - #17430 Handle closed TUI input stream as shutdown @etraut-openai - #17385 Add use_agent_identity feature flag @adrian-openai - #17483 Update issue labeler agent labels @etraut-openai - #17493 fix @aibrahim-oai - #17419 Support prolite plan type @etraut-openai - #17416 Clear /ps after /stop @etraut-openai - #17415 Restore codex-tui resume hint on exit @etraut-openai - #17402 chore: refactor name and namespace to single type @sayan-oai - #17486 changing decision semantics after guardian timeout @won-openai - #17521 Clarify guardian timeout guidance @won-openai - #17547 [codex] Support bubblewrap in secure Docker devcontainer @viyatb-oai - #17519 Budget realtime current thread context @aibrahim-oai - #17556 [codex] Support flattened deferred MCP tool calls @fc-oai - #17558 build(pnpm): require reviewed dependency build scripts @mcgrew-oai - #17559 fix(sandboxing): reject WSL1 bubblewrap sandboxing @viyatb-oai - #17520 Mirror user text into realtime @aibrahim-oai - #17550 feat(tui): add reverse history search to composer @fcoury-oai - #17420 Remove context status-line meter @etraut-openai - #17506 Expose instruction sources (AGENTS.md) via app server @etraut-openai - #17566 fix(mcp) pause timer for elicitations @dylan-hurd-oai - #17406 Add MCP tool wall time to model output @pakrym-oai - #17294 Run exec-server fs operations through sandbox helper @starr-openai - #17605 Stabilize exec-server process tests @etraut-openai - #17221 feat: ignore keyring on 0.0.0 @jif-oai - #17216 Build remote exec env from exec-server policy @jif-oai - #17633 nit: change consolidation model @jif-oai - #17640 fix: stability exec server @jif-oai - #17643 fix: dedup compact @jif-oai - #17247 Make forked agent spawns keep parent model config @friel-openai - #17470 Fix custom tool output cleanup on stream failure @etraut-openai - #17417 Emit plan-mode prompt notifications for questionnaires @etraut-openai - #17481 Wrap status reset timestamps in narrow layouts @etraut-openai - #17601 Suppress duplicate compaction and terminal wait events @etraut-openai - #17657 Fix TUI compaction item replay @etraut-openai - #17595 Do not fail thread start when trust persistence fails @etraut-openai - #17407 Use AbsolutePathBuf in skill loading and codex_home @pakrym-oai - #17626 feat: disable memory endpoint @jif-oai - #17365 Include legacy deny paths in elevated Windows sandbox setup @iceweasel-oai - #17638 feat: Avoid reloading curated marketplaces for tool-suggest discovera… @jif-oai - #17398 app-server: Only unload threads which were unused for some time @euroelessar - #17669 only specify remote ports when the rule needs them @iceweasel-oai - #17691 Fix tui compilation @davidhao3300 - #17384 Update phase 2 memory model to gpt-5.4 @kliu128 - #17395 Remove unnecessary tests @kliu128 - #17685 Cap realtime mirrored user turns @aibrahim-oai - #17699 change realtime tool description @aibrahim-oai - #17667 Add `supports_parallel_tool_calls` flag to included mcps @josiah-openai - #17703 Add turn item injection API @pakrym-oai - #17671 Stabilize exec-server filesystem tests in CI @starr-openai - #17557 guardian timeout fix pr 3 - ux touch for timeouts @won-openai - #17719 [codex] Add symlink flag to fs metadata @pakrym-oai - #17146 [codex] Remove unused Rust helpers @pakrym-oai - #17471 fix: pin inputs @viyatb-oai - #17717 [codex] Refactor marketplace add into shared core flow @xli-oai - #17747 Refactor plugin loading to async @pakrym-oai - #17709 [codex] Initialize ICU data for code mode V8 @pakrym-oai - #17749 [codex] drain mailbox only at request boundaries @tibo-openai - #16640 [codex-analytics] feature plumbing and emittance @rhan-oai - #17761 Tighten realtime handoff finalization @aibrahim-oai - #17701 Add realtime output modality and transcript events @aibrahim-oai - #17777 nit: feature flag @jif-oai - #17637 feat: add context percent to status line @jif-oai - #17665 Always enable original image detail on supported models @fjord-oai - #17374 [codex-analytics] add session source to client metadata @marksteinbrick-oai - #17489 Moving updated-at timestamps to unique millisecond times @ddr-oai - #17784 feat: codex sampler @jif-oai - #17732 fix: Revert danger-full-access denylist-only mode @viyatb-oai - #17234 Redirect debug client output to a file @rasmusrygaard - #17803 Keep image_detail_original as a removed feature flag @fjord-oai - #17372 app-server: prepare to run initialized rpcs concurrently @euroelessar - #17704 Refactor Bazel CI job setup @bolinfest - #17674 Route apply_patch through the environment filesystem @starr-openai - #17702 Fix remote skill popup loading @starr-openai - #17830 [codex] Fix app-server initialized request analytics build @etraut-openai - #17389 [codex-analytics] enable general analytics by default @rhan-oai - #17659 thread store interface @wiltzius-openai - #17792 Spread AbsolutePathBuf @pakrym-oai - #17808 fix: apply patch bin refresh @jif-oai - #17838 Add realtime wire trace logs @aibrahim-oai - #17684 Adjust default tool search result caps @malone-oai - #17705 Add Bazel verify-release-build job @bolinfest - #17720 Make skill loading filesystem-aware @pakrym-oai - #17756 [codex] Support local marketplace sources @xli-oai - #17846 Fix for Guardian CI Tests stack overflow, applying Box to reduce stack pressure @won-openai - #17855 support plugins in external agent config migration @alexsong-oai - #17872 Disable hooks in guardian review sessions @abhinav-oai - #17868 Wrap delegated input text @guinness-oai - #17884 Fix clippy warnings in external agent config migration @canvrno-oai - #17837 Reuse remote exec-server in core tests @starr-openai - #17859 sandbox: remove dead seatbelt helper and update tests @bolinfest - #17870 fix: cleanup the contract of the general-purpose exec() function @bolinfest - #17871 fix: add websocket capability token hash support @viyatb-oai - #17763 Send sandbox state through MCP tool metadata @aaronl-openai - #17654 Support Unix socket allowlists in macOS sandbox @aaronl-openai - #17915 fix: cargo deny @jif-oai - #17913 feat: add endpoint to delete memories @jif-oai - #17844 feat: cleaning of memories extension @jif-oai - #17921 chore: exp flag @jif-oai - #17917 [codex] Fix current main CI blockers @sayan-oai - #17919 chore: do not disable memories for past rollouts on reset @jif-oai - #17924 nit: stable test @jif-oai - #17632 feat: memories menu @jif-oai - #17404 register all mcp tools with namespace @sayan-oai - #17941 nit: doc @jif-oai - #17938 feat: sanitize rollouts before phase 1 @jif-oai - #17937 feat: reset memories button @jif-oai - #17883 Remove exec-server fs sandbox request preflight @pakrym-oai - #17386 Register agent identities behind use_agent_identity @adrian-openai - #17907 Fix fs/readDirectory to skip broken symlinks @willwang-openai - #17960 chore(features) codex dependencies feat @dylan-hurd-oai - #17965 fix: rename is_azure_responses_wire_base_url to is_azure_responses_provider @bolinfest - #17946 Fix empty tool descriptions @shijie-oai - #17824 [codex] Add local thread store listing @wiltzius-openai - #17942 Add CLI update announcement @shijie-oai - #17866 Refactor auth providers to mutate request headers @pakrym-oai - #17902 app-server: track remote-control seq IDs per stream @euroelessar - #17957 mcp: remove codex/sandbox-state custom request support @bolinfest - #17953 fix: propagate log db @jif-oai - #17920 chore(tui) cleanup @dylan-hurd-oai - #17981 chore: tmp disable @jif-oai --- codex-rs/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codex-rs/Cargo.toml b/codex-rs/Cargo.toml index 4bb8837211..99c0ce5d42 100644 --- a/codex-rs/Cargo.toml +++ b/codex-rs/Cargo.toml @@ -94,7 +94,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.0.0" +version = "0.121.0" # Track the edition for all workspace crates in one place. Individual # crates can still override this value, but keeping it here means new # crates created with `cargo new -w ...` automatically inherit the 2024