用 Codex 写代码的人大概都经历过这种尴尬:你让它规划一个任务,它在 Plan 模式里把方案列得井井有条,然后……停在那里等你。

你看着那份计划,心想“行,那就开始吧”,于是敲下一句“开始实施”。结果它回你一句:“我还在 Plan 模式,请先切换到执行模式。”
你就得去按 Shift+Tab 切模式,再重新发一遍“开始实施”。如果中途忘了切,它可能又把你刚才的指令当成新的规划需求,重新给你列一遍计划。一来一回,原本一句话的事,变成了三四个来回。
更烦的是,长会话里上下文堆了一大堆,你切模式的时候还可能切错,然后又要重新解释一遍“我到底想干什么”。
Codex 的 Plan 模式很聪明,但它和 Execute 模式之间的那道门,得你自己去推。
现在这道门终于被改成了自动门。Codex TUI 在 Plan 模式下完成规划后,会主动弹出一个提示框,问你:
- Yes, implement this plan:直接切到 Execute 模式,并自动提交“实施这个计划”的指令。
- Yes, clear context and implement:清空当前上下文,在新会话里实施(适合长会话后上下文已经“脏了”的情况)。
- No, stay in Plan mode:继续规划,不实施。

选第一个,Codex 会通过 SubmitUserMessageWithMode 事件,把“实施指令”和“模式切换”原子性地一起发出去。你不需要先切模式再发消息,一步到位。
这个设计里有一个很聪明的细节:切换和指令是原子的。也就是说,如果切换失败,指令也不会被发出。不会出现“模式没切成功,但指令已经发出去了”这种半吊子状态。
另一个细节是“清除上下文再实施”这个选项。它解决的是另一个真实痛点:你在一个很长的会话里规划了半天,上下文里塞满了讨论、试错、废弃方案。如果直接在这个上下文里实施,模型可能会被前面的噪音干扰。清空上下文,从干净的状态开始执行,反而更稳。
这个改动的本质,是把“确认实施”和“切换模式”这两个原本分离的操作,合并成了一个连续的、有明确语义的交互
它没有增加新功能,只是让原本就存在的流程,少了一步“手动推门”。但用过的人会知道,这少掉的一步,恰恰是每天要重复几十次的那一步。