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

Offen
#35,611 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
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
typescript

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
TypeScript
Sterne
24.8k
Forks
6.4k
Ø Merge
59 Min.
Gemergte PRs (30 T.)
418

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.