Skip to content

fix(chat): project Antigravity thinking summaries and harden turn recovery - #7978

Merged
huangruiteng merged 2 commits into
mainfrom
codex/antigravity-thinking-summary-and-turn-recovery-20261103
Nov 3, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/antigravity-thinking-summary-and-turn-recovery-20261103

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

Summary

Aligns Antigravity and private Lark progress with the Codex presentation strategy:

  1. The originating private owner sees one bounded stream of recent reasoning summaries. Codex supplies reasoning_summary deltas; Antigravity now maps the redacted plannerResponse.thinking summary into the same shared activity contract.
  2. The Lark private-progress tree no longer repeats tool and command titles. Tool activity still updates the coarse observed status, while tool arguments, output and hidden reasoning remain excluded.
  3. The bilingual RFC and Lark guide now describe the implemented strategy instead of retaining the previous “raw Antigravity thinking is never a summary / show recent tool titles” contract.

The PR also hardens Antigravity turn recovery:

  • A settled intermediate tool error, cancellation or cleared step no longer rejects a later verified planner response.
  • Large trajectory RPC reads use a 10-second timeout.
  • Image attachments are normalized through the existing attachment owner and sent as inline media.
  • The completion check returns an unknown observation rather than indexing an empty step range.

Verification

  • Rebased onto origin/main at 44337e3cb5; the conflict in antigravity_adapter.py keeps main's retained-result recovery path plus this PR's bounded 10-second native RPC reads.
  • pytest tests/test_antigravity_activity.py tests/test_lark_private_progress.py -q: 36 passed
  • pytest tests/test_antigravity_steward_adapter.py -q: 130 passed
  • pytest tests/test_lark_private_conversations.py -q: 314 passed
  • ruff check on all changed Python and test files: passed
  • python -m py_compile on all changed production Python files: passed
  • RFC bilingual diff check: passed
  • loopx canary premerge: all direct, public-boundary and changed-surface checks passed. The semantic-vocabulary smoke passes after installing the repository-root npm dev dependencies. Two unrelated repository smokes fail identically on clean main: issue-fix PR lifecycle requests a stale evidence field, and the capability registry snapshot no longer matches the accepted optional capability. The maintainability smoke remains an inherited advisory.

The repository environment does not include an installed Antigravity language server, so the native transport checks use the existing deterministic language-server fixture. No live model, paid call or installed-App claim is made. CI was not polled or awaited under the managed review policy.

@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; reasoning_effort=max; declaration_source=runtime_reported

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

动机 / Motivation

等待 Antigravity 回复、或通过飞书私聊跟随任一 provider 工具进展的原始用户。同一原始 thinking 在基线仅显示思考状态,当前头进入公开事件与原私聊草稿;只有工具活动时,原先可见的命令标题也消失。图片发送和中途工具失败后的正常终止得到覆盖,但原始推理资格与共享最近步骤出现回归。本次不认证真实付费模型、飞书线上发送或附着会话的媒体授权,也不允许公开原始推理。

用户需要看见真实进展、发送当前允许的图片,并在工具错误已由原生会话恢复后取得正常最终回答。这些目标有价值;但“更多可见内容”必须遵守公开摘要的来源资格,不能用路径/凭据脱敏来替代判断,也不能让所有其他 provider 的真实步骤一起消失。

改动思路 / Approach

摘要资格必须由原生来源保证,脱敏不能赋予公开资格;共享飞书投影应保留其他 provider 的活动。当前边界应是 Antigravity 媒体与恢复能力;先修复原始推理泄露和共享展示回归,再验证最终组合。

原生主机继续负责工具审批、重试与同一cascade;adapter负责最终正常终止的证据。图片复用既有尺寸、格式和来源检查,经共享dispatch到Antigravity inline media。进度仍应沿原生观察→共享活动→Core事件→原私聊投影。当前实现直接把thinking送入summary,再由共享owner标记reasoning_summary=True,这一资格跳跃恰好绕过后续不公开原始推理的过滤。

具体改动 / Changes

