Skip to content

feat(chat): support Antigravity (Gemini 4 Argon) as Steward and Chat executor - #7832

Merged
loopx-agent merged 4 commits into
mainfrom
codex/antigravity-argon-steward-20261101
Nov 1, 2026
Merged

loopx-agent merged 4 commits into
mainfrom
codex/antigravity-argon-steward-20261101

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

Summary

LoopX users with a signed-in Antigravity account can select Gemini 4 Argon for existing Steward and Chat conversations. The same settings, composer, Session/Turn store and response renderer handle the result; Codex remains the shipped default.

  • Add local LanguageServerService cascade IO with loopback-only, proxy-free discovery and no token forwarding through redirects.
  • Resolve account-offered High/Medium/Low tiers without silent model substitution. Preserve the original cascade on resume; report a missing or busy original conversation explicitly.
  • Make stop acknowledge native idle and worker exit. Timeout/partial text never becomes success. Restricted Chat explicitly disables native tools; trusted-owner retains Antigravity's own permissions and approvals.
  • Reuse native model/profile composition instead of duplicating manager policy. Keep governed Tasks, workspace filesystem grants and native managed steward identity preparation with their existing owners.

Use and boundaries

Open and sign in to Antigravity, then use Settings → Steward → Models and executor to select antigravity, gemini-4-argon-high and high. Preview/apply/readback uses the existing machine configuration transaction. Use the normal conversation composer; no separate provider page or copied command is required. Switching the executor back to Codex uses the same settings.

The local Antigravity service must remain available. Its private RPC can change with host updates. Restricted mode is a provider tool restriction, not an OS sandbox. Native permission requests cancel the current invocation and ask the user to review native permissions before resending; LoopX never auto-accepts them. The builtin now reserves the id antigravity: rename a pre-existing custom ACP endpoint with that id before upgrading. Live Lark delivery and long-duration cost/effectiveness are not qualified by this PR.

Validation

Reviewed head: 4ed408d39b49180c0a03e3116e8dd9caf9418ad1.

  • PASS: 219 focused controller/settings/native Steward tests at 815502466c3baab1e74f97f870c3aa11088de149; final provider suite 16 tests. The final delta only corrects cancelled-permission recovery text and assertions.
  • PASS: five original-head counterexamples reproduced for model intent, failed resume and partial timeout; repaired cases pass.
  • PASS: nine baseline/head Codex start-intent and real File configuration observations are identical.
  • PASS: real local Argon responses, same-cascade correction/resume, restricted no-file check and trusted native synthetic file read/write/readback.
  • PASS: packaged frontend with real HTTP/controller/File backend and native Argon, including unavailable/no-send and restart/reconnect on the same Session/cascade.
  • PASS: standard premerge (6 direct and 14 selected checks), syntax/compile, bilingual RFC, semantic vocabulary, maintainability, public boundary, Ruff and DCO trailers.

The controller is 2333 → 2331 lines after sharing configuration. A single actionable provider-unavailability entry grows chat_agent.py 2005 → 2008; its reviewed ceiling changes only 2007 → 2008. Earlier failed budget/dependency observations remain distinct from final passing validation. Remote CI and exact-head merge-readiness remain separate gates. Maintainer authorized self-review/self-merge with admin bypass; authorization does not replace those checks.

Visual evidence

Existing UI, synthetic state, real local model. Settings/desktop/narrow captures use packaged frontend fd3019ec6ba808d64b07f2df43d1e7ef0df7d3e2; frontend sources are unchanged at the reviewed head, and native composition parity plus final-source recovery were reverified. These are source-package browser captures, not installed App/mobile qualification. No public preview is hosted.

Settings and response

argon-settings-desktop argon-chat-desktop argon-chat-narrow

Unavailable and restored original conversation

argon-unavailable-desktop argon-recovered-desktop

…executor

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent
loopx-agent force-pushed the codex/antigravity-argon-steward-20261101 branch from 107ffc1 to fd3019e Compare November 1, 2026 17:48
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
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 的 LoopX 管家与 Chat 用户。以前已登录 Antigravity 仍不能把它选为管家;现在沿现有设置选择 Argon High 后,可在原对话收取回答、纠正请求并在断线恢复后续接。已验证设置回读、真实回答、合成文件读写,以及服务重启后的同一 Session 和 cascade 续接。本 PR 不扩展受治理 Task、工作区文件系统授权、原生 managed steward 身份准备或外部发消息权限。

