garrytan / garrytan/gstack

global-discover misses Antigravity CLI (agy) sessions — scans legacy ~/.gemini/tmp JSON, not ~/.gemini/antigravity-cli/conversations/*.db

Open
#1,977 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
133k
Forks
19.9k
Avg merge
18h 46m
Merged PRs (30d)
26

Description

`scanGemini()` in `bin/gstack-global-discover.ts` (around line 372) scans `~/.gemini/tmp//chats/session-*.json` — the **legacy Gemini CLI** JSON format. The Antigravity CLI (`agy`), which shares the `~/.gemini/` home directory, stores its sessions as **SQLite** under `~/.gemini/antigravity-cli/conversations/*.db`. These are never scanned, so all `agy` usage is invisible to discovery.

### Evidence (my machine, 2026-06-11)

- `~/.gemini/antigravity-cli/conversations/`: **504** `.db` files, newest mtime today (`2026-06-11 23:44`).
- `~/.gemini/tmp/**/session-*.json` modified in the last 14 days: **0**.
- Net effect: the `gemini` tool count in discover output is effectively always ~0 for any agy-primary user, silently undercounting cross-tool activity.

### Why it isn't a one-line path swap

The agy `.db` schema is blob-encoded — tables are `trajectory_meta`, `steps`, `gen_metadata`, `executor_metadata`, `parent_references`, `trajectory_metadata_blob`, `battle_mode_infos` — with **no plain `cwd`/`path`/`repo` column**. discover's repo-mapping relies on cwd, which here lives inside a protobuf/JSON blob payload. Supporting agy therefore means a new SQLite scanner that opens each `.db` and decodes a blob to recover cwd (perf note: hundreds of dbs per machine).

### Suggested fix

Add a `scanAntigravity()` alongside `scanGemini()`, gated on `existsSync(~/.gemini/antigravity-cli/conversations)`, surfaced either under the existing `gemini` bucket or a new `agy` tool tag.

---

Reported from gstack `1.57.10.0`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.