v0.2.67
v0.2.67 — Antigravity CLI (agy) 세션 감지 추가
CLI 데이터: ~/.gemini/antigravity-cli/
cache/last_conversations.json—{ "<프로젝트 절대경로>": "<conversationId>" }맵. (실제로 webtest → 2edfa580 매핑 존재.)conversations/<id>.pb,implicit/<id>.pb— 대화 본문. 암호화/압축된 binary protobuf (magic36 f5 48 42, 가독 문자열 0개). → 내용 파싱 불가.log/cli-<ts>.log— 운영 로그 (workspace 경로는 기록되나 tool 단위 활동 없음).- 프로젝트 식별:
.antigravitycli마커 파일 +~/.gemini/config/projects/<id>.json.
감지 수준 결정 (중요)
- codex/claude/copilot 은 JSON/JSONL → tool 단위 (read/edit/bash + 파일경로) 추적.
- Antigravity 는 대화가 암호화 protobuf → tool 단위 파싱 불가. 따라서 세션 수준 (heartbeat) 감지로 결정:
last_conversations.json에서 현재 프로젝트와 매칭되는 conversationId 추출.- 해당
.pb파일 mtime 변경 = "에이전트가 이 프로젝트에서 활동 중" →thinkheartbeat emit (2s throttle). last_conversations.json변경 시 매칭 재계산 (신규 대화 포착).- 뷰포트에 antigravity 아바타 등장 + 활동 tick 표시. 파일 단위 추적은 미지원 (한계, protobuf 암호화).
구현
신규 electron/probe/antigravitySessionWatcher.ts
start(root):~/.gemini/antigravity-cli존재 시 활성.last_conversations.json으로 conversationId 매칭 (key=프로젝트 경로, 정확/상하위 포함 허용).cache/last_conversations.json+conversations/+implicit/감시 (chokidar, ignoreInitial → 과거 재생 없음)..pb변경 → conversationId 매칭 시 heartbeat emit (agent='antigravity',agentKind='ai',action='think',path='mind:antigravity',externalKind='mind', projectId). 2s throttle.
cliHistoryWatcher.detectCliAgent
agy/agy.exe패턴 추가 (agent='antigravity') — shell 호출 보조 신호.
handlers.ts
AntigravitySessionWatcherimport + 인스턴스 + 프로젝트 로드 시 start + forwardAgent listener + 2개 cleanup 사이트에 stop.
검증
- agy 는 미로그인 (
You are not logged into Antigravity) → 라이브 인증 세션 생성 불가. 대신 실제 기존 데이터로 검증: last_conversations.json에 webtest → 2edfa580 실매핑 존재.- 헤드리스 하네스로 watcher 를 webtest 에 start →
start()=true, 매칭 성공. - 실제
.pb파일 touch (agy 활동 시뮬레이션) →agent=antigravity action=think session=antigravity:2edfa580heartbeat 2회 emit 확인 (throttle 정상). npx tsc --noEmitexit=0.npm run build성공 — main 396.46 kB, renderer 6.61s.- 임시 하네스 검증 후 삭제.
최종 4-CLI 감지 상태
| CLI | 감지 | 수준 |
|---|---|---|
Codex (codex) | ✅ | tool 단위 (read/edit/bash) |
Claude (claude) | ✅ | tool 단위 |
Copilot CLI (copilot) | ✅ (v0.2.66) | tool 단위 |
Antigravity (agy) | ✅ (v0.2.67) | 세션 수준 heartbeat (protobuf 암호화로 tool 단위 불가) |
변경 파일
electron/probe/antigravitySessionWatcher.ts— 신규.electron/probe/cliHistoryWatcher.ts—agy패턴.electron/ipc/handlers.ts— import + 인스턴스 + start/stop 배선.package.json0.2.66 → 0.2.67.
핸드오프 메모
- agy 로그인 시 라이브 자동 감지 (이번엔 미로그인이라 기존 데이터+touch 로 검증).
- protobuf 암호화가 풀리거나 schema 가 공개되면 tool 단위 추적으로 격상 가능. 현재는 세션 heartbeat 가 최선.
- Antigravity IDE (VSCode fork) 자체 활동은 별도 — 필요 시
~/AppData/Roaming/Antigravity/User/workspaceStorage를 copilot 패턴처럼 추적 가능 (별도 iteration). - --
📦 GitHub 릴리스 노트: v0.2.67