8000 feat(collector): support multiple Antigravity CLI account profiles by InfinityPacer · Pull Request #72 · InfinityPacer/meterleaf · GitHub
[go: up one dir, main page]

Skip to content

feat(collector): support multiple Antigravity CLI account profiles - #72

Merged
InfinityPacer merged 3 commits into
mainfrom
feat/collector-agy-profiles
Nov 10, 2026
Merged

InfinityPacer merged 3 commits into
mainfrom
feat/collector-agy-profiles

Conversation

@InfinityPacer
Copy link
Copy Markdown
Owner

背景与问题

当一台 Mac 通过 --app_data_dir antigravity-cli-<name> 同时使用多个 Google Antigravity 账号时:

  1. 采集器原本只扫描默认的 ~/.gemini/antigravity-cli/conversations/*.db,并仅靠单一的 ~/.cache/agy-statusline/current-account 为所有会话归账,无法采集额外实例目录下的会话,且并发运行时若 current-account 被覆盖会导致默认实例归账串号并重复扫描全量 .db 文件。
  2. 按需刷新额度(maybeRefreshAgyQuota / refreshAgyQuota)原本只检查全局唯一的节流键和默认账号的缓存文件,也不支持携带 --app_data_dir 与 WSL_INTEROP=1 刷新额外实例。

变更内容

  • 多实例自动发现与独立归账(src/collector/agy.ts):当 conversationsDir 位于 <geminiDir>/antigravity-cli/conversations 时,自动发现同级 <geminiDir>/antigravity-cli-<name> 实例。每个实例优先从自身的 antigravity-oauth-token(解析 id_token JWT 的 email 本地部分)或 cli.log / log/cli-*.log 识别账号标签;额外实例回退到 current-account-<name>,绝不回退到默认实例的 current-account。汇总所有实例的 .db 路径后统一调用一次 forgetMissingAgyFiles,保留各实例已读取文件的游标。
  • 按实例节流与按需刷新(src/collector/agy.ts、src/collector/main.ts):记录本轮产生新用量或缺失账户的实例列表,按实例分别检查 quota-<label>.tsv 缓存时间与节流元数据键(默认实例保持 agy_quota_refresh_at,额外实例使用 agy_quota_refresh_at:<name>),探测额外实例时传入 --gemini_dir、--app_data_dir antigravity-cli-<name> 与 WSL_INTEROP=1,并将账号标签写回对应的 current-account-<name>。
  • 测试与文档(tests/collector-agy.test.ts、docs/collector.md):新增多实例自动发现、未登录实例隔离、agy_files 跨实例保留及按实例额度刷新的集成测试,并更新采集器文档。

验证结果

  • bun test tests(84 个测试文件共 621 项测试)全部通过。
  • bun run typecheck、bunx prettier --check 与 git diff --check 全部通过。

@InfinityPacer
InfinityPacer merged commit bf58e03 into main Nov 10, 2026
@InfinityPacer
InfinityPacer deleted the feat/collector-agy-profiles branch November 10, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0