diff --git a/src/daemon/spawner.py b/src/daemon/spawner.py index 606243b..9b29373 100644 --- a/src/daemon/spawner.py +++ b/src/daemon/spawner.py @@ -502,7 +502,12 @@ curl -X POST http://{self.api_host}:{self.api_port}/api/projects/{project_id}/ta if session_state.get("lock_pid_alive") and not session_state.get("lock_expired"): blockers.append(("session_locked", session_state.get("lock_pid"))) if session_state.get("status") == "running": - blockers.append(("session_running", None)) + if session_state.get("lock_pid_alive"): + # 真 running:外部进程占用 + blockers.append(("session_running", None)) + else: + # 假 running:lock PID 死了但 status 还在 running → Phase 2.5 处理 + pass if session_state.get("recent_compact"): blockers.append(("session_compacting", None))