From 785b12f1a4b4e29f5143aafa5b9d0f6ecf157f46 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Tue, 19 May 2026 13:26:40 +0800 Subject: [PATCH] auto-sync: 2026-05-19 13:26:40 --- src/daemon/dispatcher.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/daemon/dispatcher.py b/src/daemon/dispatcher.py index 95a4745..79c3bd6 100644 --- a/src/daemon/dispatcher.py +++ b/src/daemon/dispatcher.py @@ -168,11 +168,17 @@ class Dispatcher: # 构建 spawn message message = self._build_spawn_message(task, agent_id, project_config) + # Agent 完成后自动 release counter + on_complete = ( + lambda aid: self.counter.release(aid) + ) if self.counter else None + session_id = await self.spawner.spawn_full_agent( agent_id=agent_id, message=message, new_session=(level == DispatchLevel.ESCALATE), task_id=task.id, + on_complete=on_complete, ) self._record_routing(task, decision, "dispatched", @@ -372,10 +378,15 @@ class Dispatcher: ) else: message = f"Task: {task.title}" + # Agent 完成后自动 release counter + on_complete = ( + lambda aid: self.counter.release(aid) + ) if self.counter else None session_id = await self.spawner.spawn_full_agent( agent_id=agent_id, message=message, new_session=decision.get("new_session", False), task_id=task.id, + on_complete=on_complete, ) return {"level": level.value, "agent_id": agent_id, "session_id": session_id, "status": "dispatched",