From 9306c957f308395df7a0780cf0957d583616fe08 Mon Sep 17 00:00:00 2001 From: host Date: Tue, 27 Oct 2026 04:27:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20seed=20=E5=8F=82=E6=95=B0=E5=8F=AA?= =?UTF-8?q?=E4=BC=A0=E7=BB=99=20LocalExecutor=EF=BC=8C=E5=81=87=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=99=A8/CloudExecutor=20=E6=97=A7=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E7=82=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit worker 曾无条件给同步路径的 goal_task/dispatch_task 传 seed_dir, CloudExecutor 基类与测试假执行器只有 (task) 一个参数,直接 TypeError,炸掉 test_project_repo 2 个 + test_cloud_executor_goal_unsupported 1 个(后者本应报“不支持 goal”)。改成 isinstance(LocalExecutor) 才传 seed_dir,其余走原签名;Docker 路径已有 is_docker 守卫。 --- cloud/worker.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) 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 \