7个文件共205行新增、54行删除:四个生产文件覆盖provider活动、完成/媒体IO、共享附件dispatch和飞书投影,三个测试文件随之修改。对照 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md 的 Waiting、Default Lark images 与 Native result recovery,以及同版本 manager-runtime-profile:media_and_settled_completion 有当前局部证据;waiting_no_hidden_reasoning 和 waiting_recent_native_steps 明确未满足。

规范不可变版本:1b37e2e6e0ea77b9bd405cf9a5ef5fcd8557e92e。

关键代码讲解

  1. AntigravityActivity.observe 新增清理前缀与digest去重,生成summary增量。旧实现对thinking仅报告无内容的思考跨度;新实现没有证明该字段为合格公开来源。排除rawThinking不能改变这个事实。
  2. completed_result_observation 与 _run_turn 允许中途ERROR/CANCELED/CLEARED,但仍要求最终DONE、正常stop、当前步骤settled;只读格式审查保持严格DONE/精确输入规则,原失败、权限、deadline与transport不重发规则没有被此diff删除。
  3. start_turn_with_attachments 复用image normalizer后发送mimeType/inlineData/description;start_attachment_turn 扩充provider class检查且保留text-document来源限制。当前测试验证真实本机HTTP的单次发送,不等于真实模型理解图片。
  4. project_progress 每次无条件删除activities,用最多四条摘要替代最近命令/工具。不仅Antigravity,既有Codex等provider也经过此共享函数,因此这是整个私聊进度的默认变化。

对主干的风险 / Risks

[P2] 不要把原生 thinking 自动标为公开摘要

位置:loopx/capabilities/native_chat/antigravity_activity.py:64。Waiting契约明确原生thinking不是public summary。独立同一合成输入在base不暴露,在当前头进入public_activity_event的公开摘要字段及原私聊草稿。另经真实loopback HTTP→adapter→event_sink→消息投影重放,当前头在最终回答前就显示合成原始思考,两边都仅发送一次输入。凭据/路径过滤和rawThinking隐藏仍有效,但普通思考文字不会被其移除。应恢复无内容的观察跨度;只有另有明确资格的摘要来源才可走public-summary通道,并加入相同HTTP负例。

[P2] 保留共享私聊的最近工具步骤

位置:loopx/extensions/lark/private_progress.py:78。仅有工具活动、没有公开摘要时,base显示已脱敏命令标题,head只剩“正在执行命令”。这个同输入反例不依赖Antigravity,直接影响既有所有provider,也违背最近四条活动标题的接受契约。请保留原bounded活动累计/展示,在原私聊owner边界内并列改善摘要;群聊继续保持粗粒度,参数与stdout仍不展示。

语义与 CI 对齐

当前三模块147项测试和standard premerge均PASS,后者6项直接检查、10项选中检查、0项阻塞失败;它们不能推翻上述独立反例,修改后的测试本身改掉了原本禁止thinking和保留工具步骤的断言。维护性ratchet在base/head均exit1,完全相同的未改动owner及magnitude_regressions=0,仅作历史advisory。wait_for_ci=false,未查询、轮询或等待CI,也不要求CI变绿。请求修改的依据是当前源码回归,而不是未知CI。

我的整体评价 / Verdict

整体 REQUEST_CHANGES。图片与恢复沿现有owner的方向合理,但原始推理资格及共享最近步骤的实测回归,使长程持续工作可观察性和用户体验均为regression,声明范围尚未交付。最小修复可复用原共享owner,无需新框架、额外确认或第二套状态;前缀清理只是格式规则,不能充当typed公开资格。

已检查真实 HTTP 到消息正文的投影,观察到原始推理和最近步骤回归;未对飞书真实整页进行视觉验收。只运行隔离源码、合成 HTTP 和本地消息投影,未发送线上飞书消息,也未验证真实客户端视口。 这项未验收的展示范围保留为证据缺口;已有明确源码回归足以阻止批准。修复后请在更新头重跑三模块及同输入HTTP/工具-only负例,继续分别保留正常final、终止错误/取消、只读限制和媒体授权边界。

