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

Aberta
#33,936 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
44/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
sqlite, typescript
Domínio
backend, devtools

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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)
Linguagem predominante
TypeScript
Estrelas
24.8k
Forks
6.4k
Merge médio
10h 56min
PRs com merge (30d)
226

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de pingdotgg/t3code

Todas as issues de pingdotgg/t3code

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.