Skip to content

C1: unify work sources and validate recovery - #7430

Open
loopx-agent wants to merge 78 commits into
mainfrom
codex/controller-decision-composition
Open

loopx-agent wants to merge 78 commits into
mainfrom
codex/controller-decision-composition

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

本提案让 quota presentation、managed preview、Turn/Host、immutable capture、journal 和恢复读取一份完整 work_contract,复用既有 TypeScript 决策/来源/结算 owner,移除对应的普通旧 writer 和重复 preview builder。已有历史工作按原版本恢复;迁移提案不等于整体 C1 或实际采用已验收。

当前评审头 62a2052507,已集成 main 2c24d5d102。 通过 CLI 恢复已保存的完整 Turn 时,无差分会话现在也使用同一个渐进投递入口。原先这条路径当作旧 quota 格式,把历史证据和评审笔记重新塞回首读。模型需要的要求、当前结论和停止条件仍保留;需要核验时,从当前捕获按地址取回原始证据。文件 SHA 正确但内部 Turn 绑定不符时,命令报错并仅给恢复引用。显式关闭投递的行为保持不变。

固定状态回放 结果
同一批已保存决策,旧 C1 → 当前 C1 三次首读的所选 UTF-8 正文 447,006 → 349,961 B(−21.7%)。两份 benchmark 状态分别少 55,518 和 51,228 B;本机状态多 9,701 B,其中 24 条辅助材料地址占 7,204 B。
同一批源状态,当前 main → 当前 C1 各走本版本的实际格式,首读均 8 页,341,618 → 350,141 B(C1 多 2.5%)。两份有当前关联结果的输入,各核对 104 条要求及评审状态。各做一次历史证据补读时,两版返回的所选正文完全相同,共 22,882 B。
同时需要当前重规划原因及停止依据 main 需要 11 次 reader 调用,C1 需要 8 次;合计 reader stdout 368,297 → 372,830 B(C1 多 1.2%)。每份 C1 首读都额外交付约 1.9 KB 的重规划指引。

这些是可复现的读取成本,不代表模型 token、整题效果或费用。以完整 Turn 类型重放连续输入也得到 full → delta,移走旧基线后,从当前捕获即可恢复四类评审事实。两个真实 Codex 入口使用回环推理服务验证(benchmark 和 App),不是收费整题。五个待合拆分合并预演仍少 1,803 行增删;双语实验记录留在 C1。

历史评审头 6748107561,基线 main 3c7e0935fd。 自主重规划需要评审时,第一轮渐进读取现在给出当前义务、上下文 ID、触发原因和停止条件。只对类型及绑定一致、尚需评审的状态生效;完整证据仍从原捕获取回。

  • 对三份固定历史输入,先读首屏所有页,再取齐「为什么需要重规划、何时停止」所需事实:相较上一版 C1,reader 调用从 12 次降到 9 次,总输出 475,024 → 472,924 B(−0.44%);首读本身多了 2,076 B。无需补读这些事实的调用方会承担这部分开销。这是工具输出,不是模型 token 或整题得分。
  • 连续两份同一目标的真实输入通过渐进投递产生 full → delta;移走旧基线后,仍可从当前捕获取齐并核对上述四类事实。
  • 四项先前失败的后继用例已查明:原收据仍有待评审义务时 guard 正常返回,但不再选择已解除认领的 Todo;旧写回和旧扣款仍须拒绝。File/SQLite 均验证了这条行为。重入及 checkpoint 两组 57/57,渐进验收与完整决定两组 167/167。快速 premerge 无自动失败,基准相关人工评审仍保留。
  • 五个拆分的本地组合无合并冲突。若五项均进入 main,剩余 C1 从 201 文件、21,161 行增删减至 190 文件、19,358 行增删,少审 1,803 行。实际 PR 尚未因此缩小;双语实验记录保留在这里。

历史评审头 5d77a90b48,已集成 main 3c7e0935fd。 四个重规划阶段现在复用本次读取已经校验的原始摘要。历史回写的可执行后继命令也会携带原 Turn 和 Goal 实例,避免返回一条缺少绑定参数的创建命令。普通文件读取和 FIFO 回归可独立评审于 #8118。

  • 同一未改动的历史决策在四种阶段下重放。review、explore、acceptance 的整包哈希各从两次降到一次,writeback 从三次降到一次。三份无后继命令的历史输入共 12 个响应逐字节一致。这里度量的是本地哈希工作量。存在后继命令时,可执行列表按上述修正发生预期变化。
  • 两项新增回归在上一版均失败,本版均通过。重规划读取与后继重入两组共 53 通过、4 失败。四项均是释放后继认领时的既有 guard 退出码分歧,在上一版也逐项复现。File 和 SQLite 独立执行过期的回写及扣款命令均被拒绝。保留该限制供评审;整题分数和模型账单仍待配对实验。
  • 五个待合拆分在本地可组合。以它们为基线,剩余差异由 201 文件、21,124 行降到 190 文件、19,342 行。当前实际 PR 差异仍以 GitHub 的 main 为准,双语实验记录留在本 PR。

上轮评审头 d701a55c7,已集成 main 3c7e0935fd。 新拆的 #8118 可以独立修复 main 上两条已复现的恢复故障:原生 hook 接受领取后被替换的就绪文件,重试在打开命名管道时持有 journal 锁等待。现在由写入方提供原始摘要,读取失败仍可用同一 claim 恢复;还原原件后能继续同一 Turn。File 和 SQLite 均走过真实 CLI。完整决策保留在原文件,宿主子进程只返回核验就绪所需的字段。

同一负载 对照 当前结果
两个 benchmark 就绪步骤,内部回复字节(分别) 53,113 / 60,511 535 / 535
较大的就绪状态,内部回复字节 746,089 560
冷启动加续会话,10 次固定脚本累计模型输入字节 main 526,422 C1 504,984