原始方案的价值是让已登录的本地模型账号直接承接既有管家请求,减少人工搬运上下文。但只增加入口会掩盖停止、超时和恢复缺口。因此本次既审查完整 provider 路径,也重放原始 head 的反例;没有把注册成功或测试数量当成交付证明。

改动思路 / Approach

复用既有机器配置、Chat Session/Turn 和响应解析 owner;新增机制只处理本地 provider IO,并合并原先重复的原生模型配置路径。本次交付为可选择、可回答、可停止、可续接的本地 Argon Chat/本人管家;独立 managed Agent 生命周期仍归既有 Codex owner。

机器配置继续决定选择,Core 继续决定受众和工作授权,Chat store 继续保存 Session/Turn;Python 模块只承接本地进程发现与 cascade RPC。发现在线服务只是可用性,不会启动模型。复用 Codex/ACP 的共同部分是配置组合、可见流过滤和回答解析;不同的 wire protocol 保留独立 IO。原方案对 managed_actor 的放宽已撤回,因为其后续生命周期仍由 Codex 承接。

触发 修复后的行为
选择不匹配的模型/思考档位 启动前拒绝,不静默换成 High
原 cascade 不存在或忙碌 保留失败,不暗建新对话或取消别人的当前回合
超时、停止或原生权限等待 取消并核验 idle;部分回答不算成功;权限由宿主自行审阅后重发

具体改动 / Changes

验收依据为 docs/architecture/rfcs/manager-runtime-profile-v0.md,按变更前的不可变版本 a098263f4fba407f4ee9c9b6f4c3b3d8bfe1c377 审阅。profile-and-readback 对应模式与实际配置回读一致;scope-and-authority 对应本人受众、宿主权限及持久状态 owner 边界;session-consistency 对应后续回合的原始身份与模型/模式一致性。三项在本次边界内均 implemented。原契约只列 Codex 的 provider 支持被本次明确请求扩展;英中 RFC 同时说明 Antigravity 的 text-only restricted 限制和 native approval 边界,未用改写后的文本反证实现正确。

关键代码讲解

  • resolve_antigravity_model_placeholder 将请求与本地账号提供的档位核对,未知模型、冲突 effort 不再静默选 High;标准化后的模型和 effort 一起读回。
  • _run_turn 在发送前核验原 cascade 为 idle,只读取本回合新增步骤;终止状态和 deadline 分开判断。restricted 每次显式关闭工具,不继承旧 userConfig/userAgentSpec。遇原生权限等待时取消当前 invocation,提示检查权限后在 LoopX 重发。
  • interrupt_turn 校验当前 Turn,发送与取消串行化,并等原生服务确认 idle。错误 Turn id 不会设置中断标志;停止后下一回合已通过真实 controller/File store 回归。
  • native_adapter_configuration 复用既有 model/profile owner,合并两个原生 provider 的重复组合逻辑;9 组主干/head 对照保留完整 objective、profile、model、effort 与实际 File 配置回读。
  • ChatRuntimeController._start_adapter 只路由显式选择的 provider,保留 Task/workspace 的原有执行者;同一设置页面和 composer 完成操作与结果读回,没有增加第二份配置源。

验证

PASS:相关组合 219 项测试(815502466c3baab1e74f97f870c3aa11088de149),最终 provider suite 16 项;最后提交仅修正取消后的权限恢复文案及断言,上述其余路径未变。PASS:原始 107ffc14972fad7a48a9d20835d71bc5693363e2 上的同一组反例复现 5 项失败,修复后通过,覆盖不受旧 happy-path 测试保护的模型、丢失续接和超时部分输出。PASS:9 组既有 Codex/File 配置结果完全相同,观察 SHA256 为 a4cac80932117560f29745509e9ef4f2678a23b1e713864102375b5d396ea61c。

PASS:本地真实 Antigravity 完成回答、同一 cascade 纠正续聊、受限模式未写文件,以及可信模式下读取合成输入、写出文件、独立读回内容。PASS:打包前端接真实 HTTP/controller/File 后端与原生模型,已验证设置、结果、服务不可用时不提交、保留历史、重连后的同一 Session/cascade。最终 standard premerge 的 6 个直接检查、14 个选择检查全部通过,包含编译、RFC 双语、语义、架构预算及公开边界;Ruff 与 DCO trailer 同样核验。

