auto-sync: 2026-05-17 06:32:22

This commit is contained in:
cfdaily
2026-05-17 06:32:22 +08:00
parent 9290b8dba7
commit e1b050b054
+7 -21
View File
@@ -251,29 +251,15 @@ async def default_inbox_callback(
conn.close()
elif event_type == "agent_status":
# Agent 状态变更 → 更新 tasks 表
# Agent 状态变更 → 通过 Blackboard 状态机校验
new_status = event.get("status")
if new_status and task_id:
conn = get_connection(db_path)
try:
conn.execute("BEGIN IMMEDIATE")
row = conn.execute(
"SELECT status FROM tasks WHERE id=?", (task_id,)
).fetchone()
if row:
old = row["status"]
conn.execute(
"UPDATE tasks SET status=?, updated_at=datetime('now') WHERE id=?",
(new_status, task_id),
)
conn.execute(
"INSERT INTO events (task_id, agent, event_type, detail) VALUES (?,?,?,?)",
(task_id, agent, f"task_{new_status}",
json.dumps({"from": old, "to": new_status})),
)
conn.commit()
finally:
conn.close()
from src.blackboard.operations import Blackboard
bb = Blackboard(db_path)
ok = bb.update_task_status(task_id, new_status, agent=agent)
if not ok:
logger.warning("Inbox: invalid status transition to '%s' for task %s",
new_status, task_id)
elif event_type == "agent_claim":
# Agent 认领任务