You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extend the pre-response Esc rollback window through TurnStarted until the first assistant output or tool work appears, while preserving normal interrupt-only behavior after output begins.
Also document the fork policy clarifications for subagent spawning and background terminal ownership, and bump the release to 0.133.2 with concrete release notes.
Tests:
- TMPDIR=/home/admin/zzw/tmp cargo test -p codex-tui esc_rolls_back_submitted_prompt_after_turn_started_before_output
- TMPDIR=/home/admin/zzw/tmp cargo test -p codex-tui esc_after_agent_output_interrupts_without_rolling_back_prompt
- TMPDIR=/home/admin/zzw/tmp CC=clang CXX=clang++ cargo build --profile release-fast --bin codex --bin bwrap
Copy file name to clipboardExpand all lines: FEATURES.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -94,6 +94,13 @@ Fast-moving prompt packs, hooks, setup flows, and project policies are better ha
94
94
95
95
## Release Notes
96
96
97
+
### 0.133.2 - 2026-05-25
98
+
99
+
- Extend Claude-style Esc rollback through the `TurnStarted`-before-first-output window: if the model has not emitted assistant text, reasoning, plan output, or tool/command activity yet, Esc restores the submitted prompt to the composer and interrupts the turn.
100
+
- Keep Esc interrupt semantics after output begins: once any assistant output or work activity appears, Esc remains interrupt-only and does not silently restore/clear partial responses.
101
+
- Clarify the Open Codex subagent spawn policy: explicit user requests for parallel/subagent work are strong triggers, but not prerequisites; the real gate is whether a lane is independent, consumable, bounded, and worth the coordination cost.
102
+
- Document the background terminal/process ownership rule: do not stop unrelated work merely because it consumes CPU; stop only current-task-owned, blocking, artifact-risking, or explicitly requested work.
103
+
97
104
### 0.133.1 - 2026-05-25
98
105
99
106
- Match Claude Code's "treat the query as not sent" behavior: while a user prompt is awaiting `TurnStarted` from core, pressing Esc now rolls the prompt text back into the composer in addition to issuing the interrupt, so the user can edit and resubmit without retyping.
| Full contract-first subagent execution policy with decision procedure, lane counts, edit-ownership rules |[`docs/open-codex/parallel-first-agent-execution.md`](docs/open-codex/parallel-first-agent-execution.md)|
70
-
71
-
The runtime mirror of the four-gate subagent spawn policy lives in
so the same contract is injected into the model's `spawn_agent` tool
74
-
description even when `~/.codex/AGENTS.md` is empty.
75
-
76
58
## Current Delta and Roadmap vs. Latest Upstream Codex CLI
77
59
78
60
This fork is currently based on the latest upstream `openai/codex` and adds a small set of focused CLI improvements from recent fork-specific commits:
@@ -185,6 +167,30 @@ This is an instruction-policy feature rather than a hardcoded scheduler: it enab
185
167
186
168
From recent fork-specific TUI changes:
187
169
170
+
This section has two paired layers: the user-facing spawn policy that decides
171
+
when subagents should exist, and the runtime/TUI behavior that lets those
172
+
subagents run without blocking normal chat.
173
+
174
+
The user-scope subagent spawn policy guide lives under
175
+
[`docs/open-codex/`](docs/open-codex/) so it stays separate from upstream
176
+
`docs/*.md` during merges:
177
+
178
+
Subagent spawning does not require an explicit user request. Explicit
179
+
parallel/subagent requests are strong positive triggers; the normal gate is
180
+
whether a lane is independent, consumable, bounded, and worth the coordination
181
+
cost.
182
+
183
+
| Guide | Purpose |
184
+
| --- | --- |
185
+
|[`docs/open-codex/README.md`](docs/open-codex/README.md)| Index for the Open Codex user-scope subagent policy docs and their runtime mirrors. |
186
+
|[`docs/open-codex/agents-md-snippet.md`](docs/open-codex/agents-md-snippet.md)| Drop-in `~/.codex/AGENTS.md` snippet for the contract-first spawn gates, small stable profiles, per-query reasoning markers, and `/btw` vs `/side` etiquette. |
187
+
|[`docs/open-codex/parallel-first-agent-execution.md`](docs/open-codex/parallel-first-agent-execution.md)| Full policy rationale and decision procedure: when to spawn, how many lanes to use, when to wait, and how to keep edit ownership bounded. |
188
+
189
+
The runtime mirror of the four-gate spawn policy lives in
so the same contract is injected into the model's `spawn_agent` tool
192
+
description even when `~/.codex/AGENTS.md` is empty.
193
+
188
194
The feature is centered on two background lanes:
189
195
190
196
-**Terminal commands** — long-running terminal sessions continue in the background instead of keeping the main turn blocked by foreground waiting or polling. Empty `command/exec/write` interactions keep the terminal backgrounded, so normal chat input can be submitted while the shell process continues.
@@ -195,6 +201,7 @@ The shared interaction model is:
195
201
-`Ctrl+B` sends the current terminal activity to the background while keeping streamed output available.
196
202
-`Down` opens a live task panel with separate `Tasks`, `Subagents`, and `Terminals` sections.
197
203
-`Enter` opens details, `x` stops the selected stoppable background item, and `Esc`/`Left` closes the panel.
204
+
- background terminals/processes should not be stopped merely because they look unrelated or consume CPU; stop only work that belongs to the active task, blocks required resources, risks corrupting the active artifact, or was explicitly requested to be stopped.
198
205
- the status line keeps foreground `Working` state separate from background subagent/terminal counts.
199
206
- terminal details show runtime and recent output; subagent details show role, task, status, runtime, progress, and task-boundary context.
200
207
-`/agent` shows available agent profiles, while `/subagents` opens the subagent thread picker/switching workflow for live, resumable, and closed-but-reviewable threads.
0 commit comments