对主干的风险 / Risks

最强反例是 LoopX 报停止后原生工作仍运行,或把超时前的半段回答记为成功。最终实现通过原生取消、idle 确认和 worker 确认阻断这些结果;失败的原始观察保留在本地证据中。对重启、模型配置、未知原始会话和受限工具模式都有独立反例,测试中的 synthetic provider 不冒充真实模型,真实模型证据另行列出。

实际风险仍是未公开 native RPC 随 Antigravity 更新而变化,以及本地账号与宿主权限不可用;这些应保留明确错误和原对话恢复入口。restricted 是 provider 禁用工具的文本模式,并非操作系统 sandbox。真实飞书传输、安装版 App 与长期成本收益不在这些源代码/浏览器证据的证明范围内。

新增 builtin 保留 antigravity 标识;旧的同名自定义 ACP 配置需在升级前改名,不能把 namespace 扩展描述为对该冲突输入的无变化。该迁移注意事项已写入 PR,当前待升级配置未发现同名自定义项。

语义与 CI 对齐

新增 antigravity 复用并扩展现有 endpoint vocabulary(因此该 id 现在为 builtin 保留);native 状态来自外部枚举,没有新增 Core work/actor 生命周期。首次 premerge 暴露控制器体积增长和独立 worktree 缺 TypeScript 依赖:重复配置现已提取,chat_runtime.py 为 2333 → 2331 行;chat_agent.py 的 2005 → 2008 行只增加一条可恢复诊断,审阅 ceiling 从 2007 精确调为 2008。补齐锁定依赖后标准门全通过,未降低语义检查或冻结实验标准。CI 尚在排队的观察是 diagnostic,最终 merge-readiness 仍单独执行,不把本地通过冒充远端全绿。

我的整体评价 / Verdict

APPROVE,适用于 4ed408d39b49180c0a03e3116e8dd9caf9418ad1。长程维度判为 preserved:旧 Codex 行为有逐项对照,新 provider 的有限续接/停止得到验证,但没有宣称长时收益。用户体验判为 improved:既有设置和原对话即可完成请求,错误与恢复都有可读结果;原生权限仍须由有权者处理。

沿用现有设置和对话布局;1200×888 与 390×844 实看可辨认 Argon 模型、回答及发送入口,长模型名在窄屏换行后仍可读。未用这些截图证明真实飞书往返、已安装 App 升级或长期运行稳定性。现有截图来自 fd3019e 的同一前端字节;最终 head 没有 frontend diff,配置组合提取的对照与最终源重连又单独通过。机制与范围相称,拆掉 provider IO 无法满足本次任务;合并前仍须未变 head 的 readiness 与独立 maintainer/admin 授权。

English verdict: APPROVE 4ed408d; demonstrated model/resume/timeout defects repaired, native tools and same-cascade recovery verified; local validation passes, CI/merge readiness remain separate gates.

@loopx-agent

Copy link
Copy Markdown
Collaborator Author

Admin-bypass merge decision for 4ed408d39b49180c0a03e3116e8dd9caf9418ad1.

The complete exact-head self-review is published and read back. Required local validation passes: standard premerge (6 direct + 14 selected checks), the 219-test focused group and final 16-test provider suite, nine baseline/head configuration comparisons, real native tool read/write/readback, and actual native stop followed by successful continuation on the same cascade. A conflict-free integration tree with current main (afb15e601ca0538d1374f98c6b5e1a51b8bd8bee) also passes 66 provider/configuration/review tests.

Maintainer explicitly authorized admin bypass. This standalone review uses wait_for_ci=false in its isolated review context; device preferences are unchanged. Earlier remote CI observations were pending/incomplete and are not claimed green. Required local validation, exact-head review and review-thread gates remain enforced. Bilingual RFC validation passes against the current target; no unresolved review/manual holds remain. The current readiness result is ready=true; it will be checked again immediately before the matched-head merge. Installed CLI/App upgrade and Argon readback follow separately.

@loopx-agent
loopx-agent merged commit 6ad8063 into main Nov 1, 2026
14 of 34 checks passed
@loopx-agent
loopx-agent deleted the codex/antigravity-argon-steward-20261101 branch November 1, 2026 18:28
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