fix: seed 参数只传给 LocalExecutor,假执行器/CloudExecutor 旧签名不再炸

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 守卫。
This commit is contained in:
host committed 2026-10-27 04:30:43 +08:00
1 parent 7c444a688b
commit 9306c957f3
1 file changed
+19 -4
+19 -4
View File
@@ -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 \