English verdict: REQUEST_CHANGES 6d30027. Independent base/head and actual HTTP probes reproduce unqualified native thinking exposure and loss of shared recent tool activity despite passing local suites; CI was not consulted.

@mergify

mergify Bot commented Nov 3, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 3, 2026
@huangruiteng
huangruiteng force-pushed the codex/antigravity-thinking-summary-and-turn-recovery-20261103 branch from 6d30027 to 8dff8a8 Compare November 3, 2026 10:45
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 3, 2026
huangruiteng
huangruiteng previously approved these changes Nov 3, 2026

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Collaborator

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=DeepSeek V4 Flash; provider=DeepSeek; declaration_source=self_reported

动机 / Motivation

原私有 Antigravity 对话里,真正的 planner 思考摘要不可读,Lark 反而重复最近四条命令/工具标题;用户已经明确要求私有进度策略对齐 Codex。另一个重复出现的可靠性问题是:中间工具已结束为错误、取消或 cleared 后,即使后面已有完整且可验证的 planner 回答,整轮仍可能被判失败。A developer-owner reading a private Antigravity or Codex conversation, who wants current reasoning context without repeated command/tool rows, and an operator relying on a real final answer after a recovered intermediate failure.

Before, Lark could show recent tool titles and Antigravity exposed no readable planner summary. After, the originating private owner sees up to four bounded, redacted reasoning summaries and no repeated tool/command titles; settled intermediate failures can coexist with a verified final planner answer. Current tests observe thinking summary deltas, boilerplate removal, hidden rawThinking exclusion, zero tool-title rows, 1,200-character projection bounds, settled intermediate recovery, exact final-answer rejection rules and one inline-media send. 非目标:This PR does not expose raw reasoning, add a new trust or authority model, change App work-step expansion, make text-document attachments available to Antigravity, or claim a live Antigravity run when the language server is unavailable.

改动思路 / Approach

入口分成两条但仍复用现有 owner:Antigravity 的 plannerResponse.thinking 经 _clean_thinking_summary 和共享 CodexActivitySteps 转为 agent.phase,再由 project_progress 投影到原飞书私聊;附件仍由 chat_attachments 做类型、数量和大小校验,随后 Antigravity 只负责映射成 native inline media。完成判定把中间步骤和最终回答分开:中间的 DONE/ERROR/CANCELED/CLEARED 可结束,但最终 planner 必须仍是 DONE、无 toolCalls、stop reason 正确、文本非空且 execution identity 一致。

All mechanisms remain in the existing feature owners: provider transport and native status semantics in AntigravityAdapter, redacted activity projection in CodexActivitySteps, private Lark text in project_progress, and attachment bounds in chat_attachments. Provider transport remains in AntigravityAdapter, redaction in CodexActivitySteps, presentation in private_progress and attachment bounds in chat_attachments. 当前 PR 边界:One cohesive native-chat reliability change: Codex-aligned private summary presentation, settled-turn recovery and validated image transport. 这避免了新建第二套 thinking renderer,也没有改变 App 的可展开 Work steps。

具体改动 / Changes

十个文件合计 +246/-73。antigravity_activity.py 只读取 plannerResponse.thinking,从不清洗 rawThinking;连续观察用 digest 去重,内容变化才发 item/reasoning/summaryTextDelta。private_progress.py 最多保留四条 reasoning summary,单条与合并投影分别限 1,200 字符,并彻底不再渲染“最近步骤”;普通命令/工具仍更新一行粗粒度活动状态。antigravity_adapter.py 把 settled-step 判定收成 _step_allows_completed_turn,live 和 recovered 两条路径共用;同时增加 10 秒 trajectory timeout、空步骤保护、inline image media 和附件入口。codex_adapter.py 的通用 attachment dispatcher 允许具备该能力的 Antigravity adapter,但 text-document 路由仍保持 Codex-only。对应中英 RFC 与 Lark README 同步改写,避免后续 agent 继续按旧契约误导实现。

