[Bug]: Antigravity native slash commands (e.g. /swarm) never appear in the composer

オープン
#35,611 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript

調査の方向性

Start in apps/server with AntigravityDriver's onSessionEvent, which calls provider.onAvailableCommands without a cwd, then read AntigravityProvider.onAvailableCommands and snapshotForCwd to see how workspaceSnapshots and slashCommandsPending are set. Also check where publishCatalog is wired to onAuthenticated for the startup path. Done when native commands like /swarm appear in the composer after restart and after a new session, without waiting for a turn.

索引モデルが issue の本文から書いたものです。

説明

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. Set the Antigravity provider's Binary path to an Antigravity CLI ≥ 1.5.0 (agy, launched as agy acp).
  2. Restart T3 Code.
  3. Open (or create) an Antigravity thread in any project and type /. No native Antigravity commands (/swarm, /goal, /teamwork, /plan, …) are listed; only skills appear.
  4. Send any message so an ACP session starts, then type / again. Still no native commands.
Expected behavior

The / menu lists the commands the agent advertises via available_commands_update as soon as they are known. They should not be lost on restart, or should be refreshed at startup.

Actual behavior

The agent does advertise the commands, and the server receives them, but the composer never shows them:

  1. Commands from a thread session are stored without a cwd. In AntigravityDriver, the thread runtime's onSessionEvent calls provider.onAvailableCommands(event.availableCommands) with no cwd. AntigravityProvider.onAvailableCommands(commands, cwd) only writes a workspaceSnapshots entry when cwd is given, so the commands land only in the provider-wide slashCommands.
  2. The per-cwd snapshot taken just before is empty and is trusted for 5 minutes. The workspace refresh calls snapshotForCwd when the thread opens or starts. That happens about 2 s before the agent's available_commands_update, so it records slashCommands: []. Antigravity's snapshotForCwd never sets slashCommandsPending, so the empty list is stored as complete and stays "current" for PROVIDER_WORKSPACE_SNAPSHOT_TTL_MS (5 min). The client prefers workspaceSnapshot.slashCommands over the populated provider-wide list.
  3. Startup never publishes the catalog. publishCatalog (which forwards AvailableCommandsUpdated) is only wired to the auth flow's onAuthenticated. On restart the provider state is rebuilt with slashCommands: [], and nothing repopulates it until a turn is sent.

Related: #31832 (closed feature request for native command parity). This is a separate, concrete bug: the agent sends the commands, but they don't reach the composer.

Impact

Minor bug or occasional failure

Version or commit

T3 Code (Nightly) 0.1.10-nightly.20261111.4529

Environment

macOS 26 (darwin-arm64), Antigravity provider (oauth-personal), Antigravity CLI 1.5.7 via Binary path

Logs or stack traces
# server.trace.ndjson span names (local time)
00:09:40 AntigravityProvider.snapshotForCwd        # workspace snapshot recorded, slashCommands = []
00:09:42 AntigravityProvider.onAvailableCommands   # 120 commands arrive (incl. "swarm"), stored provider-wide only
         # composer keeps showing the empty cwd snapshot
00:12:53 server.startup                            # restart: provider slashCommands reset to []
00:13:09 AntigravityProvider.snapshotForCwd        # [] again

# Standalone `agy acp`: session/new returns at ~3.59 s, available_commands_update (120 commands) at ~3.62 s.
Workaround

Typing the full command (for example /swarm <task>) and sending it should work, because buildAntigravityPrompt passes the text unchanged and the agent expands slash commands itself. Only discovery through the / menu is broken.

主要言語
TypeScript
スター
24.8k
フォーク
6.4k
平均マージ
59分
マージ済み PR(30日)
418

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pingdotgg/t3code のほかの issue

pingdotgg/t3code の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。