OpenAI Codex CLI rust-v0.116.0

New Features - App-server TUI now supports device-code ChatGPT sign-in during onboarding and can refresh existing ChatGPT tokens. (14952) - Plugin setup is smoother: Codex can prompt to install mis...

New Features - App-server TUI now supports device-code ChatGPT sign-in during onboarding and can refresh existing ChatGPT tokens. (14952) - Plugin setup is smoother: Codex can prompt to install missing plugins or connectors, honor a configured suggestion allowlist, and sync install/uninstall state remotely. (14896, 15022, 14878) - Added a userpromptsubmit hook so prompts can be blocked or augmented before execution and before they enter history. (14626) - Realtime sessions now start with recent thread context and are less likely to self-interrupt during audio playback. (14829, 14827) Bug Fixes - Fixed a first-turn stall where websocket prewarm could delay turn/start; startup now times out and falls back cleanly. (14838) - Restored conversation history for remote resume/fork in the app-server TUI and stopped duplicate live transcript output from legacy stream events. (14930, 14892) - Improved Linux sandbox startup on symlinked checkouts, missing writable roots, and Ubuntu/AppArmor hosts by preferring system bwrap when available. (14849, 14890, 14963) - Fixed an agent job finalization race and reduced status polling churn for worker threads. (14843) Documentation - Refreshed the Python SDK public API docs, examples, and walkthrough around the generated app-server models. (14446) Chores - Pinned the setup-zig GitHub Action to an immutable SHA for more reproducible CI. (14858) Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.115.0...rust-v0.116.0 - 14717 Move TUI on top of app server (parallel code) @etraut-openai - 14665 Use request permission profile in app server @mousseau-oai - 14826 Fixed build failures related to PR 14717 @etraut-openai - 14833 fix(core): fix sanitize name to use '' everywhere @apanasenko-oai - 14268 memories: exclude AGENTS and skills from stage1 input @andi-oai - 14139 windows-sandbox: add runner IPC foundation for future unifiedexec @iceweasel-oai - 14851 Add exit helper to code mode scripts @pakrym-oai - 14828 [stack 1/4] Split realtime websocket methods by version @aibrahim-oai - 14652 Apply argument comment lint across codex-rs @bolinfest - 14837 skill-creator: default new skills to ~/.codex/skills @xl-openai - 14861 Add marketplace display names to plugin/list @xl-openai - 14878 feat: support remotesync for plugin install/uninstall. @xl-openai - 14830 [stack 2/4] Align main realtime v2 wire and runtime flow @aibrahim-oai - 14886 fix: align marketplace display name with existing interface conventions @xl-openai - 14881 [codex] add Jason as a predefined subagent name @tibo-openai - 14864 fix: tighten up shell arg quoting in GitHub workflows @bolinfest - 14829 [stack 3/4] Add current thread context to realtime startup @aibrahim-oai - 14827 [stack 4/4] Reduce realtime self-interruptions during playback @aibrahim-oai - 14849 fix: canonicalize symlinked Linux sandbox cwd @viyatb-oai - 14892 Fix tuiappserver: ignore duplicate legacy stream events @etraut-openai - 14899 Revert tui code so it does not rely on in-process app server @etraut-openai - 14890 fix(linux-sandbox): ignore missing writable roots @viyatb-oai - 14920 feat: centralize package manager version @jif-oai - 14935 feat: rename to get more explicit close agent @jif-oai - 14843 Fix agent jobs finalization race and reduce status polling churn @daveaitel-openai - 14944 feat: show effective model in spawn agent event @jif-oai - 14838 fix(core): prevent hanging turn/start due to websocket warming issues @owenlin0 - 14859 Feat: CXA-1831 Persist latest model and reasoning effort in sqlite @shijie-oai - 14930 fix(tui): restore remote resume and fork history @fcoury - 14955 Fix fuzzy search notification buffering in app-server tests @aibrahim-oai - 14938 feat: add suffix to shell snapshot name @jif-oai - 14959 Fix code mode yield startup race @aibrahim-oai - 14434 generate an internal json schema for RolloutLine @keyz - 14846 use framed IPC for elevated command runner @iceweasel-oai - 14952 Add device-code onboarding and ChatGPT token refresh to app-server TUI @etraut-openai - 14896 [plugins] Support plugin installation elicitation. @mzeng-openai - 14958 Stabilize Windows cmd-based shell test harnesses @aibrahim-oai - 14966 Stabilize permissions popup selection tests @aibrahim-oai - 14968 Stabilize approval matrix write-file command @aibrahim-oai - 14986 temporarily disable private desktop until it works with elevated IPC path @iceweasel-oai - 14983 Rename execwait tool to wait @pakrym-oai - 14905 Add auth env observability @ccy-oai - 14931 fix(tui): implement /mcp inventory for tuiappserver @fcoury - 14977 Cleanup skills/remote/xxx endpoints. @xl-openai - 14984 Gate realtime audio interruption logic to v2 @aibrahim-oai - 14902 Unify realtime shutdown in core @aibrahim-oai - 14963 fix(linux-sandbox): prefer system /usr/bin/bwrap when available @viyatb-oai - 14446 Add Python SDK public API and examples @shaqayeq-oai - 14993 feat: Add product-aware plugin policies and clean up manifest naming @xl-openai - 14995 app-server: reject websocket requests with Origin headers @maxj-oai - 14960 Add FS abstraction and use in viewimage @pakrym-oai - 14293 fix: honor active permission profiles in sandbox debug @viyatb-oai - 14610 feat: support restricted ReadOnlyAccess in elevated Windows sandbox @viyatb-oai - 13592 Prefer websockets when providers support them @pakrym-oai - 14903 Handle realtime conversation end in the TUI @aibrahim-oai - 14727 Use workspace requirements for guardian prompt override @charley-oai - 14626 [hooks] userpromptsubmit - hook before user's prompt is executed @eternal-openai - 14858 Pin setup-zig GitHub Action to immutable SHA @viyatb-oai - 13702 fix(subagents) share execpolicy by default @dylan-hurd-oai - 15022 [plugins] Support configuration tool suggest allowlist. @mzeng-openai - 14947 feat: adapt artifacts to new packaging and 2.5.6 @jif-oai - 14821 feat: add memory citation to agent message @jif-oai - 15058 nit: disable live memory edition @jif-oai - 14942 Removed remaining core events from tuiappserver @etraut-openai - 15059 chore: disable memory read path for morpheus @jif-oai - 14842 Add notify to code-mode @pakrym-oai - 15020 fix: harden plugin feature gating @xl-openai