feat(bridge): renderer DOM click approval + command discovery diagnostic
- CMD-DISCOVERY: enumerate all antigravity.* commands at activation (72) and during WAITING state (119) - APPROVAL-CMD-CHECK: re-check commands inside tryApprovalStrategies for dynamic registration - Confirmed: ALL 7 SDK approval commands NOT REGISTERED in current AG build - Confirmed: sendChatActionMessage, executeCascadeAction also NOT REGISTERED - Replaced failed keyboard simulation (Strategy 2) with renderer DOM click approach: - Added clickTrigger variable + GET /trigger-click HTTP endpoint - Renderer polls /trigger-click every 1s, clicks Run/Accept button via DOM - Updated known-issues.md with comprehensive findings - Added devlog entry 20260309-002
This commit is contained in:
49
docs/devlog/entries/20260309-002.md
Normal file
49
docs/devlog/entries/20260309-002.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 승인 명령 탐색 & Renderer DOM Click 구현
|
||||
|
||||
- **시작**: 09:21 KST
|
||||
- **종료**: 15:07 KST
|
||||
- **상태**: 🔧 미완료 (AG 재시작 후 E2E 검증 필요)
|
||||
|
||||
## 핵심 발견
|
||||
|
||||
### 1. SDK 승인 명령 미등록 (Critical)
|
||||
AG 런타임에서 `vscode.commands.getCommands(true)` 로 확인:
|
||||
- **활성화 시**: 72개 `antigravity.*` 명령
|
||||
- **세션 활성 중**: 119개 (47개 동적 등록)
|
||||
- **SDK 7개 승인 명령**: 전부 **미등록**
|
||||
- `antigravity.terminalCommand.run/accept/reject` ❌
|
||||
- `antigravity.command.accept/reject` ❌
|
||||
- `antigravity.agent.acceptAgentStep/rejectAgentStep` ❌
|
||||
- `antigravity.agentPanel.focus` ❌ (`agentSidePanel.focus`만 존재)
|
||||
|
||||
### 2. RPC 전략 실패
|
||||
- `HandleCascadeUserInteraction` 3 variants → `socket hang up`
|
||||
- `ResolveOutstandingSteps` → `run state not found` (500)
|
||||
|
||||
### 3. 키보드 시뮬레이션 실패
|
||||
- `toggleChatFocus` + `type {Enter}` → 채팅 입력창에 엔터 전송 (빈 메시지 전송 ❌)
|
||||
- `sendPromptToAgentPanel('')` → 빈 프롬프트 전송 됨 (승인이 아님 ❌)
|
||||
- `agentSidePanel.focus` → 성공하지만 승인 안 됨
|
||||
|
||||
### 4. sendChatActionMessage / executeCascadeAction 미등록
|
||||
- 119개 명령 중 이 두 명령도 존재하지 않음
|
||||
|
||||
### 5. Renderer DOM Click 구현 완료 (미검증)
|
||||
- Extension HTTP bridge에 `GET /trigger-click` 엔드포인트 추가
|
||||
- `tryApprovalStrategies()` Strategy 2 → `clickTrigger` 플래그 설정
|
||||
- Renderer 스크립트에 1초 폴링 추가 → `/trigger-click` 수신 시 DOM에서 Run/Accept 버튼 `btn.click()`
|
||||
- **미검증**: Reload Window로는 workbench HTML 재파싱 안 됨. **AG 완전 재시작 필요**
|
||||
|
||||
## 다음 단계
|
||||
|
||||
1. **AG 완전 재시작** → renderer 스크립트 활성화 확인
|
||||
2. **봇 시작 + Discord 승인** → `[HTTP] trigger-click consumed` 로그 확인
|
||||
3. **webview iframe 접근 여부** 확인 — renderer가 iframe 안의 Run 버튼에 접근 가능한지
|
||||
4. 실패 시 → AG Settings에서 `TerminalExecutionPolicy.EAGER` 모드 탐색
|
||||
|
||||
## 파일 변경
|
||||
|
||||
| 파일 | 변경 |
|
||||
|------|------|
|
||||
| `extension/src/extension.ts` | CMD-DISCOVERY 진단, APPROVAL-CMD-CHECK(동적), clickTrigger + /trigger-click, Strategy 2 교체, renderer trigger-click 폴링 |
|
||||
| `.agents/references/known-issues.md` | #19 SDK 승인 명령 미등록 기록 |
|
||||
Reference in New Issue
Block a user