Repository navigation
fix(benchmark): retain complete LoopX state in warm replacement - #8026
Conversation
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
需要替换已停止 benchmark worker 的操作者,要让新实例继续原实验及其未完成任务。旧热恢复虽携带 SQLite/File 和历史资料,却另建 Goal 与准备任务;原实验承诺没有成为接收端的执行队列,操作者还要重新规划。现在隔离接收端保留原 Goal/Agent、任务依赖、额度和结算历史,当前 guard 能继续选中原任务,而不是用准备任务替换它。本次只交付隔离 worker 的工程接续,不认证真实模型长期采用、长程净收益、安装后的前端恢复流程,也不授予额外实验或合并权限。完整 Linux runner 研究接续、自然模型持续执行及完整成本收益仍未由本轮独立验证;扩展检查中的既有失败与合并门槛单独保留。
改动思路 / Approach
完整性由现有 artifact witness 和 canonical store 保证,文件复制留在 Python Host adapter,会话替换复用当前 Goal owner 与 binding CAS;没有新增第二个调度、决策或结算 owner。本 PR 只改变显式 warm replacement,Core 的跨 Goal 研究资料导入继续独立存在,普通冷启动保持原路径。只复制任务文字仍会丢失依赖、原结算及当前租约;继续保留“先另建准备任务”的 fallback 又会重复原来的错误。当前实现把资料的跨 Goal 导入与完整实例替换分开,直接复用已有权威存储和当前执行入口。
| 触发 | 原路径 | 当前路径 |
|---|---|---|
| 完整热恢复 | 新 Goal、新准备 Todo、临时 cadence1 | 原 Goal/Agent、完整状态、原 cadence |
| 冷启动 | 原 phase/bootstrap | 保持原 phase/bootstrap |
| 跨 Goal 资料导入 | 当前目的 Todo/lease 导入证据 | 仍走 Core adopt-context |
| 接收端已有状态或 binding 分歧 | 不应覆盖 | 在现有 owner 拒绝,保留失败现场 |
这是源码与受控执行结果的对照;不代表真实模型已持续完成研究。状态传输、完整性判断和当前执行准入各有既有 owner,恢复过程不重写历史结算。
具体改动 / Changes
关键代码讲解
restore_worker在改工作区之前核对 runtime/registry 目的地为空,再恢复原始文件和完整控制状态,并用 artifact witness 核对恢复结果。占用或部分恢复不是“空白环境”,不能覆盖后重试。verify_restored_loopx_state从 canonical owner 读 store identity、revision、cursor、Todo 集和完整 Explore/Vision 来源,而非仅相信恢复标记。时间流逝导致的 readiness 变化交给当前 guard,不能把旧资格冻结成新权限。admit_native_checkpoint_session的严格布尔恢复模式要求原 Goal/Agent、完整状态及捕获时的准确 binding,再经当前 Goal admission fork 原生会话;最后复用 expected-document CAS。并发更新的会话不会被覆盖,普通 Core 导入仍默认走不同身份及原有恢复规则。prepare_context不再 bootstrap、新建 preparation Todo 或修改 cadence,只准入原生 fork 并接回既有 skills。SForge phase 改为读回原 treatment;worker 后续仍通过当前 guard、lease 和 recovery 选择工作,recapture 仍需 checkpoint-linked review/settlement。
没有独立书面规格:以已确认的完整状态接续请求和本 PR 的公开边界判断交付;同时先读了 base a0130633723210a5406dca61ee27aa33fe48b3f3 的 research-checkpoint 约束 与 benchmark warm 合同。旧文档的“新 Goal/准备 Todo”不是新行为的依据,而是这次有意纠正的部分;源必须停止、接收端隔离、完整性、当前权限、原预算及停止条件保留。原完整任务、File/SQLite、历史结算、当前 gate 和 CAS 已实现并独立执行;完整 Linux runner 与自然模型长期收益保留为后续验证缺口。
对主干的风险 / Risks
最危险的反例是文件能复制、却仍选不到原任务,或者 fork 过程中另一个当前会话被覆盖。独立测试通过真实 File/SQLite 和 Codex app-server,使用本地确定性推理替代模型服务:恢复不调用模型,原 Todo、counterexample、lease 版本/到期时间和 source-work 结算身份不变;随后真实 guard 继续选中原任务。另测已有接收端、错误身份、并发 binding 和恢复后新增 user gate;拒绝和当前权限均未被旧 ready 状态绕过。
PASS:最终 head dee5bef25aeb36171222ce500297b5d2eee1c8be 的完整恢复组 9 passed。同一不可变 original-work oracle 在 base a0130633723210a5406dca61ee27aa33fe48b3f3 为 3 个真实 lineage 拒绝,在 head 为 3 passed,并非通过缺少新函数的 import failure 制造差异。PASS:当前冻结 SDK cedd08b962f6eae25b0825bb47a7031626d13dc2 下 SForge warm/runtime/Host bridge 412 passed、0 skipped;另有实际 native joint/Core 路径 2 passed、0 skipped。独立 Ruff、diff、RFC 双语检查通过;quick premerge 的 direct/catalog/boundary 检查通过,但最终状态仍为 manual_review_required。
诊断结果单独保留:较宽原生组 198 passed / 4 failed / 11 skipped;缺少可选依赖的路径由上述当前 SDK/真实 native 检查补上。4 个 test_successor_review_needs_checkpoint_linked_settlement 失败都是第107行读取 replan_action_packet 的 KeyError,在冻结 base 同一四个 File/SQLite 参数上逐一复现,相关测试及 fixture 源码字节相同,尚未到本次恢复分支。初选旧 SDK 的8个 runtime_attestation_key_file 错误也在 base/head 同名同因复现;改用只读的当前干净 SDK 后412项全部通过,未改断言或 LoopX 源码。四个既有 module-metric budget 文件的 base/head SHA 相同;保持 hold,没有升 ceiling、缩小扫描或声称全仓检查通过。远端 CI 按策略未查询。
语义与 CI 对齐
指令语义有意从“新身份/准备任务/临时 cadence”改为“原身份和完整任务继续”。逐项核对 actor、触发、先后顺序、来源、范围、继续与停止条件:原任务身份可继续,但 archived commands 与 settled effects 不能重放;当前 guard/recovery 决定原轮恢复或新轮,原始时钟、冷却和 recapture 资格保留。现有状态词汇与 typed owner 复用,未用任务文本或 substring 推导权限;diff-scoped semantic 检查通过。真实模型是否理解并持续采用不在这些机械测试的结论内。
我的整体评价 / Verdict
APPROVE:long_horizon=improved 指原长期工作承诺和后续当前任务选择的工程连续性得到修复;user_experience=improved 指既有 operator 路径可以接续原工作并准确拒绝占用/分歧。完整性由现有 artifact witness 和 canonical store 保证,文件复制留在 Python Host adapter,会话替换复用当前 Goal owner 与 binding CAS;没有新增第二个调度、决策或结算 owner。本 PR 只改变显式 warm replacement,Core 的跨 Goal 研究资料导入继续独立存在,普通冷启动保持原路径。同域整理已复用路径常量、拆开配置读回并删除错误准备分支,成本与已证实的缺口相称,无需扩大到通用恢复系统。
visual_review=not_applicable:本次没有渲染页面或控件变化;未验证范围仍包括 packaged/installed 前端恢复旅程、完整 Linux runner、真实模型采用和完整成本净收益。当前可用且独立验收的是原有显式 operator/Host 入口,不把这个边界写成最终产品恢复已完成。结论只覆盖 dee5bef25aeb36171222ce500297b5d2eee1c8be;既有质量/merge readiness hold 未解除。GitHub author-owned 限制下以 COMMENTED 承载批准结论,无合并动作或授权。
English verdict: APPROVE this exact-head full-state warm replacement; scientific benefit, full runner qualification and merge gates remain separate.
|
对精确 head 验证覆盖:完整恢复后仍选中原 Todo;原 Vision/研究历史、已结算工作、租约版本与到期时间、原 deadline 和 cadence6 保持;原生会话 fork 后重新接入 skills;不创建 preparation Todo,不调用冷启动 planning wrapper。恢复与 native admission 之间新增 gate 会拒绝已变化的状态;admission 后新增 gate 仍阻止后续工作。原生读写和 CLI 实际执行,模型服务由固定本地响应替代,未调用付费推理。 这些是源码环境下的组合资格,使用隔离的操作夹具;不认证完整打包 installer、正式实验替换或自然模型长期采用。先前操作夹具的配置、二进制路径和日志衔接失败均保留为未通过尝试,未放宽生产校验。四个既有 module-metric holds 与 merge readiness 仍单列保留;本次没有合并动作。 |
|
补充作者验证:精确 head
边界:最后一项在 45 秒观察窗口后由测试方取消等待,不是 worker 正常完成,也不是正向科学执行或实际研究采用的证明。安装完成后执行网络已断开,使用空凭据;没有复制源凭据,模型调用为 0。隔离容器已清理,原运行中的实验容器未修改。本次真实打包资格覆盖 SQLite;此前 File source fixture 的结果不扩称为 File 打包验证。原有独立 review、模块检查 holds 与未验证项保持分别记录;此补充不声明 merge readiness。 |
Goal And Delivered Outcome
完整 checkpoint 已保存本地 SQLite/File 与任务历史,但旧 warm 接收端另建 Goal 和 preparation Todo,原任务队列及控制状态没有接续。现在 warm replacement 必须保留来源 Goal/Agent,恢复完整 registry/runtime、Todos、依赖、结算与额度记录及 Vision/Explore 历史;原生会话 fork 只通过当前 Goal owner 和精确 binding CAS 接续。
删除 preparation Todo 创建、临时 cadence=1、恢复 cadence 的自动分支及专用旧测试。跨 Goal 的 Core
adopt-context继续作为独立研究资料导入,不是热恢复 fallback。目标分支:main。Author Declaration
Implemented against
sforge_warm_start.restore_workerresearch_checkpoint.verify_restored_loopx_state, native session ownerScope And Continuation
Validation
dee5bef25aeb36171222ce500297b5d2eee1c8be;下列大组在同步本 PR 无重叠的最新 main 前执行,最终 head 的完整状态恢复组另跑 9 项,全部通过。test_full_loopx_checkpoint_restore.py:真实 File/SQLite、真实 Codex Host + 本地确定性推理;恢复不调用模型,原 Todo、结算、lease、cadence 与当前 gate 保留test_sforge_warm_start.py:79 passedmanual_review_required:上述既有 4 项预算 hold 仍需独立判断,不算完整通过manual_review_required,上述 4 项预算 hold 未豁免。独立 exact-head review 与 CI 另行完成。Frontend / Visual Evidence
Type of Change
LoopX Area
Technical Direction
既有本地状态、checkpoint 与原生会话 owners;Python 负责封存文件传输与校验,不新增平行决策 owner。无 TypeScript 迁移/共享权威提升声明。
Shared-authority RFC fixture impact
N/A:没有修改 provider 实现或做 PostgreSQL/共享权威推广;覆盖现有本地 File/SQLite 快照路径。
Boundary Checklist