OpenAI Codex CLI rust-v0.114.0

New Features - Added an experimental code mode for more isolated coding workflows. (13418) - Added an experimental hooks engine with SessionStart and Stop hook events. (13276) - WebSocket app-serve...

New Features - Added an experimental code mode for more isolated coding workflows. (13418) - Added an experimental hooks engine with SessionStart and Stop hook events. (13276) - WebSocket app-server deployments now expose GET /readyz and GET /healthz on the same listener for easier health checks. (13782) - Added a config switch to disable bundled system skills entirely. (13792) - Handoffs now carry realtime transcript context, which improves continuity when work is transferred between turns. (14132) - Improved the $ mention picker by clearly labeling Skills, Apps, and Plugins, and by surfacing plugins first. (14147, 14163) Bug Fixes - Fixed a Linux tmux crash caused by concurrent user-shell lookups. (13900) - Fixed apps being enabled in unsupported sessions by tightening the enablement check. (14011) - Fixed reopened threads getting stuck as in-progress after quitting mid-run and then resuming later. (14125) - Fixed permission handling so legacy workspace-write behavior is preserved and newer permission profiles degrade more safely on older builds. (13957, 14107) - Fixed approval flows so granted permissions persist across turns, work with reject-style configs, and are honored by applypatch. (14009, 14055, 14118, 14165) Chores - Laid the groundwork for the Python SDK’s generated v2 schema types and pinned platform-specific runtime binaries. (13953) Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.113.0...rust-v0.114.0 - 14009 feat(core) Persist requestpermission data across turns @dylan-hurd-oai - 14136 fix(core): use dedicated types for responsesapi web search tool config @owenlin0 - 13782 codex-rs/app-server: add health endpoints for --listen websocket server @maxj-oai - 14055 fix(core) RequestPermissions + ApplyPatch @dylan-hurd-oai - 14118 feat(approvals) RejectConfig for requestpermissions @dylan-hurd-oai - 13957 fix(protocol): preserve legacy workspace-write semantics @viyatb-oai - 14107 fix: keep permissions profiles forward compatible @viyatb-oai - 14147 make dollar-mention always clarify item category (skill, app, plugin) @sayan-oai - 14152 Refactor tool output into trait implementations @pakrym-oai - 14163 sort plugins first in menu @sayan-oai - 13418 Add codemode experimental feature @pakrym-oai - 13276 start of hooks engine @eternal-openai - 14135 tui: only show fast status for gpt-5.4 @pash-openai - 14157 Enforce single tool output type in codex handlers @pakrym-oai - 14165 fix(core) default RejectConfig.requestpermissions @dylan-hurd-oai - 14167 Export tools module into code mode runner @pakrym-oai - 13792 feat: support disabling bundled system skills @xl-openai - 14169 Move exec command truncation into ExecCommandToolOutput @pakrym-oai - 14011 [apps] Fix apps enablement condition. @mzeng-openai - 14000 Delay pending cleanup until task aborts @aibrahim-oai - 12296 Implemented thread-level atomic elicitation counter for stopwatch pausing @cconger - 14132 Use realtime transcript for handoff context @aibrahim-oai - 13879 Stabilize incomplete SSE retry test @aibrahim-oai - 14184 Fix unified exec test output assertion @aibrahim-oai - 14002 Stabilize websocket test server binding @aibrahim-oai - 13939 Stabilize app-server notify initialize test @aibrahim-oai - 13953 python-sdk: generated type foundation (all v2 schemas) @shaqayeq-oai - 13603 Fix release-mode integration test compiler failure @etraut-openai - 13900 Fix Linux tmux segfault in user shell lookup @etraut-openai - 13901 Log ChatGPT user ID for feedback tags @etraut-openai - 14183 Expose strongly-typed result for execcommand @pakrym-oai - 14003 Stabilize split PTY output on Windows @aibrahim-oai - 14229 Reuse McpToolOutput in McpHandler @pakrym-oai - 14125 Mark incomplete resumed turns interrupted when idle @guinness-oai