diff --git a/.agents/references/known-issues.md b/.agents/references/known-issues.md index 4ac9413..f2ce753 100644 --- a/.agents/references/known-issues.md +++ b/.agents/references/known-issues.md @@ -200,6 +200,12 @@ - **해결**: HTML 패치 로직을 `htmlFiles = ['workbench.html', 'workbench-jetski-agent.html']` 루프로 변경하여 **양쪽 모두 inline** 삽입. 수동 pre-patch 스크립트(`/tmp/patch_workbench.py`)로 즉시 적용 + product.json 체크섬 업데이트 - **주의**: **항상 양쪽 HTML을 동일하게 패치**. AG가 어느 HTML을 로드할지 런타임까지 알 수 없음. pre-patch 후 1회 풀 재시작이면 충분 (체크섬 사전 업데이트 완료) +### [2026-03-09] V8 CachedData — 체크섬 정상이어도 스크립트 미실행 +- **증상**: HTML 패치 + product.json 체크섬 일치 + Bridge 서버 정상 → 그런데도 renderer 스크립트 미실행 (`/deep-inspect` timeout) +- **원인**: AG 프로세스 인자 `--code-cache-schemes=vscode-webview,vscode-file`에 의해 V8 바이트코드 캐시가 `vscode-file://` 프로토콜에도 적용. product.json 체크섬 검증과 V8 코드 캐시는 **별도 메커니즘** — 체크섬이 맞아도 V8은 `%APPDATA%\Antigravity\CachedData`의 이전 컴파일된 바이트코드를 재사용 +- **해결**: `%APPDATA%\Antigravity\CachedData\*` 전체 삭제 후 AG 풀 재시작. AG 실행 중에도 삭제 가능 (파일 잠금 없음 확인됨) +- **주의**: CachedData 삭제 후 첫 시작이 약간 느릴 수 있음 (V8이 모든 JS를 재컴파일). **HTML 패치 변경 시마다 CachedData 삭제 필수**. `product.json` 체크섬 업데이트만으로는 불충분 + --- ## 승인 전략 결정 체인 (다음 세션 필독) @@ -224,7 +230,7 @@ | # | 접근 | 상태 | 다음 단계 | |---|------|------|-----------| -| 1 | **Renderer v3 Deep DOM Traversal** | 구현+배포+pre-patch 완료, **AG 재시작 후 검증 필요** | AG 재시작 → `/deep-inspect` 결과 확인 | +| 1 | **Renderer v3 Deep DOM Traversal** | 패치+체크섬 OK, **V8 CachedData 삭제 완료, AG 재시작 후 검증** | AG 재시작 → `curl.exe http://127.0.0.1:34332/deep-inspect` | | 2 | `.executeJavaScript()` | v3에 포함, **미검증** | 위 결과에서 `hasExecJS=true`이면 유력 | | 3 | TerminalExecutionPolicy.EAGER (Turbo) | 미시도, **최후 수단** | 통제권 포기이므로 사용자 승인 필요 | @@ -234,4 +240,5 @@ - `.executeJavaScript()`가 **유일한 표준 관통 경로** (Electron API) - AG 패치 후 **반드시 풀 프로세스 재시작** 필요 (Reload Window 불충분) - **양쪽 HTML (workbench.html + workbench-jetski-agent.html) 모두 inline 패치** 필수 +- HTML 패치 변경 시 **`%APPDATA%\Antigravity\CachedData` 삭제 필수** (V8 바이트코드 캐시 무효화) diff --git a/docs/devlog/2026-03-09.md b/docs/devlog/2026-03-09.md index d5ce454..303503d 100644 --- a/docs/devlog/2026-03-09.md +++ b/docs/devlog/2026-03-09.md @@ -7,3 +7,4 @@ | 003 | 15:32~17:59 | Renderer v3 deep DOM traversal (iframe/webview/shadow 관통) | `32bf5ae` | 🔧 | | 004 | 18:08~18:23 | Deep inspect HTTP endpoint (/deep-inspect) + 렌더러 재귀 인스펙터 | `a07d9d3` | 🔧 | | 005 | 18:30~19:28 | workbench.html inline v3 패치 누락 수정 + pre-patch 검증 | `b61cff1` | 🔧 | +| 006 | 19:38~19:56 | V8 CachedData 진단 + 캐시 삭제 (renderer 미실행 근본 원인) | docs only | 🔧 | diff --git a/docs/devlog/entries/20260309-006.md b/docs/devlog/entries/20260309-006.md new file mode 100644 index 0000000..451e90e --- /dev/null +++ b/docs/devlog/entries/20260309-006.md @@ -0,0 +1,43 @@ +# V8 CachedData 진단 + 캐시 삭제 + +- **시작**: 2026-03-09 19:38 KST +- **종료**: 2026-03-09 19:56 KST +- **상태**: 🔧 미완료 (AG 재시작 후 /deep-inspect 검증 필요) +- **Vikunja**: #264 → 진행중 + +## 핵심 발견 + +### Root cause: V8 바이트코드 캐시가 패치된 HTML을 무시 + +이전 세션(#005)에서 HTML 패치 + product.json 체크섬 일치를 확인했으나, AG 재시작 후 `/deep-inspect` timeout 발생. + +**진단 결과:** +- Bridge 서버: ✅ 정상 (`/ping → pong`, port 34332) +- HTML 패치: ✅ 양쪽 HTML에 v3 inline 스크립트 존재 (deepFindButtons, HARDCODED_PORT, deep-inspect) +- product.json 체크섬: ✅ 실제 파일 해시와 정확히 일치 +- Extension v0.3.5: ✅ 모든 v3 코드 포함 +- **Renderer: ❌ 미응답** — 스크립트가 HTML에 있지만 실행되지 않음 + +**원인**: AG 프로세스 인자 `--code-cache-schemes=vscode-webview,vscode-file` +- V8 바이트코드 캐시가 `vscode-file://` 프로토콜에도 적용 +- `%APPDATA%\Antigravity\CachedData\` (111MB)에 이전 컴파일된 바이트코드 보유 +- product.json 체크섬 검증과 V8 코드 캐시는 **별도 메커니즘** +- 체크섬이 맞아도 V8은 캐시된 바이트코드를 우선 사용 + +### 조치 +- `%APPDATA%\Antigravity\CachedData\*` 전체 삭제 → 0 items remaining +- AG 실행 중에도 삭제 가능 (파일 잠금 없음 확인) + +## 다음 단계 (다음 세션) + +1. AG 재시작 (CachedData 없으므로 V8이 HTML을 새로 파싱) +2. `curl.exe http://127.0.0.1:34332/deep-inspect` 실행 +3. 결과 JSON 받으면 webview iframe 접근성 확인 +4. ACCESSIBLE → E2E 승인 테스트, BLOCKED → executeJavaScript() 확인 + +## 파일 변경 + +| 파일 | 변경 | +|------|------| +| `.agents/references/known-issues.md` | V8 CachedData 이슈 추가 + 승인 전략 상태 업데이트 + 핵심 전제에 CachedData 삭제 필수 추가 | +| `docs/devlog/2026-03-09.md` | #006 항목 추가 |