Repository navigation
fix(quota): resolve complete replan authoring through one typed owner - #8192
Conversation
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>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent | gpt-6.1-sol | OpenAI | reasoning_effort=max | runtime_reported
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
精确 head:8192@1279ce26fd68fc9a68b248e6bf9684965f07b753;审阅完整 base d0985c35aa3d05fd5de964e719aaf69f45d72535..head,没有沿用其他 head 的结论。
动机 / Motivation
普通 CLI 和 Turn Host 在读取重规划写回指引时遇到正文丢失。 相同正文改为本响应引用后,旧 envelope 和 captured writeback reader 只看到引用,无法取得完整 authoring;当前三个 reader 展开同一正文,并拒绝坏引用。 实际 CLI/captured/ordinary reader 恢复完整指引,真实 File/SQLite Turn 在合法声明后完成写回、重放及后继任务。 本切片不验收 C1 全部迁移、模型自然采用、token/cache、账单或整体净收益,也不执行安装、发布、批准他人身份或合并。
改动思路 / Approach
同响应 authoring 的选择与展开属于现有 TS Turn owner;Python 只保留 IO/原值和展示元数据,删除第二套匹配规则。 本 PR 交付可运行 reader 的完整要求与失败恢复;模型收益、整体 C1 和安装采用不在本切片验收。 相比仅给一个 reader 打补丁,这个边界同时修复普通 envelope、staged writer 与真正 CLI;大小或内容不同的正文保留内联。异常引用是必需 reader 的错误,必须拒绝;展示优化的额外成本不能被当成效率收益。
具体改动 / Changes
本 PR 共 8 个文件,+304/−53;生产代码、测试 fixture 和双语说明均已审阅。Python 仅承担 IO/原值 transport,策略继续在 TypeScript owner 内;没有新增公共配置、权限或状态迁移。
关键代码讲解
-
replanAuthoringContract:统一展开完整 durable_writeback owner;在普通及 staged reader 前拒绝悬空、错误步骤、引用链和冲突值,保留原响应身份。 现有调用链:replanActionPacket:805 and replanView:688。 -
referenceReplanAuthoring:用原始 JSON 的精确身份选择正文 owner,只有引用更小时才共享;小值、不同值及数值类型区别保持原值。 现有调用链:evaluateTurnEnvelope reference_replan_authoring → cli_projection.py:241。 -
_reference_inline_replan_authoring:仅调用 typed owner、应用原值保留的 edits 并附加原展示元数据;删除 Python 内重复匹配规则,代价是一次额外 RPC。 现有调用链:compact_quota_should_run_cli_payload:567。 -
initialize_canonical_authority:从实际 import 的 package 定位 TypeScript,令 File/SQLite fixture 在 source 与 wheel 中使用同一份被测代码,避免借用 checkout。 现有调用链:Real File/SQLite writeback fixtures; source 106 and wheel 30 tests。
验收依据是改动前已接受的 docs/reference/protocols/turn-envelope-v0.md,spec_revision:d0985c35aa3d05fd5de964e719aaf69f45d72535。原文没有逐项编号,以下采用原文行地址,不编造新验收:
- L169-L178:implemented;对应上述 owner,并以原文完整来源、完整观察与原身份恢复要求为独立判据,由冻结 fixture 的 base/head、公有 reader 和 wheel 核验。
- L180-L188:implemented;对应上述 owner,并以原文完整来源、完整观察与原身份恢复要求为独立判据,由冻结 fixture 的 base/head、公有 reader 和 wheel 核验。
对主干的风险 / Risks
最强反例是 source hash 正确、但引用悬空或指向另一类步骤:新 resolver 在生成 envelope 及 review/writeback 前拒绝 dangling、wrong-step、chain、冲突内联与 malformed 形式。精确数值比较区分 bool/int、float、signed zero 和大整数;输入未被改写。真实 File/SQLite Turn 中,遗漏既有 stride_decision 声明会拒绝且零扣额;合法声明完成计划、重放不重复执行,后续任务独立读回 42。这个行为恢复已有契约,并非新增权限。
PASS:106 项 source、86 项 TypeScript、30 项隔离 wheel;1814 个 Python/TS 源逐字匹配,wheel 无源码借用。完整 Ruff roots、配置 mypy 17 文件、control-plane typecheck、双语与 diff 检查通过。同一冻结输入在 base 三个 reader 和小值分支共 4 失败/5 通过,在 head 9 通过。首次缺少 bundle、首次 wheel harness 缺公共 fixture 的准备错误已保留;补齐前置后未改断言取得上述结果。
standard premerge:6 项直接检查、10 项 catalog、8 项 risk-profile 和 1 项 public-boundary 全过,总 gate=passed;self_merge_allowed=false。
语义与 CI 对齐
复用既有 source/reference/observed-section 词汇;diff advisory 未检测到其支持范围内的新闭集,动态语义仍由以上调用链和反例判断。没有放宽预算、删除断言、覆盖原始失败或查询/等待 GitHub CI。严格质量资格与代码结论分开。
我的整体评价 / Verdict
长程维度 improved:恢复完整要求后,真实写回、重放和后继有用工作均通过;用户体验 improved:现有入口无需重复输入或额外人工确认。完整 authoring 会恢复原有机器校验,不能承诺减少重试;CLI 统一 owner 增加一次 RPC,作者的冻结样本为 2→3,因此不声称总成本下降。当前质量 receipt cqr_9caed90799e1f41cf30b 为 PASS;没有发现本 head 引入的阻塞缺陷。
视觉检查不适用:本 diff 没有改变 rendered frontend/Lark,既有 machine configuration editor 的 preview/apply/readback 和开关未变。未验证范围:installed desktop 采用、live model 保留/理解、完整 C1 和长期成本收益。当前切片是独立可回滚的 reader 修复;不要求以此 PR 交付整个父路线图。repository experience 的“从实际任务到恢复与读回”建议已用于上述边界判断,没有将技术覆盖或收据数量视为模型收益。
English verdict: APPROVE the exact head 1279ce2; required local scoped checks pass. No merge authorization.
…ring-owner-20261106 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
CLI 已把重复的
vision_authoring改成同响应引用,但普通 Turn envelope 和捕获后的 writeback 读取器没有展开它,导致完整重规划指导缺失。本 PR 从 #7430 独立提取现有 TypeScript owner,统一引用生成、解析和拒绝规则,移除 Python 的重复比较算法;小值或内容不同的正文保持内联。普通 envelope、staged reader 和真实
quota replan-viewCLI 都恢复完整正文;悬空引用、错误步骤、引用链和冲突内联值拒绝处理。完整指导恢复后,缺少原有 stride 声明会拒绝写回,宿主按实际契约完成声明后,计划可被后续任务执行。测试夹具从实际导入的包定位 TypeScript 模块,使源码和 wheel 验证使用同一构建。当前 head
4e866e5833a87133f458e6e5357213c16239be68已集成 main546c08c0d3f22358ef09b13e69f7edaa806121b8。authoring 共享已并入已有reference_context调用;临时独立运行时操作及 Python 私有 adapter 已删除,实际调用方和测试已迁移。显式完整正文选项保留内联行为。a9485073f2的三个完整正文断言失败,在候选版本全部通过。此前正确性修复新增一次父 RPC 的负结果保留。82fcc65fc0对照,真实正文压缩入口的 RPC 2→1;实际双向 socket 字节 22,196→21,344 B(−3.84%)。其中请求减少 1,362 B、响应增加 510 B,最终输出均为 22,611 B 且 SHA-256 相同。冷/温共四次读取一致;温态只有三个样本,不据此资格稳定延迟。此测量仅含父进程正文压缩,未计完整任务、其他进程 CPU、磁盘 IO 或模型费用,不能宣告整体净收益。这是完整正文与单一 owner 的独立修复切片。没有新 capability、CLI 开关、付费模型运行、日常环境安装或合并。#8192 获准合入 main 并被 C1 集成后,才会减少 C1 相对 main 的差异;早期双语实验记录保持整组。