# DOM Observer 분석 + diff_review 수정 + 배포

- **시간**: 2026-03-16 13:25~14:20
- **Commit**: `f302984`
- **Vikunja**: #384 diff_review 원격 승인 테스트 → 진행중

## 분석 결과

extension.ts 3,166줄 전체를 5개 기능 영역으로 분류:
1. AG 정보 추출 (SDK, 세션 모니터, step probe) ~700줄
2. 승인 실행 (RPC) ~200줄
3. 파일 기반 IPC (리팩토링 대상) ~500줄
4. DOM Observer 인프라 (제거 검토) ~1,100줄
5. 기타 유틸 ~200줄

**DOM Observer는 제거 가능하다** — RPC가 모든 승인을 커버하며, diff_review도 VS Code 명령으로 처리 가능.
단, diff_review 원격 실행이 먼저 동작해야 DOM 제거에 동의 가능 (사용자 요구).

## 결정 사항
- write 도구를 `code_edit` step_type으로 분리 (기존: `file_permission`에 혼재)
- diff_review 핸들러를 2-strategy 방식으로 리팩토링:
  1. `AcknowledgeCascadeCodeEdit` RPC (UI 조작 불필요)
  2. `openReviewChanges` + 파일 포커스 + `agentAcceptAllInFile` (fallback)
- pending에 `modified_files`(전체경로)와 `edit_step_indices`(step 번호) 포함
- diff_review pending 생성을 8초 지연 (AI 응답이 먼저 Discord 도착)

## 테스트 결과 (1차)
- ✅ Discord에 Accept all / Reject all 버튼 표시 확인
- ❌ AcknowledgeCascadeCodeEdit RPC 미실행 — 소스 수정 후 컴파일+배포 누락 발견
- ❌ AI 응답이 승인 버튼보다 늦게 Discord에 도착

## 수정 및 배포
- Extension 재컴파일+배포 (2-strategy diff_review 핸들러 포함)
- diff_review pending 8초 지연 (`setTimeout`) 추가
- known-issues 2건 추가 (isDirty 실패, pending 순서)

## 미완료
- **AG 풀 재시작 후 2차 E2E 테스트** 필요
  - AcknowledgeCascadeCodeEdit RPC 성공 확인
  - AI 응답 → 승인 버튼 순서 확인
- DOM Observer 제거 리팩토링 → diff_review 동작 확인 후 진행
