New Features
-
Export complete TUI conversations to Markdown with
/export, either to the clipboard or a new file. (#37358) -
Fork sessions with
codex exec fork, and archive or restore sessions from the TUI resume picker. (#37367, #37369, #37371) -
Draft prompts while the TUI initializes, with resume and fork progress shown during startup. (#38642, #38788)
-
View estimated thread credits or cost in
/status, status lines, and terminal titles for eligible workspaces. (#38281, #38282) -
Use Amazon Bedrock Runtime as a built-in provider with AWS profile, region, and GPT-5.6 routing support. (#38470)
-
Hooks can now run commands asynchronously and invoke MCP tools. (#37533, #38705)
Bug Fixes
-
Model switches and settings updates no longer leave stale instructions behind or change an active turn midstream. (#37260, #38785)
-
Resumed sessions now restore their persisted working directory and approval policy, with more accurate transcript previews. (#37198, #37368, #38605)
-
Turns reconnect through temporary provider outages, and MCP servers recover after OAuth reauthentication without restarting Codex. (#37337, #37485, #38418)
-
TUI startup no longer lets buffered terminal input activate prompts accidentally, and onboarding appears when authentication is missing. (#38641, #38643, #38644)
-
Composer and transcript rendering now handle CRLF pastes, wrapped whitespace, and long URLs correctly. (#37709, #38380, #38704)
-
Sandbox restrictions now fail closed for denied or unreadable paths across Linux and Windows. (#37875, #38026, #38416, #38660)
Documentation
- The bundled skill-creator guide is more focused, and validation now rejects unfinished TODO placeholders. (#38384)
Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.147.0...rust-v0.148.0
-
#37190 Interrupt cyber model turns after one Guardian denial @copyberry
-
#37191 Preserve legacy semantics during rollout migration @copyberry
-
#37198 Prefer persisted cwd when reading local threads @copyberry
-
#37199 Track thread archive analytics @copyberry
-
#37204 Add durable user-message queue dispatch @copyberry
-
#37206 Add a unified image budget @copyberry
-
#37210 Fetch remote installed plugins across all scopes @copyberry
-
#37211 Harden network proxy MITM authorization @copyberry
-
#37248 Cover remote MCP discovery timeout cleanup @copyberry
-
#37252 Allow agent roles on full-history forks @copyberry
-
#37260 Fix first-turn model switching and rollback @copyberry
-
#37261 Start cached MCP servers lazily for subagents @copyberry
-
#37267 Support plugin roots in the host skill loader @copyberry
-
#37273 Reuse MCP handlers across sampling steps @copyberry
-
#37279 Avoid cloning immutable metadata on tool search cache hits @copyberry
-
#37335 Fully repaint inline viewports after history overlap @copyberry
-
#37336 Use step environments for extension turn input @copyberry
-
#37337 Recover MCP servers after OAuth reauthentication @copyberry
-
#37338 Honor the configured ChatGPT origin in connector install URLs @copyberry
-
#37339 Reload app-server telemetry after account changes @copyberry
-
#37340 Consolidate deferred environment provisioning APIs @copyberry
-
#37341 Support content references for inline visualizations @copyberry
-
#37342 Preserve foreign cwd URIs for turn-input contributors @copyberry
-
#37343 Stage Bazel app-server test binaries in
TEST_TMPDIR@copyberry -
#37344 Fix subagent MCP startup status settling @copyberry
-
#37345 Send model routing hints to the Codex backend @copyberry
-
#37347 Track context windows per agent @copyberry
-
#37348 Add rollout migration tooling and background migration @copyberry
-
#37349 Mount a minimal
/devin full-filesystem Bubblewrap sandboxes @copyberry -
#37350 Allow
ThreadManagerto customize thread ID generation @copyberry -
#37352 Configure the default code-mode exec yield timeout @copyberry
-
#37354 Retry busy app-server test executable spawns @copyberry
-
#37356 Support agent identity endpoint overrides @copyberry
-
#37357 Clamp short wait_agent timeouts to the configured minimum @copyberry
-
#37358 Add Markdown conversation export to the TUI @copyberry
-
#37360 Use consistent TUI input placeholders @copyberry
-
#37363 Recognize MCP tool hook configurations @copyberry
-
#37366 Harden local MCP server process tree cleanup @copyberry
-
#37367 Add session forking to
codex exec@copyberry -
#37368 Restore approval policy when resuming threads @copyberry
-
#37369 Add session archiving to the resume picker @copyberry
-
#37371 Restore archived sessions from the resume picker @copyberry
-
#37389 Add tool namespace metadata configuration @copyberry
-
#37400 Rename the tool registry metadata setting @copyberry
-
#37406 Add a loader for executor-local config layers @copyberry
-
#37408 Add executor-local config reads to the exec server @copyberry
-
#37424 Cap project instructions across environments @copyberry
-
#37433 Expose multi-agent versions in model/list @copyberry
-
#37434 Add process diagnostics snapshots @copyberry
-
#37439 Add shared skill root loading interfaces @copyberry
-
#37440 Load plugin skill roots through the host skills service @copyberry
-
#37444 Unify plugin skill loading with the host skill service @copyberry
-
#37446 Preserve base instruction provenance across sessions @copyberry
-
#37447 Respect plugin skill availability in tool suggestions @copyberry
-
#37452 Unify plugin skill loading through the shared loader @copyberry
-
#37457 Remove the legacy core skill loader @copyberry
-
#37461 Remove the unused remote skills client @copyberry
-
#37466 Move skill config rule resolution into
codex-config@copyberry -
#37470 Expose app-server diagnostics through the experimental API @copyberry
-
#37477 Include call IDs in MCP requests and clarify metadata config @copyberry
-
#37478 Shard state unit tests under Bazel @copyberry
-
#37479 Report temporary directories in exec-server environment info @copyberry