关键代码讲解

  • _clean_thinking_summary:删除已知 boilerplate,即使它独占一行也不会作为有效摘要;随后 CodexActivitySteps 负责路径、凭据和长度边界。
  • AntigravityActivity.observe:把 summary 变化映射为共享 reasoning step,planner DONE 只完成 reasoning step,不会伪造 tool completion。
  • project_progress:只对原私聊 owner 展示最多四条 summary,group/unqualified 投影仍只有粗粒度标签;旧 activities 状态会在投影时移除。
  • _step_allows_completed_turn:统一 live/recovered 完成规则,允许已结束的中间失败,但继续拒绝非 DONE 最终步骤、最终错误和 shouldShowUser 错误。
  • AntigravityAdapter.start_turn_with_attachments:复用共享 image normalizer,并把单次 sends 的 media 限制为已验证的 MIME、base64 与安全名称。

规范依据为 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,spec_revision=ac74f90c4778381b6fcedd5d76059522591c3f42。PROGRESS-SUMMARY 由 bounded summary state 实现,PROGRESS-PRIVATE 由 owner_private gate 与共享脱敏实现,CODEX-ALIGNED-LARK 由 summary-only Lark 投影及双语文档实现,FINAL-SOURCE-BOUND 由统一完成 helper 和既有 final planner 校验实现。

对主干的风险 / Risks

最强反例有三个:第一,为了显示 summary 而读入 rawThinking;第二,为了接受 recovered tool failure 而把未完成轮次误报成功;第三,附件测试只验证 mock payload,实际绕过共享大小/类型边界。当前 exact head 的 36 项 activity/private-progress 测试、130 项完整 Antigravity adapter 测试和 304 项 Lark private-conversation 测试共同覆盖这些分支:rawThinking、工具标题和输出不出现;非 DONE/用户可见错误仍 fail closed;畸形图片在调用 SendUserCascadeMessage 前被共享 owner 拒绝。

ruff、Python compile、中英 RFC 配对、public/private boundary 和安装根 Node 依赖后的 semantic vocabulary drift 均通过。standard premerge 中仍有两个 neutral smoke 在不可变 main 与本 head 上以相同签名失败:issue-fix lifecycle 的 KeyError: evidence,以及 capability registry 的 builtin id snapshot mismatch;它们不经过本 PR 的因果路径,已作为 inherited failure 记录。仓库环境没有安装 Antigravity language server,因此 native transport 使用现有真实 HTTP/RPC mock loop,不声称 live Antigravity 或安装版 App 已验证。回滚只需撤回本 PR 的代码与双语文档,无持久迁移。

我的整体评价 / Verdict

long_horizon 改善:已结束的中间失败不再无条件毁掉后续可验证回答,而最终边界仍严格 fail closed。user_experience 改善:私有 owner 得到与 Codex 一致的摘要式进度,不再被工具标题列表干扰。视觉评审为 not applicable:没有图形布局变化,检查对象是生成的 Lark Markdown 文本;No graphical layout changed. The reviewed presentation is generated Lark Markdown text, validated through project_progress output and sent-body tests rather than screenshots.

现有 public_summary 与 agent.phase contract 保持兼容,陈旧 activities 在投影时丢弃,无需 persisted migration。实现复用共享 activity 和 attachment owner,代码量与三个已复现的 native-chat 问题相称,没有新增 CLI、权限或第二套状态源。PROGRESS-SUMMARY、PROGRESS-PRIVATE、CODEX-ALIGNED-LARK 与 FINAL-SOURCE-BOUND 均有 exact-head 测试证据;当前没有阻塞 finding。未验证边界仅是本机没有 installed Antigravity language server。

English verdict: APPROVE — head 84810df593e3712cd6849e45fa49fa54b9440eba. Private Lark progress now follows the Codex summary-first strategy without exposing raw thinking or repeating tool titles; Antigravity settled-step recovery, final-answer validation and inline image transport retain fail-closed boundaries. Focused, adapter and private-conversation suites pass, and the two remaining premerge failures reproduce unchanged on main.

@mergify

