diff --git a/cloud/worker.py b/cloud/worker.py index 3d29343..5530b73 100644 --- a/cloud/worker.py +++ b/cloud/worker.py @@ -1677,12 +1677,27 @@ class Worker: extra_env=proxy_env, seed_host_dir=seed_host_dir) else: + # seed 参数只传给 LocalExecutor:CloudExecutor + # 基类与测试假执行器的 goal_task/dispatch_task + # 只有 (task) 一个参数,多传 seed_dir 会直接 + # TypeError(2026-10-27 实测炸掉 3 个旧测试); + # Docker 路径上面已有 is_docker 守卫,不走这里。 if goal_mode: - result = self.executor.goal_task( - task, seed_dir=seed_host_dir) + if task.get("_resume") and isinstance( + self.executor, LocalExecutor): + result = self.executor.goal_resume_task( + task, task["prompt"]) + elif isinstance(self.executor, LocalExecutor): + result = self.executor.goal_task( + task, seed_dir=seed_host_dir) + else: + result = self.executor.goal_task(task) else: - result = self.executor.dispatch_task( - task, seed_dir=seed_host_dir) + if isinstance(self.executor, LocalExecutor): + result = self.executor.dispatch_task( + task, seed_dir=seed_host_dir) + else: + result = self.executor.dispatch_task(task) combined = (result.get("stdout", "") or "") + \ (result.get("stderr", "") or "") if not goal_mode and result["status"] != "completed" and \