diff --git a/src/blackboard/operations.py b/src/blackboard/operations.py index 59c058c..91e76a0 100644 --- a/src/blackboard/operations.py +++ b/src/blackboard/operations.py @@ -133,6 +133,11 @@ class Blackboard: conn.execute("SELECT retry_count FROM tasks WHERE id=?", (task_id,)).fetchone()["retry_count"] + 1 ) + # BUG-1: failed→pending 必须清空 assignee/claimed_at/current_agent + # 否则 dispatcher 会走确定性路由而非广播 + updates["assignee"] = None + updates["claimed_at"] = None + updates["current_agent"] = None set_clause = ", ".join(f"{k}=?" for k in updates) conn.execute(