From be2676a6c868320421fc3efa6cbf6f5fc2e17067 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 12 Sep 2026 15:08:48 +0800 Subject: [PATCH] fix(agent): close subagent update type ratchet --- app/agent/middleware/subagents.py | 12 +++++++----- tests/fixtures/architecture/mypy-baseline.json | 1 - 2 files changed, 7 insertions(+), 6 deletions(-) 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,