diff --git a/docs/design/02-main-session-delegation.md b/docs/design/02-main-session-delegation.md index cb11fb5..9442bdf 100644 --- a/docs/design/02-main-session-delegation.md +++ b/docs/design/02-main-session-delegation.md @@ -2,7 +2,7 @@ **日期**: 2026-05-30 **作者**: 庞统 -**状态**: 已评审(司马懿 2026-05-30),v1.1 修订中 +**状态**: 已修订 v1.1(根据司马懿 2026-05-30 评审意见) **前置**: `01-four-phase-loop.md`(四相循环 E2E 验证暴露 session 爆炸问题) --- @@ -308,10 +308,24 @@ Agent 同时 spawn 的 subagent 数量有硬性上限: ### 5.4 废弃代码 -- `spawn_full_agent` 的 `new_session` 参数 → 标注废弃(保留接口兼容,不再有调用方传 True) -- `reuse_session_id` 参数 → 标注废弃(续杯改用 `use_main_session=True`) +- `spawn_full_agent` 的 `new_session` 参数 → 标注废弃(保留接口兼容,变更前 `grep -rn 'new_session'` 确认零调用方后标废弃) +- `reuse_session_id` 参数 → 标注废弃(续杯改用 `use_main_session=True`;变更前 `grep -rn 'reuse_session_id'` 确认零调用方) - `gateway-fallback-*` session 的产生路径 → 自然消失(不再传 `--session-id UUID`) +### 5.5 `on_complete` 回调路由 + +`on_complete` 回调中,根据 `task_type` 分支选择检测逻辑: + +```python +def _handle_completion(self, task, db_path): + if task["type"] == "mail": + return self._mail_auto_complete(task, db_path) + else: + return self._task_auto_complete(task, db_path) +``` + +`_task_auto_complete` 检查黑板三信号(status/outputs/comments),`_mail_auto_complete` 检查是否有回复邮件。两者共享超时兜底逻辑(ticker 轮询 working 状态)。 + --- ## 六、Session 生命周期对比