From a9b4708c9b0adb8a92812bc86109aac02e5d377e Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sun, 17 May 2026 13:06:14 +0800 Subject: [PATCH] auto-sync: 2026-05-17 13:06:14 --- src/api/blackboard_routes.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/api/blackboard_routes.py b/src/api/blackboard_routes.py index d3856f4..4bb25d7 100644 --- a/src/api/blackboard_routes.py +++ b/src/api/blackboard_routes.py @@ -90,9 +90,24 @@ async def claim_task(project_id: str, task_id: str, body: Dict[str, Any]): @router.post("/tasks/{task_id}/status") async def update_status(project_id: str, task_id: str, body: Dict[str, Any]): bb = _bb(project_id) + old_task = bb.get_task(task_id) if not bb.update_task_status(task_id, body["status"], agent=body.get("agent")): raise HTTPException(409, f"Invalid transition to {body['status']}") + # SSE 推送 + try: + from src.api.sse_routes import get_broker + broker = get_broker() + broker.publish({ + "type": "task_updated", + "project_id": project_id, + "task_id": task_id, + "old_status": old_task.status if old_task else None, + "new_status": body["status"], + "agent": body.get("agent"), + }, event_type="task_updated") + except Exception: + pass # SSE 是可选的,不影响主流程 return {"ok": True}