Skip to content

fix(chat): follow native Antigravity progress and retain failed requests - #7853

Merged
loopx-agent merged 1 commit into
mainfrom
codex/antigravity-progress-recovery-20261101
Nov 1, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/antigravity-progress-recovery-20261101

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

原 Antigravity Language Server 可能忽略 step 范围并返回完整历史,导致旧回答进入当前流;默认五分钟总时限也会截断仍有真实进展的执行。原生 IDLE / DONE 还不足以证明流正常结束。

修复沿用原适配器与 Core:按原生绝对索引限定当前输入,默认五分钟无进展才停止,显式总时限继续生效;只接受正常的最终响应。流错误、覆盖不完整或另一个原生输入均保持失败。技术失败提示送达后,既有待处理投影继续保留原请求,执行恢复仍由原 owner 的独立准入决定。

验证:447 项受影响 Python 测试、54 项 TypeScript 测试、Ruff、control-plane typecheck,以及 exact-head 标准 premerge 的 6 项直接检查和 10 项选定检查全部通过。真实 HTTP 边界的可控 native provider、Core/File 与 Lark 回复扫描器覆盖原调用与失败保留;同一最终 harness 在旧版生产实现复现 8 个 Python 和 1 个 TypeScript 断言失败。按 managed 策略未查询或等待 GitHub CI。

限制:合成 provider 不证明真实模型完成业务;本变更不重放效果未知的失败 Turn,也不改变模型、工具权限或原始失败记录。没有页面结构或视觉变化。

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: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机 / Motivation

未发现阻断性问题。通过 Antigravity 助手执行持续有进展任务的用户。同一请求持续输出超过五分钟时,原实现会取消;修复后继续观察同一次执行,只有明确总时限或连续无进展才停止。当前输入独立输出,明确流错误保持失败,失败通知送达后请求仍可见且观察不再发起执行。本 PR 不重放效果未知的失败 Turn,不改变模型、工具权限或原始失败记录。

真实模型完成原业务、历史未知效果与原受众最终回传,仍须原执行和恢复 owner 独立核实。旧内容进入新流、实际执行被截断和错误终态都属于同一原生观察边界,修复后仍通过原 Core、原会话与原回复通道完成工作。

改动思路 / Approach

原生 wire 解释与进展时钟属于现有 Python provider,跨执行器的失败保留属于现有 TypeScript projection;两者均复用 Core 的单执行与恢复边界。本 PR 交付原生当前输入、真实进展和可信终态的观察修复,以及技术失败后的可见保留;不承接未知效果重放或新增业务执行。最强反对理由是:延长观察不能解决历史未知效果,而且无输出长工具仍可能触发无进展保护;因此修改没有添加自动重试,也没有声称原积压已全部完成。相比扩大固定总时限,当前实现保留调用方明确预算,并用真实文本、步骤状态或命令输出变化区分执行进展与卡住的 RUNNING 标志。

原生观察 旧行为 当前 head
返回完整历史 旧回答可能进入当前流 只读绝对当前步骤,覆盖不明则失败
持续进展超过五分钟 被默认总时限取消 同一次执行继续;显式预算仍有效
IDLE/DONE 但 stream error 可能成为成功回答 保留失败和未知效果
失败提示已送达 技术失败可能移出待处理 保留原请求,独立恢复准入不变

表格说明本次状态差异;执行证据来自真实 HTTP 边界、Core/File 和回复扫描器的合成 provider 回归。

具体改动 / Changes

关键代码讲解

  1. _observed_turn_steps 从原生绝对索引或完整范围推导当前输入的连续步骤。服务器忽略范围参数时不会把旧回答当新内容;缺失、不一致的覆盖直接失败。
  2. AntigravityAdapter._run_turn 只让当前步骤、响应或工具输出的真实变化刷新进展时钟。明确总时限仍优先;只有当前最后 planner 完成、无待调用工具且 stopReason 正常时才发出最终回答。另一个 native 输入既不采纳,也不取消。
  3. Core native factory 原样传递 caller 的 hard_timeout_sec,保留 None 的原始意图;其他执行器分支、模型、权限与工具配置没有变化。
  4. planBoundConversationRequest 沿既有 pending_observation 保留精确相关联的 native 技术失败。原 accepted 状态、Session/Turn 一致性、closed 与 source stop/new 仍是必要条件,返回值只用于显示。
  5. quota_backlog_pending 是未改动的真实只读桥接。测试经过 Core 入队、provider 失败提示核验和 transport 重建,直接禁止观察期间 enqueue/recover,并检查原失败、模型调用数与 provider 写入数不变。