mergify Bot commented Nov 3, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 3, 2026
loopx-agent and others added 2 commits November 3, 2026 21:18
…overy

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
@huangruiteng
huangruiteng force-pushed the codex/antigravity-thinking-summary-and-turn-recovery-20261103 branch from 84810df to 6a9c22c Compare November 3, 2026 13:31
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 3, 2026

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Collaborator

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=DeepSeek V4 Flash; provider=DeepSeek; declaration_source=self_reported

动机 / Motivation

原私有 Antigravity 对话里,真正的 planner 思考摘要不可读,Lark 反而重复最近四条命令/工具标题;用户已经明确要求私有进度策略对齐 Codex。另一个重复出现的可靠性问题是:中间工具已结束为错误、取消或 cleared 后,即使后面已有完整且可验证的 planner 回答,整轮仍可能被判失败。A developer-owner reading a private Antigravity or Codex conversation, who wants current reasoning context without repeated command/tool rows, and an operator relying on a real final answer after a recovered intermediate failure.

Before, Lark could show recent tool titles and Antigravity exposed no readable planner summary. After, the originating private owner sees up to four bounded, redacted reasoning summaries and no repeated tool/command titles; settled intermediate failures can coexist with a verified final planner answer. Current tests observe thinking summary deltas, boilerplate removal, hidden rawThinking exclusion, zero tool-title rows, 1,200-character projection bounds, settled intermediate recovery, exact final-answer rejection rules and one inline-media send. 非目标:This PR does not expose raw reasoning, add a new trust or authority model, change App work-step expansion, make text-document attachments available to Antigravity, or claim a live Antigravity run when the language server is unavailable.

改动思路 / Approach

入口分成两条但仍复用现有 owner:Antigravity 的 plannerResponse.thinking 经 _clean_thinking_summary 和共享 CodexActivitySteps 转为 agent.phase,再由 project_progress 投影到原飞书私聊;附件仍由 chat_attachments 做类型、数量和大小校验,随后 Antigravity 只负责映射成 native inline media。完成判定把中间步骤和最终回答分开:中间的 DONE/ERROR/CANCELED/CLEARED 可结束,但最终 planner 必须仍是 DONE、无 toolCalls、stop reason 正确、文本非空且 execution identity 一致。

All mechanisms remain in the existing feature owners: provider transport and native status semantics in AntigravityAdapter, redacted activity projection in CodexActivitySteps, private Lark text in project_progress, and attachment bounds in chat_attachments. Provider transport remains in AntigravityAdapter, redaction in CodexActivitySteps, presentation in private_progress and attachment bounds in chat_attachments. 当前 PR 边界:One cohesive native-chat reliability change: Codex-aligned private summary presentation, settled-turn recovery and validated image transport. 这避免了新建第二套 thinking renderer,也没有改变 App 的可展开 Work steps。

具体改动 / Changes

十个文件合计 +246/-73。本 head 已 rebase 到最新 main;antigravity_adapter.py 的冲突合并同时保留 main 新增的 retained_result 恢复路径与本 PR 的 10 秒 native RPC timeout,没有让任一侧语义互相覆盖。antigravity_activity.py 只读取 plannerResponse.thinking,从不清洗 rawThinking;连续观察用 digest 去重,内容变化才发 item/reasoning/summaryTextDelta。private_progress.py 最多保留四条 reasoning summary,单条与合并投影分别限 1,200 字符,并彻底不再渲染“最近步骤”;普通命令/工具仍更新一行粗粒度活动状态。antigravity_adapter.py 把 settled-step 判定收成 _step_allows_completed_turn,live 和 recovered 两条路径共用;同时增加 10 秒 trajectory timeout、空步骤保护、inline image media 和附件入口。codex_adapter.py 的通用 attachment dispatcher 允许具备该能力的 Antigravity adapter,但 text-document 路由仍保持 Codex-only。对应中英 RFC 与 Lark README 同步改写,避免后续 agent 继续按旧契约误导实现。

