Repository navigation
feat(benchmark): safely activate a staged CLI at an owned idle boundary - #8501
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent | gpt-6.1-sol | OpenAI | runtime_reported | reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
这次解决的是控制器更新正在运行的 worker 时的一个具体问题:既要保留已导入的 Host、原会话、工作和有限预算,又不能在模型或工具仍执行时替换它随后调用的 CLI。直接覆盖 launcher 无法证明静止和暂停归属;完整重启或重装则会越过本次保留原执行条件的边界。新增入口让已获授权的控制器先取得可审的静止事实,再更新一个明确归属的 launcher,并在回执丢失时恢复同一操作。
本 review 覆盖 #8501 的完整 11 文件、+1557/-0,精确 head 为 76e184ec556881b68e38f197c35d56fa92ee3a11。这是独立可用的工程增量:交付明确启用、可预览、可失败保持的安装适配器;实际在途部署、后继自然模型输入和效果/总成本仍需控制器另行验证。它不新增 solver 准入、执行臂、task validator、评分或额度,也不宣称整个 Host 已升级。
原有验收依据是 benchmark/README.md,固定版本 080fe8253bf1566886b3fd972db717f13ced2bf1,包括原生权威、显式启用、受控 writer barrier、同一操作恢复和原预算边界。为便于核对,本次将这些既有要求归并为 B-1 原生/工作权威不变、B-2 显式启用与精确来源、B-3 暂停归属及失败恢复、B-4 原额度与机会不变、B-5 完整性不等于模型采用。新协议文档是本 PR 的提案说明,不拿它反向证明自身已被接受。
改动思路 / Approach
TypeScript 的 qualifyCliSourceActivation 只归并既有 settlement、native cursor、Stop 和物理屏障观察。Python 负责 Docker IO、私有 intent 与确认回执。这个 journal 记录无法从当前 Paused 布尔值推导的历史事实,不复制 Goal/Todo 的决定权。
这个闭合合同包含 Docker container/start identity、Linux release 路径和 Codex completed cursor;当前调用者也只在 benchmark controller。将其放到 benchmark.cli_source_activation 与 capability owner 下是合适的范围修正,无需为尚不存在的第二种 Host 再造通用 provider 抽象。它复用原 worker lock、registry activation、settlement、native history 和 atomic journal owner。旧 checkpoint capture 会产生研究点及自己的尝试身份,不能作为一次无 capture、无机会消耗的 CLI 更新替代。
以下是该头源码的控制分支示意,实际执行证据见后文:
| 当前事实 | 允许的结果 |
|---|---|
| 只有 pause 请求,确认未持久化或 phase 不合法 | HOLD;不写 launcher、不解除当前暂停 |
| 已确认自有 pause,原身份已结算、native 静止、来源不变 | 精确比较并写 launcher,再独立读回 |
| repair 校验后出现 Stop 或屏障改变 | HOLD;不执行 repair 写入 |
| 已 released 的同 intent 重读 | 仅历史回执;不认证当前 source 或采用 |
具体改动 / Changes
activate_cli_source 在执行前确认完整 container/start、原 registry route、launcher target/uid/gid 和同一物理 worker lock。preview 默认无效果;执行先写私有 intent,再请求暂停。reconcile 现在要求确认后的 phase 白名单、严格的 pause_acknowledged=true 和有限时间戳;它们只由成功 pause 返回后的正常生产路径持久化。当前 Paused 不能代替此确认。
这里修复了独评实际发现的两个问题。旧 983b892c 在请求持久化后、pause 调用前控制器退出,另一 actor 随后暂停时,会在 reconcile 中切换 launcher、解除外部暂停,再因缺时间戳报错。旧头还会在 repair verification 返回时已出现 Stop 的情况下先写 launcher。当前头在任何相关效果前拒绝前者,并在 repair verify 后重新读当前 Goal/外部 control 和 held namespace。完全相同输入的五个原反例现为 5 PASS;旧失败及实际错误效果保留,没有把它们重新标成历史通过。
PausedSourceProbe 在 network-disabled observer 中读取显式声明的工作、authority 和 native stores,核原 settlement 与稳定的 completed history。它不在暂停源中执行工作,不复制整个认证 home,不用进程名子串判定空闲;未知进程拒绝。SQLite companion 参与来源 witness。此清单完整性来自已知 runtime 合同,不能把一次忙进程表直接收集成任意“可信 idle”名单。
StagedCliRelease 对 canonical archive 的 revision/digest、声明成员、普通权限位和 link 边界做校验。新目录不能覆盖重试,partial upload 保留。Docker tar 写 symlink 不是文件系统 rename;其 dispatch 原子性依赖已确认的 pause 与共享锁。真实 uid/gid=1000 的 launcher 更新也独立验证了归属保留。
HTTP 生命周期没有停在合成 generator:_archive_response 使用 daemon HEAD 读取 metadata,GET 即便尚未迭代也关闭实际 Response,保留 HTTP read timeout。独立真实 Docker 检查确认未读 GET 后仍可正常操作同一 container。
本头独立验证还包括:六种 semantically partial ACK 均 HOLD;合法 preview、partial launcher repair、lost release ACK 和 HTTP cleanup 路径通过;真实 File/SQLite CLI 在原 Turn writeback/spend 后才满足 settled,Stop 后拒绝,无重复 debit。base/head 各四个相同输入的 off/raw 公共 CLI 读回,核心观察 fingerprint 相等,原 identity、一条 receipt、零 spend 均保留。当前 29 个 typed tests、TypeScript typecheck、Ruff 与 RFC 双语检查通过。
对主干的风险 / Risks
B-1 至 B-5 在本工程范围均有对应来源、拒绝和恢复证据。最危险的反例是“观察到暂停就拥有暂停”;旧头的正例和 typed tests 都不足以排除它,因而本次特意保留原真实 Docker 失败,再验证新 ACK fence 的正反方向。HOLD 后不应创建新 intent、重放模型或凭手工时间戳解锁;应由原控制器恢复同一操作的明确归属。已 released 的重读明确标记 historical/replayed,当前 ownership 与模型采用未验证。
本功能默认不调用,普通 App/Lark/CLI、checkpoint 和 scheduler 输入/提示没有自动改写。只新增一个 lazy 注册的专用 handler;可用性不等于启用。暂停、来源复制和归档的成本留在原执行条件内,没有修改或返还 phase。timeout 不能被理解为整个文件系统 IO 的抢占保证;实际控制器仍必须结合原 phase、资源和 Stop owner。大工作区的真实峰值、暂停时长和部署效果没有由小 fixture 推断出来。
兼容性证据包含已导入旧 Host/supervisor、真实 observer/CAS、同 session/profile/hooks 及下一次完整 C1 读取的确定性 native 协议夹具,File/SQLite 两例通过。该次回执的 new_head 指新 CLI 目标,未记录当时 controller 的 import;随后另以当前 76e 头在单格 File 启动即记录实际 controller 模块及 blob,完整链再次通过,两层证据分别保留。该夹具没有外部模型推理或评分;它证明混合版本入口可接通,不能证明自然任务采用或收益。本 review 也不批准包含其他修复的组合 release,更不授权实际更新。
CI 仅作一次当前观察:packet 当时 19 success、20 pending,无已知失败;pending 的原因未归因,不宣称全绿。相关变化的决定性覆盖来自上述当前头独立验证。CI 与维护者 merge readiness 继续单独处理。
我的整体评价 / Verdict
当前完整 PR 是有明确边界的 justified increment。专用 capability、Docker provider IO、隔离 observer 和 transport ACK 分工与实际 caller 相符;恢复屏障是必要不变量,preview 是可选策略,两者没有混作新的任务权限。旧 imported Host 与新 CLI/kernel 的来源分段必须保留,部署控制器还需完成实际 phase/resource 观察和自然后继采用,这是明确的剩余交付,不藏在安装成功后面。
长期续跑和操作体验在工程范围得到保护:不确定结果可在同 identity 读回,合法已确认恢复仍可前进,不要求额外人工确认来重建已知 intent;原工作、quota、native history 与 Stop 继续由其 owner 决定。没有渲染 UI 变化,visual review 不适用;检查范围是这次内部 controller API、协议与公共 CLI 的失败/恢复行为。未验证范围为实际安装、自然模型采用、完整长期效果与成本,不以测试数、running 状态或 schema 标签替代。
English verdict: APPROVE — exact head 76e184ec556881b68e38f197c35d56fa92ee3a11. The independent pause-ownership and repair-Stop counterexamples are fixed and replayed successfully; bounded source/authority/default-off checks pass. This is an engineering-source review, not merge authority, live activation approval, or an effectiveness claim.
控制器目前缺少在保持已导入 Host 与原会话状态时,显式切换 versioned CLI 的安全入口。本变更在现有 benchmark-toolkit 下增加 Docker 操作适配器:先验证原 Turn 已结算与原生会话静止,再暂停、精确比较并切换 owned launcher;不确定的写入或解除暂停回执沿同一私有 intent 读回恢复。
TypeScript 的
benchmark.cli_source_activation负责资格与允许效果,Python 只适配 Docker、隔离读和 transport journal。完整归属/协议见 Host CLI source activation v0。App/Lark/普通 CLI 与旧 checkpoint 调用不自动启用本操作。验证:
维护者 review hold 保留;没有 merge 授权。控制器明确记录“旧 imported Host + 新 CLI/kernel”混合段,保留原 frozen profile 和预算,setup/pause 不返还。历史完成回执不认证当前 source ownership 或模型采用;实际部署、原会话自然采用和效果/成本收益需要另行验证。
English: Add an explicit benchmark-controller adapter for a qualified, paused CLI-source switch with durable acknowledgement ownership and exact-intent reconciliation. Existing execution, work, native history and clock owners remain authoritative; no automatic activation or effectiveness claim.