Repository navigation
fix: guide reopened work back through the original Turn - #7942
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
|
补充精确版本验证(不更新 head):
以上是追加的真实路径与归因证据,不替代独立 review、其他失败项或合并资格。 |
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max.
APPROVE conclusion for the unchanged exact head.
动机 / Motivation
使用自动接续命令恢复延期任务的 Agent 和维护者。 以前任务重新打开后,下一条提示直接指向写回和扣账,实际工作尚未重新准入;现在先回到原 Turn 的 guard,拿到新租约后完成工作,再只结算一次。 真实 File/SQLite 路径已恢复同一任务的执行,结算后的新任务也可在 fresh Turn 独立准入。 不改变 scheduler、准入、租约、等待、原身份或一次结算规则;不宣称真实模型采用、实验成果或长程净收益。
改动思路 / Approach
原 guard 和租约仍决定能否执行;本改动只在既有 interaction_contract 中补齐正确的命令顺序,没有第二套准入或结算 owner。 本 PR 交付重新打开任务后的可执行指引和完整工作、结算、后续接续验证。 我比较了不改、在既有 owner 内修复和增加新机制三种选择;当前改动沿原生产入口生效,派生输入不成为新的状态或权限。实际失败由原 owner 拒绝并给出恢复;通过发送、读取或回执本身不能证明真实模型采用。这里采用正文说明控制流,未把未渲染的图示当测试证据。
具体改动 / Changes
完整评审 7942@ab5efe0f8b719ebb2a8463d3a1bd8cf490010f2a,merge base 107e9e32e8f3df29f63b94524250f4044cc01a80:3paths +94/-31; one production helper/rendering owner, one native regression module and bilingual paragraphs in the existing quota document. 先读不可变基线 107e9e32e8f3df29f63b94524250f4044cc01a80 的 docs/quota-allocation.md;本 PR 修改的文字没有被当成自己的验收依据。映射 criterion_id Deferred todo visibility:implemented,原身份同 Todo 准入、新租约、实际结果和一次结算均由下述真实路径验证。
关键代码讲解
_deferred_resume_continuation:582:把原 settlement identity 与当前候选 Todo 做精确匹配,复用现有 guard builder,保留 registry、host、scope 和原 Turn 参数。匹配失败时不制造新身份,继续使用已有回退。实际执行权仍由这个命令重新判断。_admitted_interaction_next_cli_actions:871:在既有 due deferred 分支先给 reopen,再给原身份 guard 和新租约、实际工作、一次结算的顺序。公共 CLI channel 消费这一结果;更早的依赖、等待和路由分支没有改变。
独立配对包含 File/SQLite、Codex App/generic CLI、原生 capture/完整输出:8 个输入组合中 6 个受支持流程均通过;基线这 6 个都缺少应交付的 guard,2 个 generic/on 不受支持组合在两侧都正确拒绝。实际按照输出的 reader 命令分页读完原 capture,再执行生成 guard,产出并读回 464,写回后扣账一次,重复扣账无新效果。同一 Turn 随后返回 heartbeat_settled_skip。另2个 File/SQLite 补测在旧 guard 后创建新任务:旧身份拒绝它,原任务真正结算后 fresh Turn 才准入它,其他 Agent 的未来等待不变。
原7模块结果仍为75PASS/12FAIL;35个TS通过。12个默认 wire 失败在不可变基线和本 head 的完整迹线相同:8个 heartbeat_receipt KeyError、4个 normal_delivery_allowed KeyError,来自未修改测试把 capture navigation 当完整响应。显式使用原有 --context-delivery off 后12个通过,且独立消费者已真实读取默认 capture;没有把原失败改报通过。补测最初把 fresh Turn 放在原结算之前,正确收到恢复拒绝;修正的是我的脚本顺序,失败记录保留,未降低产品门槛。
对主干的风险 / Risks
最强反例是:用原 guard 请求另一个已有或后来创建的 Todo,或在 generic CLI 中启用不受支持的 native context;也检查原 Turn 尚未收尾时启动新 Turn。 已观察:错误主体在不修改 Todo、不扣账的情况下被拒绝,不受支持模式在 heartbeat 前拒绝;过早的新 Turn 正确要求恢复原工作,实际完成结算后才准入新任务。 现有生产消费者是 interaction_next_cli_actions:641, _admitted_interaction_next_cli_actions:871, _build_interaction_cli_channel:1321;本次不新增 capability、provider、配置或独立设置页面,数据和命令继续经过原 owner。Applied bounded reuse: extract original-Turn continuation from the existing typed guard builder; no new CLI or rule owner. 历史/身份兼容被保留,没有为了旧回执另开请求解码器或并行规则。
标准 premerge、typecheck、适用 Ruff、diff semantic advisory、public boundary 和适用 RFC bilingual 检查通过,premerge没有阻塞失败或手工 hold。原始 strict mypy 在相同17个配置root、Python3.14.8/mypy1.20.2及uv.lock下仍为786errors/125files;同命令完整身份、顺序、细节和重复次数均比较,仅 interaction_contract.py 的38个行坐标可映射到未变化代码块,另外124个完整因果文件相同。原始 maintainability ratchet 仍FAIL,完整393B输出及因果renderer相同;premerge advisory没有被称为原检查通过。没有改阈值、移除断言、过滤诊断或将CQR声明为通过。
补读了作者追加的当前 head 验证说明:其中报告的 Windows 4 failed / 5 passed、private capture 平台缺口和 Ubuntu 展开超时均保持未解决。本次没有查询对应 CI、执行 Windows base 重跑或验证平台修复,也没有把作者的归因当作独立通过证据;它们仍是 required=false 的未解决诊断。当前批准只采用已独立执行的改动不变量证据。
CI未查询、轮询或等待,状态保持UNVERIFIED且仅为诊断;未独立核实的历史 CI 叙述没有被称为已修复。改变的不变量已有上面的独立当前证据,因此未知CI不作为批准门槛。最新主干 374c152ba18a062804b2f7e9b72656cdce0a8b4c 的相关调用方变更已读:7941的资格反馈、7934的native idle与7935/7938的context读路径各有自己的边界;本次没有将旧head验证扩张成最新主干集成资格。
我的整体评价 / Verdict
APPROVE,problem_context为goal_achieved,范围限于本次命名的可逆切片。长程工作:原任务恢复后确实产生结果、只结算一次;后续独立新任务在自己的 Turn 准入,其他 Agent 的未来等待完整保留。 用户体验:CLI 恢复链已有明确 guard、租约、实际工作和收尾顺序;未新增用户输入、确认或导航步骤。 已检查既有 CLI JSON/Agent interaction channel 和现有设置入口;本 diff 没有渲染页面、布局或独立 capability editor 变更。 未验证范围:未验证安装版或真实模型对指引的采用;CLI/source 验证不等于长期效果。 原 guard 和租约仍决定能否执行;本改动只在既有 interaction_contract 中补齐正确的命令顺序,没有第二套准入或结算 owner。 本 PR 交付重新打开任务后的可执行指引和完整工作、结算、后续接续验证。 语义词汇复用原 owner,无新枚举、分类器、执行义务或默认工具授权。独立证据支持此 head 的正向价值与比例;诊断失败、安装/模型限制、合并就绪和合并授权仍分别保留。
English verdict: APPROVE the exact reviewed head; changed invariants are independently verified, CI remains diagnostic, and merge authority is separate.
A ready deferred Todo was shown a reopen → writeback → spend sequence, encouraging a separate lifecycle-only wake even though the existing receipt owner already permits same-Todo execution in the original Turn. The generated sequence now follows reopening with that exact Turn's guard. Work continues only after fresh admission and the required execution claim/lease; refusal, changed waits and terminal outcomes retain their existing recovery contracts.
This changes shared CLI guidance and its bilingual quota documentation, not admission, lease, scheduler or settlement authority. The renderer reuses the existing settlement identity; a small local rendering helper keeps the dispatcher within its maintainability limit. No new capability, setting or frontend journey is introduced. Running experiments are not modified, and model adoption or token savings are not yet established.
Validation at
ab5efe0f8b719ebb2a8463d3a1bd8cf490010f2aagainst107e9e32e8f3df29f63b94524250f4044cc01a80:todos.machine_section_projection.render_canonical_todo_sectionsreproduces identically on base and head. Ruff, semantic vocabulary and bilingual checks passed.Independent exact-head review remains pending; this proposal does not merge or deploy the change.
CI follow-through (same unchanged head): two required jobs failed. Both failures were reproduced against immutable base
107e9e32and this head, so they remain failures and hold merge qualification.kernel-contracts: the configured 17-root strict mypy run reports 786 errors in 125 files on each revision. All 814 error/note records match after mapping only unchanged source lines in the modified renderer; there are no added or removed diagnostics. Local tool version matches CI (mypy 1.20.2). This is not a passing type check or a waiver. CI jobtypescript-core (1/3): the unchanged digest-owner module gives 16 passed / 1 failed on both revisions, identifying the unusedENVELOPED_SHA256_PATTERNbinding indelegation.ts. Existing independent fix fix(collaboration): remove unused digest owner binding #7936 owns this issue; no duplicate implementation is added here. CI jobThe earlier selected-premerge result has narrower coverage than these required CI jobs. Required CI, independent exact-head review and merge readiness remain unmet; no merge, rollout or runtime adoption is claimed.