[Bug]: Antigravity subagent classification and child transcript lookup break on agy CLI 1.5.3+ / 2.0.0

Offen
#33,936 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
44/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
sqlite, typescript
Bereich
backend, devtools

Rechercherichtung

Read apps/server/src/provider/acp/AntigravityChildWork.ts and AntigravityAdapterV2.ts, then trace the subagent classification, launch input decoding, child lookup and transcript paths, and post-settle continuation. Check the existing Antigravity tests and the related issues #30082, #30083, #31297, and #31316 for expected behavior. Done means agy CLI 1.5.3+ subagent calls render and resolve correctly, and completion wakes the parent turn.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

What happened?

After configuring the Antigravity provider to use the standalone agy CLI (1.5.3 / 2.0.0, supported via #32503), native invoke_subagent calls fail to render as subagent items in the T3 Code timeline (falling back to plain dynamic_tool items) and cannot resolve child transcripts or wake the parent turn when finished.

Root Causes in AntigravityChildWork.ts & AntigravityAdapterV2.ts
  1. Tool call title mismatch in ANTIGRAVITY_SUBAGENT_TITLES:
    In apps/server/src/provider/acp/AntigravityChildWork.ts:

    const ANTIGRAVITY_SUBAGENT_TITLES = new Set([
      "Running start_subagent",
      "Run start_subagent?",
      "Running invoke_subagent",
      "Run invoke_subagent?",
    ]);
    

    In agy acp 1.5.3+ / 2.0.0, auto-approved subagent invocations report title: "Run invoke_subagent" (without the trailing ?). Because "Run invoke_subagent" is not in ANTIGRAVITY_SUBAGENT_TITLES, classifyAntigravitySubagentToolCall returns undefined and the tool call is recorded as a plain dynamic_tool instead of a subagent item.

  2. Flat single-subagent rawInput schema in decodeLaunchInput:
    decodeLaunchInput expects { Subagents: NonEmptyArray({ Role, Prompt }) } (from the legacy start_subagent batch tool). Current invoke_subagent passes a flat object:

    {
      "TypeName": "research",
      "Role": "Standards Code Reviewer",
      "Prompt": "..."
    }
    

    As a result, antigravitySubagentLaunches(toolCall.data.rawInput) fails to decode the role and prompt.

  3. call_* toolCallId format & antigravity-cli profile directory in readAntigravityChildWork:

    • findInvokeRecord assumes nativeTaskId matches ^(.+):(\d+)$ (<sessionId>:<plannerStep>). Under agy acp 1.5.3+ / 2.0.0 (e.g. with Gemini 4 Argon), ACP tool call IDs are emitted as call_<id> (e.g. call_6547981811302923638), which matches step.subagentInvoke.toolCallId in SQLite (STEP_INVOKE_SUBAGENT = 127) directly rather than <sessionId>:<idx>.
    • readAntigravityChildWork and readChildTranscript hardcode the "antigravity-acp" subdirectory (conversations/${sessionId}.db and brain/${conversationId}/...), whereas standalone agy CLI stores state under antigravity-cli when ANTIGRAVITY_CLI_CONFIG_DIR is not overriding the leaf layout.
  4. Asynchronous subagent completion wakeup dropped (#30082):
    In 1.5.3+ / 2.0.0, invoke_subagent returns immediately ("Subagent launched successfully in the background. conversationId: ..."), the parent ends its turn, and agy acp wakes the parent out-of-band via <SYSTEM_MESSAGE> when the subagent completes. Because AntigravityAdapterV2.ts omits enablePostSettleContinuation: true (tracked in #30082 / #30083), T3 Code settles the run on turn end and does not open a continuation run when the subagent finishes.

Related Issues / PRs
  • #32503 (agy CLI custom binaryPath support)
  • #31297 / #31316 (auto-approved subagent launch lookup)
  • #30082 / #30083 (resuming turns on subagent/background task completion)
Vorherrschende Sprache
TypeScript
Sterne
24.8k
Forks
6.4k
Ø Merge
10 Std. 56 Min.
Gemergte PRs (30 T.)
226

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus pingdotgg/t3code

Alle Issues in pingdotgg/t3code

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.