Repository navigation
refactor(replan): converge captured context and original-Turn closeout - #7269
loopx-agent wants to merge 10 commits into
Conversation
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确提交 eed09c5f805746d00946dec2dbe3f818ade38aa1:未发现尚未解决的阻塞性代码问题。此结论只覆盖本提案的控制流正确性;预合并仍有基线同现的调度夹具失败,不能据此直接合并。
动机
使用心跳和检查点恢复的 Agent 在复盘及关闭阶段性任务时会遇到这个问题。旧路径把决策事实和写回格式一起交付,已写入重规划的旧 Todo 仍可能被续选;新路径分段读取同一快照,并在原回合收尾后允许选择后续工作。可观察改进是原回合身份、回执及扣额不变,旧续跑偏好可以被明确收尾释放,后续任务能够执行并完成读回。本 PR 不改变评分、提交机会、预算或权限,也不宣称已证明模型决策、总 token 成本或 benchmark 分数更优。
仍需保留完整成本和模型实际采用的研究缺口;调度 registry-route 的基线夹具失败未修复,新提案未启动新 benchmark。
改动思路
No second planning or accounting authority is added: stage projection, native IO, CLI composition and continuity each stay with the existing owner. Deliver the source-bound review and original-Turn closeout path with real continuation/recovery evidence; do not promote scientific benefit or launch another experiment. 原始完整 guard 仍供检查点选择器和恢复使用;模型收到同一来源的 CLI 视图,先读事实,再按需读格式。这里替换的是重复的战术提示和示例,不再附加另一个规划器。最小替代方案是继续读整包、手动执行两条结算命令,但这不能解决检查点模型入口仍发原始包和旧 Todo 忽略已提交收尾的问题。
| 路径 | 旧行为 | 当前行为 |
|---|---|---|
| 捕获复盘 | 事实、提示和格式混在入口 | 同一哈希快照的 review / writeback,完整原包保留 |
| 收尾 | 原命令分开调用,旧续跑偏好可能继续 | 可显式组合写回和待结算步骤;下个 Turn 尊重明确收尾 |
| 可选 native 差分关闭 | 不能依赖 native 优化 | 普通捕获 CLI 也使用同一分段视图 |
该表是提交 eed09c5f805746d00946dec2dbe3f818ade38aa1 的源码说明,不是模型效果证据。native、TurnEnvelope 和 stride 的开关分别保留;stride 关闭时新增的是通用反馈事实,不是开启其策略。共享规划文本的减少是有意的默认变化,不能称为整个 PR 的 feature-off 字节等价。
具体改动
采用变更前规范 docs/reference/protocols/goal-vision-replan-contract-v0.md,固定版本 34aa0cd180b999eca6b335cfd955d003c0310bd4;同时核对同版本 docs/reference/protocols/turn-envelope-v0.md 的来源、捕获与权限边界。规范没有条款编号,下列名称仅用于本次映射:Vision-Checkpoint 保留实质收尾的显式 Vision;In-flight-exception 保留普通阶段进展的原绑定和扣额;Closeout-and-accounting 要求实际换路线或完成工作显式语义收尾,并保留逐回合回执。三项均由当前真实 CLI 验证;文档不是用来倒推测试答案。
关键代码讲解
turn_envelope.ts:replanView在完整来源哈希匹配后投影事实、格式和完整验收明细。相同 ID 的不同版本按内容分别索引;不同范围或版本不因体量被合并。Explore 单独读取,覆盖不全仍明确显示未知。quota_capture.py:handle_replan_view只读物理来源文件,不重跑 guard,不要求另开 registry;当前来源被替换时失败。渲染器固定原 CLI 路由,避免 PATH 中另一版本接手读取。checkpoint.py:capture_before_replan将原包留给检查点选择和核验,真实模型入口改送投影视图;native full/delta 和完整恢复复用它,默认关闭差分也覆盖。refresh_settlement.py:settle_refreshed_turn是 Python IO 组合器,规则仍归原 TS/结算 owner。先检查写回及交付后置条件,再用当前解释器调用完整 canonical CLI,校验 Goal/Agent/Todo 或 obligation/Turn、来源和命令,最后读回原回执;响应丢失与重放均不能重复扣额。delivery_continuity.ts:resolveDeliveryContinuity消费同 Agent 已提交的收尾或结构化 replan;原 Turn 回执和抢占条件仍优先。旧 Todo 不会被自动完成。近期历史编解码省略的默认 semantic closeout 被正确还原,路径枚举复用现有 normalizer。
完整差异为 37 文件、+1508/-195,含合成夹具、真实路径反例及协议说明。自评审已恢复原 3000 文本增长上限,并把新路线变更的集成用例改为规范要求的 semantic closeout;没有放宽预算或把换路线伪装为进行中进展。
对主干的风险
主要反例是“新 reader 存在但模型仍读原 guard”“旧 Todo 仍吞掉后续工作”以及“便利命令错扣另一个 Turn”。真实 CLI 覆盖来源被替换、错绑定、失败写回、dry-run、失效 Vision、敌对 PATH、提交后响应丢失及精确重放。File/SQLite 的固定基线对照中,普通未开启组合选项的可观察准入、错误、写回、读回与扣额相同;明确收尾的反例在基线继续锁旧 Todo,在本提交则执行后续独立任务、完成读回,两回合共两次扣额。
验证包括:实现提交的 128 项 Python 真实路径用例通过、4 项 Linux 专属跳过;后续提交只有测试收紧和文档变化,loopx 与 benchmark/runtime 树哈希未变。最终提交的收尾/预算子集 19 项通过;TypeScript 65 项通过;原生 Codex 隔离回环 15 项通过;Linux/Node24 补跑 4 项进程交接通过。最初 Linux 环境无 Node 的失败已保留,补齐现有运行时后重跑,并未改产品门槛。
标准预合并的直接检查全部通过,catalog 为 9/10;quota-scheduler-registry-route-smoke.py 在固定基线 34aa0cd180b999eca6b335cfd955d003c0310bd4 与当前实现均因未初始化 canonical authority 而报 LocalCoordinationAuthorityUnavailable / todo_snapshot / canonical_authority_required。故归因于现存夹具,仍如实记录为失败。曾有一次我在验证时并行编辑,触发自动还原并使该次检查无效;最终串行干净运行无副作用,不能用前次结果冒充通过。没有查询或等待 CI。
语义与 CI 对齐
沿用现有 path_delta、delivery boundary、settlement identity 和 progress result vocabulary;局部续跑原因扩展既有集合。新增命令只做原快照的投影和原 effect 的组合,不扩大权限。语义词表、模块/接口预算及 RFC 双语检查通过。PostgreSQL 存储没有变更,本路径没有另做 PG 运行验证;模型理解、分数收益与完整费用也未资格化。
我的整体评价
No second planning or accounting authority is added: stage projection, native IO, CLI composition and continuity each stay with the existing owner. Deliver the source-bound review and original-Turn closeout path with real continuation/recovery evidence; do not promote scientific benefit or launch another experiment. 对本次功能边界给出 APPROVE:长程维度的改进限于已实测的“明确决定后能继续完成独立工作”,用户路径减少重复操作且不增加人工确认;它不能证明 benchmark 效果或完整成本降低。无渲染界面变化,视觉审查不适用;未验证范围为真实模型采用和完整成本,不能用包字节数替代。
仍需保留完整成本和模型实际采用的研究缺口;调度 registry-route 的基线夹具失败未修复,新提案未启动新 benchmark。 原始捕获、手动结算和既有失败恢复应保留。此提案值得继续评审,但当前没有新 PR 的合并授权,也不建议绕过未收尾的验证记录立即合并。
English verdict: APPROVE — eed09c5f805746d00946dec2dbe3f818ade38aa1. Captured-source staging, original-Turn settlement and fresh-work continuity are supported by real File/SQLite CLI, Linux child-process and native loopback evidence. A baseline-equivalent scheduler fixture failure remains a separate merge hold; model utility and full-cost gains are unqualified. No merge authority is implied.
eed09c5 to
0ddd08a
Compare
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确提交 0ddd08ad386924b2e0bada0db4854fff33979b81:对本次真实调用链重构给出 APPROVE。当前源码及隔离执行已支持同源事实读取、原生实际输入和原回合结算;不据此认定模型决策或完整费用改善,也不提供合并授权。
动机
使用心跳、原生 Host 或 checkpoint 恢复进行复盘的 Agent 会遇到这个问题。 此前入口先显示结算计划,Host 又要求读完整原包;现在先看当前目标与事实,再读取唯一写回格式,执行器保持原轮身份。 真实 File/SQLite 路径能执行已准入的语义复盘、验证产物并只扣一次额度,重复执行不产生新副作用。 本 PR 不改变评分、评测机会或实验预算,也不宣称已证明模型决策、分数或全量费用更优。
这里的事实读取,是从当前目标、先前工作、反馈和来源证据作决定;格式读取,是决定后再取合法写回的字段与命令。此前虽然已有读取器,原生请求仍可能交付旧包,Turn 入口与 writer 也能各带一次计划。仅看到 reader 字段和包大小,不能证明模型收到的实际输入已经切换。此次重新检查完整 base-to-head 差异,没有沿用前次审批结论。剩余缺口是匹配模型条件下的自主采用、外部证据工具及完整费用测量;原始失败与冻结实验边界保留。
改动思路
保留一个 TS 事实/格式投影 owner、既有上下文差分 owner 和原结算 owner;Python 只处理宿主输入及 IO。 本次交付同源分段读取、原生实际输入和原轮结算/后续工作;真实模型收益与完整成本留在既有研究计划中。
最强的反对理由是:多轮读取会增加进程启动和工具边界,CLI 输入还可能变大;如果模型仍读旧包,就只增加了结构而没有交付。更小的纯提示修改无法同时修复原生请求装配、重复 writer 和 checkpoint 模型入口。当前实现采用已有 owner 内的改动,未新增缓存、ACK、控制器或人工同步步骤。
| 触发路径 | 前一提案的缺口 | 当前交付 |
|---|---|---|
| 捕获 CLI / Turn | Turn 可先交付完整结算格式,writer 又返回一次 | 共用延后投影;保留签名身份,入口引用唯一写回命令 |
| 原生与结构化 Host | 原生请求或提示仍绕回整包 | 交付已核验的 authority 和同源 reader;执行器持有完整签名包 |
| 当前 Goal / Horizon | 整段被推迟到补读 | 每轮显式保留当前目标、依赖、优先级与阻塞;仅累计验收明细索引 |
| 语义复盘准入 | 普通交付关闭可把规范 replan attempt 一并拦住 | 既有权限 owner 允许该语义切片,显式 false/null 和 Stop 仍优先 |
| 收尾和下一项工作 | 旧 Todo 的续跑偏好可能继续吞掉后续工作 | 使用已提交的收尾/路径事实,释放偏好并保留后续准入 |
此表说明 0ddd08ad386924b2e0bada0db4854fff33979b81 的源码与控制路径,不是模型效果证据。原包、旧 journal 和未捕获调用保留的兼容分支都有具体消费者;不能为了净删行数破坏已持久化的恢复。可安全收敛的路径已经合并:无条件全包提示、入口重复计划/命令、writer 无消费者的 review 回指已替换或删除。
具体改动
规范依据为 docs/reference/protocols/goal-vision-replan-contract-v0.md,固定在变更前提交 920f18809d906b840325c4f40013e9224e4a3a2e;同时阅读该版本捕获协议。以下采用文档原有节标题映射,不把本 PR 改写后的文档当独立答案:
- Ownership Boundary:TS 继续拥有 Goal/replan、权限及结算语义;Python 只适配宿主与 IO,没有第二套策略。
- Replan ACK freshness:source hash、Goal/Agent/Turn 与 obligation 保持绑定;语义接受、结算和 Goal 完成不互相替代。
- CLI Budget:Vision 仍拒绝超限而不截断;累计验收明细完整可读。新增每轮 Goal 索引的测试增量预算有同源测量依据;原硬限、接口增长和包目标没有被取消。
- Completed Todo lifecycle reentry:保留原生命周期证据和回合身份,后继工作仍须后来准入;没有自动完成 Todo 或把历史收尾变成执行授权。
关键代码讲解
turn_envelope.ts:replanView(398 行)统一原源哈希核验、完整验收明细和最后的 canonical writer。deferredReplanWriteback只把入口计划延后,签名身份仍在;writer 返回原计划,未使用的 review 回指已删除。replanGoalContext解析既有精确验收别名,再以内容哈希共享;同 ID 的不同版本不会合并,缺失来源不能变成空验收。codex_cli.py:_prompt(309 行)在新 journal 的实际模型输入中使用经签名核验的 authority,复用结构化 Host 的事实先于格式指令。journal 内完整 envelope 不变。current_loopx_cli_argv让后续验收、Explore 和写回沿用显式 CLI 或当前安装的 Python 模块;敌对 PATH 不能悄悄切换版本。checkpoint.py:capture_before_replan(120 行)只执行一次原 guard,完整字节供选择器和捕获校验,模型读取同源投影视图。默认 native 差分关闭和开启后的 full/recovery 均覆盖,不以保存了 checkpoint 原件冒充实际模型暴露。refresh_settlement.py:settle_refreshed_turn(21 行)先核对原 owed 命令的解析结果、完整身份、来源、registry/runtime 和单次额度,再通过现有完整 CLI 执行。响应丢失时由原回执证明提交,不能先重试再猜;普通 refresh 的缺省行为仍是手动结算。delivery_continuity.ts:resolveDeliveryContinuity(205 行)读取同 Agent 已提交的 semantic closeout 或结构化路径结果,释放旧续跑偏好。当前绑定、显式选择、Gate 和抢占仍优先;run-history 对省略的既有默认边界按原语义恢复,而不从 Todo 文案猜测完成。
完整差异为 45 文件、+1900/-231,包括 runtime/IO、合成真实路径验证和成对文档。净增代码是维护成本;这里的重构依据是实际删去/合并的重复知识及调用链收敛。--settle-turn 仍调用子 CLI 并读取回执,不能称为进程延迟优化。没有改评分、评测机会、预算、权限来源或额外启动实验。
对主干的风险
最重要的反例是“serializer 看起来正确,但真实输入没迁移”以及“后续 detail 落到另一份安装”。当前验证检查真正收到的原生/DSH 提示,在另一工作目录、敌对 PATH 下沿 reader 完成 review→acceptance→writeback;读取前后原始字节不变。另用同一夹具与不可变前提案 b86f304cbaf9e57b89264b2fc5ba231323987fce 对照 File/SQLite:旧路径 should_run=true 却阻止 Host;本提交执行原生本地进程、独立验证产物、扣额一次,精确重放全部副作用为 false。模型 provider 是合成进程,不据此声称模型研究能力。
精确提交的 Python 集合 407 passed、6 skipped;TypeScript 126 passed。六项跳过分别是四个 Linux 进程组用例、Windows PowerShell 用例和当前临时目录不适用的 depth-12 命名空间用例,未冒充跨平台通过。File/SQLite 的 CLI、checkpoint、原生进程、丢源/改源、错 Goal/Agent/Turn/验收版本、显式权限拒绝、无效 Vision、失败写回及重复结算均有实际反例。验收别名夹具改为解析确切已交付引用后与独立 provider 读数比较,仍保留原条件与修复产物验证。
标准 premerge 的 6 项直接检查、19 项选中检查全过,含公共边界、语义/接口/维护预算与 RFC 双语检查。其 manual_review_required 是独立维护者权限门槛,不是验证失败。前次提交的 scheduler 夹具失败仍保留在历史评审中;本次采用新 main 的标准选择器通过,不能倒写为旧检查通过或声称本 PR 修了该夹具。没有查询、轮询或等待远端 CI。
四份相同值快照的离线完整投递核算合计:捕获 CLI 550,039→562,429 字节(+2.25%);结构化 Host 622,317→263,115(−57.72%);原生 Codex renderer 647,687→257,599(−60.23%)。这些数包含入口、review、全部已提供验收明细、可选 Explore 和 writer;旧 Host 比较读取完整原包。若新路径再走整包恢复,则原生合计 688,962 字节(+6.37%),且一次文件读取变为两或三次 CLI 读取。CLI 增长来自恢复每轮当前 Goal/Horizon。外部证据工具、模型累计输入/缓存/output 与费用未计入,所以不能宣布完整成本下降或达到 15% 目标。
语义与兼容边界
复用现有 EffectiveAction、规范 permission、path outcome、delivery boundary 和 settlement identity;新字段是来源投影,不是人工同步状态。false/null 与 absent 区分,旧包、失败源、settlement-only、较高优先级 capability intent 不因 reader 存在而激活新路由。共享上下文差分仍需要完整、同范围且未变化的基线;新依赖、优先级或计划在当前输入/patch 中可见,缺基线回退同一来源。capture/Host 默认行为有意变化,已在双语 RFC 和协议说明,不能称整个 PR feature-off 字节等价。
我的整体评价
保留一个 TS 事实/格式投影 owner、既有上下文差分 owner 和原结算 owner;Python 只处理宿主输入及 IO。 本次交付同源分段读取、原生实际输入和原轮结算/后续工作;真实模型收益与完整成本留在既有研究计划中。 对这一独立功能增量给出 APPROVE:它修复了已证明的真实入口与原轮结算问题,没有要求用户重新输入已知信息或新增确认回合。科学效果和整体费用仍需既有研究计划下另行授权与测量;当前没有新实验,也没有新 PR 的合并授权。
本次没有渲染界面变化;检查的是 CLI、原生输入和回读,视觉检查不适用。 未验证真实模型采用和全量费用,也未另做 PostgreSQL 运行。 保留完整原包、手动结算及具体旧 journal 的恢复入口是有依据的兼容成本;reader 的存在、签名或测试数量不能充当模型采用和目标收益。原生正常投递显著缩小,CLI 与完整回退成本增加也已经公开,故本结论不会把一次局部字节收益升级为全局效率判断。
English verdict: APPROVE — 0ddd08ad386924b2e0bada0db4854fff33979b81. Actual captured CLI/checkpoint/native/structured Host paths now converge on source-bound facts before canonical writeback; scoped native execution and original-Turn replay pass on real File/SQLite. 407 Python and 126 TS checks pass; six environment skips and separate maintainer authority remain explicit. Offline transport savings do not establish model utility, total-cost reduction or merge authority.
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>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…t views Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…call 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>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
0ddd08a to
4473ba9
Compare
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确提交 4473ba97370bda708c7a913989d1e900a73b3276:对本次真实调用链重构给出 APPROVE。当前源码及隔离执行已支持同源事实读取、原生实际输入和原回合结算;不据此认定模型决策或完整费用改善,也不提供合并授权。
动机
使用心跳、原生 Host 或 checkpoint 恢复进行复盘的 Agent 会遇到这个问题。 此前入口先显示结算计划,Host 又要求读完整原包;现在先看当前目标与事实,再读取唯一写回格式,执行器保持原轮身份。 真实 File/SQLite 路径能执行已准入的语义复盘、验证产物并只扣一次额度,重复执行不产生新副作用。 本 PR 不改变评分、评测机会或实验预算,也不宣称已证明模型决策、分数或全量费用更优。
这里的事实读取,是从当前目标、先前工作、反馈和来源证据作决定;格式读取,是决定后再取合法写回的字段与命令。此前虽然已有读取器,原生请求仍可能交付旧包,Turn 入口与 writer 也能各带一次计划。仅看到 reader 字段和包大小,不能证明模型收到的实际输入已经切换。本轮核对完整差异、九个等价补丁及新 main 的调用者后重新判断。历史证据保留原版本;新增真实路径、权限负例、基线失败和回读均重新执行。剩余缺口是匹配模型条件下的自主采用、外部证据工具及完整费用测量;原始失败与冻结实验边界保留。
改动思路
保留一个 TS 事实/格式投影 owner、既有上下文差分 owner 和原结算 owner;Python 只处理宿主输入及 IO。 本次交付同源分段读取、原生实际输入和原轮结算/后续工作;真实模型收益与完整成本留在既有研究计划中。
最强的反对理由是:多轮读取会增加进程启动和工具边界,CLI 输入还可能变大;如果模型仍读旧包,就只增加了结构而没有交付。更小的纯提示修改无法同时修复原生请求装配、重复 writer 和 checkpoint 模型入口。当前实现采用已有 owner 内的改动,未新增缓存、ACK、控制器或人工同步步骤。
| 触发路径 | 前一提案的缺口 | 当前交付 |
|---|---|---|
| 捕获 CLI / Turn | Turn 可先交付完整结算格式,writer 又返回一次 | 共用延后投影;保留签名身份,入口引用唯一写回命令 |
| 原生与结构化 Host | 原生请求或提示仍绕回整包 | 交付已核验的 authority 和同源 reader;执行器持有完整签名包 |
| 当前 Goal / Horizon | 整段被推迟到补读 | 每轮显式保留当前目标、依赖、优先级与阻塞;仅累计验收明细索引 |
| 语义复盘准入 | 普通交付关闭可把规范 replan attempt 一并拦住 | 既有权限 owner 允许该语义切片,显式 false/null 和 Stop 仍优先 |
| 收尾和下一项工作 | 旧 Todo 的续跑偏好可能继续吞掉后续工作 | 使用已提交的收尾/路径事实,释放偏好并保留后续准入 |
此表说明 4473ba97370bda708c7a913989d1e900a73b3276 的源码与控制路径,不是模型效果证据。原包、旧 journal 和未捕获调用保留的兼容分支都有具体消费者;不能为了净删行数破坏已持久化的恢复。可安全收敛的路径已经合并:无条件全包提示、入口重复计划/命令、writer 无消费者的 review 回指已替换或删除。
具体改动
规范依据为 docs/reference/protocols/goal-vision-replan-contract-v0.md,固定在变更前提交 8a718ca5f17b8036a57c6d4e88a02185eaf4581d;同时阅读该版本捕获协议。以下采用文档原有节标题映射,不把本 PR 改写后的文档当独立答案:
- Ownership Boundary:TS 继续拥有 Goal/replan、权限及结算语义;Python 只适配宿主与 IO,没有第二套策略。
- Replan ACK freshness:source hash、Goal/Agent/Turn 与 obligation 保持绑定;语义接受、结算和 Goal 完成不互相替代。
- CLI Budget:Vision 仍拒绝超限而不截断;累计验收明细完整可读。新增每轮 Goal 索引的测试增量预算有同源测量依据;原硬限、接口增长和包目标没有被取消。
- Completed Todo lifecycle reentry:保留原生命周期证据和回合身份,后继工作仍须后来准入;没有自动完成 Todo 或把历史收尾变成执行授权。
关键代码讲解
turn_envelope.ts:replanView(398 行)统一原源哈希核验、完整验收明细和最后的 canonical writer。deferredReplanWriteback只把入口计划延后,签名身份仍在;writer 返回原计划,未使用的 review 回指已删除。replanGoalContext解析既有精确验收别名,再以内容哈希共享;同 ID 的不同版本不会合并,缺失来源不能变成空验收。codex_cli.py:_prompt(309 行)在新 journal 的实际模型输入中使用经签名核验的 authority,复用结构化 Host 的事实先于格式指令。journal 内完整 envelope 不变。current_loopx_cli_argv让后续验收、Explore 和写回沿用显式 CLI 或当前安装的 Python 模块;敌对 PATH 不能悄悄切换版本。checkpoint.py:capture_before_replan(120 行)只执行一次原 guard,完整字节供选择器和捕获校验,模型读取同源投影视图。默认 native 差分关闭和开启后的 full/recovery 均覆盖,不以保存了 checkpoint 原件冒充实际模型暴露。refresh_settlement.py:settle_refreshed_turn(21 行)先核对原 owed 命令的解析结果、完整身份、来源、registry/runtime 和单次额度,再通过现有完整 CLI 执行。响应丢失时由原回执证明提交,不能先重试再猜;普通 refresh 的缺省行为仍是手动结算。delivery_continuity.ts:resolveDeliveryContinuity(205 行)读取同 Agent 已提交的 semantic closeout 或结构化路径结果,释放旧续跑偏好。当前绑定、显式选择、Gate 和抢占仍优先;run-history 对省略的既有默认边界按原语义恢复,而不从 Todo 文案猜测完成。
完整差异为 45 文件、+1897/-231,包括 runtime/IO、合成真实路径验证和成对文档。净增代码是维护成本;这里的重构依据是实际删去/合并的重复知识及调用链收敛。--settle-turn 仍调用子 CLI 并读取回执,不能称为进程延迟优化。没有改评分、评测机会、预算、权限来源或额外启动实验。
对主干的风险
最重要的反例是“serializer 看起来正确,但真实输入没迁移”以及“后续 detail 落到另一份安装”。当前验证检查真正收到的原生/DSH 提示,在另一工作目录、敌对 PATH 下沿 reader 完成 review→acceptance→writeback;读取前后原始字节不变。另用同一夹具与当前不可变 main 8a718ca5f17b8036a57c6d4e88a02185eaf4581d 对照 File/SQLite:旧路径 should_run=true 却阻止 Host;本提交执行原生本地进程、独立验证产物、扣额一次,精确重放全部副作用为 false。模型 provider 是合成进程,不据此声称模型研究能力。
Python 个案覆盖为 462 passed、5 skipped;TypeScript 132 passed。其中原17文件串行批次在660秒本地上限中断,已记录450个通过、5个跳过;对相同确定性collection尚无完成回执的12个nodeid单独运行,JUnit逐项核对 12 passed。原大批次仍记timeout,没有把它改写成完整一次通过,也不据此声称延迟改善。五项跳过分别是四个 Linux 进程组用例和当前临时目录不适用的 depth-12 命名空间用例,未冒充跨平台通过。File/SQLite 的 CLI、checkpoint、原生进程、丢源/改源、错 Goal/Agent/Turn/验收版本、显式权限拒绝、无效 Vision、失败写回及重复结算均有实际反例。验收别名夹具改为解析确切已交付引用后与独立 provider 读数比较,仍保留原条件与修复产物验证。
标准 premerge 的 6 项直接检查、19 项选中检查全过,含公共边界、语义/接口/维护预算与 RFC 双语检查。其 manual_review_required 是独立维护者权限门槛,不是验证失败。前次提交的 scheduler 夹具失败仍保留在历史评审中;本次采用新 main 的标准选择器通过,不能倒写为旧检查通过或声称本 PR 修了该夹具。本轮未获取、轮询或等待此新提交的远端 CI;结论来自本地执行,历史 head 的失败不冒充当前 CI 状态。
以下字节测量保留其原始版本 b86f304→0ddd08ad,不是此次 rebase 的新模型或费用测量;相关投影源码保持相同。四份相同值快照的离线完整投递核算合计:捕获 CLI 550,039→562,429 字节(+2.25%);结构化 Host 622,317→263,115(−57.72%);原生 Codex renderer 647,687→257,599(−60.23%)。这些数包含入口、review、全部已提供验收明细、可选 Explore 和 writer;旧 Host 比较读取完整原包。若新路径再走整包恢复,则原生合计 688,962 字节(+6.37%),且一次文件读取变为两或三次 CLI 读取。CLI 增长来自恢复每轮当前 Goal/Horizon。外部证据工具、模型累计输入/缓存/output 与费用未计入,所以不能宣布完整成本下降或达到 15% 目标。
本轮干净 rebase 到当前 main;九个旧补丁逐一等价,生产及文档 blob 均未改变,唯一新修改删除 settlement 测试中一个未用 import 和一个未用局部变量,没有删除断言。该文件的完整 Ruff 规则和 19 项静态/结算组合检查通过。
语义与 CI 对齐
完整 Ruff 仍报 5 项 E701/E702,均在未修改的 tests/presentation/test_codex_attached_conversation.py。对不可变 main 和本 head 执行同一完整命令,失败输出逐字一致,故保留为基线红项,不能称全部 lint 或 CI 已绿。另跑更新后 main 的 dated-wait/replan-novelty 邻接集合,两版均 8 failed、19 passed:相同八个用例先在未初始化 canonical authority 的夹具读取处失败。独立重现 Todo-list 和 quota guard 的完整拒绝内容,仅归一化事件 ID/时间后两版一致;没有降低 canonical authority 要求。实际初始化的 File/SQLite replan 正例、失败/重放路径另有通过证据。这些红项及尚缺的跨平台资格,与本 PR 的功能判断和合并资格分开保留。
语义与兼容边界
复用现有 EffectiveAction、规范 permission、path outcome、delivery boundary 和 settlement identity;新字段是来源投影,不是人工同步状态。false/null 与 absent 区分,旧包、失败源、settlement-only、较高优先级 capability intent 不因 reader 存在而激活新路由。共享上下文差分仍需要完整、同范围且未变化的基线;新依赖、优先级或计划在当前输入/patch 中可见,缺基线回退同一来源。capture/Host 默认行为有意变化,已在双语 RFC 和协议说明,不能称整个 PR feature-off 字节等价。
我的整体评价
保留一个 TS 事实/格式投影 owner、既有上下文差分 owner 和原结算 owner;Python 只处理宿主输入及 IO。 本次交付同源分段读取、原生实际输入和原轮结算/后续工作;真实模型收益与完整成本留在既有研究计划中。 对这一独立功能增量给出 APPROVE:它修复了已证明的真实入口与原轮结算问题,没有要求用户重新输入已知信息或新增确认回合。科学效果和整体费用仍需既有研究计划下另行授权与测量;当前没有新实验,也没有新 PR 的合并授权。
本次没有渲染界面变化;检查的是 CLI、原生输入和回读,视觉检查不适用。 未验证真实模型采用和全量费用,也未另做 PostgreSQL 运行。 保留完整原包、手动结算及具体旧 journal 的恢复入口是有依据的兼容成本;reader 的存在、签名或测试数量不能充当模型采用和目标收益。原生正常投递显著缩小,CLI 与完整回退成本增加也已经公开,故本结论不会把一次局部字节收益升级为全局效率判断。
English verdict: APPROVE — 4473ba97370bda708c7a913989d1e900a73b3276. Actual captured CLI/checkpoint/native/structured Host paths now converge on source-bound facts before canonical writeback; scoped native execution and original-Turn replay pass on real File/SQLite. 462 Python case passes (450 before the interrupted batch plus12 completed-tail cases) and132 TS passes are recorded; five environment skips, the retained 660-second omnibus timeout, five base-identical lint errors, eight base-identical fixture failures and separate maintainer authority remain explicit. Offline transport savings do not establish model utility, total-cost reduction or merge authority.
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
songoow
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · OpenAI GPT-6 Astra Pro · OpenAI · self_reported
评审结论:REQUEST_CHANGES。发现 1 个 P2:新的 in-flight 结算提示与既有必跑契约测试未同步。 这不是“未完成 Todo 被自动完成”的生产缺陷结论;本轮真实 File/SQLite 正反例支持新的条件完成语义,但仓库原有测试在当前提交确定失败。
动机
执行长期任务的 Agent 在重新规划时,需要先看原目标、已完成工作、失败证据和当前依赖,再决定下一步;入口重复铺开格式和结算命令会遮蔽这些事实。
同一合成场景在旧基准已获准重新规划,但原生 Turn 执行器仍拒绝调用工作进程;当前提交能够完成被独立校验的计划,并在原 Turn 上只结算一次。
本轮已验证的是同源分段读取确实进入 CLI、checkpoint 和实际 Host 输入,以及原 Turn 执行、收尾和重放可用;当前仍有一类由本 PR 引入的必跑契约不一致,分别触发 TypeScript 和 Python 两处失败。 本次不改变 Goal 验收、原 Todo 声明、实验评分或执行预算,不把读取成功、观察次数或一次结算说成 Goal 已完成。
真实模型是否因此作出更好的决定、全部读取和恢复后的总成本是否下降,仍未独立验证;本轮使用合成 Host,没有调用付费模型。
改动思路
读视图、执行许可、延续选择和结算规则分别复用现有 TypeScript owner;Python 只承担文件、Host 和 CLI 子进程适配。既有原始快照、签名身份和回执继续拥有恢复依据。
本次边界是已存在重规划流程的同源读取与原 Turn 收尾,不新增规划数据库、缓存确认或第二个准入器;当前最小修复是同步受影响的必跑测试,而不是回退已验证的条件完成语义。
这次同时处理了读取路径、已准入工作的实际执行和后续选择。原始决定只捕获一次,入口保留当前 Goal、规划窗口、当前权限与原 Turn 身份;review 返回状态、先前决定和证据索引,writeback 再返回现有写入格式。模型返回结果,外层执行器负责验证、写回和扣额。checkpoint 选择器仍读取完整原包,送给模型的是该原包的 CLI 视图。
| 场景 | 当前行为与边界 |
|---|---|
| 新捕获的 CLI/native journal | 同源 review → 验收/证据明细 → writeback,不重新执行 guard |
| 旧 journal 或未捕获调用 | 保留原完整来源路径;缺源不能伪造新快照 |
| 上轮已明确收尾或按结构化路径重规划 | 新 Turn 释放旧续跑偏好,仍按当前任务资格选择;不改 Todo 状态 |
| 明确请求组合收尾 | 验证写回后执行原身份的 owed quota 命令,再读规范回执;普通手动路径继续可用 |
这里的协议变化并非所有字节与提示语都保持原样:方法建议减少、通用 followthrough 在 stride 关闭时也会出现。中英文 RFC 和协议都披露了这些默认行为变化;完整来源、已冻结旧 capture 与原写入资格仍保留。不能仅凭短包预算通过,就声称模型决策或总费用更好。
具体改动
评审头为 4473ba9,基线为 8a718ca。完整差异 45 文件、+1897/-231,包含25个生产文件、3个文档和17个测试/fixture;没有把作者自评或其测试汇总作为本轮独立执行结果。
关键代码讲解
- replanView / replanGoalContext 把事实审视与写入格式分开,要求完整原始决定与来源哈希匹配。累计验收按内容哈希读取,相同 ID 的不同版本仍分别可见;缺失来源不能当作空验收。签名结算身份保留在入口,完整计划只延后交付,不被另一个 writer 替代。
- 原生 _prompt 经共享 authority 提取与提示函数,把实际 native 输入接到同一 reader;journal 和执行器保留完整签名包。structured Host、decision capture 与 benchmark preflight 的调用也已追到。旧 journal 不具备新读取路由时仍走原路径;Host 没有获得写 LoopX 状态、额度或调度的权限。
- settle_refreshed_turn 只在显式请求且已有成功写回和 quota_spend owed 时进入。它用真实 CLI parser 校验原 Goal、Agent、Todo/obligation、Turn、Goal instance、registry、runtime、source 和一次额度,再用当前解释器运行完整 CLI。响应不确定时读原回执,不能靠重新 guard 或重复 debit 恢复。
- resolveDeliveryContinuity 使用同 Agent 的已提交 checkpoint/path_delta 释放旧偏好。它不把一句“重规划”文案当授权,不替其他 Agent 决定,也不将仍未完成的 Todo 标成完成;显式选择、已绑定 Turn 和当前准入继续由原 owner 处理。
- projectInteractionExecution 修复已准入 autonomous replan 在普通 delivery 关闭时仍无法进入原生 Host 的问题。新许可必须同时有当前 replan lane、required replan 和 canonical attempt;显式 false/null 与缺失 attempt 仍拒绝。独立实际 CLI 对照证明这不是只有字段变化。
评审依据是改动前的 docs/reference/protocols/goal-vision-replan-contract-v0.md,版本 8a718ca。按既有条款核对:Ownership Boundary 的 typed owner/IO 分界保留;Replan ACK freshness 的原 Turn 身份、一次结算和下一轮重新准入得到执行验证;Accepted successor recommendations 的同 Agent、当前资格及已绑定 Turn 优先级保留;CLI Budget 的完整来源与不静默截断通过 populated source 和明细读回验证。对应的条件完成指引仍需要修复下面的既有测试冲突。
对主干的风险
P2:同步既有 in-flight settlement 回归,否则标准 TypeScript gate 固定失败
settlement_plan.ts 第57–59行 将原来的“Todo 且不是 in-flight”改成所有 Todo binding 都提供 completion 命令,并用 todo_deliverable_complete 限定执行条件。但未修改的 quota_settlement_plan.test.ts 第70–74行 仍要求 in-flight 的 command_template 和 command_condition 都不存在。
我用相同命令、相同测试文件在两个不可变版本配对执行:
node --no-warnings --experimental-sqlite --experimental-strip-types tests/control_plane_ts/quota_settlement_plan.test.ts
基线 8 passed;当前 head 7 passed / 1 failed,第72行实际为 ordinary completion、预期为 undefined。该文件由 package.json 的 test:control-plane 及 CI typescript-core 全量分片 收录,因此不能用别的选定测试通过来覆盖它,也不能把它归为旧 lint 或上游 skipped 噪声。
补充独立配对执行还发现同一根因的 Python 断言:test_quota_settlement.py 第735–742行 要求 settlement_step_command(VALIDATION) 为 None。另一位独立评审者在同一环境、明确核实两个源码导入路径后执行该单 case,基线 1 passed、head 1 failed,精确失败在第741行;我已核对两份原始日志,确认不是 fixture 或环境失败。它与 TS 断言属于同一个 P2,不重复计为两个生产问题。
pytest -q -o addopts= tests/control_plane/test_quota_settlement.py::test_in_flight_validation_never_projects_a_completion_command
最小修复是同步这两份既有测试:明确“只有原交付独立验收完成才执行条件 completion”,同时保留“未完成进展维持 open、原声明不改、semantic closeout 不换 Turn”的反例,然后重跑两项和仓库 gate。canonical-terminal-review.md 第133–134行 仍写 in-flight 会省略 ordinary completion,也应在同一修复中澄清:未完成时不执行 completion,投影可以提供有条件模板。不要删除测试或降低门槛。当前证据支持的是 实现与既有测试契约未同步;我没有观察到未完成 Todo 被自动完成或重复扣额的生产问题。
本轮独立验证与限度
- 六个 Python 模块共 77 passed、0 skipped,覆盖 refresh/settle、staged read、native 无 Todo 规划、continuity、Host 投影与真实 Host 输入。File/SQLite 的 source tamper、错误原身份、dry-run、缺少语义证据/独立校验、响应丢失、明确 retry 与一次扣额均有执行证据。
- 八个相邻 TypeScript suite 共 168 passed / 1 failed、0 skipped;失败就是上述 P2。额外 Python 单 case 的独立配对在 head 1 failed,与上述77项通过分别记录;dependency lock/根模块预算 7 passed。没有把套件文件数当成 case 数。
- 我另外使用同一 fixture 在 SQLite public CLI 做了基线/head 反事实。两边 quota 都给出 should_run=true 与 autonomous_replan_required;基线的 native 执行报 LoopX Turn route is not host executable,host=0、spend=0;head 真正执行合成工作进程、独立校验 artifact 后 host=1、spend=1,resume 后仍为1/1。实际 prompt 中存在 staged reader。fixture 相同,执行源码来源分别核实;没有使用付费模型。
- 相同完整 kernel-static Ruff 命令在基线与 head 都得到未修改文件 test_codex_attached_conversation.py 的5项 E701/E702,日志逐字节相同。这与新引入的 settlement 测试失败分别归因。修改文件的额外 Ruff 还指出 quota.py 第4行新加 json 未使用,可顺手删除;它不在当前 kernel-static 的 cli_commands 扫描范围内,不是本次 P2 的依据。
当前 CI 仍有失败和被跳过的任务。本轮没有重跑全部 CI 或 #7269 的浏览器场景,也不据其他 PR 的对照声称该场景已在此 head 本机验证。当前 main 1dafa7d 与本次修改的交叉点是 effect_runtime.py/effect_runtime_server.ts 的 local-snapshot 白名单:main 新增 quota.spend.commit,本 PR 新增 quota.turn_envelope.evaluate;解决现有合并冲突时需要同时保留,不能用一方覆盖另一方;这项合并冲突本身不作为当前生产缺陷。
另核对了仍开放的 #7285(37fce29fd624cbedcd7b94eda21dd7a18f051624)在 context_delivery、interaction、driver 和 settlement 的相关修改:它优化另一层上下文差分和 authoring,并在 driver 中区分规划与普通 delivery;本 PR 则在 TS projection 中处理当前 semantic replan 的许可。两项修复有重叠、处理位置和 delivery_allowed 的语义不同,不能假定机械叠加后等价。这里仅记录静态对照所见的待组合后验证风险,没有把未运行的组合写成已复现绕过,也没有把 #7285 当作当前 main 或本 PR 的前置依赖。合入顺序、冲突解决或重基改变后,应在新 HEAD 核验显式 denial、原绑定、完成/未完成与读取恢复反例。
我的整体评价
整体方向构成有实际可执行结果的 justified_increment:同源视图已到达真实入口,原 Turn 的有效工作、独立校验、一次结算和恢复形成闭环。长期持续工作能力在已测场景 improved;用户路径 preserved,没有新增必要确认轮次。大小和流程调整本身不能证明模型采纳、研究收益或完整成本改善,这些限制保留。
读视图、执行许可、延续选择和结算规则分别复用现有 TypeScript owner;Python 只承担文件、Host 和 CLI 子进程适配。既有原始快照、签名身份和回执继续拥有恢复依据。 本次边界是已存在重规划流程的同源读取与原 Turn 收尾,不新增规划数据库、缓存确认或第二个准入器;当前最小修复是同步受影响的必跑测试,而不是回退已验证的条件完成语义。
当前结论仍为 REQUEST_CHANGES,阻塞项仅为上面的 P2。 修复应集中在条件完成语义与现有必跑测试的一致性,保留已经验证的原声明、作用域和恢复约束。保留旧 journal/完整 capture 的兼容路径有具体持久化消费者,不建议为了减少分支而删除。
完整差异没有 frontend、Lark 页面或其他渲染布局改动;检查的是 CLI/Host 请求与只读命令,因此本轮不需要新增页面截图。 真实模型对长内容和分段读取的理解、已安装版本行为及浏览器整体验收未在本轮重跑。
此结论仅覆盖 4473ba9;不是 CI 全绿、merge-ready 或合并授权。重基解决白名单冲突或修复测试后应按新 head 核验受影响边界。
English verdict: REQUEST_CHANGES — 4473ba9. One P2: the intentional conditional-completion change leaves the existing TypeScript and Python in-flight contract tests stale (TS base 8/8 → head 7/8, failure at line72; paired Python base 1 pass → head 1 failure at line741). Synchronize both tests and the retained documentation while preserving incomplete-work and original-Turn safeguards. This review ran 77 passing Python cases, 168 passing TypeScript cases plus one failure, and 7 passing repository-invariant cases; a separate independent peer supplied the source-verified Python single-case failure pair. It also ran a same-fixture real SQLite/native CLI counterfactual with independent artifact validation and exactly-once replay. This is a test-contract inconsistency, not a claimed production auto-completion or double-spend bug. Model utility/full cost and global merge readiness remain unqualified.
| if (identity.binding_kind === "todo") { | ||
| validation.command_template = requireNonEmptyString(commands.todo_completion, "todo_completion"); | ||
| validation.command_condition = "todo_deliverable_complete"; |
There was a problem hiding this comment.
[P2] 同步这次条件完成投影所改变的既有测试合同。
此处有意让 in-flight Todo 也携带 todo_deliverable_complete 条件模板,但 tests/control_plane_ts/quota_settlement_plan.test.ts:72–73 仍要求 command_template / command_condition 为 undefined,Python tests/control_plane/test_quota_settlement.py:741–742 也仍要求 completion 命令为 None。
同环境、同命令在不可变 base 8a718ca5 与当前 head 配对:TS 8/8 → 7/8,Python 单 case 1 passed → 1 failed,均精确失败在旧断言,非 fixture 或启动错误。TS 文件也在标准 control-plane/CI 分片中。
请同步两层断言,并澄清 canonical-terminal-review.md:133–134 的旧表述;保留“未完成工作保持 open、声明不变、不强制 material closeout”和“原交付完成并独立校验后,可在原 Turn 条件完成并结算”的正反例。无需撤回已经验证的条件模板,也不要删除回归测试。这里报告的是实现/测试契约未同步;没有证据表明生产路径会自动完成未完成 Todo 或重复扣额。
Captured replans can still deliver formatting instructions before the facts, and native/checkpoint consumers can bypass an existing staged reader. Closed scoped work can also retain stale continuation preference. This converges those callers on the existing source-bound projection and preserves the original Turn through closeout and replay.
This re-proposes the #7197 implementation explicitly on current main. Its earlier merged ancestry did not deliver this staged reader to the main tree; unrelated integration changes are retained.
Resulting behavior
reviewandwritebackviews. Current Goal/horizon stays visible; cumulative acceptance details and full original recovery remain reachable. Duplicate entry settlement plans, writer backpointers and unconditional Host full-package instructions are removed.refresh-state --settle-turncomposes the existing owed quota command after verified writeback. It pins the current interpreter, validates exact identity and reconciles canonical receipts before ambiguous retries. Ordinary manual refresh/spend remains available.Current validation
Head:
4473ba97370bda708c7a913989d1e900a73b3276. Base: main8a718ca5f17b8036a57c6d4e88a02185eaf4581d.manual_review_required; this is not merge readiness or maintainer authorization.Cost and remaining evidence
Earlier fixed-source offline replay at
b86f304→0ddd08admeasured whole CLI delivery +2.25%, structured Host −57.72%, native renderer −60.23%, and native plus full-source recovery +6.37%. These source-bound projection implementations are unchanged by this rebase. This is historical transport-byte evidence, not a new model, latency, fee or native-score measurement.The optional composed settlement still runs complete CLI/readback work: its earlier isolated File/SQLite measurements reduced stdout while increasing local process time. Actual model adoption, complete cost and benchmark effectiveness remain unproven. No scoring, opportunity, cooldown, experiment-budget or permission-source change, new benchmark job, installation or merge is included.