richardopenai
4f39251a01
Add unfinished root turn suspension ( #40038 )
...
## Why
An active root turn needs to be stopped without marking it complete or aborted
before another runtime can recover the same turn ID.
## What changed
- Add `CodexThread::suspend_turn_and_shutdown` and `SuspendTurnOutcome`.
- Flush history, stop the active regular task, close the history writer, and
shut down the session without recording a terminal turn event.
- Reject suspension when no supported turn is active or the loaded agent
subtree still contains a live descendant.
## Testing
- Verify that suspension preserves unfinished history and allows the turn to be
recovered under its original ID after the descendant guard is cleared.
GitOrigin-RevId: 1f9b019d07c51474ec2d991d263bc15cdd4f89ad
2026-08-22 00:42:19 +00:00
..
2026-08-21 03:31:56 +00:00
2026-08-22 00:42:19 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 17:46:05 +00:00
2026-08-21 02:33:50 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-21 21:54:40 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 20:45:42 +00:00
2026-08-17 11:44:56 +00:00
2026-07-09 03:40:08 +00:00
2026-08-21 19:04:32 +00:00
2026-08-21 19:04:32 +00:00
2026-08-21 20:15:23 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 16:50:34 +00:00
2026-08-20 08:10:08 +00:00
2026-08-18 07:32:03 +00:00
2026-08-20 17:46:05 +00:00
2026-08-21 03:31:56 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 17:46:05 +00:00
2026-06-18 14:09:38 +02:00
2026-08-17 21:49:30 +00:00
2026-08-21 19:04:32 +00:00
2026-08-20 05:29:12 +00:00
2026-08-21 21:12:43 +00:00
2026-08-21 21:51:12 +00:00
2026-08-21 21:51:12 +00:00
2026-08-21 20:45:42 +00:00
2026-08-21 21:22:35 +00:00
2026-08-21 21:45:26 +00:00
2026-08-18 22:10:43 +00:00
2026-08-20 18:29:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-06-15 21:53:47 -07:00
2026-08-13 00:00:16 +00:00
2026-08-21 21:17:42 +00:00
2026-08-04 15:23:43 +00:00
2026-08-20 08:10:08 +00:00
2026-08-20 08:10:08 +00:00
2026-08-19 01:26:16 +00:00
2026-08-20 18:17:28 +00:00
2026-08-21 21:51:12 +00:00
2026-05-18 21:03:51 -07:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-17 10:01:59 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-14 18:26:20 +00:00
2026-08-20 11:57:32 +00:00
2026-08-20 18:29:35 +00:00
2026-08-21 17:29:41 +00:00
2026-08-20 08:10:08 +00:00
2026-08-20 19:09:04 +00:00
2026-06-08 13:55:15 -07:00
2026-08-20 17:46:05 +00:00
2026-08-17 11:44:56 +00:00
2026-08-17 11:44:56 +00:00
2026-08-20 17:46:05 +00:00
2026-07-14 10:37:23 +00:00
2026-08-14 19:07:15 +00:00
2026-07-22 20:23:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 06:41:28 +00:00
2026-08-01 01:17:26 +00:00
2026-08-21 17:29:41 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 17:54:42 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 19:04:32 +00:00
2026-07-22 00:50:28 +00:00
2026-08-18 05:46:08 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 23:13:37 +00:00
2026-08-20 08:10:08 +00:00
2026-08-20 18:29:35 +00:00
2026-08-13 00:00:16 +00:00
2026-07-23 19:19:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 05:42:20 +00:00
2026-08-21 15:24:56 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 08:10:08 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 07:29:43 +00:00
2026-08-21 03:31:56 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 19:19:41 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 19:25:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 19:43:54 +00:00
2026-08-21 14:04:33 +00:00
2026-08-10 19:26:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-14 01:23:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 03:31:56 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 06:29:32 +00:00