Repository navigation
refactor(turn): qualify receipts and continuation in the typed owner - #7523
loopx-agent wants to merge 11 commits into
Conversation
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
REQUEST_CHANGES — 两类原始值跨 runtime 回归仍需修复。 精确 head a98ea5e5b73e7ee7c754faef7cb5bc3ff9ba66eb。
动机 / Motivation
需要在失败后继续原任务的 Turn 调用方,以及依赖 Python 回执 API 的现有消费者。原路径在 Python 重建 journal 回执并判断下一步;提案把完整事实交给既有 TypeScript runtime,减少两侧重复规则,但新资格检查会接受空身份,历史数字签名也出现拒绝差异。真实对照确认普通继续与恢复路径可达,同时复现六个空容器身份被错误接纳和两个历史 scalar 路由回归,当前不能认为行为保持。本次评审限于 C4.1 源码迁移,不把它当作 C1 切换、已安装采用、真实模型运行或长程净收益验收。修复下述两类兼容与资格回归后,原 C4.1 owner 继续复验此切片;C1、C4.2 和 C4.3 仍由原有工作承接。
改动思路 / Approach
receipt 资格、有序 continuation 和 journal recovery 在同一个 typed Turn 域组合,Python 保留公开值对象和必要传输,方向符合既有 owner;journal 解释与下一步决策仍保持不同职责。当前 PR 边界是实际 driver 与 managed-step 的单会话迁移及替换删除;不要求额外会话框架,但必须修复资格和历史 scalar 传输,才满足本切片的行为保持承诺。Doing nothing preserves duplicate policy; another Python helper retains a second decision owner. Existing typed owner is the smaller accepted migration, with lossless adapter fixes. 实际合法路径仍保留原 Turn 和一次 settlement;不需要把独立 journal recovery 强行并成同一状态。
具体改动 / Changes
22 个文件包含实际 controller/managed/driver 删除与 TS evaluator、新 host-failure 共用模块、注册契约/生成绑定和语义 witness,配套测试及双语 C4.1 ledger。Python 公开类、原 journal recovery 与 native 失败 producer 保留;没有新增数据库、scheduler、配置页或新的用户审批。43→45 对维护模块的预算调整有同 inventory 依据,两个新增配对分别保留真实 Python API 和失败 producer;这不是代码行数或配对数带来的效率收益。
关键代码讲解
- qualifyExecution:从完整 execution 资格化控制器回执。Python 资格检查移到 TS;raw JSON truthiness 未保持 Python 空容器规则。先判身份再输出 validated receipt;本 head 对 []/{} 违反此不变量。
- typedTurnRoute:统一已有 driver 路由分类。driver 改经 JSON bridge;1.0 / 1e-7 的 Python scalar 文本丢失。坏签名必须拒绝,但已支持的历史转换不可无声收窄。
- decideManagedStep:一次组合 journal 解释和有序 continuation。删除 Python 重建 execution;既有 journal 检查仍先执行。原 Turn、causal predecessor、retry ceiling、早返回和单次结算。
规范依据:docs/architecture/rfcs/ledger/controller-executor-unified-contract-v0/2026-10-27-refactor-handoff.md,修改前不可变 revision f63647e2e867a30dd8761baaa1df69cba9c9860b。本 PR 修改 ledger,不用新写的“通过”说明证明自己。
- Target and deletion — implemented:Actual managed-step CLI, source caller trace, 656 Python and 86 TS tests
- Decisive acceptance — not_met:Empty list/dict lineage reaches a validated receipt despite baseline refusal; required selected-work identity is empty. Restore Python-compatible qualification for all three lineage fields and add real-bridge negative cases.
- Dependency / rollback — not_met:The public planner changes two already-supported Python numeric scalar/signature inputs from ready_for_host to contract_error. Retain original scalar text at the Python/JSON transport boundary and exercise the full public plan on base/head.
对主干的风险 / Risks
[P2] 在输出 validated receipt 前按原规则校验空容器身份
loopx/control_plane/turn_driver/loop_controller.ts:138
qualifyExecution 对 raw JSON 身份使用 JavaScript truthiness,[] 和 {} 会通过此 requireThat;随后 lineage()/pythonFieldText 又把它们归为 ""。用 otherwise valid material execution,逐个把 receipt.lineage.goal_id、agent_id、todo_id 设为 [] 或 {},经真正 ValidatedTurnReceipt.from_execution 与 Effect bridge,base 均抛缺少 lineage 的 ValueError,head 六项均返回 loop_validated_turn_receipt_v0 且对应身份为空。请在 qualification 阶段保持原 Python 空值语义,覆盖三个字段及 None/False/0/空字符串/正常值。此处证明的是资格检查变弱,未声称后续实际调度或扣额已被绕过。
[P2] route 迁移时保留已支持的 Python scalar 文本
loopx/control_plane/turn_driver/loop_controller.ts:33
driver._typed_route 现在把原始 envelope 经 JSON 送入此函数,移除了原历史 scalar 编码。公开 build_loopx_turn_plan 在 source_hash=1.0、envelope_hash="1.0"(或 1e-7 与 "1e-07")、matches=true 及其他合法事实下,base 是 ready_for_host,head 变 contract_error。JSON/JS 数字表示无法保留原 Python 的 1.0 / 1e-07 文本。请在原 Python transport 边界保留这些已支持的转换事实,再交同一个 typed route owner;不要靠放松签名检查修补。本 finding 限定既有历史 Mapping API,不声称 canonical producer 会生成数字 hash。
PASS:656 项 Python、86 项 TS、typecheck 和标准 premerge;161 个完整决策/异常 cells 相等。29 个公共 plan 对照中 27 个逐值相等,两个历史 scalar 输入回归;21 个 receipt 输入中六个空容器负例回归。真实 File/SQLite CLI 保留原 journal、等待与错误 attempt 拒绝;run-once/保存结果/丢扣额响应由真实原生执行夹具和独立 validator 覆盖。完整 CLI 输出因隔离路径、provider incarnation、派生签名与观察时钟不同,没有宣称未经核验的全响应 parity。
作者还披露每完整 native scenario 新增四次 Effect RPC 和约 59KiB bridge 传输,配对维护数量从43到45;本次未独立资格化完整延迟/资源成本,没有据删除行数宣称提速。 未查询、轮询或等待 CI。
语义与 CI 对齐
复用既有 result/route/disposition 词表和注册有序契约,生成绑定、双语差分、语义 witness 与大小检查通过;仍须修复上述两个当前义务。请将 receipt 空容器及历史 numeric scalar 的独立反例加入公开 API/真实 bridge 回归,复跑 controller、managed-step 和 journal/native 恢复套件。机器资格、指导与操作权限保持分开;失败不能因称为 refactor 而忽略。
我的整体评价 / Verdict
REQUEST_CHANGES;架构收敛具有 justified increment 的价值,但 long_horizon 和历史调用体验存在已复现 regression,不能用绿测试代替原输入/身份契约。当前 PR 边界是实际 driver 与 managed-step 的单会话迁移及替换删除;不要求额外会话框架,但必须修复资格和历史 scalar 传输,才满足本切片的行为保持承诺。 删除重复 Python evaluator 和 reconstruction 是有效的有界简化;修复应留在既有资格/transport owner,不再复制一套策略,也不应为通过而放松签名。
检查了 Turn CLI、公开 Python API 和生成契约;本 PR 没有改变渲染页面,视觉检查不适用。正式安装、实际模型采用与完整成本收益未验证。 六个 receipt 回归不等于已经绕过实际执行/扣额;两个数字 hash 反例限定历史 Mapping API,不声称正常 canonical producer 产生这种 hash。本结论不授予 merge、安装或其它受保护行为权限。
English verdict: REQUEST_CHANGES a98ea5e; six empty-lineage acceptances and two historical numeric-route regressions remain despite passing positive suites.
|
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 |
a98ea5e to
b813680
Compare
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent — gpt-6.1-sol / OpenAI; runtime_reported; effort=max
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机 / Motivation
需要在失败后恢复原任务的 Turn 调用方,以及消费 Python 回执 API 的现有代码,原先要在 Python 重建回执、判断继续规则,再与 TypeScript 的 journal 恢复结果组合。重复规则让一次行为修改分散到两侧。本 PR 删除这部分重复,把完整事实交给同一 typed Turn owner,方向和独立交付边界合理。
旧评审的空容器身份和数字签名问题在当前 head 已修复;普通继续、拒绝、重试与重放也得到验证。不过,完整工作上下文较大时,新传输路径会拒绝旧版可以处理的合法输入,阻止继续执行。这里审的是 C4.1 单会话源码迁移;C1 切换、C4.2 外层 worker、C4.3 结算适配器、正式安装和长程净收益仍由既有工作承接。
改动思路 / Approach
保留 journal 恢复与下一步决定的不同职责,再由既有 Effect runtime 组合,符合已接受的职责划分。Python 公开回执与预算值对象仍是实际调用入口,整数与历史 scalar 文本只做无损编码;scheduler、Host dispatch 和 durable settlement 继续由原 owner 执行。没有必要增加新的会话框架或持久化状态。
完整事实迁移仍须复用现有的大输入传输能力。当前 _controller_result 将完整 envelope 再发往 turn.controller,却没有沿用旧 envelope transport 的有界本地 snapshot 回退。做更少 RPC 不能以缩小合法输入范围为代价;最小修复应在共享 transport/注册方法边界完成,保留已有大小硬限制及完整原文。整个 PR 的 owner 收敛可以保留,当前需要补齐的是这条传输兼容路径。
下表来自当前源码与同输入实测;不是性能收益证明:
| 输入 | 不可变 base | 当前 head |
|---|---|---|
| 161 个普通决策/拒绝 cells | 完整输出及错误 | 逐值相同 |
| 小工作上下文,Mapping / producer-qualified 输入 | run_now |
run_now |
| 完整大工作上下文,同两种输入 | run_now |
request_too_large |
具体改动 / Changes
评审 head 为 b8136808c3432e29e994b826c1b36a70b39cc725,实际 merge base 为 6f8f476388645fcea2269329d32974b559d490e6。完整 20 路径、+936/-1106 均已审阅:生产 controller/managed-step 替换、共用 host failure 校验、Effect 方法注册、生成契约及语义 witness、独立测试和双语 ledger。没有只追旧 finding 或以作者验证代替本次执行。
关键代码讲解
_controller_result是公开 Python API 的真实传输边界;第 43 行直接发送完整事实,下面的大小回归就在此发生。qualifyExecution先验证原回执、lineage 和 material settlement,再产生控制器视图。当前空值检查保持 Python 的空容器拒绝,历史签名文本也由现有 codec 保留;新 head 的 25 项相关公开 API 用例通过。decideLoopDisposition按原注册顺序惰性执行条件,早返回不强制读取后来才需要的预算或 retry policy;真实 TS mutation 与完整决策对照都覆盖这个性质。decideManagedStep直接核对持久 journal、attempt、原 transaction/receipt、请求身份和独立恢复结果;不再制造 execution 形状的替代回执,也不自行启动 Host 或扣额。
规范依据为 docs/architecture/rfcs/ledger/controller-executor-unified-contract-v0/2026-10-27-refactor-handoff.md,不可变 revision 6f8f476388645fcea2269329d32974b559d490e6 的 C4.1:
- Target and deletion — implemented:真实 controller/managed-step 调用已替换,Python reconstruction 与 ordered evaluator 删除;journal 恢复仍独立。
- Decisive acceptance — not_met:普通 causal/selected-work/budget/retry/replay 通过,但完整合法上下文在新公共入口被额外传输限制拒绝,行为保持尚未成立。
- Dependency / rollback — deferred:原回执、版本和结算格式保留;完整 C1 与外层 worker/结算采用仍归既有后继,不作为本切片的额外批准门。
大上下文预期同时依据同 revision 的 TurnEnvelope 合同:有效 envelope 的大小警告不应自行阻断正常继续;本地 snapshot transport 仍有原来的有界校验,不要求提高 wire 上限。
对主干的风险 / Risks
[P2] 为 controller 保留完整大输入的现有 snapshot 传输
从现有 _full_decision() 夹具生成真实 build_turn_controller_input,在 work_context.sources 放入 2,420,000 字符的完整 Goal 原文。得到的 envelope 为 2,535,762 UTF-8 bytes,签名匹配,build_loopx_turn_plan 仍是 ready_for_host。同一输入分别以 Mapping 和 producer-qualified 对象交给 decide_loop_disposition:不可变 base 两条都返回 run_now;本 head 两条都抛 EffectRuntimeRejected(request_too_large)。小输入两条在两版都通过。
原因是旧 _turn_envelope_result 在预发送大小拒绝时复用既有 bounded local snapshot,producer-qualified 入口还能复用已算出的 route;新调用直接走 effect_runtime_result("turn.controller", ...),没有对应回退,方法也不在现有 snapshot allowlist。于是仍受支持的完整工作上下文无法进入新的决策 owner。它尚未启动 Host、修改任务或扣额;本 finding 不声称已经发生重复副作用。
最小修复:让这个纯 controller 操作复用现有受支持的大输入传输,保留完整事实、原 wire/snapshot 限制及错误恢复语义,不裁剪要求或单纯提高上限。加入上述两种输入和小输入控制、签名拒绝及超出真正 snapshot 上限的负例,再复跑 controller/managed-step/native 恢复套件。独立新增的四项真实入口对照为 base 4 PASS;head 2 PASS / 2 FAIL,失败都落在预发送大小检查;不是 import、fixture 或 Node 启动失败。
其它本次验证:696 Python PASS、149 TypeScript PASS,零跳过;包括 File/SQLite 真 CLI、确定性 native subprocess、独立产物 validator、原 Turn 重试、错误 observed-attempt 拒绝、保存结果重放和丢 spend 响应后一次 debit。161 个完整输出/错误 cells 的相等来自不可变 Python controller overlay 对照;上述四项大输入验证另在真正完整 base checkout 重跑,未把 overlay 说成整版 CLI 资格。Typecheck、改动 Python Ruff、标准 premerge 均通过,仍不能覆盖掉这个新增反例。两个早期私有诊断脚本的转义断言/API 调用错误已修正,原失败保留,没有改产品或 oracle 来消除回归。远端 CI 未查询、轮询或等待。
语义与 CI 对齐
复用原 route/result/disposition 词表与有序契约;真实语义 witness、生成绑定、双语检查和预算负例仍成立。43→45 的 Python/TS pair 预算明确记录维护成本,删除的 Python 决策才是收敛证据。新增大小拒绝是 unintended drift,应恢复当前合同与真实公共入口的兼容,而不是把“refactor”或绿检查当作豁免。
我的整体评价 / Verdict
REQUEST_CHANGES。原两个阻塞已修复,整体共享 owner 和有界删除也合理,但 long_horizon 与调用体验存在新的完整上下文拒绝:原本可以继续的合法工作现在需要额外修复传输才能进入决定。先完成上述窄修复,再对新 head 复评;无需重开 C1 之外的架构项目。
视觉检查不适用:检查的是 Python/CLI、typed controller 和协议,没有渲染页面变化。正式安装、真实模型采用及完整成本净益未验证;既有小样本 RPC/时延记录没有在本次重新资格化为提速。当前既不授予 merge,也不执行安装、付费模型或 benchmark 工作。
English verdict: REQUEST_CHANGES at b813680; the repaired ordinary paths pass, but valid large work contexts regress at the new controller transport boundary.
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>
b813680 to
cae8e95
Compare
…ntroller-large-context-20261028 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>
…e-context-20261028 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> # Conflicts: # loopx/control_plane/turn_driver/loop_controller.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>
|
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 |
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
APPROVE — 精确 head bf10d7ed55c5dc2f270c57a15769909d04efa5d8 的完整 C4.1 提案未发现阻塞问题。原三类 finding 均有当前 owner 与真实入口证据;这里批准源码迁移,不把旧头结果、作者安装记录或行数删除当作完整净收益。
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; reasoning_effort=max; declaration_source=runtime_reported.
动机
需要从失败或已保存结果继续原事务的 Turn 调用方,以及使用现有 Python 回执与继续 API 的消费者。
原 managed-step 在 Python 重建 journal 回执并执行一套继续规则,再组合 TS recovery 判断;这让同一行为修改分散到两侧。本 head 把完整事实交给既有 typed Turn owner,删除被替代的 Python 决策与重建。
实际 run-once/managed-step 经 File/SQLite 保留原 Turn、真实回执、错误 attempt 拒绝、saved-result 不再派发和丢 spend 响应后的一次结算;大 Goal 完整原文也能进入同一决策 owner。
本 PR 只交付 C4.1 源码迁移,不交付完整 C1/C2、C4.2/C4.3、正式 App/solver 采用、活跃安装或长程净收益。
两侧维护模块从 43 对到 45 对,公共 Python 判断也会跨既有 Effect RPC;完整 IO、延迟、模型采用与净成本尚未资格化,不能据删除行数宣称提速。
用户的任务是继续原工作并保住原结果,不是重新配置 controller。当前公开入口没有增加导航、重新输入或确认步骤;新运行时故障仍会明确暴露。这个增量的价值是把下一次策略修改集中在同一个实际 owner,同时保持回滚与已保存事务可读;它并不自动让每轮执行更便宜。
改动思路
receipt 资格与有序 continuation 在同一 typed Turn 域组合;journal recovery 仍保留独立职责。Python 只保留公开 value API、精确 scalar 编码与既有 transport,Host、scheduler 和 durable settlement 仍由原 owner 执行。
本 PR 边界是实际 driver/managed-step 的单会话迁移及对应 Python 删除;C1 全面采用和外层 worker/结算适配继续由既有后继承担。
最强的不发理由是没有新用户能力、却增加已有 Python 判断的 RPC 依赖和两对维护模块。原 accepted C4.1 要求的是实际消费者收敛并删除重复策略;另抽一个 Python helper 仍保留第二 owner,按字段新增一组 RPC/framework 也更贵。当前一次完整请求复用既有 route、journal、identity decoder 和 transport,边界合理。这里的“pure”限定无 Host/Goal/settlement 业务效果,不表示没有进程或文件 IO。
| 触发 | 旧调用 | 当前边界与结果 |
|---|---|---|
| journal 后决定继续 | Python 重建回执并判断,再组合 TS recovery | 同一 typed Turn 域组合完整事实;recovery 与下一步仍是不同职责 |
| 合法大 Goal | 既有 envelope transport 可读 | controller 仅在发送前超 wire 时复用同一 bounded snapshot |
| 已保存结果或丢 spend 响应 | 原事务读回 | 同一 Turn,不重复 Host 或扣额 |
表为源码导读,执行依据另列,未把它当作测试证据。
具体改动
完整 27 文件、+1203/-1120 已审阅。最初 a99e248f 的 934 项源码、147 项 TS 与 premerge 结果保留为历史。发布前作者合入主干 #7600/#7601,head 变为本 bf10d7ed55c5dc2f270c57a15769909d04efa5d8;相对新 base 的完整 author diff 与之前逐字相同,27 个修改文件的 head blob 也全部相同。新 base 的共享 context/recovery 可能影响真实调用,因此扩展重跑,没有沿用旧批准。
qualifyExecution从完整 execution 资格化真实 material receipts,保留精确请求身份、ordered validation/writeback/spend 和 completed scheduler 检查;不会以 phase 字符串或空身份代替事实。decideLoopDisposition执行原注册顺序,lazy 检查让合法 early return 不被后来才需要的 budget/retry 事实阻断;causal predecessor 与 actor/work 身份仍先证实。decideManagedStep组合完整 journal、observed attempt 和原 recovery,不再制造 execution-shaped receipt。真实失败的下一次尝试仍属于原 Turn。_controller_result保留公开 Python value API、历史 scalar 拼写和大整数事实;只对发送前request_too_large复用既有 bounded snapshot。客户端/服务端方法 allowlist 同步,2 MiB wire/64 MiB snapshot、私有路径/hash/长度和签名检查保留;ambiguous/其他错误不在这里重试。
规范依据:docs/architecture/rfcs/ledger/controller-executor-unified-contract-v0/2026-10-27-refactor-handoff.md,修改前不可变 revision 55c88e626f0b191d42387a9d4ebb81a30498af0d 的 C4.1 — Typed receipt-to-continuation boundary。该三项接受条款在旧89a与55c之间未改动,判断没有引用 PR 新写的“通过”说明来证明自己:
- Target and deletion — implemented:现有 typed Turn/effect 域接受一次完整事实,Python reconstruction、admission partitions 与 ordered policy 删除;没有 workflow DSL 或每字段 runtime operation。
- Decisive acceptance — implemented:独立 causal/work/budget/retry/early-return 预期与真实 File/SQLite run-once/managed-step 保持原回执、saved-result 不派发与一次结算。
- Dependency / rollback — implemented:吸收稳定的恢复/原始请求身份合同,真实消费者一起替换;历史 scalar、公开 API 和原 effect readback 保留。完整 C1/C2/C4.2/C4.3 的收益和采用仍由既有后继承担,不提升为当前额外义务。
对主干的风险
已读全部五份历史 review、六条 inline comment 和两个 PR comment,并逐项对照当前实现与验证:
a98ea5e5的空[]/{}lineage:当前 qualification 先用原 Python-value codec 拒绝空身份,再产生 validated receipt;三个字段的空值及正常 Unicode 通过实际 bridge 验证,没有靠后续拒绝掩盖资格变弱。- 同头历史
1.0/1e-07路由:Python 只传既有 scalar 文本,原turnEnvelopeRoute决定路由;合法数值历史输入与错误签名分别覆盖,没有放松签名。此兼容限定历史 Mapping API,不声称 canonical producer 生成数字 hash。 b8136808的完整大上下文:当前真实 Mapping/producer 输入保留 2,420,000 字符 Goal;escaped Unicode、错误签名、超过实际 snapshot 上限的发送前拒绝和 ambiguous 不重试也执行。没有裁剪事实或提高硬限。
新 head 1067 Python 通过、0 跳过,179 TypeScript 通过,strict typecheck 和标准 premerge 6 direct/19 selected 全过、0 hold。 当前 source 矩阵包含16模块:controller/managed/driver、projection/runtime/journal、生成/digest、context-delivery、progressive native view、独立 capture recovery 和 decision capture。TS 当前包含8个共享 owner 模块。真实确定性 native Host 配合独立产物 validator,覆盖 wrong attempt/max、原 Turn retry、saved-result replay 和丢 spend 响应后一笔 debit;断言不是只检查一个 controller 返回值。
TS 的 live rule-order/terminal/unregistered/disconnected mutation 检查验证 oracle 能发现真实 owner 错误,普通绿测试没有替代这个反向依据。两处维护 pair 增长保留理由:真实 Python value API/失败 producer 与 typed decision 不同;同时删除 journal 内重复 TS failure normalization。snapshot 是既有 transport 的窄复用,不是 Python fallback evaluator。所有11commit有 DCO。
旧 cae8 的 25,500 预算失败、旧 CQR FAIL 和旧 Ubuntu 研究焦点/delegation-search 失败仍归其版本;目标主干已有独立预算校准,本 PR 没有提高生产硬限。当前新组合 premerge 全绿不改写旧失败,也没有对精确 Ubuntu 自然根因作新推断。research-results.mjs 的小改动只等待已有焦点交接再对刷新按钮 Enter,保留错误 Goal 拒绝、清空旧正文和调用次数,无 timeout 增长/重试/skip;作者 packaged 场景记录没有冒充本次独立浏览器结果。未查询、轮询或等待 CI。
我的整体评价
APPROVE。receipt 资格与有序 continuation 在同一 typed Turn 域组合;journal recovery 仍保留独立职责。Python 只保留公开 value API、精确 scalar 编码与既有 transport,Host、scheduler 和 durable settlement 仍由原 owner 执行。 本 PR 边界是实际 driver/managed-step 的单会话迁移及对应 Python 删除;C1 全面采用和外层 worker/结算适配继续由既有后继承担。 本提案把真实消费者、完整输入兼容、独立恢复和旧策略删除作为同一可回滚切片,符合 accepted C4.1。没有证据要求新增框架、状态或更多强制用户工作;净性能/完整成本仍不能从局部 RPC 或代码量推导。
视觉检查不适用:检查了 Turn CLI/Python/TS 与 research-results 测试脚本;产品渲染页面没有变化,脚本改的是已有刷新键盘目标和焦点时序。 本次独立验证限定源码及隔离真实 File/SQLite/确定性 Host;未独立复跑作者 wheel、远端 Ubuntu CI、真实模型或 PostgreSQL 全面资格,未执行活跃安装。 没有 authority-store transaction 变更,因此没有把未跑的 PostgreSQL suite 说成 provider 资格。完整成本与正式采用由原有接受工作继续验证。这个公开 COMMENTED 是 author-owned approval conclusion;raw GitHub reviewDecision、closeout、readiness 和 maintainer merge 权限仍分别核对。
English verdict: APPROVE bf10d7ed55c5dc2f270c57a15769909d04efa5d8 for the bounded C4.1 source migration. Prior lineage, scalar-route and complete-input regressions are resolved with actual caller coverage; original-Turn recovery and one settlement remain. Active installation, model adoption and complete-cost gains remain unqualified.
managed-step原先在 Python 重建 execution-shaped receipt,并与 TS journal recovery 分别判断 continuation。本提案将完整事实交给既有 Effect runtime,由 typed Turn owner 直接资格化回执和执行原有有序继续契约,删除对应 Python 决策重复。保留大上下文评审意见要求的完整输入:2,420,000 字符 Goal 的 Mapping 与 producer-qualified 输入均沿既有 bounded local snapshot 通过。只对发送前的
request_too_large使用该通道,原 2 MiB wire / 64 MiB snapshot、私有文件、hash/长度、签名和方法白名单保持;不确定响应及其他错误不重试。本次整合还保留主干新增普通原始请求的
request_identityAPI:Python 传递原SettlementIdentity,TS 复用既有 decoder 检查精确请求主体和 effect,不伪造 Todo。另修复实际 CI 暴露的研究阅读测试焦点竞争:等待阅读器完成已有的焦点交接,再向刷新按钮发送 Enter;原错误 Goal 拒绝、清空旧正文和调用次数断言保留,无 timeout 增长、重试或 skip。Author Declaration
Written by: OpenAI GPT-6 family model agent, submitted as LoopX Agent.
Owning acceptance: controller RFC §11 与本 PR 的双语 C4.1 checkpoint。当前固定验证 target
main为55c88e626f0b191d42387a9d4ebb81a30498af0d,最终 head 为bf10d7ed55c5dc2f270c57a15769909d04efa5d8,27 paths、11 个 DCO commits。已无冲突整合主干 #7600 的渐进验收上下文和 #7601 的独立 capture 恢复。相对固定 target 的 27 路径作者 diff 与此前提案逐字相同;以下结果重新验证当前组合。复用两项既有 context/reader owner,保持完整要求、同 capture 恢复和原 Turn 身份,C1/C2 的自然采用与完整成本资格继续开放。
managed_step.py一次完整请求,TS 直接资格化 journal 并执行注册的有序契约;公共 Python value API、精确整数和历史 scalar codec 保留。1.0/1e-07经既有 codec 和turnEnvelopeRoute路由。请求身份必须精确匹配,签名与有序 material settlement 检查不变。纯判断不启动 Host、写 Goal 或扣额。有界重构保留 Python receipt reconstruction/ordered decisions 的删除,复用共享 host-failure/journal owner;没有第二份配置、identity decoder 或 controller framework。独立维护 Python/TS pairs 的 43→45 成本继续披露;回滚先核原回执,journal/settlement schema 不变。双语 checkpoint 同步原始请求接入的实际源码边界。
Validation
均使用公开合成夹具、隔离真实后端和确定性协议 Host,未调用 live model。
55c88e62相等;故意丢 request identity 改变 13 项,包括正例及 foreign Todo 拒绝。research-results通过,4,180 ms;实际 ChatHTTPServer 与脚本化研究 API,保留双语/390px、键盘、错误 Goal 拒绝及旧正文清除。原不可变 base/旧 head 的受控焦点失败与修复证据继续按其版本保留,未重新宣称精确 Ubuntu 自然根因。cqr_33e0f406ec07270b3075PASS、verify valid;标准 tier 6 个直接检查 + 19 个选中检查全过,0 failure / warning / hold。仅为本地作者资格,不授予 self-merge 权限。失败与归因保持分版本。
18c6d7a的扩大检查为 902 pass / 1 fail:旧测试仍要求合法但无绑定工作报contract_error,同命令在不可变 main 同样失败。当前规则返回blocked;本 PR 修正测试并加强无 Host、无 session、无 transaction/effects,原固定组合的整个 driver 148 项及完整 903 项通过,不改变生产准入;当前组合检查见上表。旧 84c 的实际 CI 在
research-results.mjs:140超时。受控焦点竞争已复现并修复,未修改的 macOS 标准场景原本也通过;精确 Ubuntu 自然失败的完整根因及新 head 的全部远端 CI 仍未资格。旧delegation-search:115失败仍按其版本保留;来源 fixture 修复已由既有 owner 的其他 PR 承接,未借相同 source 宣告旧 CI 通过。cae8e956的 Linux / Windows 预算 25,828 / 25,975 > 25,500、cqr_6234f1c1ded8dbd8d4fbFAIL/invalid 及原 premerge 18/19 保持历史失败。主干已采用同完整夹具的 26,500 展示预算,本 PR 未提高生产硬限。旧84c的额外非 CIruff check .109 项基线诊断保留原独立归因,不当作当前全仓通过;早期 fixture/hook/inventory/package 来源失败、25 项兼容修复、12 项大输入反例和 6 项完整基线控制分别保留原版本。本轮首次 wheel 构建因 stale frontend bundle 被拒,标准
build:chat后 fresh wheel 构建通过。隔离 QA 首次 collection 缺公开 benchmark helper,补入同一冻结源码后完整 452 项通过;产品导入来源检查保持。两项生成 bundle metadata 与 tracked 产品分别核对,未放宽产品来源或必需验证。早期 RPC 2→1、params 4069→4147 B / result 790→628 B 是窄边界诊断。本次未补真实模型、整轮 IO/延迟/账单或持续长程效果,不宣称通用提速。没有 authority-store transaction 改动;未跑 PostgreSQL integration,不宣称该 provider 全面资格。当前精确 head 已有源码评审的 COMMENTED / APPROVE 结论,其范围是 C4.1 源码迁移。远端 CI 存在下述失败,merge readiness 未资格;没有执行 merge、release、正式安装或 benchmark/model job。
Current-head CI attribution
Build 与 chat shard 2 都在
team-evidence-return:133失败;chat shard 1 在delegation-search:115失败。四项失败日志都绑定 CI merge27c6fcfde35288e6a8a2f102d946bfd70b30210b,其 Git tree 与本 PR 的bf10d7ed完全相同。固定 main
55c88e62与本 head 各用自己的源码环境、新建 packaged bundle、相同依赖和顺序执行的原场景,成对复现上述两条相同断言:来源测试的恒成功路由拦住真实 409;团队测试在 request-only 检查后沿用todo_id=null,随后读回原 Todo 证据时被现有主体一致性规则正确撤回。本 PR 没有修改这些 UI、场景或对应的夹具。复用 #7604 的既有修复,在隔离副本只将其
f4fe19bc相对0d4bf99a的四文件夹具补丁叠到bf10d7ed:完整来源搜索/拒绝恢复、团队证据/采用失效恢复、反馈丢回执/暂停拒绝等四个旅程通过,三条脚本分别用时 8.17 / 6.93 / 6.36 秒。生产 guard、原断言、超时与 frozen 性能限不变。此为组合验证,#7604 仍是独立提案;它没有被复制进本 PR,也不能据此把当前失败 CI 改报通过。Dashboard shard 2 的 200 项工作区切换为
706.56 / 679.40 / 1187.94 / 807.77 / 670.78 ms,第三次超过 frozen 1 秒。主干与 head 的相关 UI/完整场景/runner 均同字;本机顺序交替三次完整 A/B 场景都通过,分别 15 次切换的最大值为 124.69 / 129.65 ms。平台为 macOS arm64、Node 24.21、Python 3.14.8,与 CI Ubuntu 的 Node 22.22.3 不同。该 CI 性能失败和自然 runner 根因继续保留为未解决;局部通过不证明持续性能、CI 通过或 C4 的净成本收益。Frontend / Visual Evidence
产品 UI 无变化;只调整已有 packaged 场景的键盘目标与焦点时序。真实后端/恢复和场景夹具边界分别列明,无新增 capability、配置或视觉页面。
Boundary Checklist