Release 0.107.0-cometix
New Features
- You can now fork a thread into sub-agents, making it easier to branch work without leaving the current conversation. (openai#12499)
- Realtime voice sessions now let you pick microphone and speaker devices, persist those choices, and send audio in a format better aligned with transcription. (openai#12849, openai#12850, openai#13030)
- Custom tools can now return multimodal output, including structured content like images, instead of being limited to plain text. (openai#12948)
- The app server now exposes richer model availability and upgrade metadata, and the TUI uses it to explain plan-gated models with limited-run tooltips. (openai#12958, openai#12972, openai#13021)
- Memories are now configurable, and there is a new
codex debug clear-memoriescommand to fully reset saved memory state when needed. (openai#12997, openai#12999, openai#13002, openai#13085)
Bug Fixes
- Reconnecting with
thread/resumenow restores pending approval and input requests instead of leaving clients out of sync. (openai#12560) thread/startno longer blocks unrelated app-server requests, reducing stalls during slow startup paths such as MCP auth checks. (openai#13033)- Interactive terminal sessions no longer print the final assistant response twice. (openai#13082)
- Large pasted-content placeholders now survive file completion correctly, fixing a regression from
0.106.0. (openai#13070) - ChatGPT accounts that arrive without plan info now handle account reads correctly instead of triggering repeated login issues. (openai#13072)
- Diff rendering in the TUI now respects theme colors better and displays more cleanly in Windows Terminal and other low-color environments. (openai#13016, openai#13037)
- MCP OAuth login flows now forward configured
oauth_resourcevalues correctly for servers that require aresourceparameter. (openai#12866)
Documentation
- Updated sandbox escalation guidance so dependency-install failures caused by sandboxed network access are more clearly treated as escalation candidates. (openai#13051)
Chores
- Tightened sandbox filesystem behavior by improving restricted read-only handling on Linux and avoiding sensitive directories like
~/.sshon Windows. (openai#12369, openai#12835) - Escalated shell commands now keep their sandbox configuration when rerun, closing a gap where approvals could lose the intended restrictions. (openai#12839)
Changelog
- openai#12925 chore: calm down awaiter @jif-oai
- openai#12499 feat: fork thread multi agent @jif-oai
- openai#12837 Log js_repl nested tool responses in rollout history @fjord-oai
- openai#12774 feat: add post-compaction sub-agent infos @jif-oai
- openai#12929 Remove noisy log @pakrym-oai
- openai#12835 don't grant sandbox read access to ~/.ssh and a few other dirs. @iceweasel-oai
- openai#12839 feat: include sandbox config with escalation request @bolinfest
- openai#12940 feat: add git info to memories @jif-oai
- openai#12727 tui: use thread_id for resume/fork cwd resolution @charley-oai
- openai#12950 Allow clients not to send summary as an option @pakrym-oai
- openai#12944 fix: sort codex features list alphabetically @bolinfest
- openai#12849 Add realtime audio device config @aibrahim-oai
- openai#12957 test: move unix_escalation tests into sibling file @bolinfest
- openai#12947 feat: add local date/timezone to turn environment context @celia-oai
- openai#12959 Make realtime audio test deterministic @aibrahim-oai
- openai#12958 Feat: cxa-1833 update model/list @shijie-oai
- openai#12850 Add realtime audio device picker @aibrahim-oai
- openai#12948 Support multimodal custom tool outputs @fjord-oai
- openai#12745 [apps] Improve app/list with force_fetch=true @mzeng-openai
- openai#12866 Add oauth_resource handling for MCP login flows @etraut-openai
- openai#12936 Add a background job to refresh the requirements local cache @alexsong-oai
- openai#12972 Add model availability NUX metadata @aibrahim-oai
- openai#12981 Add realtime websocket tracing @aibrahim-oai
- openai#12968 notify: include client in legacy hook payload @bolinfest
- openai#12997 feat: add use memories config @jif-oai
- openai#12999 feat: gen memories config @jif-oai
- openai#13002 feat: use the memory mode for phase 1 extraction @jif-oai
- openai#13001 chore: tmp remove awaiter @jif-oai
- openai#13011 fix: more stable notify script @jif-oai
- openai#12970 fix: use AbsolutePathBuf for permission profile file roots @bolinfest
- openai#13016 fix(tui): promote windows terminal diff ansi16 to truecolor @fcoury
- openai#13030 Align TUI voice transcription audio with 4o ASR @nornagon-openai
- openai#13047 app-server: deflake running thread resume tests @bolinfest
- openai#12560 app-server: Replay pending item requests on
thread/resume@euroelessar - openai#13055 fix: disable Bazel builds in CI on ubuntu-24.04-arm until we can stabilize them @bolinfest
- openai#12964 execpolicy: add host_executable() path mappings @bolinfest
- openai#13051 Clarify escalation guidance for sandbox-related network failures @daniel-oai
- openai#12612 Unify rollout reconstruction with resume/fork TurnContext hydration @charley-oai
- openai#13067 [apps] Stablize app list updated event. @mzeng-openai
- openai#12369 feat(linux-sandbox): support restricted ReadOnlyAccess in bwrap @viyatb-oai
- openai#13037 fix(tui): theme-aware diff backgrounds with fallback behavior @fcoury
- openai#13070 Keep large-paste placeholders intact during file completion @etraut-openai
- openai#13072 Handle missing plan info for ChatGPT accounts @etraut-openai
- openai#13021 Add model availability NUX tooltips @aibrahim-oai
- openai#13080 app-server: Add an ability to watch events in the test client @euroelessar
- openai#13082 Suppress duplicate assistant output on stdout in interactive sessions @etraut-openai
- openai#13033 fix(app-server): make thread/start non-blocking @owenlin0
- openai#13046 core: adopt host_executable() rules in zsh-fork @bolinfest
- openai#13084 app-server: Add
ephemeralfield toThreadobject @euroelessar - openai#13085 feat: add debug clear-memories command to hard-wipe memories state @sayan-oai
Cometix
- Carried forward: bundled models.json visibility preserved during remote model merge.
- Carried forward: thin LTO + opt-level=s for cometix releases.
- Carried forward: context segment placeholder, dead_code suppressions, snapshot updates.
- Removed upstream install.sh staging step from release workflow.