Alpha· Major · Confirmed
Remote execution gains fail-closed network controls
Exec-server requests now route through bounded network decisions, cached MCP tools appear sooner, and replay, managed updates, token budgets, session imports, and Code Mode headers become more reliable.
The headline change closes a policy gap for remote execution. Network requests from exec-server can now route through bounded client callbacks that return allow, deny, or ask decisions, while malformed, excessive, expired, or abandoned requests fail closed.
MCP startup gets faster without weakening execution checks. Cached tool definitions can reach inference before a server finishes initializing, but Codex still waits for that server and prepares the call against its refreshed live binding.
Restored conversations now preserve terminal completion errors, including model-overload warnings, instead of replaying failed retries as successful turns. Administrators also gain a managed requirement that can disable in-app updates and expose the resolved policy to clients.
Model catalogs can supply token-budget defaults when users have not chosen one, and session imports now parse Claude and Cursor records separately so Cursor-specific context does not leak into imported titles or user messages.
A Code Mode metadata fix was published both in the main prerelease line and as the separate alpha.10.1 hotfix. Tool-name mappings stay in canonical client metadata but no longer expand a direct HTTP or WebSocket compatibility header without bound.
Release context: the rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison contains 23 commits and 129 changed files. The alpha.10 to alpha.10.1 hotfix comparison contains 2 commits and 2 changed files.
Evidence
Remote exec-server network requests can route through client policy decisions.Why it matters: Remote execution can ask the client to allow, deny, or escalate a network request while invalid, excessive, timed-out, or abandoned callbacks fail closed.
Direct evidence · Confirmed
Supporting sources
- Handle exec-server network policy requests in the client (#35359) commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Cached MCP tools can reach the model before their server finishes starting.Why it matters: Codex can show cached tool definitions during MCP startup, then waits for the selected server and replaces the cache with live metadata before executing a call.
Direct evidence · Confirmed
Supporting sources
- Expose cached MCP tools before server startup (#35590) commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Replayed thread history preserves terminal turn failures.Why it matters: Restored conversations keep model-overload warnings and other structured completion errors instead of presenting failed retries as successful turns.
Direct evidence · Confirmed
Supporting sources
- Preserve terminal turn errors in replayed history (#35524) commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Administrators can disable in-app updates through managed requirements.Why it matters: A stable, default-on in-app update capability can be turned off in requirements.toml and reported through the app-server configuration requirements API.
Direct evidence · Confirmed
Supporting sources
- Add managed policy for in-app updates (#35537) commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Models can supply default token budgets when users have not configured one.Why it matters: Catalog-provided budgets can follow the active model and update context-window guidance while explicit user settings remain authoritative.
Direct evidence · Confirmed
Supporting sources
- Support model-owned token budget defaults (#35608) commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Claude and Cursor session imports use separate parsers.Why it matters: Cursor-specific context wrappers are removed before extracting the user query, preventing imported titles and messages from retaining unrelated command or timestamp markup.
Direct evidence · Confirmed
Supporting sources
- Parse Claude and Cursor session records separately (#35623) commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Code Mode compatibility headers no longer grow with every tool name.Why it matters: Tool-name mappings stay in the canonical client metadata payload but are omitted from the direct compatibility header, bounding HTTP and WebSocket header size.
Direct evidence · Confirmed
Supporting sources
- Bound Code Mode metadata compatibility headers (#35364) commit · Official
- Bound Code Mode metadata compatibility headers (#35364), alpha.10 hotfix commit · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.13 comparison tag-compare · Official
- rust-v0.146.0-alpha.10 to rust-v0.146.0-alpha.10.1 comparison tag-compare · Official
Conflicting sources
No conflicting sources recorded.
Availability
Availability note: these sources establish repository and CLI prerelease activity. They do not, by themselves, prove that the same changes were live in Codex Desktop.
Availability by surface
| Surface | Status | Claim-level evidence |
|---|---|---|
| CLI | Prerelease · Documented · General |
|
| Desktop | Unknown · Unknown · Unknown |
|
| IDE | Unknown | No central-claim assertion recorded. |
| Cloud | Unknown | No central-claim assertion recorded. |
| Mobile | Unknown | No central-claim assertion recorded. |