I reproduced a Codex multi-agent regression on Windows with Codex CLI 0.144.5 and found a working workaround.
Although my configuration explicitly contained:
[features]
multi_agent = true
multi_agent_v2 = false
codex features list confirmed that V2 was disabled, but fresh GPT-5.6 Sol and Terra sessions still exposed the V2 spawn_agent schema containing only task_name, message, and fork_turns. The schema did not expose agent_type, model, or reasoning_effort.
Before applying any workaround, the model catalog showed:
gpt-5.6-sol multi_agent_version: v2
gpt-5.6-terra multi_agent_version: v2
gpt-5.6-luna multi_agent_version: v1
A fresh gpt-5.3-codex-spark xhigh session provided a useful control test. It used the V1 behavior and displayed the spawned child role, model, and reasoning effort:
Spawned Aristotle [worker] (gpt-5.3-codex-spark xhigh)
This behavior matches the configuration-precedence problem reported in github issue: the model catalog can select V2 even when features.multi_agent_v2 is false, and the selected schema remains pinned to the thread.
I restored V1 by creating a local snapshot of the current model catalog, changing only the Sol and Terra multi_agent_version values to v1, and configuring:
model_catalog_json = 'C:\Users\<username>\.codex\models-v1.json'
[features]
multi_agent = true
multi_agent_v2 = false
After restarting Codex and opening a fresh session, Sol, Terra, and Luna all reported V1, and the original V1 subagent controls were available again.
One Windows-specific detail is important: the JSON catalog must be UTF-8 without BOM. Some PowerShell versions write a BOM with Set-Content -Encoding utf8, which Codex rejects at line 1, column 1. Writing the file with UTF8Encoding(false) avoids that failure.
The workaround has one significant limitation: a local model_catalog_json is a static snapshot of the entire catalog. It must be regenerated when OpenAI updates model metadata.
It may also interfere with Ultra. Sol and Terra advertise Ultra support and were originally assigned V2, while the official documentation describes Ultra as capable of proactive subagent delegation. If that orchestration path depends on MultiAgentV2, forcing V1 could disable proactive delegation, degrade coordination, or cause a runtime/tool-schema mismatch. A successful ordinary V1 subagent test does not prove that Ultra remains fully functional.
There is also an interesting but unconfirmed correlation. Sol and Terra originally used V2 and supported Ultra, while Luna used V1 and did not support Ultra. Official documentation says Ultra can proactively delegate work to subagents. MultiAgentV2 may therefore be related to Ultra orchestration, but I have not found evidence establishing that as the reason for V2, and full Ultra behavior under the V1 override has not been tested.
Users who depend on Ultra should treat this workaround as experimental, test Ultra separately, and keep a rollback path available.