feat(bridge): 승인 감지 최적화 — latestToolCallStep 즉시 감지 + DOM scan 확장
- latestToolCallStep RPC 기반 즉시 감지 (30초 stall → 5초 poll) - DOM scan 범위: findPanel() → document.body 확장 - Accept all/Reject all 리뷰 바 패턴 추가 - Stall detection을 100초 fallback으로 약화 - extractToolCommand/extractToolDescription 헬퍼 추가 - known-issues 5건 신규 추가 - start/services workflow: Python 전체 경로 + services.md 로딩 #task-258 #task-262
This commit is contained in:
@@ -117,3 +117,30 @@
|
||||
- **원인**: Electron 렌더러 프로세스에서 동기 XHR이 보안 정책에 의해 차단됨
|
||||
- **해결**: `fetch()` + `AbortSignal.timeout(2000)` 비동기 방식으로 교체 (`tryPingAsync`)
|
||||
- **주의**: `async/await` 사용 불가 (ES5 환경). `.then()` 체이닝으로 구현
|
||||
|
||||
### [2026-03-08] DOM Observer — Run 버튼 감지 불가 (webview iframe 격리)
|
||||
- **증상**: Allow Once/Allow This Conversation는 감지되나 Run/Accept 버튼은 감지 안 됨
|
||||
- **원인**: Trust/permission 버튼은 워크벤치 외부 DOM에 렌더링, Run/Accept는 **Antigravity 채팅 webview iframe** 내부의 별도 DOM에 렌더링. 렌더러 스크립트의 `document.querySelector()`는 iframe 내부 접근 불가
|
||||
- **해결**: Run 버튼은 DOM Observer가 아닌 **`latestToolCallStep` RPC 기반** 즉시 감지로 대체
|
||||
- **주의**: webview iframe에 스크립트 주입은 Electron `executeJavaScript()`로 가능하나, 현재 RPC 방식이 더 안정적
|
||||
|
||||
### [2026-03-08] Accept all/Reject all 리뷰 바 — agent 패널 밖 DOM
|
||||
- **증상**: 코드 변경 리뷰 바(Accept all/Reject all)가 DOM Observer에 감지 안 됨
|
||||
- **원인**: `scan()` 함수가 `findPanel()` (`.antigravity-agent-side-panel` 등) 내부만 검색. 리뷰 바는 에디터/notification 영역에 렌더링되어 패널 밖에 있음
|
||||
- **해결**: `scan()` 검색 범위를 `document.body` 전체로 확장, `Accept all` / `Reject all` 패턴 추가
|
||||
- **주의**: 패널+body 이중 검색 시 dedupe 필요 (같은 버튼이 두 번 잡힐 수 있음)
|
||||
|
||||
### [2026-03-08] latestToolCallStep — 즉시 승인 감지 (stall 30초 대체)
|
||||
- **증상**: 이전 stall-based 감지는 RUNNING+delta=0+modTime frozen 30초 후에야 pending 생성
|
||||
- **원인**: `GetAllCascadeTrajectories` 응답의 `latestToolCallStep` 필드를 전혀 활용하지 않았음
|
||||
- **해결**: `latestToolCallStep.step`의 status 필드에서 `WAITING` 여부를 직접 체크 → 5초 poll 1회에 즉시 감지. Stall detection은 100초 fallback으로 유지
|
||||
- **주의**: `latestToolCallStep`의 정확한 protobuf 구조(status 필드 위치)는 런타임 덤프로 확정 필요 — 첫 실행 시 `[TOOL-STEP]` 로그 확인
|
||||
|
||||
### [2026-03-08] Extension 재설치 안전성 — 자동 패치 메커니즘
|
||||
- **증상**: Antigravity 삭제 후 재설치 시 렌더러 스크립트가 동작 안 함
|
||||
- **원인**: 재설치 시 HTML/product.json이 원본으로 리셋됨
|
||||
- **해결**: Extension의 `setupApprovalObserver()`가 **자동으로** 모든 패치를 수행:
|
||||
1. `workbench.html` + `workbench-jetski-agent.html` 인라인 스크립트 삽입
|
||||
2. `product.json` SHA256 체크섬 자동 업데이트
|
||||
3. HTTP bridge 서버 시작 + 결정론적 포트
|
||||
- **주의**: 패치 후 반드시 **Antigravity 풀 재시작** 필요 (Reload Window 불가). Extension VSIX만 설치하면 수동 패치 불필요
|
||||
|
||||
Reference in New Issue
Block a user