# Renderer v3 — webview iframe 격리 확인 + deep DOM traversal

- **시작**: 15:32 KST
- **종료**: 17:59 KST
- **상태**: 🔧 미완료 (AG 재시작 후 DOM-DUMP 결과 확인 필요)

## 핵심 발견

### webview iframe 격리 확인
- Bridge HTTP 서버(port 34332) 정상 동작: `/ping→pong`, `/trigger-click→{action:null}`
- Extension log 분석: Renderer DOM Observer가 감지한 버튼들은 `RunAlt+?` 등 외부 DOM trust-level 버튼
- **Run/Accept 버튼은 webview iframe (`vscode-webview://` origin) 안에 존재**
- 외부 workbench DOM (`vscode-file://` origin)에서는 cross-origin으로 접근 불가

### v3 deep DOM traversal 구현
`generateApprovalObserverScript()` 전면 업그레이드:

1. **`deepFindButtons()`** — 패턴 매칭 버튼을 재귀적으로 검색:
   - Main document (기존)
   - iframe `contentDocument` (same-origin이면 접근 가능)
   - `<webview>.executeJavaScript()` (Electron API — webview 내부 코드 실행)
   - Shadow DOM 재귀 탐색

2. **`dumpDOMStructure()`** — 시작 3초 후 1회 실행:
   - 모든 iframe 목록 + 접근성 (ACCESSIBLE/BLOCKED)
   - 모든 `<webview>` 목록 + 접근성
   - 메인 DOM 버튼 목록 (처음 10개)

3. **3-Phase trigger-click**:
   - Phase 1: deep DOM search (main + iframes + shadow)
   - Phase 2: `<webview>.executeJavaScript()` (DOM 미접근 시 fallback)
   - Phase 3: iframe direct access retry

## 다음 단계

1. **AG 완전 재시작** → Renderer v3 스크립트 로딩 확인
2. DevTools에서 `[GB Observer] DOM-DUMP:` 로그 확인
3. iframe/webview 접근성 확인 → ACCESSIBLE이면 즉시 E2E 테스트
4. BLOCKED이면 다음 대안 탐색

## 파일 변경

| 파일 | 변경 |
|------|------|
| `extension/src/extension.ts` | v3 renderer: deepFindButtons, dumpDOMStructure, 3-phase trigger-click |
| `.agents/references/known-issues.md` | webview iframe 격리 확인 + v3 기록 |
