Skip to content

[Bug]: Antigravity ACP agent cannot use native elicitation or multi-select questions #15743

Closed

Description

@Droyder7

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

  1. Start T3 Code (npx t3 or desktop app) on main (commit 4ee6bfd).
  2. Configure the Antigravity provider and start a conversation.
  3. Prompt the model to ask a multiple choice question with options or multi-select items (e.g. "ask me to pick one or more options using your user input tool").
  4. Inspect the initialize handshake and session RPC traffic.

Expected behavior

  1. The Antigravity provider session initializes with ACP elicitation capability (clientCapabilities.elicitation: { form: {} }).
  2. When the model invokes its elicitation tool with a form containing choices or multi-select (type: "array" with items.anyOf / items.enum), T3 Code displays the interactive choices/checkboxes in the composer (ComposerPendingUserInputPanel / PendingUserInputCard).
  3. User submissions serialize cleanly into declared schema types (arrays for type: "array", booleans for type: "boolean").
  4. The agent receives the response without schema rejection or falling back to single-item permissions.

Actual behavior

  1. Capability Dropped: AntigravityAcpSupport.ts (makeAntigravityAcpRuntime) hard-codes clientCapabilities: { fs: ..., terminal: false }, omitting elicitation entirely. Because the agent never sees elicitation: { form: {} } during initialization, it falls back to single-select session/request_permission (interaction_*) tool approval prompts.
  2. Pinned Binary Version Outdated: antigravityRelease.ts is pinned to 1.1.1 (agy_acp_server_1.1.1), missing the upstream 1.3.0 release from ACP registry PR Bottom input bar icons breakage #647. Furthermore, Intel Macs (darwin-x86_64) currently resolve to null.
  3. Multi-Select & Schema Mismatches in Shared ACP Adapter:
    • handleElicitation in AcpAdapterV2.ts only extracts choices when record?.enum exists on top-level fields; it ignores record?.items when record?.type === "array".
    • Questions with fixed options do not set allowCustomAnswer: false, enabling clients to return empty strings "" or free text where the agent strictly requires an array.
    • elicitationContent does not coerce boolean answers (which go out as strings "true"/"false") and can send NaN as null over JSON-RPC.

Version or commit

main @ 4ee6bfd

Environment

  • OS: macOS (darwin-arm64, darwin-x64), Linux, Windows
  • Provider: Antigravity ACP (antigravity-acp) / gemini-3.8-flash-high

Logs or stack traces

During initialization handshake:

--> {"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":2,"clientCapabilities":{"fs":{"readTextFile":true,"writeTextFile":true},"terminal":false}}}
<-- {"jsonrpc":"2.0","result":{"agentInfo":{"name":"antigravity-acp","version":"1.3.0"},...}}

Notice clientCapabilities.elicitation is missing from the client initialize request, preventing session/elicitation usage.

Workaround

None. Users are limited to single-select approval prompts via the legacy fallback.

Additional context & Proposed Fix

The client UIs (ComposerPendingUserInputPanel.tsx and mobile PendingUserInputCard.tsx) already support multi-select questions and answers (selectedOptionValues). Only the server ACP layer needs to be updated.

We have drafted and tested a 2-PR stack to address this cleanly without bundling independent concerns:

  1. PR 1: Bump Antigravity ACP agent to 1.3.0

    • Updates ANTIGRAVITY_RELEASE_VERSION to "1.3.0" matching the real agent initialize handshake response.
    • Updates URLs to the new pattern (agy-acp-server-1.3.0-<platform>.zip) and adds darwin-x64 (Intel Mac) alongside the other 5 platforms.
    • Updates checksums and verified startup assertions in AntigravityInstallation.test.ts.
  2. PR 2: ACP Elicitation v2 & Multi-Select Support in shared AcpAdapterV2

    • Adds opt-in elicitation?: boolean to AntigravityAcpRuntimeInput, activated specifically in AntigravityAdapterV2.ts for chat sessions (leaving the installation validator runtime untainted).
    • Updates AcpAdapterV2.ts (handleElicitation) to detect multi-select on record?.type === "array", supporting items.anyOf, items.oneOf, and items.enum, while preserving single-select options for all non-array fields (benefiting Antigravity, Grok, and ACP registry agents).
    • Sets allowCustomAnswer: false on fixed option lists to prevent malformed string submissions.
    • Hardens elicitationContent with boolean type coercion, array preservation, and NaN key omission.

Willingness to contribute: I have this fix planned and verified against the local test suite (vp test run ...), and I am ready to open the PRs for this stack immediately upon maintainer approval.

Activity

  1. t3dotgg commented on Oct 21, 2026

    @t3dotgg
    Member

    Note

    🤖 Claude Opus 5.5 responding on behalf of Theo

    Thanks for the report. One part of this is fixed on main in #15746. Please test on the nightly built from main on 2026-10-21, or on the next stable release. One part is still open: ACP elicitation capability and multi-select answer handling. If that part still matters to you, please open a new issue for that part only.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions