Files
gravity_control/docs/devlog/entries/20260307-003.md

1.8 KiB

LS ConnectRPC 브릿지 역설계 + AI 응답 릴레이 구현

  • 시간: 2026-03-07 17:30~19:00
  • Commit: 952883d~be6fae7 (6 commits)
  • Vikunja: #223 → 진행중

핵심 발견

AI 대화 텍스트는 brain/ 파일에 없다

  • brain/에는 artifact (task.md, walkthrough.md, implementation_plan.md)만 저장
  • .system_generated/logs/ 디렉토리도 없음
  • AI 응답 텍스트는 LS 내부 메모리에만 존재
  • getDiagnostics에는 시스템 로그와 대화 메타데이터(제목, step 수)만 포함

LS ConnectRPC 접속

  • LS 바이너리: language_server_windows_x64.exe (160MB Go)
  • 프로토콜: ConnectRPC over HTTPS (자체 서명 인증서)
  • 인증: x-codeium-csrf-token 헤더 + --csrf_token CLI값
  • 포트: --random_port 사용 → netstat + PID 기반 탐색 필요

Go 바이너리에서 100+ RPC 메서드 추출

  • Python regex로 /exa.language_server_pb.LanguageServerService/ 패턴 추출
  • 핵심 메서드: GetUserTrajectoryDescriptions, GetCascadeTrajectorySteps, StreamCascadeReactiveUpdates
  • GetTrajectoryDescriptions는 존재하지 않음 → SDK 타입 정의가 부정확

실패한 접근법

  1. onDidChangeTextDocument — WebView 기반 채팅은 TextDocument 이벤트 미발생
  2. getManagerTrace / getWorkbenchTrace — undefined 반환
  3. brain/ 파일 모니터링 — artifact만 존재, 대화 텍스트 없음
  4. getDiagnostics → 메타데이터만, 대화 내용 없음
  5. antigravity-sdk — d.ts만 있고 JS 구현 없는 vaporware

미완료

  • LS ConnectRPC 호출이 실제로 대화 데이터 반환하는지 검증 필요
  • GetCascadeTrajectorySteps 응답 구조 파악 → AI 텍스트 추출 로직
  • StreamCascadeReactiveUpdates로 실시간 릴레이 가능성 탐색