From 520d36ea43258d5d9652e8922b781a593a237ee2 Mon Sep 17 00:00:00 2001 From: CD Date: Mon, 9 Mar 2026 21:44:54 +0900 Subject: [PATCH] docs: E2E approval flow success verification #task-264 #task-255 --- docs/devlog/2026-03-09.md | 15 +++++------ docs/devlog/entries/20260309-008.md | 39 +++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 docs/devlog/entries/20260309-008.md diff --git a/docs/devlog/2026-03-09.md b/docs/devlog/2026-03-09.md index 2fae0a6..00c80f1 100644 --- a/docs/devlog/2026-03-09.md +++ b/docs/devlog/2026-03-09.md @@ -2,10 +2,11 @@ | # | 시간 | 작업 설명 | 커밋 | 상태 | |---|------|----------|------|------| -| 001 | 08:00~09:17 | 승인 실행 메커니즘 연구 + step-type별 VS Code 명령 분기 구현 | included in 002 | 🔧 | -| 002 | 09:21~15:07 | SDK 승인 명령 미등록 확정 + Renderer DOM Click 구현 | `4497e96` | 🔧 | -| 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 | 🔧 | -| 007 | 20:04~20:28 | CSP script-src `'unsafe-inline'` 패치 (renderer 미실행 진짜 근본 원인) | `08077e8` | 🔧 | +| 001 | 08:00~09:17 | 승인 실행 메커니즘 연구 + step-type별 VS Code 명령 분기 구현 | included in 002 | ✅ | +| 002 | 09:21~15:07 | SDK 승인 명령 미등록 확정 + Renderer DOM Click 구현 | `4497e96` | ✅ | +| 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 | ✅ | +| 007 | 20:04~20:28 | CSP script-src `'unsafe-inline'` 패치 (renderer 미실행 진짜 근본 원인) | `08077e8` | ✅ | +| 008 | 21:00~21:30 | **E2E 승인 플로우 성공 검증** — AG 재시작 후 renderer v3 실행 확인 + Discord 승인→명령 실행 | pending | ✅ | diff --git a/docs/devlog/entries/20260309-008.md b/docs/devlog/entries/20260309-008.md new file mode 100644 index 0000000..5156a32 --- /dev/null +++ b/docs/devlog/entries/20260309-008.md @@ -0,0 +1,39 @@ +# 008: E2E 승인 플로우 성공 검증 + +**시간**: 21:00~21:30 +**상태**: ✅ 완료 +**관련 태스크**: #264, #255 + +## 요약 + +AG 재시작 후 **E2E Discord 승인 플로우가 최초 성공**: + +1. AI가 `echo` 명령 실행 → AG에서 Run 버튼 승인 대기 +2. Extension이 step-probe로 `CORTEX_STEP_STATUS_WAITING` 감지 → pending 파일 생성 +3. Discord 봇이 pending 읽어 채널에 승인 요청 전달 +4. 사용자가 Discord에서 ✅ 승인 클릭 +5. 봇이 response 파일 작성 → Extension이 읽음 → AG에서 명령 실행됨 + +## 성공 아키텍처 + +``` +AG (AI) → Extension (step_probe RPC poll) → bridge/pending/*.json + → Discord Bot → ⚠️ 승인 요청 (embed + buttons) + → User clicks ✅ → bridge/response/*.json + → Extension reads → trigger-click/DOM click → 명령 실행 +``` + +## 핵심 전제 조건 (이것들이 모두 갖춰져야 동작) + +1. **CSP `'unsafe-inline'`**: workbench.html의 `script-src`에 필수 +2. **V8 CachedData 삭제**: HTML 패치 변경 시 `%APPDATA%\Antigravity\CachedData\*` 삭제 필수 +3. **product.json 체크섬**: 수정된 HTML 파일의 SHA256 해시 업데이트 +4. **양쪽 HTML 패치**: workbench.html + workbench-jetski-agent.html 모두 inline 스크립트 +5. **AG 풀 프로세스 재시작**: Reload Window로는 불충분 (File → Exit → 재실행) + +## 발견된 이슈 (다음 커밋에서 수정 예정) + +- 중복 pending (DOM scan + step-probe 동시 발생) +- 버튼 텍스트에 키보드 단축키 포함 (`RunAlt+↵`) +- 봇 reject 시 ResolveOutstandingSteps가 AI 작업 취소 +- Stall fallback 40초가 불필요 (step probe 즉시 감지로 대체됨)