Skip to content

feat(benchmark): safely activate a staged CLI at an owned idle boundary - #8501

Merged
huangruiteng merged 3 commits into
mainfrom
codex/checkpoint-adoption-hold-20261110
Nov 10, 2026
Merged

huangruiteng merged 3 commits into
mainfrom
codex/checkpoint-adoption-hold-20261110

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

控制器目前缺少在保持已导入 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 调用不自动启用本操作。

验证:

  • 21 个真实隔离 Docker 正例/负例:pause/CAS、源/目标比较、缺失与未知 ACK phase、控制器死亡后另一 actor 的暂停、写入/释放回执丢失、partial launcher、Stop、显式 repair、HTTP archive response 关闭及 cleanup。
  • File/SQLite 两条真实 CLI 原 Turn 结算与 typed lifecycle Stop 路径;一个 debit,重复只读不重扣。
  • 29 个新 typed 边界及现有 checkpoint/settlement/error 相关检查、typecheck、Ruff、双语与公开边界检查。
  • 两个本地确定性 native 协议夹具贯通已导入旧 Host/supervisor、原身份/配置、暂停后真实 owner 读回、CLI 安装/CAS 与同 session 下一 wake;无外部推理、评分或真实 solver 准入。

维护者 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.

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 loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@huangruiteng
huangruiteng merged commit 9353bf7 into main Nov 10, 2026
38 of 46 checks passed
@huangruiteng
huangruiteng deleted the codex/checkpoint-adoption-hold-20261110 branch November 10, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants