Skip to content

fix(chat): keep Antigravity turns open through transient idle - #7934

Merged
huangruiteng merged 1 commit into
mainfrom
codex/antigravity-manager-continuation-20261103
Nov 3, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/antigravity-manager-continuation-20261103

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

当 Antigravity 在输入、工具执行和 planner 之间短暂返回 IDLE 时,LoopX 会提前失败并取消原调用;也可能把仍有工具运行或缺少正常停止标记的答案当作完成。本 PR 让同一次原生调用继续被观察,直到最终答案带正常停止标记、当前覆盖步骤全部完成。等待不重发输入,也不延长既有无进展或硬截止时间。

普通回合此前接受 stopReason=None 的 DONE 答案;现在会等待正常停止标记,超时则沿原失败路径处理。这与既有原生结果恢复的完成条件一致。原生权限等待、明确错误、未知停止原因、另一个输入及受限工具拒绝继续生效;格式复核缺少停止标记仍立即拒绝。

验证针对 bb1a9f04531a213e8e0909eecbf9cba18aea9de7,基线为 f941b5939345c6d1c3d770a982182624e7ef393f:

  • 118 项 adapter、活动、manager profile/context 测试与 16 项原生私聊格式复核测试通过。实际 Chat/Core/存储与 loopback HTTP 路径运行,外部宿主为合成 provider;没有真实模型调用。
  • 相同的最终步骤序列夹具在冻结基线 adapter 上有 10 项失败,在当前完整测试中通过,覆盖输入前 idle、工具/生成中 idle、无停止标记的中间回答、提前答案和不重置截止时间。
  • Standard premerge 的 6 项直接检查及另外 10 项选中检查通过,包含编译、双语 RFC、完整语义检查和四文件公开扫描;Ruff、DCO 和 diff 检查通过。
  • 全局 maintainability ratchet 原始结果仍失败,指向未改动的 render_canonical_todo_sections。独立冻结基线与当前 head 的完整 stdout/stderr 字节一致,magnitude regressions 为 0。Premerge 将其标为 inherited advisory;未据此伪造通过或申请门槛豁免。CQR cqr_fa780509e1467a583e83 保留 FAIL,verify 为 invalid_receipt,独立归因审查仍待完成。

本次复用原 native adapter、轨迹范围和完成检查,保留直接控制流,不新增调度、缓存或第二份状态。中英文 manager RFC 同步说明完成条件。界面布局未改;打包界面、真实 Antigravity 宿主和已安装 App 采用尚未验收。上下文渐进交付与完整原文路径不属于这个修复切片。

#7837 也修改该 adapter 的原生读取/错误恢复路径;本 PR 基于当前 main,后续组合应同时保留其恢复逻辑与这里的完成判定。提交供精确版本评审,未合并、未安装。

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: 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.

@huangruiteng
huangruiteng merged commit b6c030e into main Nov 3, 2026
29 of 39 checks passed
@huangruiteng
huangruiteng deleted the codex/antigravity-manager-continuation-20261103 branch November 3, 2026 01:07
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