New Features
- GPT-6-Astra is now available in the model picker and Amazon Bedrock catalogs. (#42879, [#42619])
- Experimental worktree support lets you create isolated checkouts for new or forked sessions using
--worktreeor/worktree, then browse and resume them. (#42652, [#43069], [#43120], [#43286]) - Answer questions inline while Codex continues working, using suggested choices or custom text without losing your main draft. (#42891, [#42894], [#42897])
- Windows sessions can now share a background Codex server, with daemon lifecycle commands and managed updates. (#42405, [#42392])
- Vim editing gains
Rreplace mode with undo and dot-repeat, plus more reliable Escape handling in legacy terminals. (#42194, [#42584]) - Copying responses preserves formatting in rich-text apps, and
/copycan copy status output or individual session fields. (#42847, [#43055])
Bug Fixes
- Existing sessions pick up newly installed plugin tools and refresh skills and hooks after external plugin upgrades or rollbacks. (#42284, [#42593], [#42990])
- MCP connections coordinate OAuth token refreshes and surface login challenges when refresh fails, without automatically replaying rejected tool calls. (#42413, [#42552])
- Startup avoids running workspace-controlled helpers before trust is established, and the macOS sandbox blocks terminal input injection. (#42324, [#42590])
- Remote resume and fork operations preserve saved permissions; fresh sessions and forks respect server model defaults unless explicitly overridden. (#43330, [#43177], [#43355])
- Resuming a conversation open in another app now shows a read-only transcript with a retry option while preserving your draft. (#43253)
- Automatic approval reviews better preserve authorization context through compaction and reject approvals invalidated by new user instructions or answers. (#42844, [#42852], [#43442])
Documentation
- Updated the bundled OpenAI Docs skill with GPT-6-Astra migration, compatibility, and prompting guidance. (#42931)
Chores
- The deprecated
codex mcp-serverentry point is no longer available. (#42993)
Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.153.0...rust-v0.154.0
- [#42188] Fix punctuation in npm packaging documentation @copyberry
- [#42192] Use native spawning for bare macOS MCP commands @copyberry
- [#42194] Add Vim replace mode to the TUI composer @copyberry
- [#42196] Add managed worktree creation @copyberry
- [#42199] Refactor shared TUI input routing @copyberry
- [#42202] Separate TUI preferences from server configuration @copyberry
- [#42204] Add macOS voice runtime projection @copyberry
- [#42207] Retry TUI reconnects while threads are closing @copyberry
- [#42208] Add GNU Linux voice runtime preparation @copyberry
- [#42209] Add Windows voice runtime preparation @copyberry
- [#42247] Track history notes thread hint outcomes @copyberry
- [#42256] Skip Guardian scoring in User approval mode @copyberry
- [#42270] Report the exec-server release version in environment info @copyberry
- [#42284] Refresh plugin skills after out-of-process version changes @copyberry
- [#42288] Fetch rules_rs zlib packages from Ubuntu snapshots @copyberry
- [#42290] Expand Guardian history coverage across resume and rollback @copyberry
- [#42293] Preserve verified answers across history compaction @copyberry
- [#42298] Preserve retained answers across steer rollbacks @copyberry
- [#42306] Stabilize the detached exec-server session resume test @copyberry
- [#42309] Separate Windows sandbox provisioning from ACL refresh @copyberry
- [#42314] Preserve target-native cwd in permission approval requests @copyberry
- [#42316] Refactor exec-server startup futures @copyberry
- [#42318] Support packaged managed Codex binary paths @copyberry
- [#42319] Show live context compaction status in the TUI @copyberry
- [#42320] Make the app-server thread unload delay configurable @copyberry
- [#42324] Avoid executing PATH helpers before workspace trust @copyberry
- [#42325] Render completed assistant messages directly during replay @copyberry
- [#42326] Harden Windows control socket rendezvous @copyberry
- [#42328] Support durable reasoning configuration updates @copyberry
- [#42330] Protect Windows sandbox binaries from inherited write access @copyberry
- [#42332] Package prepared runtimes with the voice host @copyberry
- [#42334] Add a Windows sandbox provisioning protocol @copyberry
- [#42337] Add an authenticated Windows sandbox provisioning client @copyberry
- [#42341] Add Windows sandbox service lifecycle scaffolding @copyberry
- [#42342] Harden Windows sandbox provisioning file handling @copyberry
- [#42344] Prepare managed policy validation for Windows sandbox provisioning @copyberry
- [#42348] Add Windows sandbox client authentication @copyberry
- [#42351] Enable authenticated Windows sandbox provisioning @copyberry
- [#42353] Add experimental Windows sandbox service provisioning @copyberry
- [#42354] Add free-form asynchronous user messages @copyberry
- [#42356] Initialize questions in buffered replay test messages @copyberry
- [#42358] Extend rate limit reads with usage capabilities @copyberry
- [#42364] Support graceful daemon shutdown on Windows @copyberry
- [#42366] List managed worktrees for a repository @copyberry
- [#42369] Keep SQLite history projection moving past invalid records @copyberry
- [#42370] Improve MCP server startup error logging @copyberry
- [#42372] Add Luna Reserve usage fallback to the TUI @copyberry
- [#42373] Add attributed exec process lifecycle telemetry @copyberry
- [#42374] Extract PID startup into a dedicated module @copyberry
- [#42375] Clean up Windows sandbox resources on app uninstall @copyberry
- [#42377] Make app-server realtime sessions always available @copyberry
- [#42378] Route rollout reads through the canonical JSON decoder @copyberry
- [#42380] Require confirmation for safety-buffered retries @copyberry
- [#42381] Support managed app-server lifecycle on Windows @copyberry
- [#42383] Update rmcp to 3.2.0 @copyberry
- [#42384] Add an RMCP OAuth credential store adapter @copyberry
- [#42385] Add experimental context management activation @copyberry
- [#42386] Expose loaded thread environments in app-server responses @copyberry
- [#42388] Recover deferred environments after provisioning failure @copyberry
- [#42391] Authorize
apply_patchin the executor path context @copyberry - [#42392] Support managed daemon updates on Windows @copyberry
- [#42395] Expose the Codex version to commands and turn metadata @copyberry
- [#42397] Extract focused TUI logic into submodules @copyberry
- [#42399] Preserve restored input after resolved misalignment errors @copyberry
- [#42401] Discover TUI collaboration modes from the app server @copyberry
- [#42403] Expose the last accepted environment ready report @copyberry
- [#42404] Read voice helper frames independently of pipe chunks @copyberry
- [#42405] Support the app-server daemon on Windows @copyberry
- [#42406] Honor explicit plugin mentions during MCP startup @copyberry
- [#42408] Harden embedded composer input handling @copyberry
- [#42410] Allow reviewing and continuing misalignment-paused chats @copyberry
- [#42413] Enable coordinated MCP OAuth refresh @copyberry
- [#42417] Expose managed application network requirements @copyberry
- [#42419] Add session resume to the agent command center @copyberry
- [#42422] Honor model requirements in Guardian computer-use scoring @copyberry
- [#42425] Discover TUI experimental features from the server @copyberry
- [#42428] Use the shared composer in the agent command center @copyberry
- [#42432] Box the TUI resume picker future @copyberry
- [#42445] Include originator in plugin measurement analytics @copyberry
- [#42451] Acknowledge pending TUI steers by submission ID @copyberry
- [#42453] Discover permission profiles from the app server @copyberry
- [#42455] Show live task details in the agent command center @copyberry
- [#42458] Expose thread originators through the app-server API @copyberry
- [#42529] Register the Guardian thread context feature flag @copyberry
- [#42552] Preserve MCP authentication challenges on tool calls @copyberry
- [#42577] Preserve target-native paths in command approvals @copyberry
- [#42579] Persist verified user answers in Guardian thread context @copyberry
- [#42584] Recover Vim escape input in legacy terminals @copyberry
- [#42588] Require Guardian review for incompatible compaction checkpoints @copyberry
- [#42590] Harden the macOS sandbox against terminal input injection @copyberry
- [#42593] Reload user config after local plugin installation @copyberry
- [#42596] Record Windows sandbox private desktop usage @copyberry
- [#42598] Report MCP tool discovery errors in server status @copyberry
- [#42602] Deprecate detached review delivery @copyberry
- [#42603] Expose global metrics installation in
codex-otel@copyberry - [#42606] Support trusted headers for remote exec WebSockets @copyberry
- [#42607] Add GPT-6-Astra to the bundled model catalog @copyberry
- [#42609] Condense TUI startup warnings @copyberry
- [#42619] Add GPT-6-Astra to Amazon Bedrock catalogs @copyberry
- [#42623] Bound Noise handshakes by the exec server initialization timeout @copyberry
- [#42624] Centralize prompt image detail modes @copyberry
- [#42631] Initialize the packaged GStreamer runtime in the voice host @copyberry
- [#42634] Add an injectable attachment store to ThreadManager @copyberry
- [#42638] Update GPT-6-Astra Fast tier speed description @copyberry
- [#42639] Warn when saved model defaults are overridden @copyberry
- [#42640] Harden TUI parsing of assistant markup @copyberry
- [#42641] Restore the inline TUI after full-screen overlays @copyberry
- [#42650] Render assistant file citations as local links @copyberry
- [#42652] Add managed worktrees to
codex exec@copyberry - [#42654] Update the stable exec-server test to Codex 0.153.1 @copyberry
- [#42657] Use a generic fallback model name in status tests @copyberry
- [#42667] Tailor TUI cyber refusal notices to Daybreak eligibility @copyberry
- [#42668] Cancel remote control enrollment on stdio shutdown @copyberry
- [#42671] Preserve TUI sessions while starting replacement threads @copyberry
- [#42674] Persist server-advertised experimental features from the TUI @copyberry
- [#42676] Add WebRTC negotiation to the voice host @copyberry
- [#42677] Narrow async user message guidance @copyberry
- [#42682] Fix the worktrees experimental feature test fixture @copyberry
- [#42716] Allow trusted symlinks beneath CODEX_HOME on macOS @copyberry
- [#42718] Gate unified exec TTY support behind a feature flag @copyberry
- [#42741] Make the TUI symlink startup test Bazel-compatible @copyberry
- [#42744] Honor model-provided Guardian review policies @copyberry
- [#42746] Handle pending network reviews after process completion @copyberry
- [#42749] Improve automatic thread naming in the TUI @copyberry
- [#42752] Preserve response IDs for fast collaborator tool events @copyberry
- [#42755] Stabilize the interactive tmux startup safety test @copyberry
- [#42758] Propagate response tickets to Guardian reviews @copyberry
- [#42762] Retain user instructions in guardian thread context @copyberry
- [#42767] Avoid port races in streamable HTTP tests @copyberry
- [#42770] Preserve acceptance order in retained thread context @copyberry
- [#42773] Avoid holding metadata permit during cold resume config load @copyberry
- [#42781] Add direct SigV4 transport to exec-server @copyberry
- [#42791] Keep TUI prompt history tied to local settings @copyberry
- [#42792] Extract the note input view into its own module @copyberry
- [#42798] Add data-use disclosures to the user report dialog @copyberry
- [#42801] Keep the Windows sandbox command runner hidden @copyberry
- [#42807] Add request-scoped Guardian approval decisions @copyberry
- [#42811] Enable staging login issuer overrides in packaged builds @copyberry
- [#42814] Support custom report event titles @copyberry
- [#42819] Route Guardian approvals independently of async scoring @copyberry
- [#42821] Report managed filesystem policy in
codex doctor@copyberry - [#42823] Expose managed WebMCP policy through the app server @copyberry
- [#42824] Refine user input guidance for GPT-6 @copyberry
- [#42832] Preserve root authorization context in Guardian reviews @copyberry
- [#42833] Preserve SystemRoot for Windows sandbox wrapper setup @copyberry
- [#42835] Preserve Windows managed deny reads in the sandbox CLI @copyberry
- [#42836] Make GPT-6-Astra user input guidance conditional @copyberry
- [#42838] Preserve executor paths in Guardian approval reviews @copyberry
- [#42841] Add a native Windows MXC sandbox adapter @copyberry
- [#42842] Add Astra sparkle effects to the TUI composer @copyberry
- [#42844] Retain user instructions in Guardian context @copyberry
- [#42847] Preserve Markdown formatting when copying TUI responses @copyberry
- [#42850] Use jemalloc for Linux musl binaries @copyberry
- [#42852] Harden Guardian reviews after context compaction @copyberry
- [#42854] Persist Daybreak preferences in thread metadata @copyberry
- [#42863] Preserve precedence across feature requirement aliases @copyberry
- [#42870] Avoid redundant filesystem sandbox path resolution @copyberry
- [#42879] List GPT-6-Astra in the model picker @copyberry
- [#42883] Add client-side exec-server RPC attempt metrics @copyberry
- [#42889] Add TUI building blocks for inline async question editing @copyberry
- [#42891] Integrate asynchronous questions into the TUI @copyberry
- [#42894] Support selectable answers for asynchronous TUI questions @copyberry
- [#42897] Add inline Other answers to async question choices @copyberry
- [#42900] Establish root turn identity for independent tasks and memory requests @copyberry
- [#42903] Preserve TUI question state and integrate history and queue navigation @copyberry
- [#42904] Use static instructions for the Default collaboration mode @copyberry
- [#42931] Update OpenAI Docs skill guidance for GPT-6 Astra @copyberry
- [#42933] Wait for turn analytics before shutting down the Guardian v2 test @copyberry
- [#42990] Refresh session hooks after external plugin updates @copyberry
- [#42993] Remove the deprecated
codex mcp-servercommand @copyberry - [#43000] Preserve the resolved multi-agent version when reverting threads @copyberry
- [#43002] Replace Guardian tickets with parent response IDs @copyberry
- [#43005] Add Guardian V2 failure reasons and connection timing metrics @copyberry
- [#43031] Keep refreshed MCP tool catalogs with their clients @copyberry
- [#43039] Refresh live thread tools through
app/installed@copyberry - [#43043] Avoid filesystem scans when seeding the agents overview @copyberry
- [#43055] Allow
/copyto copy status output and individual fields @copyberry - [#43069] Support managed worktrees for interactive sessions and forks @copyberry
- [#43070] Clarify comments in CI setup and the Rust workflow @copyberry
- [#43074] Show a retryable error when the apps popup fails to load @copyberry
- [#43079] Add opt-in local audio devices to the voice helper @copyberry
- [#43083] Supply Bazel-managed CMake and Ninja for the bundled Opus build @copyberry
- [#43090] Send processed microphone audio over RTP in voice-host @copyberry
- [#43097] Add a helper-backed realtime WebRTC session API @copyberry
- [#43099] Add receipt-verified native voice SDK export @copyberry
- [#43100] Add bounded incoming Opus RTP handling to the voice host @copyberry
- [#43102] Include GIO in voice SDKs and native runtimes @copyberry
- [#43104] Move Guardian thread context into
guardianv2configuration @copyberry - [#43109] Add explicit toolchain inputs for native voice builds @copyberry
- [#43110] Record reasoning effort changes in conversation history behind a flag @copyberry
- [#43111] Add a Bazel target for native voice dependencies @copyberry
- [#43113] Save subagent and memory opt-ins through the app server @copyberry
- [#43114] Add Bazel preparation for native voice runtimes @copyberry
- [#43117] Link Unix Bazel bindings against the prepared voice runtime @copyberry
- [#43120] Add managed worktree creation to TUI session commands @copyberry
- [#43121] Require a prepared runtime when assembling voice helper packages @copyberry
- [#43125] Add explicit Windows tool selection for native voice builds @copyberry
- [#43126] Expose native Windows build tools through Bazel targets @copyberry
- [#43144] Add Windows MSVC Bazel targets for native voice libraries @copyberry
- [#43147] Gate experimental context by model capability at session startup @copyberry
- [#43177] Use server model defaults for fresh TUI startup @copyberry
- [#43178] Allow guarded legacy resume with background migration enabled @copyberry
- [#43244] Add bounded GStreamer playback components to the voice host @copyberry
- [#43248] Connect voice-host RTP audio to speaker playback @copyberry
- [#43253] Show read-only conversations when resume encounters an active writer @copyberry
- [#43261] Use server defaults when starting TUI background tasks @copyberry
- [#43265] Add experimental user verification API contracts @copyberry
- [#43279] Include linked worktrees in TUI session discovery @copyberry
- [#43281] Move npm package staging into a separate release workflow job @copyberry
- [#43282] Make Bazel binary stamping opt-in @copyberry
- [#43286] Add a managed worktree browser to the TUI @copyberry
- [#43289] Add capability-gated MCP user-verification handling @copyberry
- [#43298] Defer managed worktree transitions to fresh TUI loop iterations @copyberry
- [#43304] Isolate Bazel build commit metadata from Rust compilation inputs @copyberry
- [#43308] Replace Windows app-server shutdown files with socket requests @copyberry
- [#43315] Resolve session labels uniquely before acting on them @copyberry
- [#43325] Sort JSON schema object keys for consistent Cargo and Bazel output @copyberry
- [#43330] Preserve saved permissions when resuming or forking remote tasks @copyberry
- [#43340] Enable remote named permission profile selection in the TUI @copyberry
- [#43352] Add opt-in MCP user-verification transport @copyberry
- [#43355] Let the app server resolve implicit model settings for CLI forks @copyberry
- [#43359] Show the server's model provider ID in TUI status @copyberry
- [#43360] Use app-server metadata for TUI session restoration @copyberry
- [#43376] Defer resume picker and directory changes to a fresh TUI stack @copyberry
- [#43408] Avoid WebSocket connection waits in Guardian v2 classification @copyberry
- [#43419] Initialize
cwdin TUI resume and fork test fixtures @copyberry - [#43421] Remove the app-server README and its contributor guidance references @copyberry
- [#43423] Remove the app-server docs update requirement from
AGENTS.md@copyberry - [#43426] Handle Luna HTTP requests in guardian history tests @copyberry
- [#43428] Notify opted-in stdio MCP servers of auth changes @copyberry
- [#43432] Route approvals through the extension decision API @copyberry
- [#43442] Keep Guardian review evidence consistent and reject stale approvals @copyberry
- [#43444] Pin V8 release manifests and prevent published release replacement @copyberry
- [#43447] Route MCP elicitations through the shared approval decision path @copyberry
- [#43454] Add diagnostic labels to shell snapshot capture metrics @copyberry
- [#43456] Wait for thread idle before rollback in model-switching tests @copyberry
- [#43458] Centralize Guardian context mode and checkpoint policy @copyberry
- [#43462] Remove legacy Guardian approval review paths @copyberry
- [#43472] Recover missing Guardian root instructions in acceptance order @copyberry
- [#43478] Retain inherited Guardian instructions in standalone forks @copyberry
- [#43490] Expose shared Guardian reviewer helpers through
guardian_review@copyberry - [#43491] Include unloaded children in multi-agent v2 environment context @copyberry
- [#43494] Limit archive rollout reads to requested threads @copyberry
- [#43495] Allow internal sessions to fork from selected history @copyberry
- [#43504] Treat zombie processes as inactive in the Unix PID backend @copyberry
- [#43513] Expose a stable executor build identity in environment metadata @copyberry
- [#43519] Set
recursion_limitto 256 for app-server, exec, and TUI @copyberry