From 64637514e5306036070e3c740021968303435283 Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sat, 23 May 2026 00:45:08 +0800 Subject: [PATCH] auto-sync: 2026-05-23 00:45:08 --- src/daemon/spawner.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/daemon/spawner.py b/src/daemon/spawner.py index 122fd66..91580aa 100644 --- a/src/daemon/spawner.py +++ b/src/daemon/spawner.py @@ -463,7 +463,10 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_ if cls["release_counter"]: await self._do_on_complete_async(on_complete, agent_id, outcome) elif cls["should_retry"]: - # 续杯:先释放 counter,再 spawn + # WORKAROUND (BUG-2a): 设计文档规定续杯期间 counter 保持占用, + # max_retries 到达后自然 release。但因 BUG-2b(retry_count 广播计数失效) + # 导致续杯死循环、counter 永不释放。此处提前 release 作为安全兜底。 + # 待 BUG-2b 修好稳定 3 轮 E2E 后考虑撤回,恢复设计一致性。 # on_complete 不传入续杯链(避免 double release) # 续杯 Agent 退出后由 ticker 自然发现状态变化 if on_complete: @@ -613,7 +616,7 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_ fallback_hint=fallback_hint, ) - # 续杯 spawn(counter 已在 _handle_exit 释放) + # 续杯 spawn(counter 已在 _handle_exit 释放,见 WORKAROUND BUG-2a) try: await self.spawn_full_agent( agent_id=agent_id,