diff --git a/app/agent/middleware/subagents.py b/app/agent/middleware/subagents.py index 00f323002..b595ffd2c 100644 --- a/app/agent/middleware/subagents.py +++ b/app/agent/middleware/subagents.py @@ -1002,13 +1002,15 @@ class SubAgentTaskControlMiddleware(AgentMiddleware): record.task = asyncio.create_task( self._execute_managed_task(record), name=record.task_id, ) - record.task.add_done_callback( - lambda finished_task, finished_task_id=record.task_id: self._mark_task_finished( - finished_task_id, finished_task, - ) - ) + record.task.add_done_callback(self._task_finished_callback(record.task_id)) return True, None + def _task_finished_callback( + self, task_id: str, + ) -> Callable[[asyncio.Task[Any]], None]: + """返回带稳定 task_id 的完成回调,供任务更新复用。""" + return lambda finished_task: self._mark_task_finished(task_id, finished_task) + def seal(self) -> None: """封住新的 detached 子代理提交,既有任务继续由记录表持有。""" self._accepting_tasks = False diff --git a/tests/fixtures/architecture/mypy-baseline.json b/tests/fixtures/architecture/mypy-baseline.json index 960440487..01e0e4bd8 100644 --- a/tests/fixtures/architecture/mypy-baseline.json +++ b/tests/fixtures/architecture/mypy-baseline.json @@ -187,7 +187,6 @@ }, "app/agent/middleware/subagents.py": { "arg-type": 2, - "assignment": 1, "attr-defined": 2, "misc": 7, "type-arg": 5,