在隔离回归的真实子进程出口另测到 539 B,对应原文件 49,807–49,833 B。10 次模型请求的差额仍为 21,438 B,与上版一致,不能用内部回复的降幅估计模型 token、整题分数或费用。三份当前格式文件的发布复核 CPU 中位数降约 56%–58%;历史缩进格式在这次测量中慢约 2%–6%。

拆分效果。 #8100、#8106、#8110、#8113 和 #8118 的本地组合通过 98 项恢复与捕获测试。以同一 C1 头比较,五项落地后剩余评审差异预计从 201 个文件(+18,862/−2,202)降至 190 个(+17,393/−1,922),少审 1,749 行;本次 #8118 贡献 338 行。组合接回 C1 仍有 14 处文件冲突,需要逐项核对。两份历史实验记录保留在此。当前头新增就绪回执路径的 98 项检查通过;quick premerge 的实际检查无失败,benchmark 变更仍需维护者审阅。

重规划的停止条件与传输成本(C1 dd69b89ae,独立修复 #8113)。 同一份能正常重规划的历史决策中,若渠道引用将原文的“继续”写成“已完成”,main 会接受重新计算哈希后的矛盾内容;此头会拒绝,正确引用仍可用。C1 在现有展示 RPC 比较审计,只发送参与计算的来源;验收正文只剩一个完整副本时也跳过比较。

同样两个 benchmark 温态步骤及一份新本机状态上,展示 RPC 的请求与返回体合计为 main 438,084 B / 3 次,上一版 C1 635,798 B / 5 次,当前 C1 126,906 B / 3 次。三份工具输出分别逐字节相同。用另一份本机状态替换第三项,当前 C1 相对上一版从 1,009,286 B 降至 426,529 B。相同路径长度的原生冷温脚本中,当前与上一版 C1 的 10 次累计模型输入均为 508,156 B,固定基线 main 为 529,594 B。实跑得分和计费仍待配对。

在同一 C1 头上,#8100、#8106、#8110、#8113 四项在本地合并后,剩余差异由 200 个文件(+18,686/−2,142)变为 191 个(+17,487/−1,930),共少审 1,411 行增删,本次贡献 444 行。解决两处文件冲突,组合的 81 个相关回归通过;实验历史保留在此 PR。

验收引用拆分 #8110,C1 fa1208776。 main 产生的合法规划引用在分段重规划时被拒绝。此头和独立 PR 都已修复,并将展示 RPC 限定到实际消费的字段。重放两个 benchmark 温态步骤和一份本机状态,独立 PR 对 main 的内部请求和返回正文合计从 648,645 B 降至 403,743 B(−37.8%),三份工具输出逐字节相同。原生 10 次请求脚本中,三项拆分组合与上一轮两项组合均为 512,666 B,当前 C1 为 508,156 B。真实模型计费及整题得分仍待配对实跑。

固定同一 C1 头比较,#8100、#8106、#8110 若按演练落地,剩余差异从 200 个文件(+18,601/−2,142)降到 190 个(+17,784/−1,972),合计少审 987 行增删,其中 #8110 贡献 296 行。组合的 59 项验收及分段重规划测试通过;历史双语记录保留。

拆分合并演练(C1 3f543c9f3c)。 在 main 12803354ab 上依次合入 #8100 和 #8106 的本地副本,两者之间没有冲突。按两个文件树比较,若这两项按当前内容落地,C1 从 199 个文件(+18,479/−2,140)缩至 190 个(+17,882/−2,046),少审 691 行增删。双语实验记录完整保留。将组合与 C1 接合时有 6 个文件冲突;还要移除自动合并产生的 3 个同名测试,保留检查稀疏未读分支不会被传输的较强版本。逐项解冲突后,结果与此 C1 的 Git 文件树完全相同。以上为本地演练,两项拆分仍待评审。

同一原生冷/温选题脚本的 10 次请求上,组合的累计模型输入为 512,666 B,与单用 #8100 一致。#8106 的独立收益在内部查询:以相同输入分别回放 File 和 SQLite,每端的 Todo RPC 从 17 次降为 10 次,34 份返回值均相同。不能把这两项改善相加为模型输入节省。真实模型计费与整题成绩仍待配对运行。

隔离技能目录后的原生输入复测(a102781014)。 两版运行同一条冷启动和续会话选题脚本,共 10 次请求。首次测量只有 main 载入个人技能目录,累计多出 168,450 B;该组退出比较。隔离 OS 用户目录和 Codex 目录,逐项核对技能清单后,模型接口累计 input 为 main 529,594 B、独立拆分 #8100 512,666 B、C1 508,156 B。C1 下降 4.05%,其中 18,590 B 来自各次请求与上一次相同的前缀缩短。每次唤醒的原始提示从 7,841 B 降至 6,383 B,其中 1,206 B 是已由持久指令交付的读取指南。工具返回项在 10 次请求内累计增加 44 B。真实缓存命中、计费及整题成绩仍待实跑。

重规划首读,已集成 main 1280335;当前头 a8d4212。 C1 的完整工作契约直接提供原有规划要求、预期结果和允许的终态,再按同一 capture 的 outcome 路径读原始验收要求。File 和 SQLite 各自用同一 capture 对照前一版 C1 da33caa:旧版第二次把缺失的规划字段和 outcome 一起取,新版第二次只取 outcome。两版均读 2 次,完整内容一致,总正文字节未降;工具 stdout 各少 125 B。实际改善是第一步就能看见规划要求。这项结果不证明整题 token 或得分改善。

独立拆分 #8100 适配 main 已有的分段复核入口,验证同样的原始来源和修订隔离,不要求 main 引入 C1 整套实现。此头三个相关套件共 151 项通过;quick premerge 无失败,仍需人工评审。

从模型可见正文选题(本次对照) C1 da33caa4e1 和独立拆分 #8100 c0ef0a1694 均集成 main aa82591fb0。旧回环测试实际从磁盘里的完整 capture 获取绑定命令;它检验了恢复和传输,不能证明已选正文足以做决定。新版脚本仅从工具页取得候选 ID 和命令,冷启动选第一项,续会话选第二项;分别从返回的同 Turn 回执核对真实选择,保留原 capture 与恢复验证。

同一任务、固定脚本和原生 Codex 入口,按每次 Responses 请求中完整 input 数组的紧凑 UTF-8 字节累计(含重复历史):

读取方式 请求数 main 独立拆分 C1
四次先列根目录,再读已知字段 14 961,551 B 937,875 B 939,461 B
相同字段直接合读 10 528,801 B 511,873 B 507,363 B

同走直读,C1 比 main 少 4.05%。在 C1 内更换读取方式少 45.99%,main 也少 45.01%;这是已知路径的脚本收益。测试保留未知路径发现和失败恢复。两分支原生接收、预检与上下文测试各 130 过、4 跳过。未测真实模型主动采用、token 账单或整题成绩。

集成 main 后的原生输入对照 C1 f36ccee498 和独立 #8100 549ec7c39a 均已集成 main 76cc8d0d65。已准备好的 Codex benchmark 会话从持久开发者指令取得读包指南,每次 checkpoint 预检可少交付 1,206 B。原始捕获及恢复命令随预检传递。独立调用仍附完整指南。

在同一冷启动、继续会话、渐进读取和同 Turn 绑定的固定轨迹上,三个版本各产生 14 次原生 Responses 请求。对每次实际请求的 input 数组使用相同的紧凑 UTF-8 JSON 序列化后相加,main 为 937,744 B,独立拆分为 914,068 B,完整 C1 为 915,654 B,C1 比 main 少 2.36%。固定脚本驱动回环模型响应。计数包括重复发送的用户、开发者、助手和工具历史,模型计费和整题成绩仍待评测。

单独对照此次修改,旧 C1 的用户消息历史共出现 21 份指南,新版为 0 份,两版的开发者消息均有 14 份。两版 14 次请求的 input 合计相差 25,326 B,全部落在用户消息。另按此前两轮选题控制路径的口径,温态 C1 从 52,275 降至 49,863 B(main 54,117),压缩恢复后从 54,519 降至 52,107 B(main 56,359)。独立拆分待评审,完整 C1 对 main 仍有 198 个文件;按两个集成头的文件树比较,若拆分单独合入,余 192 个文件,少 435 行增删。

集成后的三个版本分别通过 26 项原生收包及队列回归。两个 PR 的标准预合并均有一项继承的维护性提示,自动阻断失败为零,benchmark 人工评审门仍在。

此前提交与 main 对照 C1 0fb3e0888 已集成 main acc00f545。在隔离的 SQLite benchmark 入口,各版本各跑三次同一任务:从两个候选中选择第二项,重新进入同一 Turn,再读回确认选择的差分。各次均完成;对比如下。

从预检到确认选择 main 独立 #8100 完整 C1
读取页数 3 2 2
累计已解码正文 13,062 B 12,677 B 12,803 B
累计 reader stdout 16,080 B 14,830 B 14,970 B
CLI 内部 RPC 177 174 157
CLI 双向传输 1,189,492 B 1,091,681–1,092,235 B 899,003 B

C1 的首读从同次完整 capture 的 30,390 B 缩至 6,608 B;与 main 相比,首读多了 2,086 B,因已含选题依据和绑定命令,少一次追读。累计正文少 2.0%,reader stdout 少 6.9%,内部传输少 24.4%;不是模型计费或整题成绩。独立拆分快照避免同一 Turn 再次预检覆盖旧 reader;完整源与所展示的视图不同时分别保留,才能在 main 上保持温态差分。此修复的 C1 定向集成 20 项通过,#8100 为 22 项通过。#8100 尚未合入;当前 C1 实际差异为 195 个文件(+18,331/−2,079)。若 main 仅合入当前 #8100,按两端树比较为 192 个文件(+17,976/−2,033)。整题配对尚未启动。

上一版提交 C1 688b6823 已集成 main acc00f545。#8095、#8097 已合入;这两次同步没有改变 C1 文件树,实际待审差异从 197 文件(+18,436/−2,101)降至 195 文件(+18,309/−2,078)。修复合入后暴露的共享测试夹具不兼容:11 个恢复用例在进入目标逻辑前因参数不匹配失败,修后这 11 项全部通过。以下选题对照来自此前的 1bb694a6。需要显式选择 Todo 时,渐进首读直接交付原契约的选择策略、候选、发现与当前 Turn 的绑定命令。候选由 Agent 选定,仍须经过原 guard 才能执行。在隔离的 SQLite 和 benchmark checkpoint 入口上,从两个候选中选取第二项,经投影给出的命令在同一 Turn 重新准入并读回所选 Todo。

两次选题的上下文成本。 在同一 SQLite benchmark 会话,两次 Turn 先选第二项、再选第一项,并分别读回绑定身份。下表合计预检提示、导航、所需 reader 输出、绑定回执和适用的宿主恢复提示(UTF-8 字节);不含模型生成的命令、工具协议封装、推理或计费。这里只测控制路径,没有执行两个 Todo 的业务工作。

累计至 main #8100 完整 C1
第一次选择已确认 26,631 25,437 25,581
温态第二轮只读完首页(尚未选择) 39,284 40,257 40,478
温态第二次选择已确认 54,117 51,991 52,275
压缩并恢复会话后,第二次选择已确认 56,359 54,233 54,519

正常延续下,C1 两次均确认时较 main 少 3.4%;若第二轮只读首页就停,反而多 1,194 B,两版此时给出的选题信息也不同。压缩后原 Turn 的 reader 仍能读回原文,下一 Turn 回到 full。C1 下一轮正常延续与压缩恢复虽分别投影 delta 与 full,渐进首读正文均为 6,608 B。差分文件变小不能再算一次正文收益。

首读与追读成本 同一批不可变 capture 的 9 次显式选择,完整文件合计 480,865 B,修后首读正文 116,651 B(少 75.7%)。旧首读为 101,022 B,另取相同选题信息需 19,472 B。若每次均需要这些信息,累计正文少 3.2%,含包装的 CLI stdout 从 140,352 B 降至 128,698 B(少 8.3%),读页从 18 次降至 9 次。其余 52 次的首读正文和 stdout 长度逐例相同。这个对照使用离线重放与受控的实际入口,整题的模型输入、支出和历史最佳成绩仍待配对实验。

当前验证范围 关联读包、选题和宿主测试 211 通过、10 跳过。标准预合并无阻断失败,含一项继承的维护性提示及人工评审门。既有完整 CLI 输出预算失败仍保留。

此前验证 C1 59be3f1e 已集成 main 33b15d03。17 个 should-run 模型行为场景改用生产端完整决策。原 90,000 B 预算下 14 个通过;三项压力样本此前为 84,276–86,172 B,实际完整评测输入为 119,290–121,363 B,均在调用模型前拒绝。脚本化下游行为测试另用旧的预算内对照;其通过不能抵销这三项失败。原生工具场景按同一 Turn 的回执验证合并写回与扣额,要求读取终止决定后才能结束。

正文与追读 分别读取同一决策的 immutable capture 和渐进首读正文,三个合成样本为 113,767 → 2,516、113,775 → 2,569、111,919 → 1,525 B。随后只读一个候选,累计正文比完整 capture 少 96.4%–97.3%;若追读全部能力候选与其他 Agent 的行动,累计只少 0.4%–1.1%。这是同一输入的文件和已解码正文大小。终端包装、模型 token、整题得分和端到端成本另计。

此前验证范围 该提交的行为、原生工具与发布资格回归 133 项通过。预合并 7 项直接检查、19 项选中检查,阻断失败 0,另有 1 项人工评审。集成测试实际命中 5 项 CLI 输出预算失败,涉及只读 Turn plan 与显式完整 Turn 输出;保留原阈值。当前差异 196 文件(+18,396/−2,101)。整题配对尚未启动。

独立 SQLite 原生回环覆盖冷读、差分、压缩、超大原文与受损摘要。预检跟随实际输出的不可变文件和摘要,分别验证完整 Turn、普通 quota 及超大原文回退。saved projection 模块 56 项通过,最终提交再跑 benchmark 的普通和 progressive 两个原生模式均通过。C1 标准预合并有 1 项既有提示需要人工评审,19 项选中检查无阻断失败。此前的 7 项输出成本失败仍开放。这些是本机确定性回放;整题的处理成本及得分仍待配对评测。

新的独立拆分 以下原预测基于上次提交。当前 main 与独立 #8100 的隔离 SQLite 固定入口各重复三次,guard → 保存视图投影 → 第一次读取,总内部 RPC 84→83,双向传输 593,595→543,932 B(−8.37%),首读正文均 4,522 B;Python 在夹具内读写合计增加 1,311 B。结果只归属于这个切片、这个入口。

#8100 将渐进首读的选择绑定到同一份 capture,让实时和保存后读取复用。SQLite 对照正文逐字节一致。按当前两个分支端点比较,若该拆分独立落地并保留 C1 行为,剩余差异预计少 256 行新增、31 行删除;四个共享文件仍须处理集成冲突。该预测不计作已合入;双语实验记录仍在本 PR。

代码拆分 结算回执 #8090 与 会话绑定 #8092 均已合入 main。同步前后按各自 merge base 实测,差异从 194 个文件(+18,499/−2,085)降至 189 个(+18,229/−1,995),共减少 360 行增删。双语实验记录继续随本 PR 评审。差分恢复 #8095 与 按路径读取和发现 #8097 仍独立评审。

此前提交 C1 4ff3290b 已集成 main be17d4ff。仅替换重复 Todo 行的渐进视图现在也能找回同次 capture 的签名原文,首读与后续分页使用同一生产者 CLI。真实 SQLite 的分页、原文摘要和决策完整性回归通过。

在相同 SQLite 状态下单独运行只读 turn plan,JSON 输出仍超历史预算。小场景从 main 的 10,553 B 增至 26,179 B,36 个 Todo 的场景从 21,849 B 增至 54,074 B,多 Agent 场景从 10,300 B 增至 33,932 B。拥挤场景的 Markdown 从 566 B 降至 146 B。后续优先验证只读 JSON 首屏能否按需返回完整 work contract,并把恢复读取也计入总成本。

在这两个提交的相同 SQLite 夹具上另测了一种按需读取方式。36 Todo 场景只取后续命令和完整 writeback_contract,将引用首屏和一次读取返回的字节相加,main 为 8,124 B,C1 为 8,179 B;若取回整个契约,分别为 25,731 B 和 59,993 B。三个场景、两个版本均拒绝读取被替换的来源,所选任务、命令目标和写回契约一致。该实验使用固定来源的 reader 并额外写入临时 capture,未改默认无写入的检查入口;上述数字只衡量返回字节。

当时相关 Python 验证 309 通过、7 失败、1 跳过;7 项失败均触及输出或正文字节上限。标准 premerge 的 7 项直接检查、19 项执行检查无阻断失败,仍有 1 项继承性提示,不能覆盖上述失败。#8090 的当前提交为 2ea91877,标准预合并通过,尚待独立评审。双语历史随 C1 一并保留。

上一轮验证版本 已集成 main 03d6ab2864,本 PR head 为 090d414e77。原生 benchmark 预检把投影和回退读取绑定到每次调用自己的原始 capture,避免同一 Turn 重入时覆盖旧命令指向的正文。SQLite 真实 CLI 连续两次预检后,两个原文的投影和恢复索引均可用;常规 native 路径省去一份完整视图的写入和回读。显式关闭路径仍有兼容测试。

在这两个提交上各重跑一次 SQLite 双步骤固定任务,两次提交相同验收产物。温态当前步的完整 capture → 所选视图,main 为 72,518 → 69,451 B(4.23%),C1 为 60,511 → 26,730 B(55.83%)。实际返回的首读正文为 23,475 → 22,814 B(少 661 B,2.82%)。全程工具 stdout 为 115,088 → 93,092 B,记录到的 RPC 为 666 → 578。两臂均允许渐进读取和差分,分别观察到 full 与 delta;这次配对回放没有测量模型 token 或长程任务分数。

相关回归 115 passed、4 skipped。premerge 执行 19 项,阻断失败 0;有一项继承自基线的可维护性提示,最终状态为 manual review required。以下保留此前版本的历史结果。

此前作者 head:83a102df39b7787ac12b116b5669ad0f365e1b44,已整合 main 快照 2852eb453bef7731370e156ea5047e67090d549a。产品代码验证固定 62619a9fc8273d35efbeccab09183af8dfa44cea;最后提交只修正验证工作区并更新配对 ledger,产品字节未变。30 个 PR 提交均有 DCO。

实现与维护边界:

  • 完整来源与原数值/capture 身份通过共同 typed reader;未知支持材料保持,坏当前版本、缺源、混合 carrier、错 binding 和未知执行动作拒绝。Goal/Agent/Todo/Turn、原 claim、native Session、原文/停止与三回执/一次扣额保留。
  • 可执行必读规则归既有 interaction owner。显式 command 与已注册 before_work 顺序接受共同校验;纯文字义务和合法未读仍保持完整/pending,不补造读取或模型保留证明。同一规则到达 quota、managed、planner 与 Host,未加第二套 caller 规则。
  • Native ready 交接保留已启用 profile、原 claim 和同 Turn capture,沿既有 deferred presentation 与组合结算。完整内联 Goal 或其声明的读取均保留;显式 off、default/off 隔离与 unsupported 路由沿原协议。
  • 修复实际仍受支持的过渡 journal consumer:canonical resume loader 原先只校验 v1,带完整来源的已记录 v0 会绕到原始身份分支。现统一交给现有 turn_host_lineage/TS owner,并交叉检查原 adapter。执行路径原已在下游拒绝坏来源,不声称发现了越权启动/扣额。当前 v1 已有该 RPC;过渡加载新增这次校验,不宣称该修复降低 RPC。纯历史无来源格式仍保留原始身份和字节;不把整个 journal 一致性新增为 plan-load 门。
  • 普通 inspection 仍完整、不可执行,坏历史的结构化 blocked 诊断保留。legacy constructor 剩余 caller 是具名 composition/model-behavior/历史 fixture;最后 consumer、未结工作和原支持窗口核清后才能退役。

验证:

  • 整合 main2852 后源码 cohort 81 passed,相关 TypeScript 178 passed;control-plane typecheck、变更文件 Ruff、配对 RFC staged/head 与 diff hygiene 通过。修复前两个 File/SQLite 过渡 loader 反例失败,当前格式控制通过;显式 retry 的入口差异也有真实 CLI 反例。详细产品/harness 失败分类在 ledger。
  • 实际隔离 wheel 首次 67 passed/14 failed:子进程默认借用了源码 checkout 的 workspace 资格。诊断确认是实际产物工作区未核准,未更改权限门;既有测试现显式在各自 producing project 执行。完整受影响模块在源码和字节未变的 wheel 中各 23 passed;另 58 个未改用例已在前一 wheel cohort 通过。覆盖 81 个独立用例,不是一次未中断的最终 81 用例运行。原断言、负例、once-only 恢复及 default-root 隔离保留。
  • wheel SHA 3032a8cda793a472a4243ccdf31fb9c3b0e53c47ddc51f8b10919ec5ee2b8c7a;1,898 个打包源文件逐字匹配。最终 23 用例 wheel 运行的 125 个完成进程、64,109 次 Core 来源观察无 checkout 污染;突然退出不在退出审计范围。前一 e7 阶段的源码/wheel 各 139 通过单独保留,不冒充新 main 验证;被 Host 中断而无终态的运行不计通过。
  • exact-head standard premerge 执行 7 项 direct 和 19 项 selected:direct 全过,selected 中 18 项 passed、1 项继承性 advisory。该 advisory 为未改 owner _admitted_interaction_next_cli_actions 的既有 oversized-decision finding;工具将其记作 advisory_inherited_failure,不是通过或本 PR 修复。blocking failure 为 0;机器 gate 返回 passed,不等于独立批准或合并权限。未抬上限、加 skip 或重标旧失败。

成本判断:此前冻结 main922/产品b3 的完整原 quota 对照仍有效:相同编号 Task、必要材料、File/SQLite、cold/warm/实际 PreCompact/PostCompact 恢复,各端三次,共 36 条件/60 工作 Turn;同场景产物、三回执和一次扣额独验。温态完整工具 stdout 少 19.52%/19.89%、RPC 少 31.44%、framed wire 少 34.12%/34.14%。主指标仍是同次原生产者完整 capture F→所选 BODY;候选正文更小、缩减率较低,两者分别记账。完整绝对值、范围、旧 hard-lease/soft-claim 负对照及原 20,533 超限均保留。

这组旧快照的工程收益不能直接用作新 head/main2852 的收益百分比。 主干已继续变化,本轮没有重测新基线。真实模型 input/cache/生成 output/费用、完整原生 IO、CPU/自然延迟、采用和长程净收益仍未知。后续沿原 C1 补当前版本完整成本和实际验收;不靠删历史 reader 或重标旧失败取得完成结论。

本 PR 保持正常 OPEN Ready 作者提案;独立审阅、merge readiness、合并授权、实际采用和整体 C1 验收分别保留。未查询或手动触发 CI,未合并、活动安装候选、默认推广或运行模型/付费任务。本切片沿既有 CLI/Host 运行、错误与恢复读回,无新增 UI/设置。

当前来源、调用方、退役条件与恢复验证;历史完整成本对照及边界。

@mergify

mergify Bot commented Oct 27, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added needs-rebase Mergify: the pull request has merge conflicts with its base branch and removed needs-rebase Mergify: the pull request has merge conflicts with its base branch labels Oct 27, 2026
@mergify

mergify Bot commented Oct 27, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 27, 2026
@loopx-agent loopx-agent changed the title WIP: compose one complete Turn contract before capture WIP: unify captured Turn inputs and scoped outcome delivery Oct 27, 2026
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 27, 2026
@mergify

mergify Bot commented Oct 27, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 27, 2026
@loopx-agent
loopx-agent force-pushed the codex/controller-decision-composition branch from a4e077f to 307d000 Compare October 27, 2026 19:45
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 27, 2026
@loopx-agent
loopx-agent force-pushed the codex/controller-decision-composition branch 4 times, most recently from 72b88cc to 6e84e81 Compare October 28, 2026 00:11
@loopx-agent loopx-agent changed the title WIP: unify captured Turn inputs and scoped outcome delivery WIP: unify governed Turn inputs and shared decision consumers Oct 28, 2026
@loopx-agent
loopx-agent force-pushed the codex/controller-decision-composition branch from 6e84e81 to 37618d8 Compare October 28, 2026 00:53
@mergify

mergify Bot commented Oct 28, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 28, 2026
@loopx-agent
loopx-agent force-pushed the codex/controller-decision-composition branch from 37618d8 to 6e3cf81 Compare October 28, 2026 08:01
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…er-20261103T062012Z

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…er-20261103T062012Z

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 | max

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

Exact head: da33caa; base: aa82591.

动机 / Motivation

使用 CLI 或 Codex heartbeat 推进任务的 Agent,需要从同一份准入结果判断做什么、补读哪些必要事实以及怎样结束原 Turn。过去多个兼容投影可能给出不同下一步;本次把新捕获结果汇入完整决策,并让实际工具输出参与选择和结算验证,但 thin heartbeat 同时要求行动前读取整个 capture。统一决策和原 Turn 结算已有可执行增量;独立实际 CLI 对照仍发现读取义务扩大,且当前 head 的两处重复测试定义使 Ruff 失败。本轮不把完整 C1 迁移、已安装 Host 的自然模型采用、长期效果或完整成本改善视为已交付,也不以全部未来资格作为这个增量的新门槛。剩余工作是恢复按任务依赖补读的边界、修复当前验证失败,并继续区分 scripted qualification 与真实模型/安装路径的证据。

改动思路 / Approach

新准入与完整决策复用既有 TypeScript owner;Python 负责 CLI/Host 运输和原 Turn 写回,历史 capture 与 receipt 保留版本化兼容。统一输出本身不能把无关材料升级为必读,也不能让投影获得新执行权。本次判断覆盖实际 base/head 的198文件迁移边界;本轮另核新增 benchmark guide/receiver 增量及已集成 main,整体 C1 与真实模型净收益仍未认证。当前增量把 benchmark reader 绑定到本次实际 CLI view;若显示视图和原始 guard 不同,私有不可变目录分别保存两者。这样再做同一 Turn preflight 时,旧 reader 仍对应旧 view。它复用现有 preflight/read owner,不增加准入或结算 owner。显式 off 继续普通 CLI view;后续行动仍须原 guard。这个局部修复有价值,但没有触及下面两个阻塞。

具体改动 / Changes

依据 docs/architecture/rfcs/controller-executor-unified-contract-v0.md,spec_revision aa82591fb0a129f3ea9cc5e67343e742899c7ccd,以及 required-work-context 的既有按需读取与同 capture 恢复规则。沿用原编号/术语:C1 统一 owner 的增量 implemented;historical capture/receipt 兼容路径保留;required_reads 的必要事实范围仍 not_met。完整当前差异为 198 文件,+18,387/−2,093。

关键代码讲解

  • capture_before_replan 在 native context 下使用本次 guard 的实际 stdout;与原始字节相同才复用原文件,否则创建本次私有 view,以同一 SHA/Turn 给原 reader。两条支路均保留原 capture,重复 preflight 不覆盖旧 native reader。
  • composeCompleteTurnDecision 与 _emit_quota_result 继续承担共享决策和实际 CLI 输出;本轮新增 benchmark 变化没有改它们。
  • render_thin_heartbeat_task_body 的 line686 仍要求行动前读完整 capture;这改变 Agent 的必读范围,不能用 CLI exit0 或保存文件代替语义判定。

对主干的风险 / Risks

REQUEST_CHANGES,两个既有阻塞在这个新 head 独立复现。 必要读取范围 inline:同一冻结合成来源、当前 base/head 的 ordinary/Codex × default/explicit-off 共八次真实 CLI 全部 exit0、来源不变;仅 head 四种 task_body 都要求完整 capture before acting。当已知当前 work context 和必要 pointer 足以行动时,这额外强制读取无关历史。请恢复 task-dependent necessary reads,保留当前 guard、选择与 same-Turn repair 的身份及 flags,再复跑这八种实际输出对照。

Ruff 重复定义 inline:当前 tests/control_plane/test_refresh_settle_turn.py line270/298 仍分别重定义 line212/240。重新运行同一文件检查,actual base exit0、head exit1,两项 F811;两对正文目前相同,不声称丢失独特覆盖。删除重复副本并保留 File/SQLite 参数化,复跑 uv run --extra test ruff check tests/control_plane/test_refresh_settle_turn.py。本次复用原两条讨论,不重复新建相同 inline。

当前 test_replan_staged_read.py 完整模块、checkpoint preflight 参数化和 context-delivery fallback 共 29 passed;RFC 双语与 diff hygiene 通过。相对本轮已审 0fb3e088,两个候选都集成了新 main aa82591f,另有五个重叠 benchmark/test 文件增量:已逐项核对 guide 从 wake 正文移入已准备 Host 的 developer instructions,以及实际 receiver 从 cold/warm 页面分别选择不同候选的断言。上述两个 failing owners 和共享完整决策的 blob 均未改变;当前 base/head 的八种 CLI 和 Ruff 已重新执行。27 项旧检查仍归属 0fb3e088,并未被当作当前29项的额外数量。旧 5ffe979f 的 682 passed/5 failed/15 skipped、59be3f1e 的 154 passed/4 failed/1 skipped、89c8c0b4 的 88 passed 均保留原版本,不能合并为新 head 的绿色数字。生产/active-doc 旧检查结合完整新 delta 的适用性判断,仍不是对全部历史 ledger 和每行测试的逐行再认证。

语义与 CI 对齐

新 checkpoint reader 修复没有扩大执行权;首读、完整原文与恢复仍是读取证据。公开接口沿现有 typed vocabulary,新增 benchmark 增量没有新状态 owner。上轮完整 CLI 输出预算失败也保留,未放宽断言、删负例或将其改写为当前通过。作者最新 cost 表格只是其受控控制路径证据;本轮没有复测其百分比、运行整题模型或把它认作全部 C1 净收益。CI 按配置未查询、轮询或等待。

我的整体评价 / Verdict

统一来源和本轮 reader pin 是 justified_increment;它们不能抵销当前 whole-PR 的两项具体回归。long_horizon 与 user_experience 在必要读取义务上仍为 regression,真实模型采用和完整成本仍 unknown。本次检查 CLI/heartbeat 与 benchmark 读取路径,没有页面布局变更;未用未检查 UI 或已安装 Host 证明通过。复审需要同 head 消除必要读取扩大和两项 F811,并保留所有历史失败、skip、可选依赖及模型/安装边界。此 COMMENTED 结论不执行 merge、dismissal 或 thread resolution。

English verdict: REQUEST_CHANGES — da33caa improves checkpoint-view pinning but still reproduces the whole-capture reading regression and two introduced Ruff F811 failures.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

# Conflicts:
#	tests/control_plane/test_quota_acceptance_references.py
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>
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>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…-initial-reader-20261103T062012Z

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.

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; runtime_reported; reasoning_effort=max

Reviewed head: d701a55c77cc7d1b8010403bdcf57dc907bd503a; base: 3c7e0935fd6697291c5c432e5267816b4a667cfa.

动机 / Motivation

使用 CLI 或 Codex heartbeat 推进任务的 Agent,需要从同一份准入结果判断做什么、补读哪些必要事实以及怎样结束原 Turn。过去多个兼容投影可能给出不同下一步;本提案把新捕获结果汇入完整决策,当前又收敛验收引用和首读顺序,但 thin heartbeat 仍要求行动前读取整个 capture。当前重复测试已修复,private prepared-capture-reference 保存完整决策并只运输 writer 摘要和相同 Todo/Turn 的 ready 字段;实际89例与恢复反例通过,全文前置义务及裸动作语义校验两个阻断仍在。本轮不把完整 C1 迁移、已安装 Host 的自然模型采用、长期效果或完整成本改善视为已交付,也不以全部未来资格作为这个增量的新门槛。恢复按任务依赖补读,并复用已登记 EffectiveAction;整体 C1、自然模型采用和完整成本仍须对应证据。

改动思路 / Approach

新准入与完整决策复用既有 TypeScript owner;Python 保留来源/Host/原数值运输与原 Turn 写回,历史 capture/receipt 保留版本化兼容。当前 scoped display 去掉无关 RPC 根字段;不能把完整来源可恢复变成无关全文必读。当前201文件完整迁移及16+7文件新增差异已核验;prepared capture、原文恢复和单一 writer digest 有实际反例,重复测试已修,全文义务与登记动作 owner 两阻断仍在。整体 C1、自然模型及完整成本未认证。当前继续复用 TS 的完整决策、验收/audit 和原 Turn 结算 owner。Python 只运输原值、文件和 Host 输入;新内部 prepared-capture-reference 保存完整决策,由原 writer 返回 digest 与核对相同 Todo/Turn 的 ready 字段;hook 再验证原私有文件,避免事后重哈希被替换的路径。capture/source/receipt 历史消费者有实际需要,不能为减小 diff 删除。

在本头,合法路径为原准入事实 → 完整决策 → 同份 capture/所选视图 → 已授权工作 → 原 Turn 验证/写回/一次扣额。坏文件、冲突停止条件和替换的 ready capture 沿原 reader 拒绝并保留恢复身份,不另造 claim 或新 Turn。这里用文字解释边界,未发布未验证渲染的图。

具体改动 / Changes

当前完整差异 201 文件 +18,862/−2,202。从上一个已完整检查但尚未发表的 fa1208776f4162742af3a49fbe11d926aa1be24f 到本头,16 文件新增差异已全部读完;三文件为新 main 的 chat/request-scope 修复,在当前 base/head 相同,十三处是本 PR 的 owner/test 改动。另有 188 个本 PR head blob 与 fa120 相同。更早 da33→fa120 的完整11文件增量与192个未变文件证据仍保留;未宣称重新逐行读完历史 ledger 和全部测试差异。 此后25a→d701新增七文件 +90/−14 也已全读:隐藏的 prepared capture 选项、writer digest 投影、实际 Host consumer、非法组合与两阶段替换反例,以及同文件中英说明。旧原文/停止与 source 权限义务未从文档删除。

规范为 controller-executor-unified-contract-v0.md,spec_revision 3c7e0935fd6697291c5c432e5267816b4a667cfa。criterion_id C1 有生产入口共享决策的实际增量;historical 保留原 capture/receipt reader;required_reads 仍 not_met:已接受的必要事实读取契约不要求无条件遍历与本轮无关的全文。

关键代码讲解

  • composeCompleteTurnDecision 组合当前事实与共享规则;CLI 的 _emit_quota_result、Turn driver 和 Host 消费同一来源,仍区分显示/计划与实际副作用。
  • open_regular_capture 合并 native trace 与 capture 的 descriptor 检查:非阻塞打开、核 regular file、拒绝 symlink/entry 替换,调用方继续保留大小和私有 UID 检查。新 FIFO 和 flag-fallback 反例没有放宽权限或恢复资格。
  • ready 交接以原 capture writer 发布时返回的 capture_sha256 绑定原文,Host 只接收 ready 与相同 Todo/Turn 的字段,再由 existing reader 验证。实际 File/SQLite 反例在 claim 后替换文件,得到 digest mismatch;恢复原字节后沿原命令读回 ready,未重复 claim/spend。新的 sparse display 保留原 source 行的索引,在无消费需要时只省内部运输,完整原值留在 Python。
  • initialContextReadPointers 只在已识别 active replan、非 settlement-only 时提供 review/guidance 或完整契约的 planning facts;两处动作字符串仍触发 required semantic 检查。
  • render_thin_heartbeat_task_body 的 line686 继续把“完整来源可恢复”变成所有行动的全文前置要求;该输出是 Agent 行为契约,不能仅按大小判断。

对主干的风险 / Risks

  1. [P2] 必要读取范围仍被扩大。 复用原讨论,不重复行内评论。当前 main3c7/headd701 的普通/Codex × default/off 八次真实 CLI 都成功且原 fixture 来源不变;四个 base 没有、四个 head 全有 Read full capture, work_context, required_reads before acting。这扩大了必读范围和行动前顺序。最小修复是保留当前 guard/work_context、必要事实与未满足 required_reads 的条件式补读,并覆盖可以合法延迟无关历史的真实选读反例;同 Turn capture/修复参数仍须保留。
  2. [P2] staged 首读仍绕过登记动作 owner。 完整 semantic-vocabulary-drift-smoke.py 在当前 base 返回0、head 返回1,明确指出 effective_action 的 bare autonomous_replan_required 位于 progressive_context.ts。line317 和323 应导入并使用已有 EffectiveAction 的 AUTONOMOUS_REPLAN_REQUIRED,保留 schema、active replan、非 settlement-only 和完整契约条件。这里报告 required ownership 检查的已复现失败,不虚构运行时误分类,也不以加 allowlist、重命名或缩扫描范围处理。

此前重复测试 finding已在此头修复:删除的是58行相同副本,原 File/SQLite 参数化、未知控制及失败重试断言保留。当前 base/head 对该文件 Ruff 都返回0,整个模块也进入本轮通过的 cohort;旧 fa120 两项 F811 原记录保留,不继续作为新头未修问题。

语义与 CI 对齐

本头两个完整 decision-capture/preparation 模块 89 PASS / 0 SKIP,覆盖 prepared-reference 非法组合、File/SQLite 在 guard/record 两阶段替换原文、原 writer 摘要与 claim/恢复读回。25a 的158例恢复/显示/结算、12例 POSIX flag-fallback、62例 typed tests 与严格 typecheck,在完整七文件新增差异和未启用新旗标的原 caller 检查后复用,未声称都在 d701 重跑;当前 RFC/diff 与变更 Python Ruff 单列通过。这些正例不豁免上述两个阻断。fa120 的203通过/10项显式 native Codex loopback 跳过属于前一个已检查头,未冒充当前执行;此前 full/native/模型/预算失败均保留 producing revision。

作者新增的同输入内部 RPC 和 scripted 模型请求字节只是其具名实验范围,本轮没有把它们重测为计费、实际模型选择或整题净收益。独立 #8110 的 exact4dd 已获本轮 APPROVE,不推及 C1。当前精确范围 CQR 已实际记录 fail,保留全文义务和注册动作两个阻断。未查询、轮询或等待 CI,未启动真实模型、付费实验或安装升级。

我的整体评价 / Verdict

这是有用但仍未合格的 justified_increment,当前结论 REQUEST_CHANGES。long_horizon 与 user_experience 在无条件全文前置范围上仍是 regression;已知必要地址仍被附加无关读取义务。本修复无需用户增加确认轮次。CLI/heartbeat/内部 reader 未新增渲染页面,visual review 为 not_applicable;已安装 Host、自然模型与完整长期成本仍未验证。当前名称与原 Agent/Turn 生命周期匹配,不授予新的 peer 或合并权限。保留有真实消费者的历史 reader、现有 TS owner 和本轮共享 IO 简化,完成两个具体修复后再按完整新 head 复审;不能以局部绿色结清全部 C1。

English verdict: REQUEST_CHANGES. Duplicate-test lint is fixed; the whole-capture prerequisite and the staged-read action literals still fail current acceptance and semantic ownership.

// A staged replan has already replaced inline acceptance with a pinned
// review reader. Deliver its first action and ordering without writeback.
const replan = object(context.replan_action_packet);
if (context.effective_action === "autonomous_replan_required" &&

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.

[P2] 复用已登记的 EffectiveAction

此处与 line323 的 bare autonomous_replan_required 比较使当前完整 uv run --extra test python examples/semantic-vocabulary-drift-smoke.py 返回1;同一不可变 base3c7e093 返回0,错误明确指向 progressive_context.ts。已有 EffectiveAction.AUTONOMOUS_REPLAN_REQUIRED 来自 ./effective_action.generated.ts,请直接复用并保留 schema、active replan、非 settlement-only 与完整契约条件,再复跑完整 semantic smoke、typecheck 和受影响首读测试。这里是已复现的 required vocabulary ownership 失败,不声称未经证明的运行时误分类,也不以缩扫描或 allowlist 豁免。

… reads

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>
…er-20261103T062012Z

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

This branch has not been deployed

No deployments
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