Skip to content

fix(benchmark): capture full checkpoints after settled work - #8005

Merged
huangruiteng merged 2 commits into
mainfrom
codex/checkpoint-settled-handoff-20261104
Nov 4, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/checkpoint-settled-handoff-20261104

Conversation

@huangruiteng

@huangruiteng huangruiteng commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

显式完整 checkpoint 声明省略 trigger 时,parser 会拒绝已有的 settled-wake controller 路径,捕获只能等到 fresh replan。此修复允许在原工作 Turn 已结算、原生 Turn 完成后,通过现有 controller writer barrier 保存会话、canonical 研究状态、工作区、incumbent、反馈机会和原 phase clock。

自动捕获沿用既有 fresh-replan cadence;额外的 settled-wake 捕获只在必要交接/升级时单次显式请求,不作为每个工作 wake 的默认。

同一声明的 destination 只尝试一次,失败或回执不确定后保留首次边界;原 wake 先保存不可变声明见证,再写 artifact 侧索引;索引权限恢复后,重试不会把后续工作替换成原研究点,同一 Turn 换 destination 也拒绝。原 phase 耗尽时先拒绝 IO;完整文件声明使用与预加载声明一致的 90 秒窗口及现有 sealing 上限。普通文件捕获仍是 30 秒。原自动 fresh-replan 策略和未启用路径保持既有行为。

验证与边界:

  • 72 项定向测试通过,4 项 Linux 专用用例在本机跳过;覆盖完整参与者、非法 trigger、封闭 phase、未启用路径和失败点复用。
  • 权限恢复回归用例在基线也失败,原因是缺少当前启用的 Stride review;现随原 guard 提交独立轴和最小证据,实际 CLI/权限用例通过。
  • 当前 head df2eb06b8d183fbc5c56691a68694b779bd2a258 在原生 CLI 0.162.1、Context off/on 下完整联合验证通过:每组 6 段,共 12 段,覆盖实际 worker、controller、隔离普通/Stride receiver、再次完整 capture、后继 receiver 和无 benchmark 的 Core 入口。源完整首读/后续 delta,以及新 receiver 首读 full 均校验。
  • 双语 RFC 检查通过;当前 head 标准 premerge 自动检查零失败,整体仍为 manual_review_required(退出 1),保留 benchmark_sensitive 人工评审门。

联合验证使用确定性本地推理和合成反馈,证明机械恢复与采用;科学收益及真实任务的整段接续仍需单独资格化。所有捕获与恢复继续复用现有 owner。

当前状态:df2eb06b 独立批准已读回。远端 CI 被 main 既有的 Lark 测试 Ruff E731 阻塞,后续聚合失败/跳过未算作通过;独立修复见 #8008(6 项相关用例及 CI 同范围 Ruff 通过),待该依赖解决后再重跑 CI。

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

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

当前 head 无阻塞发现,APPROVE。 旧 head d69329a724f6a90680fec6d290f3c06b0c85e7af 的 P2 未因换头而遗失:我先用两个真实 CLI/SQLite 已结算 Turn 和非 root POSIX 权限复现首次索引写失败,确认同一 destination 会错误绑定后来状态。新 head df2eb06b8d183fbc5c56691a68694b779bd2a258 在原封不动的同一复现上通过;另验了后续合法新 destination 可继续、同 Turn 改 destination 不能逃过原见证。旧失败及未发表旧结论的事实保留,当前结论针对完整新 head。

动机 / Motivation

显式请求 settled-work 完整 checkpoint 的 benchmark 操作者。 原先完整声明省略 trigger 会被 parser 拒绝;现在已结算 work wake 可沿现有 controller 捕获完整参与者。首次索引写入权限失败后,同一 destination 仍保留原 missed point,另一个合法 point 必须显式使用新 destination。 已验证显式 settled-work 入口及首次尝试恢复:同一权限 oracle 从旧 head 失败变为新 head 通过,后续新 destination 可继续且同 Turn 改声明被拒绝。 不增加自动 fresh-replan cadence,不修改活动运行、计分、机会、预算或权限;不声称科学收益、热集成或通用恢复 UI 已交付。 真实研究任务的长期收益、完整成本、持续容量及通用 frontend restore 仍按原 §7.7 边界另行资格化。

改动思路 / Approach

共享 parser 原来拒绝省略 trigger 的完整 controller 声明,使已有 settled-work 路径不可用。现在允许这个显式输入,仍要求 native_session、loopx_state、evaluation_opportunity 与 controller_handoff 一起开启;非法新 trigger 不被接受。工作本身必须先在原身份下结算,捕获继续沿既有 native/research/artifact owner 与外部 controller writer barrier,不再造 restore、预算或工作授权。

首次尝试以现有 wake 见证为来源,可选 artifact marker 只是索引;同一个私有写入 helper 复用 O_EXCL/fsync。既有 settlement、artifact、controller 与 fresh receiver 权限 owner 均保留。当前边界是完整显式 settled-work 捕获及失败点恢复,不增加自动 cadence;机械资格、科学收益和在线推广分别判定。无声明路径仍在 IO/receipt 修改前返回;同一原 point 的失败不会授权再捕获,另一个 point 则需新声明和 destination。

具体改动 / Changes

完整 diff 为9文件 +381/-54:生产 checkpoint.py +82/-9,测试/资格化 +234/-41,README 与双语 RFC +65/-4。同时检查了原 base 到当前 head,以及上一审阅 head 到当前 head 的修复。规格 docs/architecture/rfcs/hierarchical-agent-stride-control-v0.md 的 spec_revision 为 576b8a6,按改动前 §7.7 的原步骤判断,而非用新文档自证实现。

