oudecheng
fc3a95b152
feat: 异步子代理 v8 实现与 /stop 取消流程修复
后端核心实现:
- 新增 wait_coordinator:释放/重获取 serial_lock 的 in-tool waiting 模式,替代旧的 break-exit 方案
- 新增 wait_for_subagents 工具:select! 等待子代理完成/用户消息/超时,支持 try_drain 批量消费
- task 工具异步 spawn 路径:CancellationToken 注册表 + RAII guard + Semaphore 并发限流
- process exit 安全检查:pending 子代理存在时抑制 ExecutionCompleted
- 崩溃恢复:启动时标记 running->interrupted,history 加载时对账占位
/stop 取消流程修复:
- wait_coordinator select! 添加 cancel 分支,完整清理状态
- ToolContext 注入 cancel_rx(watch::Receiver clone)
- agent_loop 工具执行 select! 对 wait 工具跳过竞速,防止 drop coordinator 清理逻辑
- 子代理完成状态通过 execution_completed metadata 传播
存储层:
- pending_subagents 表 + 条件 UPDATE
- mark_all_running_as_interrupted 崩溃恢复
2026-08-13 22:12:20 +08:00
..
2026-08-13 22:12:20 +08:00
2026-08-13 08:38:36 +08:00
2026-08-12 08:26:42 +08:00
2026-08-12 08:26:42 +08:00
2026-08-03 23:24:02 +08:00
2026-08-13 22:12:20 +08:00
2026-08-13 22:12:20 +08:00
2026-07-30 17:37:29 +08:00
2026-08-06 08:18:04 +08:00
2026-08-13 22:12:20 +08:00
2026-08-11 23:07:00 +08:00
2026-08-12 08:26:42 +08:00
2026-08-07 08:33:15 +08:00
2026-08-13 22:12:20 +08:00
2026-08-12 08:26:42 +08:00
2026-08-04 10:55:52 +08:00
2026-08-06 08:18:04 +08:00
2026-08-13 22:12:20 +08:00
2026-08-13 22:12:20 +08:00
2026-08-03 23:24:02 +08:00
2026-08-03 23:24:02 +08:00
2026-08-07 08:33:15 +08:00
2026-08-12 08:26:42 +08:00
2026-08-03 23:24:02 +08:00
2026-04-28 10:33:31 +08:00
2026-08-03 23:24:02 +08:00
2026-08-13 08:38:36 +08:00