关键代码讲解

  • _clean_thinking_summary:删除已知 boilerplate,即使它独占一行也不会作为有效摘要;随后 CodexActivitySteps 负责路径、凭据和长度边界。
  • AntigravityActivity.observe:把 summary 变化映射为共享 reasoning step,planner DONE 只完成 reasoning step,不会伪造 tool completion。
  • project_progress:只对原私聊 owner 展示最多四条 summary,group/unqualified 投影仍只有粗粒度标签;旧 activities 状态会在投影时移除。
  • _step_allows_completed_turn:统一 live/recovered 完成规则,允许已结束的中间失败,但继续拒绝非 DONE 最终步骤、最终错误和 shouldShowUser 错误。
  • AntigravityAdapter.start_turn_with_attachments:复用共享 image normalizer,并把单次 sends 的 media 限制为已验证的 MIME、base64 与安全名称。

规范依据为 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.md,spec_revision=44337e3cb5cbe3e1621550e1fe741853ba5b5a45。PROGRESS-SUMMARY 由 bounded summary state 实现,PROGRESS-PRIVATE 由 owner_private gate 与共享脱敏实现,CODEX-ALIGNED-LARK 由 summary-only Lark 投影及双语文档实现,FINAL-SOURCE-BOUND 由统一完成 helper 和既有 final planner 校验实现。

对主干的风险 / Risks

最强反例有三个:第一,为了显示 summary 而读入 rawThinking;第二,为了接受 recovered tool failure 而把未完成轮次误报成功;第三,附件测试只验证 mock payload,实际绕过共享大小/类型边界。当前 exact head 的 36 项 activity/private-progress 测试、130 项完整 Antigravity adapter 测试和 314 项 Lark private-conversation 测试共同覆盖这些分支:rawThinking、工具标题和输出不出现;非 DONE/用户可见错误仍 fail closed;畸形图片在调用 SendUserCascadeMessage 前被共享 owner 拒绝。

ruff、Python compile、中英 RFC 配对、public/private boundary 和安装根 Node 依赖后的 semantic vocabulary drift 均通过。standard premerge 中仍有两个 neutral smoke 在不可变 main 与本 head 上以相同签名失败:issue-fix lifecycle 的 KeyError: evidence,以及 capability registry 的 builtin id snapshot mismatch;它们不经过本 PR 的因果路径,已作为 inherited failure 记录。仓库环境没有安装 Antigravity language server,因此 native transport 使用现有真实 HTTP/RPC mock loop,不声称 live Antigravity 或安装版 App 已验证。回滚只需撤回本 PR 的代码与双语文档,无持久迁移。

我的整体评价 / Verdict

long_horizon 改善:已结束的中间失败不再无条件毁掉后续可验证回答,而最终边界仍严格 fail closed。user_experience 改善:私有 owner 得到与 Codex 一致的摘要式进度,不再被工具标题列表干扰。视觉评审为 not applicable:没有图形布局变化,检查对象是生成的 Lark Markdown 文本;No graphical layout changed. The reviewed presentation is generated Lark Markdown text, validated through project_progress output and sent-body tests rather than screenshots.

现有 public_summary 与 agent.phase contract 保持兼容,陈旧 activities 在投影时丢弃,无需 persisted migration。实现复用共享 activity 和 attachment owner,代码量与三个已复现的 native-chat 问题相称,没有新增 CLI、权限或第二套状态源。PROGRESS-SUMMARY、PROGRESS-PRIVATE、CODEX-ALIGNED-LARK 与 FINAL-SOURCE-BOUND 均有 exact-head 测试证据;当前没有阻塞 finding。未验证边界仅是本机没有 installed Antigravity language server。

English verdict: APPROVE — head 6a9c22cd73c47f0ed8063d1f6cd5e2cc10d69ccc. Private Lark progress follows the Codex summary-first strategy without exposing raw thinking or repeating tool titles; Antigravity settled-step recovery, final-answer validation and inline image transport retain fail-closed boundaries. The latest-main rebase preserves retained-result recovery and longer native reads; focused, adapter and private-conversation suites pass, and the two remaining premerge failures reproduce unchanged on main.

@huangruiteng
huangruiteng merged commit 6a6a859 into main Nov 3, 2026
7 of 26 checks passed
@huangruiteng
huangruiteng deleted the codex/antigravity-thinking-summary-and-turn-recovery-20261103 branch November 3, 2026 13:33
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