teknium1
b71359066c
fix: /stop halts background subagents and returns their partial results as interrupted completions
...
A turn's hard interrupt fans out only to `_active_children`; background
delegate_task units are detached from the parent at dispatch
(`_dispatch_background` / honor_parent_interrupt=False), so /stop left them
running to completion and their result arrived minutes later as a parked
wake. Every stop surface now also calls
`tools.async_delegation.interrupt_for_session` for the session's units:
- gateway: `_interrupt_and_clear_session` (busy /stop, /new share it — /new
already did this in `_handle_reset_command`, the second request is
idempotent) and the idle `_handle_stop_command` tail, which replied
"No active task to stop." while a background child was running; it now
stops them and replies "Stopped".
- tui_gateway `session.interrupt` (Desktop Stop / TUI stop) — own UI sid +
spawner id only, so a viewer tab never kills gateway work.
- acp_adapter `cancel`.
- CLI `/stop` already used `interrupt_all` (process-wide); unchanged.
The stop recurses: depth>0 delegations are always synchronous
(`_model_background_value`), so the child's hard interrupt reaches its
workers through its own `_active_children` fan-out, and each level's
interrupted partial result rolls up as that child's completion.
An interrupted child's entry now carries what it actually had: the loop's
`final_response` is the "Operation interrupted." placeholder (also appended
as the closing assistant row), so `_build_result_entry` takes the child's
last real assistant text as `summary` and keeps the placeholder as `error`.
The unit finalizes normally and re-enters at once as its completion notice
(status=interrupted, "Partial output: ...", "Subagent Task Interrupted" on
TUI/Desktop) instead of the chat waiting for the child's budget to run out.
Docs: delegate_task description, tools/AGENTS.md, delegation.md,
gateway-session-lifecycle.md.
Part of #114456
2026-09-18 20:34:42 -07:00
..
2026-09-16 17:09:50 -07:00
2026-09-18 09:24:54 -07:00
2026-09-18 15:11:47 -07:00
2026-09-18 20:34:42 -07:00
2026-09-03 17:13:22 -07:00
2026-09-15 04:12:13 -07:00
2026-09-17 20:38:43 +05:30
2026-09-11 19:39:12 -07:00
2026-09-17 09:04:38 -07:00
2026-09-03 13:49:57 -07:00
2026-09-15 21:46:37 -07:00
2026-09-03 13:49:57 -07:00
2026-09-17 09:04:38 -07:00
2026-09-17 00:34:50 -05:00
2026-09-17 21:17:26 +05:30
2026-09-18 10:44:29 -07:00
2026-09-18 09:19:04 -07:00
2026-09-18 10:44:29 -07:00
2026-09-16 22:25:33 -07:00
2026-09-18 09:19:04 -07:00
2026-09-03 17:13:22 -07:00
2026-09-12 01:35:05 -07:00
2026-09-16 16:59:03 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 13:49:57 -07:00
2026-09-18 09:19:04 -07:00
2026-09-18 10:28:40 -07:00
2026-09-15 06:16:38 -07:00
2026-09-11 19:39:12 -07:00
2026-09-03 14:16:54 -07:00
2026-09-13 12:35:36 -07:00
2026-09-16 16:57:03 -07:00
2026-09-03 14:16:54 -07:00
2026-09-03 14:16:54 -07:00
2026-09-15 06:16:38 -07:00
2026-09-18 10:29:47 -07:00
2026-09-10 10:35:07 -07:00
2026-09-17 09:02:55 -07:00
2026-09-18 10:29:47 -07:00
2026-09-17 09:02:55 -07:00
2026-09-15 04:56:01 -07:00
2026-09-13 05:09:43 -07:00
2026-09-16 14:34:22 -07:00
2026-09-18 10:38:08 -07:00
2026-09-03 17:13:22 -07:00
2026-09-16 17:47:50 -07:00
2026-09-04 00:15:16 -07:00
2026-09-18 10:04:57 -07:00
2026-09-18 12:49:13 -07:00
2026-09-15 03:45:41 -07:00
2026-09-15 03:45:41 -07:00
2026-09-11 19:39:12 -07:00
2026-09-15 04:13:47 -07:00
2026-09-18 11:07:56 -07:00
2026-09-15 18:41:46 -07:00
2026-09-18 20:34:42 -07:00
2026-09-08 02:26:05 +05:30
2026-09-15 04:12:13 -07:00
2026-09-18 09:52:36 -07:00
2026-09-10 10:23:12 -07:00
2026-09-06 12:02:43 -07:00
2026-09-13 21:05:42 -07:00
2026-09-15 18:40:52 -07:00
2026-09-18 20:34:42 -07:00
2026-09-03 17:13:22 -07:00
2026-09-15 03:45:41 -07:00
2026-09-03 17:13:22 -07:00
2026-09-03 17:13:22 -07:00
2026-09-18 10:04:57 -07:00
2026-09-03 17:13:22 -07:00
2026-09-09 11:46:36 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 17:13:22 -07:00
2026-09-18 09:54:45 -07:00
2026-09-03 13:33:47 -07:00
2026-09-19 01:46:29 +05:30
2026-09-18 09:54:45 -07:00
2026-09-18 10:10:40 -07:00
2026-09-18 10:38:08 -07:00
2026-09-15 03:57:24 -07:00
2026-09-17 21:17:26 +05:30
2026-09-19 00:33:58 +05:30
2026-09-03 17:13:22 -07:00
2026-09-12 21:55:07 -07:00
2026-09-16 16:59:03 -07:00
2026-09-13 21:03:11 -07:00
2026-09-16 16:42:47 -07:00
2026-09-16 16:42:47 -07:00
2026-09-11 19:39:12 -07:00
2026-09-16 17:21:14 -07:00
2026-09-18 09:29:44 -07:00
2026-09-18 12:46:28 -07:00
2026-09-12 12:32:55 -07:00
2026-09-17 00:11:27 -07:00
2026-09-10 02:21:16 +05:30
2026-09-16 14:34:59 -07:00
2026-09-18 09:20:07 -07:00
2026-09-15 19:00:42 -07:00
2026-09-18 12:47:49 -07:00
2026-09-18 12:47:49 -07:00
2026-09-18 12:47:49 -07:00
2026-09-03 17:13:22 -07:00
2026-09-10 02:21:16 +05:30
2026-09-18 09:58:12 -07:00
2026-09-15 19:04:29 -07:00
2026-09-13 05:09:43 -07:00
2026-09-18 10:25:46 -07:00
2026-09-18 12:48:42 -07:00
2026-09-15 04:12:13 -07:00
2026-09-17 19:06:29 -04:00
2026-09-16 21:15:37 +05:30
2026-09-12 01:35:05 -07:00
2026-09-13 15:41:01 -07:00
2026-09-07 22:47:33 +05:30
2026-09-15 04:55:14 -07:00
2026-09-11 15:27:23 -07:00
2026-09-18 09:45:32 -07:00
2026-09-18 12:48:42 -07:00
2026-09-18 12:48:42 -07:00
2026-09-16 00:32:15 -07:00
2026-09-09 12:19:13 +05:30
2026-09-04 00:15:16 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 17:13:22 -07:00
2026-09-13 20:46:22 -07:00
2026-09-12 21:13:40 -07:00
2026-09-04 00:15:16 -07:00
2026-09-16 17:01:30 -07:00
2026-09-03 17:13:22 -07:00
2026-09-11 19:58:07 -07:00
2026-09-18 01:43:35 +05:30
2026-09-16 00:32:15 -07:00
2026-09-18 12:49:13 -07:00
2026-09-12 22:09:19 -07:00
2026-09-04 00:15:16 -07:00
2026-09-18 09:23:48 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 17:13:22 -07:00
2026-09-04 00:15:16 -07:00
2026-09-17 08:53:48 -07:00
2026-09-15 18:39:09 -07:00
2026-09-16 17:55:07 -07:00
2026-09-19 00:24:50 +05:30
2026-09-19 00:24:50 +05:30
2026-09-18 10:30:57 -07:00
2026-09-18 09:35:16 -07:00
2026-09-15 19:03:33 -07:00
2026-09-04 08:15:22 -07:00
2026-09-17 08:47:01 -07:00
2026-09-03 13:33:47 -07:00
2026-09-17 08:47:01 -07:00
2026-09-09 12:19:13 +05:30
2026-09-15 19:03:33 -07:00
2026-09-03 17:13:22 -07:00
2026-09-15 19:01:39 -07:00
2026-09-18 12:51:49 -07:00
2026-09-15 14:15:59 +05:30
2026-09-07 05:59:43 -07:00
2026-09-18 12:51:49 -07:00
2026-09-15 14:15:59 +05:30
2026-09-16 17:43:11 -07:00
2026-09-18 12:51:49 -07:00
2026-09-18 10:22:14 -07:00
2026-09-06 07:17:03 -07:00
2026-09-11 11:54:49 -07:00
2026-09-04 00:15:16 -07:00
2026-09-06 07:17:03 -07:00
2026-09-16 00:32:15 -07:00
2026-09-16 17:23:44 -07:00
2026-09-03 13:27:01 -07:00
2026-09-15 18:33:15 -07:00
2026-09-19 00:33:58 +05:30
2026-09-03 17:13:22 -07:00
2026-09-15 03:46:29 -07:00
2026-09-18 09:54:45 -07:00
2026-09-15 18:58:30 -07:00
2026-09-05 19:01:22 +05:30
2026-09-18 12:49:13 -07:00
2026-09-03 13:24:04 -07:00
2026-09-15 10:48:49 +05:30
2026-09-15 02:22:22 -05:00
2026-09-18 09:54:45 -07:00
2026-09-10 11:48:01 -07:00
2026-09-14 16:16:08 -07:00
2026-09-18 09:59:54 -07:00
2026-09-11 15:26:46 -07:00
2026-09-11 15:44:00 -07:00
2026-09-13 05:09:43 -07:00
2026-09-15 03:41:43 -07:00
2026-09-13 21:04:08 -07:00
2026-09-18 09:24:54 -07:00
2026-09-18 09:24:54 -07:00
2026-09-12 10:00:08 +05:30
2026-09-03 13:17:25 -07:00
2026-09-13 05:07:50 -07:00
2026-09-13 05:09:43 -07:00
2026-09-16 17:21:37 -07:00
2026-09-15 05:36:37 -07:00
2026-09-15 18:25:17 -07:00
2026-09-03 13:20:22 -07:00
2026-09-18 09:47:06 -07:00
2026-09-13 05:32:38 -07:00
2026-09-03 13:20:22 -07:00
2026-09-03 13:20:22 -07:00
2026-09-18 09:28:39 -07:00
2026-09-03 13:20:22 -07:00
2026-09-18 09:47:06 -07:00
2026-09-16 17:12:11 -07:00
2026-09-13 12:35:36 -07:00
2026-09-17 09:02:55 -07:00
2026-09-13 09:18:54 -07:00
2026-09-17 09:02:55 -07:00
2026-09-13 05:07:50 -07:00
2026-09-11 19:14:24 -07:00
2026-09-03 13:30:31 -07:00
2026-09-13 14:39:29 -07:00
2026-09-03 13:24:36 -07:00
2026-09-03 13:24:36 -07:00
2026-09-13 05:07:11 -07:00
2026-09-15 18:42:38 -07:00
2026-09-15 18:43:05 -07:00
2026-09-05 18:46:16 +05:30
2026-09-16 17:43:40 -07:00
2026-09-03 17:13:22 -07:00
2026-09-18 09:19:04 -07:00
2026-09-13 12:35:36 -07:00
2026-09-13 05:07:50 -07:00
2026-09-03 17:13:22 -07:00