fix: G10 断点续跑透传 model_provider(sub2api 续跑失败修法)
断点续跑容器不带 --model-provider 时 Server 的 provider 表里 没有 sub2api,thread/resume 报 provider not found(probe15 实弹)。 Docker/Local 断点方法加可选 model_provider 并转发,worker 两处 调用点传 gateway_provider;补单测断言断点命令含 --model-provider sub2api(旧代码下两新测试 1 失败 1 报错)。
This commit is contained in:
1 parent
0ef896c317
commit
a19b1567bb
3 files changed
+96
-8
No files matched your search
+17
-6
@@ -494,7 +494,8 @@ class LocalExecutor(Executor):
|
||||
return self._goal_result_from_runner(
|
||||
task["id"], self._run_local(cmd, extra_env))
|
||||
|
||||
def goal_resume_breakpoint_task(self, task) -> dict:
|
||||
def goal_resume_breakpoint_task(self, task,
|
||||
model_provider=None) -> dict:
|
||||
"""G10:调 host.py goal-resume(无 --goal-text)断点续跑。
|
||||
|
||||
命令:host.py goal-resume --task <host 名>。不传
|
||||
@@ -502,14 +503,18 @@ class LocalExecutor(Executor):
|
||||
goal/verify_command/goal_max_rounds,从
|
||||
goal_rounds_done 的下一轮接着跑同一循环,不开新循环、
|
||||
不新建 worktree、不重置轮次。结论解析与 goal_task 同款。
|
||||
(worker 只以 (task) 一个参数调本地断点方法,与 Docker
|
||||
断点方法的签名不同,不要顺手统一。)
|
||||
model_provider 可选但 worker 必须传:首轮 thread 在该
|
||||
provider 下创建,续跑不带同一 --model-provider 时
|
||||
thread/resume 报 provider not found(与 Docker 断点
|
||||
方法同 bug,2026-10-29 probe15 实弹)。(task) 单参
|
||||
调用仍可用;与 Docker 断点方法的签名不同,不要顺手统一。
|
||||
"""
|
||||
if not isinstance(task, dict) or task.get("id") is None:
|
||||
raise ValueError("任务缺少 id")
|
||||
cmd = self._base_command(model=task.get("model"),
|
||||
effort=task.get("effort"),
|
||||
approval=task.get("approval"))
|
||||
approval=task.get("approval"),
|
||||
model_provider=model_provider)
|
||||
cmd += ["goal-resume", "--task", self._host_name(task)]
|
||||
return self._goal_result_from_runner(
|
||||
task["id"], self.runner(cmd))
|
||||
@@ -1424,19 +1429,25 @@ class DockerExecutor(Executor):
|
||||
|
||||
def goal_resume_breakpoint_task(self, task, timeout=None,
|
||||
extra_mounts=None, network=None,
|
||||
extra_env=None) -> dict:
|
||||
extra_env=None,
|
||||
model_provider=None) -> dict:
|
||||
"""G10:容器内调 host.py goal-resume(无 --goal-text)
|
||||
断点续跑,与 LocalExecutor.goal_resume_breakpoint_task
|
||||
同语义(从 goal_rounds_done 下一轮接着跑,不开新循环)。
|
||||
解析与容器内 goal_resume_task 同款;真 Docker 实弹
|
||||
未做,命令形状由单测覆盖。
|
||||
model_provider 必须透传:首轮 thread 在该 provider 下
|
||||
创建,续跑容器不带同一 --model-provider 时 Server 的
|
||||
provider 表里没有它,thread/resume 报 provider not found
|
||||
(2026-10-29 probe15 实弹)。
|
||||
"""
|
||||
if not isinstance(task, dict) or task.get("id") is None:
|
||||
raise ValueError("任务缺少 id")
|
||||
inner = self._inner_host_command(
|
||||
"goal-resume", "--task", self._host_name(task),
|
||||
model=task.get("model"), effort=task.get("effort"),
|
||||
approval=task.get("approval"))
|
||||
approval=task.get("approval"),
|
||||
model_provider=model_provider)
|
||||
cmd = self.build_run_command(task, inner,
|
||||
extra_mounts=extra_mounts,
|
||||
network=network,
|
||||
|
||||
Reference in new issue
Block a user