40 lines
1.7 KiB
Markdown
40 lines
1.7 KiB
Markdown
# 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 즉시 감지로 대체됨)
|