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

Ouverte
#35,611 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
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
typescript

Piste de recherche

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.

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

Description

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.

Langage dominant
TypeScript
Étoiles
24.8k
Forks
6.4k
Merge moyen
59 min
PR mergées (30 j)
418

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.