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

Ouverte
#33,936 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
44/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
sqlite, typescript
Domaine
backend, devtools

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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)
Langage dominant
TypeScript
Étoiles
24.8k
Forks
6.4k
Merge moyen
10 h 56 min
PR mergées (30 j)
226

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de pingdotgg/t3code

Toutes les issues de pingdotgg/t3code

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.