规范:Accepted conversation RFC,spec_ref docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,spec_revision 8ac384cdcfcf3d6c683ffab43db1a5c14dba0343。ordinary-workspace-conversations-bounded-implementation-checkpoint 的原会话/流/stop owner 边界已实现;native-history-migration-and-unfinished-request-continuation 的“失败通知不是完成、提示不是执行准入”由现有 projection 与恢复 owner 保留。本次没有改写规范或把仅限 Codex 的自动恢复资格扩展到 Antigravity。

六文件共增加 257 行、删除 32 行。生产内容集中在原适配器和两个既有调用/判定位置;其余为既有测试文件中的 wire、时间、终态与无效果断言,没有新增模块、队列、CLI、持久状态或兼容框架。

对主干的风险 / Risks

风险主要在外部 Language Server 的范围返回与终态格式:当前同时支持原范围返回和已观察到的完整历史返回,保留旧版省略 stopReason 的格式,但仍要求完整当前步骤及已完成最终 planner。未知 stop、覆盖不完整、另一个输入、原生 busy 或权限等待都不能成为成功。显式预算和无进展停止的负向用例也通过,避免把“继续有用执行”变成无界挂起。

PASS:447 项受影响 Python 测试、54 项 TypeScript 测试、Ruff、control-plane typecheck,以及 exact-head 标准 premerge 的 6 项直接与 10 项选定检查。同一最终 harness 在 8ac384cdcfcf3d6c683ffab43db1a5c14dba0343 的生产实现上有预期的 8 项 Python、1 项 TypeScript 断言失败,4 项 native 控制和 timeout 投影控制仍通过;恢复后的 head 全部通过。初次 fixture/assertion 和命令入口失败均保留为历史,未删除断言或放宽时限来换取通过。

语义与 CI 对齐

复用既有 native 枚举、错误码和 shared projection,未引入新 authority。diff advisory 的零新载体只代表其支持范围内的扫描结果,真实语义由上述基线反例与调用链验证。根据当前 managed 策略,没有查询或等待 GitHub CI;本地必要检查均已完成。真实模型最终完成业务、长期工具效果及安装采用属于独立验收,合成 provider 不替代这些证据。

我的整体评价 / Verdict

APPROVE,交付判断为 justified_increment。long_horizon 与 user_experience 均 improved:同一有进展执行不再被默认墙钟截断,原入口读回当前请求与真实失败,不新增用户交互轮次。仅修改 loopx/capabilities/native_chat/antigravity_adapter.py、loopx/chat_runtime.py 和 loopx/control_plane/collaboration/conversation_binding.ts 的执行观察与派生值;已检查 apps/presentation/dashboard/src/features/personal-workspace/private-conversation-panel.tsx 的既有 pending_count 消费,未修改页面结构、排版或响应式行为。本 PR 未重新评价既有页面视觉质量,也不以合成 provider 代替真实模型业务验收。

原生 wire 解释与进展时钟属于现有 Python provider,跨执行器的失败保留属于现有 TypeScript projection;两者均复用 Core 的单执行与恢复边界。本 PR 交付原生当前输入、真实进展和可信终态的观察修复,以及技术失败后的可见保留;不承接未知效果重放或新增业务执行。兼容保留针对独立部署 native server 的真实格式差异;无需第二观察/恢复服务。原始失败、未知效果与受保护操作仍须原 owner 处理。本评审对象是 3ccfbec83c0c6c60324b99719546d083d0db67ba;head 或相关调用边界改变时应重新验证。

English verdict: APPROVE 3ccfbec. Original-input history, progress and final proof are corrected; explicit limits, source lifecycle and recovery fences remain intact. 447 Python tests, 54 TypeScript tests and exact-head standard premerge passed.

@loopx-agent
loopx-agent merged commit c334bba into main Nov 1, 2026
20 of 37 checks passed
@loopx-agent
loopx-agent deleted the codex/antigravity-progress-recovery-20261101 branch November 1, 2026 21:59
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.

1 participant