Skip to content

fix(antigravity): explain ACP model access restrictions - #27029

Open
monabji wants to merge 4 commits into
pingdotgg:mainfrom
monabji:fix/antigravity-model-access-diagnostics
Open

monabji wants to merge 4 commits into
pingdotgg:mainfrom
monabji:fix/antigravity-model-access-diagnostics

Conversation

@monabji

@monabji monabji commented Oct 29, 2026

Copy link
Copy Markdown

Problem

When Antigravity's ACP session does not offer a saved model, T3's error says only to choose another model. It does not explain why the same account can use that model in the Antigravity app. The local validation error also attributes the absence specifically to the Google account, although availability can depend on the ACP client and sign-in method.

The Claude discovery/access fix is already merged in #26876 and included in v0.1.5. The general fix that preserves model-rejection messages is already merged in #19699. This is a focused follow-up for the missing Antigravity-specific explanation reported in #16489 and #15378.

Change

Let an ACP adapter supply fixed model-rejection guidance. Antigravity explains the sign-in/client restriction and directs users to update T3, refresh models, and retry an offered model. Its local validation now describes availability in the ACP session rather than blaming the account.

Other adapters retain their existing message. The guidance is applied only at the existing model-write invalid-params boundary; native errors remain on cause. Authentication and transport errors keep their handling. Model discovery, the client identity, and access rules are unchanged.

Scope and approval

This qualifies for the small, focused obvious-bug exception in CONTRIBUTING.md: it corrects misleading error reporting for an existing integration. It does not attempt to change Google's restrictions or duplicate the already-merged access fix. The server produces the same diagnostic for web, desktop, mobile, and remote clients without contract changes.

Verification

  • Linux x64. The new regression failed on baseline 960d5761c13f: the user-facing failure contained only The agent did not accept the model "claude-test". Choose another model for this provider, then retry.
  • The regression starts a real stdio ACP fixture through the Antigravity runtime and adapter, requests a model absent from its catalog, and checks the failure through the production failure formatter. It also opens a session successfully after selecting an advertised Gemini model.
  • Focused Antigravity adapter/model-selection, ACP orchestration replay, and failure tests: 67 passed.
  • vp run check:changed: formatting, lint, both knip passes, generated GraphQL, typechecks for 13 affected packages, and all 43 selected tests passed. Final verification also uses the repository's pinned Node 26.12.1.

Runtime transcript using the real adapter and a local ACP fixture:

ACP fixture: Gemini-only catalog; requested claude-test
User-visible failure: The agent did not accept the model "claude-test". Antigravity model access can depend on the sign-in method and ACP client, and can differ from the Antigravity app. Update T3 Code and refresh Antigravity models, then choose an available model and retry.
Retry with advertised gemini-test-low: session opened

The fixture verifies T3's diagnostic and retry path, not Google's live authentication or model entitlement. No paid Claude turn or browser/mobile UI run was performed; macOS and Windows were not exercised locally. CI owns the full suites and builds.

Implemented and verified with GPT-6.1 Sol through the Codex harness in T3 Code.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Oct 29, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at c9e5fa2

Macroscope's review found this PR approvable — This change clarifies Antigravity model-access errors and adds provider-specific retry guidance. It preserves existing model-selection behavior and other providers’ fallback messaging.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between cb45bf7 and 7c14f4d.

Files selected for processing: 4
  • apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts
  • apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts
  • apps/server/src/provider/acp/AntigravityAcpSupport.ts
  • packages/provider-acp/src/server/adapter.ts
Files skipped from review as they are similar to previous changes: 2
  • apps/server/src/provider/acp/AntigravityAcpSupport.ts
  • apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts

Limit details: You’ve used all 10 included reviews currently available.

Walkthrough

ACP model rejection errors can include guidance supplied by the provider flavor. Antigravity supplies model-access instructions, updates its unavailable-model wording, and tests the failure message and successful opening of another model.

Changes: ACP model rejection guidance

Layer / File(s) Summary
Add guidance to ACP model rejections
packages/provider-acp/src/server/adapter.ts
AcpAdapterV2Flavor adds optional model-selection guidance. The adapter includes it in model rejection errors and uses the existing default instruction when it is absent.
Supply and test Antigravity guidance
apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts, apps/server/src/provider/acp/AntigravityAcpSupport.ts, apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts
Antigravity supplies model-access instructions. Its unavailable-model message now refers to the ACP session. The adapter test checks the provider failure message and opens a session with another model.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related issues

  • pingdotgg/t3code#19150 — The PR clarifies that ACP session model availability can differ from the Antigravity app, but does not change model discovery.
  • pingdotgg/t3code#26738 — The PR explains that model access can depend on the sign-in method and ACP client, but does not change the model list.
  • pingdotgg/t3code#26621 — The PR adds guidance to the explicit model rejection path; it does not change the silent-default path.

Possibly related PRs

Suggested labels: bugfix

Suggested reviewers: t3dotgg, stienswout

Merge Risk: Minimal · up to 7c14f

The change adds Antigravity-specific model-selection guidance. No merge-blocking issue was identified.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title is concise, specific, and accurately describes the main change: adding Antigravity-specific guidance for ACP model access restrictions.
Description check Passed The description covers the problem, implementation, scope and approval rationale, verification results, limitations, and agent details. It clearly explains the affected behavior and test evidence.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Finishing Touches
Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

…29-original

# Conflicts:
#	apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts

maria-rcks commented Oct 31, 2026 •

Copy link
Copy Markdown
Collaborator

Note

Written by gpt-6.1-sol on behalf of Maria

updated the original branch at cb45bf7cc2a95af9cb5a12d53b00f50656344ac9, preserving monabji's commit and merging main. the original correctly isolates antigravity guidance and preserves native causes.

made guidance optional and moved the default into the error getter. main added another rejection constructor; requiring guidance there caused a type error and six existing catalog-rejection cases to fail. all six now pass. the final change remains four files, with 64 additions and 3 deletions.

verification:

  • reproduced the original generic error on current main before applying the fix.
  • blacksmith: vp run check:changed passed formatting, lint, both knip passes, graphql checks, 13 affected-package typechecks, and 47 selected tests. all 23 registry adapter tests and 11 failure-formatter tests also passed.
  • real web client with the stdio acp fixture: unavailable saved model displays the new message; selecting advertised gemini and sending again completes with the fixture response.
  • 29 ci checks green; two independent final-head reviews approve; the final bot review reports no actionable findings.
  • unverified: google's live authentication and entitlement, windows, macos, electron, ios, and android. the fixture proves t3's error and retry path, not google access. web and desktop share this server diagnostic; mobile and remote clients consume the same failure without contract changes.

matching saved model and prompt, with the transient alert dismissed to show the complete persisted failure:

before: main gives generic model rejection guidance

after: antigravity explains sign-in and acp client restrictions and offered-model retry

current merge refresh: merged main 71646e031a6d into the original branch and pushed 7c14f4d063b1bdc8c61ec33e18b877a1b6c7921a without force. resolved the adjacent acp flavor fields by retaining both model-selection guidance and owned model-option ids. the diff remains four files, 64 additions and 3 deletions.

blacksmith verification on this head: vp run check:changed passed format, lint, both knip passes, graphql, 14 affected-package typechecks and 67 tests. another 41 registry-adapter and failure-formatting tests passed. both independent reviews approve this head. github reports no conflicts. the web ci job timed out in the unchanged workspace pdf reload test; main ci passed, and the failed jobs have been rerun. prior browser evidence above was not recaptured for this merge-only refresh; live google access remains unverified.

# Conflicts:
#	packages/provider-acp/src/server/adapter.ts

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants