Repository navigation
fix(chat): keep Antigravity turns open through transient idle - #7934
Conversation
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: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
通过现有 Chat 或私聊管家把原任务交给 Antigravity 的用户,以及维护该 provider 的开发者。 输入、工具和 planner 之间的短暂 IDLE 会提前失败并取消原调用;DONE 文本缺少正常停止标记或前面仍有生成中步骤时,也可能提前报告完成。 同一个原生调用跨过短暂 IDLE,只有最终 planner 带正常 STOP、当前覆盖步骤全部 DONE 才交付最终答案;没有第二次 Send、延长 deadline 或自动处理原生授权。 不宣称已安装 App、真实 Antigravity/模型采用、原生 progressive reader、跨 PR 集成或可比完整成本净收益;没有新工具授权或 OS 沙箱承诺。 真实宿主与安装版仍需原管家/runtime owner 按既有验收验证;#7837 的独立恢复/进展实现尚未集成,本次没有给其组合结果作通过证明。
改动思路 / Approach
既有 _run_turn 已拥有原输入索引、deadline、权限等待和取消处理,修复应留在这里。当前 head 只在完整当前步骤且 native IDLE 时区分“中间状态”和“已验证最终结果”,保留普通回合与只读格式复核各自的输入/执行证明。 Reuse the existing provider loop, original invocation identity, deadlines, activity/redaction owner and Core/store. The independent completed-result reader retains stricter provenance proof for recovery; a new shared framework is not warranted for this bounded completion guard. 本次闭合的是原调用的观察与完成判定,沿用既有 Chat/Core、存储和 loopback provider;不新增会话、重发器、provider 或持久状态。 没有新状态、permission、scheduler 或第二个执行 owner;保持同一用户请求到可读结果的已有入口,不增加确认轮次。
具体改动 / Changes
规范依据是先读的不可变 base f941b5939345c6d1c3d770a982182624e7ef393f 的 Session consistency:Preserve the original native Session/Turn, verify bounded completion, retain current permissions and refuse unverified partial results. 当前是一个 independently usable 的 justified_increment;当前改过的文档不能单独给自身作验收证明,原 parent/真实宿主与完整成本仍 deferred。
关键代码讲解
start_turn保留原异常与取消归属,仍只有一次原生发送。_run_turn在权限等待、外来输入、显式错误及原 deadline 检查之后,才允许继续观察短暂 idle;未知停止原因仍拒绝。最终成功需正常停止标记、最终 planner DONE 和当前步骤全部 DONE。interrupt_turn沿既有 owned invocation 停止并确认 native idle;另一个输入不被本调用收养或取消。
独立运行完整相关模块及原生私聊格式复核,共 134 PASS。对同一最终夹具分别导入不可变 base 与当前 head 的真实 source,旧版本 10 FAIL、当前 10 PASS:8种中间状态都只 Send一次,当前到最终时刻4才完成;2种停滞都在原无进展时刻302超时并取消,没有重置 deadline。完整模块也覆盖连续回合、明确停止后下一回合、权限等待、未知停止、部分 inventory、外来输入和格式复核的 tool/mixed-execution/missing-stop 拒绝。
对主干的风险 / Risks
普通回合原来接受 stopReason=None;现在等待正常停止标记,永不出现则沿原 timeout 失败,这是明确行为变化。格式复核缺标记仍立即拒绝,restricted 工具请求不会借此放行。真实 Chat/Core/store 与 loopback HTTP 已运行,外部宿主是合成 provider;没有真实模型或安装版采用证明。仍 OPEN 的 #7837 涉及清除错误/恢复/活动投影,当前没有集成它,未来组合需按新 head 再验证。
Independent standard premerge:6 direct checks passed;11 selected,10 passed and1 inherited maintainability advisory failure; no blocking failure, skip or manual hold. Raw maintainability check remains failed. 独立同命令在 immutable base 与本 head 运行 raw ratchet,完整 stdout 和空 stderr 逐字节相同,仍是 render_canonical_todo_sections 未登记的 oversized decision function,magnitude regressions 为0;该失败 owner 的完整源文件 blob 也相同。不是按相同总数归因,原始 FAIL 没有改记通过,作者 CQR FAIL/invalid_receipt 没有被豁免。受改动 invariant 则由上述完整模块与实际入口正反例独立覆盖。DCO/diff/public scan 和需要的双语/语义检查已核验。CI 未查询、未轮询或等待,未知 CI 本身不是缺失评审证据;review、CQR、实际 merge readiness 与 merge 权限分别处理。
我的整体评价 / Verdict
APPROVE 精确 head bb1a9f04531a213e8e0909eecbf9cba18aea9de7,未发现当前阻塞性缺陷。本次闭合的是原调用的观察与完成判定,沿用既有 Chat/Core、存储和 loopback provider;不新增会话、重发器、provider 或持久状态。 原任务仍在已有 Chat/私聊入口中完成,不需要用户重发已知输入或增加确认轮次;真实停止/权限等待沿原入口回读,失败不会冒充最终答案。 复用既有 owner 的同域简化已落在当前差异中;不引入为了小修复而新增的框架。已检查完整4路径和现有调用入口:仅内部运行时/初读投影、契约与测试变化,没有渲染页、布局或设置编辑器变更。 没有视觉改动需截图;未宣称已安装 App、真实宿主或设备上的采用。 不宣称已安装 App、真实 Antigravity/模型采用、原生 progressive reader、跨 PR 集成或可比完整成本净收益;没有新工具授权或 OS 沙箱承诺。 真实宿主与安装版仍需原管家/runtime owner 按既有验收验证;#7837 的独立恢复/进展实现尚未集成,本次没有给其组合结果作通过证明。
English verdict: APPROVE bb1a9f04531a213e8e0909eecbf9cba18aea9de7; the reproduced defect is fixed on the exact head, unrelated raw ratchet failure is retained, real-host adoption and net benefit remain unverified.
当 Antigravity 在输入、工具执行和 planner 之间短暂返回
IDLE时,LoopX 会提前失败并取消原调用;也可能把仍有工具运行或缺少正常停止标记的答案当作完成。本 PR 让同一次原生调用继续被观察,直到最终答案带正常停止标记、当前覆盖步骤全部完成。等待不重发输入,也不延长既有无进展或硬截止时间。普通回合此前接受
stopReason=None的 DONE 答案;现在会等待正常停止标记,超时则沿原失败路径处理。这与既有原生结果恢复的完成条件一致。原生权限等待、明确错误、未知停止原因、另一个输入及受限工具拒绝继续生效;格式复核缺少停止标记仍立即拒绝。验证针对
bb1a9f04531a213e8e0909eecbf9cba18aea9de7,基线为f941b5939345c6d1c3d770a982182624e7ef393f:render_canonical_todo_sections。独立冻结基线与当前 head 的完整 stdout/stderr 字节一致,magnitude regressions 为 0。Premerge 将其标为 inherited advisory;未据此伪造通过或申请门槛豁免。CQRcqr_fa780509e1467a583e83保留 FAIL,verify 为invalid_receipt,独立归因审查仍待完成。本次复用原 native adapter、轨迹范围和完成检查,保留直接控制流,不新增调度、缓存或第二份状态。中英文 manager RFC 同步说明完成条件。界面布局未改;打包界面、真实 Antigravity 宿主和已安装 App 采用尚未验收。上下文渐进交付与完整原文路径不属于这个修复切片。
#7837 也修改该 adapter 的原生读取/错误恢复路径;本 PR 基于当前 main,后续组合应同时保留其恢复逻辑与这里的完成判定。提交供精确版本评审,未合并、未安装。