diff --git a/.agents/references/known-issues.md b/.agents/references/known-issues.md index a1239b6..72f7a97 100644 --- a/.agents/references/known-issues.md +++ b/.agents/references/known-issues.md @@ -184,5 +184,44 @@ 3. `.executeJavaScript()` 접근 시도 (Electron API) 4. Shadow DOM 재귀 탐색 → **미검증** (AG 재시작 후 DOM-DUMP 결과 필요) -- **주의**: 커뮤니티 auto-accept 확장들은 CDP(Chrome DevTools Protocol)를 사용하지만, 이는 `--remote-debugging-port` 플래그가 필요한 비표준 접근. 먼저 표준 DOM API로 관통 가능한지 확인 +- **주의**: CDP(Chrome DevTools Protocol)는 **사용자 결정에 의해 명시적으로 거부됨** (`--remote-debugging-port` 필요, 비표준 접근). 표준 DOM API/Electron API 범위 내에서만 해결할 것 +### [2026-03-09] Deep Inspect HTTP Endpoint — curl로 DOM 분석 트리거 +- **증상**: AG DevTools 콘솔에 붙여넣기 불가 (Chromium 보안 정책) +- **원인**: Electron 렌더러 DevTools에서 `allow pasting`이 SyntaxError 발생 (`Unexpected identifier 'pasting'`) +- **해결**: Extension HTTP bridge에 `/deep-inspect` 엔드포인트 추가. `curl.exe http://127.0.0.1:34332/deep-inspect`로 bridge→renderer→재귀 DOM 분석→결과 JSON 반환. 결과는 `~/.gemini/antigravity/bridge/deep-inspect-result.json`에도 저장됨 +- **주의**: 시작 3초 후 자동 실행 + curl로 재트리거 가능. renderer가 2초마다 `/deep-inspect-trigger` 폴링 + +--- + +## 승인 전략 결정 체인 (다음 세션 필독) + +> **이 섹션은 2026-03-08~09 전체 세션의 시행착오를 요약합니다.** +> **다음 세션은 이미 거부된 접근을 다시 시도하지 마세요.** + +### ❌ 시도 후 거부된 접근 (재시도 금지) + +| # | 접근 | 결과 | 거부 사유 | +|---|------|------|-----------| +| 1 | LS RPC `HandleCascadeUserInteraction` | `socket hang up` | AG 빌드에서 핸들러 미구현 | +| 2 | LS RPC `ResolveOutstandingSteps` | CANCEL 동작 (승인이 아님) | 명칭과 달리 step을 취소함 | +| 3 | VS Code 7개 승인 명령 (`terminalCommand.run` 등) | `command not found` | AG 런타임에 미등록 | +| 4 | 키보드 시뮬레이션 (`type {Enter}`) | 빈 메시지 전송 | Chat input에 캡처됨 | +| 5 | `sendChatActionMessage` / `executeCascadeAction` | 미등록 | 119개 명령에 없음 | +| 6 | pywinauto (OS 레벨) | 사용자 결정 폐기 | 크로스플랫폼 불가, 창 겹침 문제 | +| 7 | CDP (Chrome DevTools Protocol) | **사용자 명시적 거부** | 비표준, `--remote-debugging-port` 필요 | +| 8 | Renderer v1 DOM Click (flat scan) | Run 버튼 미발견 | webview iframe 격리 | + +### ✅ 현재 진행 중인 접근 + +| # | 접근 | 상태 | 다음 단계 | +|---|------|------|-----------| +| 1 | **Renderer v3 Deep DOM Traversal** | 구현 완료, **미검증** | AG 재시작 → `/deep-inspect` 결과 확인 | +| 2 | `.executeJavaScript()` | v3에 포함, **미검증** | 위 결과에서 `hasExecJS=true`이면 유력 | +| 3 | TerminalExecutionPolicy.EAGER (Turbo) | 미시도, **최후 수단** | 통제권 포기이므로 사용자 승인 필요 | + +### 🔑 핵심 전제 +- Run/Accept 버튼은 **`vscode-webview://` origin의 격리된 iframe** 안에 있음 +- 외부 workbench DOM에서 `querySelector`로 접근 **불가** (cross-origin) +- `.executeJavaScript()`가 **유일한 표준 관통 경로** (Electron API) +- AG 패치 후 **반드시 풀 프로세스 재시작** 필요 (Reload Window 불충분)