auto-sync: 2026-05-30 00:23:34

This commit is contained in:
cfdaily
2026-05-30 00:23:34 +08:00
parent cc1709bdba
commit 088202e6f6
+5 -2
View File
@@ -480,6 +480,9 @@ curl -X POST http://{self.api_host}:{self.api_port}/api/projects/{project_id}/ta
# 2. session state 检查(main session 防外部占用)
if use_main_session:
session_state = self._check_session_state(agent_id)
logger.info("Session state check for %s: status=%s lock_pid=%s lock_pid_alive=%s recent_compact=%s",
agent_id, session_state.get('status'), session_state.get('lock_pid'),
session_state.get('lock_pid_alive'), session_state.get('recent_compact'))
if session_state.get("lock_pid_alive"):
logger.info("Spawn skipped: %s main session locked by PID %d",
agent_id, session_state.get("lock_pid"))
@@ -1174,7 +1177,7 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_
# 注意:exit=0 + stdout 为空可能是正常完成(--json 没输出),
# 此时 task_status 如果是 done/review 会被上面的 A4 兜住
if status is None and not stdout_text.strip() and exit_code != 0:
return {"outcome": "process_crash", "should_retry": False}
return {"outcome": "crashed", "should_retry": False, "original": "process_crash"}
# stdout 为空但 exit=0:可能是正常完成但 --json 没输出
# 查任务状态判断
@@ -1200,7 +1203,7 @@ curl -X POST http://{api_host}:{api_port}/api/projects/{project_id}/tasks/{task_
return {"outcome": "agent_error", "should_retry": False}
# 兜底:status 未知值
return {"outcome": "unknown_status", "should_retry": False}
return {"outcome": "agent_error", "should_retry": False, "original": "unknown_status"}
@staticmethod
def _get_retry_counts(db_path: Optional[Path], task_id: Optional[str]) -> dict: