Skip to content

fix(acp): update Antigravity runtime for model and effort metadata - #33448

Closed
gentslava wants to merge 11 commits into
stablyai:mainfrom
gentslava:fix/antigravity-model-effort-catalog
Closed

gentslava wants to merge 11 commits into
stablyai:mainfrom
gentslava:fix/antigravity-model-effort-catalog

Conversation

@gentslava

@gentslava gentslava commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Source and validation

Includes upstream main through 6357bd7d036f75250d7976420fad164753f53803. Current PR head: 3a122fd39d854675051e49f8707b9e9b276e4410. This refresh preserves the independent feature scope and passed normal commit hooks.

Refresh validation: 60 focused ACP/model/effort tests and the Node typecheck passed. Normal commit hooks passed; the final upstream merge leaves the provider feature paths unchanged.

Earlier automated and visual evidence below retains its stated source revisions. Current hosted check status appears in GitHub Checks.

ELI5

Antigravity can describe one model with a separate thinking-effort control, but Orca still downloads an older server that lists each thinking level as another model. Update the official server to 1.4.3 so Orca's existing model list and Effort row receive that metadata directly.

What Changed

  • Update the managed Antigravity ACP pin from 1.3.0 to 1.4.3 for the four already-supported macOS/Linux architectures. Archive hashes match the official ACP registry; both executable hashes and sizes were verified locally.
  • Record metadata-only responses from the unmodified official server and cover grouped catalog membership, model-specific effort choices and updates, effort retention on a model switch, older concrete model IDs, replacement of cached variant rows, shared desktop/mobile projection, and older metadata without effort support.
  • Reconcile a saved concrete model ID only when the provider response proves its exact canonical family. Preserve different pending and opaque selections; no model-name table or suffix parsing is used.
  • For a ready idle Antigravity child with model/thought-level config, use the existing bounded metadata-only config operation so selecting a model retrieves its actual effort menu before sending a prompt. Working, queued, starting and resting sessions retain deferred behavior; Stop aborts the wait and late responses cannot confirm a superseded choice.
  • Reuse the existing picker, host serialization and option transport. Other providers and older flat metadata keep their previous timing; no new remote wire field or provider identity is introduced.

Existing installations pick up the new behavior after updating the managed Antigravity runtime through Orca and starting a session that refreshes the catalog. The existing older-runtime fallback remains available.

Why

The new official runtime already owns the grouping and maps thinking_level changes to its supported concrete model IDs. Keeping this in the provider preserves account/host filtering and opaque model identities without duplicating its model-selection logic.

Inventory limitation: both official ACP 1.3.0 and 1.4.3 filter third-party models for clients outside their own allowlist; Orca is not on that list. This PR fixes the official metadata path, but does not make the CLI's Claude/GPT inventory available through ACP. The original agy CLI /model remains the supported route for that broader inventory. No client impersonation, provider filtering patch, direct model API, or replacement harness is used.

The other ACP integrations were checked for managed upgrade scope: Grok, OpenCode/OpenCode2, and OMP run user-installed CLIs, rather than Orca-pinned runtimes. Their compatibility minima remain unchanged; the cross-ACP regression suite was run. Fork-only Gemini support is outside this upstream diff.

Linked Issue

Fixes #33446

Visual Proof

English screenshots of the actual Orca picker rendered in a hidden Electron fixture over Playwright CDP. Both use metadata-only responses from unmodified official servers in disposable homes with an invalid fixture API key. These show the built-in API-key catalog, not a signed-in account's live entitlement; no model chat turns were generated.

Before: ACP 1.3.0 After: ACP 1.4.3
Before: thinking variants are separate model rows After: grouped model rows and advertised effort control

Testing

  • I manually tested these changes locally
  • Automated tests added/updated, or explained why not below

On macOS arm64, Node 24, with ORCA_BACKGROUND_LAUNCH=1:

  • Red/green: new catalog/runtime test failed with expected 1.3.0 to be 1.4.3 before the pin change; all six new tests pass afterward.
  • Focused Antigravity/config/shared-projection run: 42 passed.
  • Broader ACP/Antigravity, host options/permissions, shared projection and desktop picker/hook run: 985 passed, 10 gated skips across 112 passed files and one gated file.
  • 12 new real-host regressions reproduce legacy IDs, exact Pro Low/High, idle model config/readback, pending identities, provider rejection, concurrent picks, Stop/late response, working/held-queue deferral and older flat peers. The first version failed five cases before the host correction. Final post-extraction focused run: 42 passed across three files.
  • Independent exact-commit review at 73b109172eb38d5e0ad429ca0ff1629f981a4902 found no actionable issue in the host correction and separately exercised in-memory confirmation/lifecycle/private-field assertions.
  • Separate mobile picker/row run: 26 passed.
  • Exact CI compiler command: pnpm run typecheck:ci --bun-concurrency=1 --bun-threads=2 passed.
  • Changed-lines code-quality gate, formatting, git diff --check, and normal commit hooks passed.
  • All four official archives passed the existing installRuntimeRelease download/extract/hash/receipt mechanism in disposable directories. macOS arm64 additionally passed the real initialize-version/proven-exit validator. Other architectures were integrity-checked, not executed on this Mac.
  • Hidden Electron CDP verified the actual picker over provider metadata fixtures. Its scripted snapshot changes are descriptor/appearance evidence; actual host model-switch correctness is established by the real-host regressions and traced desktop/mobile readback, not by these screenshots.