原规格条目 当前实现与证据
§7.7 step 1 原 settlement owner 仍检查已结算身份;独立复现的两个真实 Turn 没有重放 debit。
§7.7 step 2 保留 native cursor、canonical research、workspace、incumbent、机会和原 phase;当前 exact head 的 Context off/on 联合结果均完成六段机械链。
§7.7 step 3 P2 已修复:原 wake 先封存声明,索引权限失败后,旧 destination 或同 Turn 改声明仍在后来参与者 IO 前拒绝;另一个合法 point 可用新 destination 继续。
§7.7 step 4 捕获保持 inert;普通/Stride receiver 及再次捕获后的 receiver 使用隔离环境与 fresh authority。

关键代码讲解

parse_checkpoint_request(43行)只扩大已显式请求的完整输入,不增加新的自动 trigger。_write_checkpoint_attempt(121行)共享私有 O_EXCL/fsync 写入;_mark_completed_capture_attempt(142行)先读既有 wake 见证并保留原 destination/effect/声明,再写可选索引,弥补“索引根本未写成”的缺口。capture_after_wake(323行)在读声明前拒绝封闭 phase,按实际声明选择完整90秒/普通30秒窗口,仍受原 phase 约束。

资格化入口只新增显式 --capture-boundary settled_work,默认仍 fresh_replan。worker/cadence、fresh-replan handoff、controller、continuation、研究参与者及关键依赖在两次 head 间保持字节相同;已逐项验证证据复用的失效条件。没有改启动中的运行,也没有显著增加自动捕获频率的配置变更。

对主干的风险 / Risks

PASS:当前三个完整相关模块 82 passed / 4 Linux-only skipped;原权限 oracle 与独立 scope 扩展各通过一次,使用真实 CLI、SQLite、物理权限和禁止越界读取的 tripwire。Tripwire 没有伪造 native/controller 成功。相同8项输入在 base/d693/df2 的探针保留 off、失败 wake、过期 phase 与普通声明语义;完整 omitted-trigger 接受是明确的预期差异。

另读回独立执行者在当前 exact head 的 Context off/on 完整结果:source、ordinary、Stride、recapture、grandreceiver、Core 均完成,来源 clean/import-verified,五个资格化脚本的 SHA-256 与当前 source 独立匹配,native binary pin 对应0.162.1。这里记录为他路执行结果的来源核验与 readback,不冒称本 reviewer 运行了 VM/模型,也不把确定性本地推理与合成反馈扩大为科学收益。

旧完整六模块的失败没有被抹掉:d693 为132过/77跳/1失败,base 为122过/73跳/1失败。额外权威拒绝用例在新 head 也有一次失败,随后实际 argv 跟踪证实:旧 synthetic executable 将 app-server 元数据查询也当作 exec,关闭 reader 时会写 host-input/candidate。未修改的 base 与 df2 假 Host 在没有 exec 请求的同一元数据命令下,产物与完整规范化指纹相同;实际拒绝 wake 的 host_invoked=false 且没有 stdout/exec。由此归因于既有 fixture 的控制协议混淆,而非用后一次绿宣布修复。建议测试维护区分元数据查询与 exec,保留原“拒绝后不得工作”断言。

本轮当前 head 标准 premerge 的5项 direct、19项 selected 全通过;exit1 保留 benchmark_sensitive 人工门。实际仓库 lint 的3项旧 Lark 测试错误在 base/d693 完整 stdout 字节相同,相关源与依赖在 df2 未改变。远端 CI 未查询、未轮询、未等待;未知 CI、已归因的旧 lint 与 fixture 诊断均未冒充当前行为回归。

语义与 CI 对齐

复用既有 settlement、artifact 与 restore vocabulary;新记录属于 Host 私有传输事实,artifact marker 是原 wake 见证的索引。原 phase、90秒 live capture 与既有 sealing 界限、机会、cooldown 和 no-replay 义务未放宽。普通权限失败只影响可选捕获,不能回滚已结算工作或制造新的 budget。伴随的小重构已应用于共同私有写入函数;无需引入平行权威或无关语言迁移。

我的整体评价 / Verdict

APPROVE df2eb06b8d183fbc5c56691a68694b779bd2a258。 long_horizon 与 user_experience 在本切片为 improved:原 point 在失败恢复后可信,后续合法 point 有明确继续路径,没有额外自动 cadence、确认轮次或执行授权。整体 scope 与维护成本 proportionate,原 P2 的失败到修复有同一独立 oracle,完整当前 head 与上次修复 delta 都已判断;合并授权与人工 benchmark 门仍分开。

仅 benchmark CLI/Host、测试与文档变动;未修改渲染界面。通用恢复 UI、科学收益与活动运行热集成未资格化;本轮读回独立执行者的 native 结果,未接管其运行。完整成本、长期容量和真实研究采用仍待原 owner 的后续验收,不由通过测试、capture 数量或本次批准推断。

English verdict: APPROVE df2eb06. The original permission-recovery counterexample now passes unchanged, legal future-point scope is preserved, and exact-head mechanical evidence is source-bound. CI was not consulted; scientific benefit and merge authority remain separate.

@huangruiteng
huangruiteng merged commit 0c4f607 into main Nov 4, 2026
21 of 26 checks passed
@huangruiteng
huangruiteng deleted the codex/checkpoint-settled-handoff-20261104 branch November 4, 2026 02:40
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