Add running-task exit choices to local daemon sessions (#38447)

## What changed

When `Ctrl-C` is pressed with an empty composer while a task is running in a local daemon session, show a menu that lets the user:

- cancel the task and stay in Codex;
- exit Codex while leaving the task running; or
- stop the task and exit Codex.

Do not offer background execution for side-thread tasks or when follow-up messages are queued. Preserve existing `Ctrl-C` behavior for non-daemon sessions, drafts, paste bursts, MCP startup, and returning from an active side thread.

## Testing

Add TUI tests for each exit action, menu dismissal, side threads, queued follow-ups, composer input, MCP startup, and non-daemon sessions.

GitOrigin-RevId: 539c33d3a4ff288a015bddbe9465d2bbdbe018d0
This commit is contained in:
Eric Traut authored and copyberry committed 2026-08-13 22:38:46 +00:00
1 parent 6344a655a5
commit ca83f7908c
9 files changed
+593 -11

No files matched your search

+1 -1
View File
@@ -1686,7 +1686,7 @@ impl ChatWidget {
}
pub(crate) fn composer_is_empty(&self) -> bool {
self.bottom_pane.composer_is_empty()
self.bottom_pane.composer_is_empty() && !self.bottom_pane.is_in_paste_burst()
}
#[cfg(test)]