Full repository lint/test/build and live paid model turns were not run locally. Full build and hosted platform checks remain for review/CI; no installed Orca app, CLI installation, provider credentials, or production settings were changed.

AI Disclosure

OpenAI Codex (GPT-6) assisted investigation, implementation, tests, and review.

Review

Cross-platform: only the existing four platform pins change; foreign binaries were not executed locally. SSH/remote/local: execution-host discovery and authority remain in the existing ACP/runtime paths, with no new RPC fields. Older hosts retain their flat metadata and no invented effort control; desktop/mobile use the same descriptors. Folder workspaces remain valid because metadata is session-based, with no Git dependency. Other agent/integration production behavior is unchanged and ACP regressions pass. A ready idle model pick can now perform one existing bounded metadata-only config operation. Busy/queued/resting sessions defer it, and no child, discovery process or model turn is started for this menu update. UI uses existing components/tokens. Security review preserves original client identity, account scoping, and verified official artifacts.

Agent skill upstream boundary

  • Not applicable, or this change copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.

Notes

The original CLI 1.4.7 /model menu was also inspected with a bounded PTY and no chat turn: it groups Flash and offers a separate effort control, while its broader third-party inventory remains distinct from official ACP client eligibility.

Checklist

  • This PR is small and focused
  • I explained what changed and why (ELI5, the user-facing before/after, the mechanism, and why over the alternatives)
  • Before/after screenshots or videos attached for UI changes, or N/A with reason
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH/remote, and path/shortcut impact considered (or N/A)
  • pnpm lint, pnpm typecheck, pnpm test, and pnpm build pass (or CI will cover; local preferred) — focused local checks are documented above; complete repository gates are assigned to upstream PR CI

@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f71a77a3-2a3a-4edd-8fd9-559d50ba6412
Commits

Reviewing files that changed from the base of the PR and between a287ccd and 2e360c8.

Files selected for processing: 7
  • src/main/acp/acp-session-option-write.ts
  • src/main/acp/acp-structured-options.ts
  • src/main/acp/acp-structured-session-adapter.ts
  • src/main/native-chat/agent-session-wire/structured-agent-session-adapter-router.ts
  • src/main/native-chat/agent-session-wire/structured-agent-session-adapter.ts
  • src/main/native-chat/agent-session-wire/structured-agent-session-option-models.ts
  • src/main/native-chat/agent-session-wire/structured-agent-session-options-read.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review.

Walkthrough

The Antigravity ACP runtime pin changes from 1.3.0 to 1.4.3 for four platforms. A recorded 1.4.3 options fixture and tests cover grouped model choices, effort options, model and effort writes, and older host metadata. Structured session handling also tracks confirmed model selections and supports eligible idle model-option writes.

Priority: Normal

Severity of issue fixed: Medium

Merge Risk: Low · up to 2e360

The picker can briefly show the wrong model after a stale option response, but subsequent sends retain the requested model. This is a bounded issue that can be accepted or followed up without blocking merge.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title clearly identifies the Antigravity ACP runtime update and its model and effort metadata purpose.
Linked Issues check Passed Issue #33446 is open and directly linked. The PR updates the managed Antigravity ACP runtime to 1.4.3 for the four supported architectures. The fixture and tests cover grouped models, model-specific e…
Out of Scope Changes check Passed The changed runtime pins and hashes support the Antigravity 1.4.3 requirement in issue #33446. Fixtures and tests provide metadata and regression coverage. The dialect capability, idle-session gate, a…
Description check Passed The pull request description includes all required template sections. It clearly explains the user impact, implementation, rationale, linked issue, visual proof, testing scope, AI usage, compatibility…
Full details: Linked Issues check

Explanation

Issue #33446 is open and directly linked. The PR updates the managed Antigravity ACP runtime to 1.4.3 for the four supported architectures. The fixture and tests cover grouped models, model-specific effort choices, effort updates, saved concrete model IDs, pending and opaque selections, cached variant replacement, and older flat metadata. The config-write path applies model changes and refreshes effort metadata for a ready idle Antigravity session. Busy, queued, starting, and resting sessions retain deferred behavior. The reported focused and broader automated tests cover these requirements.

Full details: Out of Scope Changes check

Explanation

The changed runtime pins and hashes support the Antigravity 1.4.3 requirement in issue #33446. Fixtures and tests provide metadata and regression coverage. The dialect capability, idle-session gate, adapter routing, confirmation state, and option reader changes support model and effort selection without adding a remote wire field or changing the broader CLI inventory. The shared session path preserves deferred behavior for other providers. No unrelated provider, client identity, or model-catalog change is shown.

Full details: Description check

Explanation

The pull request description includes all required template sections. It clearly explains the user impact, implementation, rationale, linked issue, visual proof, testing scope, AI usage, compatibility considerations, and checklist status. It also identifies which full repository checks were not run locally and assigns them to CI.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gentslava

Copy link
Copy Markdown
Contributor Author

Superseded by #34518. I compared its current head b0ca5df410c6a632c0ca12563d938f4f72fa9406 with this PR at 3a122fd39d854675051e49f8707b9e9b276e4410: the Antigravity 1.4.3 runtime definitions, provider fixtures, grouped model/effort selection, and idle option update behavior are retained there. Closing this duplicate so follow-up work stays in one PR.

#34518 remains a draft with review corrections and final validation pending; closing this PR does not claim that its replacement is ready to merge. #33446 remains the tracking issue.

@gentslava gentslava closed this Oct 28, 2026
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.

[Bug]: Antigravity ACP model picker lacks grouped model and effort metadata

1 participant