q792602257
88189770ff
feat(runtime): add cancellation-aware stop_reason to TaskRunner and WorkflowRunner
...
- TaskRunner.run() and WorkflowRunner.run()/resume() accept an optional
stop_reason callable alongside should_stop, distinguishing a genuine
cancellation from other stop conditions (e.g. lost lease).
- is_cancellation_reason() shared helper added to runtime/task.py.
- WorkflowRunner._stop_status() now branches cancelled/failed based on
stop_reason, correcting a prior blanket cancelled-on-any-stop behavior
that conflicted with the host-agent-protocol spec's requirement to
distinguish cancellation from lease-loss stops.
- Default behavior (stop_reason=None) is preserved exactly for both
runners so existing callers/tests are unaffected.
- Task 1 of openspec change task-cancellation.
2026-07-15 17:52:33 +08:00
..
2026-07-06 13:22:15 +08:00
2026-07-06 17:24:03 +08:00
2026-07-15 10:12:09 +08:00
2026-07-06 23:23:44 +08:00
2026-07-06 23:23:44 +08:00
2026-07-06 23:23:44 +08:00
2026-07-06 23:23:44 +08:00
2026-07-06 23:23:44 +08:00
2026-07-06 23:23:44 +08:00
2026-07-06 23:23:44 +08:00
2026-07-12 13:48:50 +08:00
2026-07-14 12:47:49 +08:00
2026-07-15 12:43:22 +08:00
2026-07-13 14:47:01 +08:00
2026-07-13 14:47:01 +08:00
2026-07-13 19:45:53 +08:00
2026-07-13 14:00:23 +08:00
2026-07-15 11:46:27 +08:00
2026-07-13 19:45:53 +08:00
2026-07-12 16:53:02 +08:00
2026-07-06 23:44:18 +08:00
2026-07-13 22:56:31 +08:00
2026-07-14 12:47:49 +08:00
2026-07-12 18:37:51 +08:00
2026-07-14 12:47:49 +08:00
2026-07-12 17:42:20 +08:00
2026-07-15 12:43:22 +08:00
2026-07-14 12:47:49 +08:00
2026-07-15 07:55:08 +08:00
2026-07-07 08:30:47 +08:00
2026-07-14 12:47:49 +08:00
2026-07-13 17:54:53 +08:00
2026-07-15 09:43:14 +08:00
2026-07-07 08:30:49 +08:00
2026-07-15 10:03:30 +08:00
2026-07-15 17:04:59 +08:00
2026-07-06 17:24:03 +08:00
2026-07-07 08:30:47 +08:00
2026-07-06 13:22:15 +08:00
2026-07-06 13:22:15 +08:00
2026-07-15 14:39:28 +08:00
2026-07-13 23:22:53 +08:00
2026-07-14 12:47:49 +08:00
2026-07-12 18:07:42 +08:00
2026-07-15 11:46:27 +08:00
2026-07-15 07:28:42 +08:00
2026-07-06 17:24:03 +08:00
2026-07-15 16:51:36 +08:00
2026-07-15 10:03:30 +08:00
2026-07-15 12:43:22 +08:00
2026-07-07 08:31:00 +08:00
2026-07-15 16:12:53 +08:00
2026-07-07 08:31:03 +08:00
2026-07-06 17:24:03 +08:00
2026-07-06 17:24:03 +08:00
2026-07-06 17:24:03 +08:00
2026-07-07 08:30:49 +08:00
2026-07-15 07:38:12 +08:00
2026-07-15 07:38:12 +08:00
2026-07-07 10:33:23 +08:00
2026-07-06 18:07:53 +08:00
2026-07-07 08:31:11 +08:00
2026-07-07 10:33:23 +08:00
2026-07-06 18:07:53 +08:00
2026-07-06 18:07:53 +08:00
2026-07-07 08:31:11 +08:00
2026-07-06 23:44:18 +08:00
2026-07-06 23:44:18 +08:00
2026-07-15 17:52:33 +08:00
2026-07-13 22:56:31 +08:00
2026-07-15 14:39:28 +08:00
2026-07-15 13:43:39 +08:00
2026-07-12 13:48:50 +08:00
2026-07-06 17:24:03 +08:00
2026-07-06 23:15:30 +08:00
2026-07-06 23:15:30 +08:00
2026-07-15 17:52:33 +08:00
2026-07-06 23:15:30 +08:00
2026-07-06 23:15:30 +08:00
2026-07-13 16:11:40 +08:00
2026-07-07 08:30:36 +08:00
2026-07-15 12:43:22 +08:00
2026-07-06 17:24:03 +08:00