fix(bridge): workbench.html inline v3 script injection + both-HTML loop patch #task-264

This commit is contained in:
2026-03-09 19:36:09 +09:00
parent 23bd8f4613
commit 5971a524ea
6 changed files with 101 additions and 33 deletions

View File

@@ -194,6 +194,14 @@
---
### [2026-03-09] workbench.html inline 스크립트 미삽입 — jetski만 패치한 버그
- **증상**: AG 재시작 후 `/deep-inspect` timeout — renderer v3 스크립트 미로딩
- **원인**: `setupApprovalObserver()``workbench-jetski-agent.html`에만 inline 삽입하고, `workbench.html`에는 외부 `<script src>`만 추가. `vscode-file://` 프로토콜은 커스텀 .js 파일을 서빙하지 않으므로 사실상 미로딩
- **해결**: 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-08~09 전체 세션의 시행착오를 요약합니다.**
@@ -216,7 +224,7 @@
| # | 접근 | 상태 | 다음 단계 |
|---|------|------|-----------|
| 1 | **Renderer v3 Deep DOM Traversal** | 구현 완료, **미검증** | AG 재시작 → `/deep-inspect` 결과 확인 |
| 1 | **Renderer v3 Deep DOM Traversal** | 구현+배포+pre-patch 완료, **AG 재시작 후 검증 필요** | AG 재시작 → `/deep-inspect` 결과 확인 |
| 2 | `<webview>.executeJavaScript()` | v3에 포함, **미검증** | 위 결과에서 `hasExecJS=true`이면 유력 |
| 3 | TerminalExecutionPolicy.EAGER (Turbo) | 미시도, **최후 수단** | 통제권 포기이므로 사용자 승인 필요 |
@@ -225,3 +233,5 @@
- 외부 workbench DOM에서 `querySelector`로 접근 **불가** (cross-origin)
- `<webview>.executeJavaScript()`**유일한 표준 관통 경로** (Electron API)
- AG 패치 후 **반드시 풀 프로세스 재시작** 필요 (Reload Window 불충분)
- **양쪽 HTML (workbench.html + workbench-jetski-agent.html) 모두 inline 패치** 필수