auto-sync: 2026-05-17 06:32:22
This commit is contained in:
+7
-21
@@ -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 认领任务
|
||||
|
||||
Reference in New Issue
Block a user