auto-sync: 2026-05-26 14:38:09

This commit is contained in:
cfdaily
2026-05-26 14:38:09 +08:00
parent b8ef9ef4b7
commit 078104f0f0
+14 -4
View File
@@ -1029,10 +1029,6 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_
summary = json_result.get("summary", "")
fallback_used = json_result.get("fallback_used", False)
# stdout 为空 = 进程异常终止
if status is None and not stdout_text.strip():
return {"outcome": "process_crash", "should_retry": False}
# A4: 任务 DB status=failedAgent 自己标的)
if task_status == "failed":
return {"outcome": "agent_failed", "should_retry": False}
@@ -1052,6 +1048,20 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_
# A7-A12: status=error → 不续杯,stderr 辅助分类
if status == "error":
# A0: stdout 为空且 exit≠0 = 进程异常终止
# 注意:exit=0 + stdout 为空可能是正常完成(--json 没输出),
# 此时 task_status 如果是 done/review 会被上面的 A1/A4 兜住
if status is None and not stdout_text.strip() and exit_code != 0:
return {"outcome": "process_crash", "should_retry": False}
# stdout 为空但 exit=0:可能是正常完成但 --json 没输出
# 查任务状态判断
if status is None and not stdout_text.strip() and exit_code == 0:
terminal_statuses = {"done", "review"}
if task_status in terminal_statuses:
return {"outcome": "completed", "should_retry": False}
return {"outcome": "agent_error", "should_retry": False}
stderr_lower = stderr_text.lower()
if any(kw in stderr_lower for kw in ["401", "403", "unauthorized", "auth"]):
return {"outcome": "auth_failed", "should_retry": False}