# Multi-Window 격리 + DOM Observer 렌더러 디버깅

- **시간**: 2026-03-08 15:00~16:52
- **Vikunja**: 관련 태스크 없음 (신규 생성 필요)

## 결정 사항

### 1. 세션 등록 방식: 폴링 등록 → 활동 기반 지연 등록
- **이유**: 두 확장이 같은 LS를 공유하므로 `GetAllCascadeTrajectories` 결과에서 세션 소유 창을 구분 불가
- **방식**: `writeRegistration()`을 `setupMonitor` 폴링에서 제거하고, `writeChatSnapshot`/`writePendingApproval` 호출 시에만 등록. 이 두 함수는 올바른 `projectName`을 보장

### 2. 포트 디스커버리: 단일 파일 → JSON 멀티포트
- **이유**: 양쪽 확장이 같은 JS 파일(`ag-sdk-variet-gravity-bridge.js`)을 덮어씀
- **방식**: `ag-bridge-ports.json`에 `{projectName: port}` 형태로 모든 확장이 추가. 렌더러가 JSON을 읽고 모든 포트에 ping

### 3. DOM Observer 경로 vs VS Code 명령어 경로 분리
- **이유**: DOM observer 승인은 렌더러가 직접 버튼 클릭 → VS Code 명령어 불필요
- **방식**: `processResponseFile`에서 `auto_detected && source=dom_observer`이면 VS Code 명령어 건너뜀

## 미완료

1. **렌더러 스크립트 미실행**: `workbench.html`에 script 태그 존재하나 `[GB Observer]` 로그 없음
   - Antigravity 재설치 후 확장 재설치로 깨끗한 상태에서 테스트 필요
2. **Discord 승인 클릭스루**: E2E 미검증 — 렌더러 DOM click 경로가 작동해야 완성
3. **확장 버전**: v0.3.4 빌드 완료 (VSIX 존재), 재설치 후 적용 필요

## 변경 파일 (미커밋)
- `extension/src/extension.ts` — v0.3.1→0.3.4 (세션 필터, 포트 격리, 경쟁 조건, DOM 경로 분리)
- `.agents/references/known-issues.md` — 3건 추가
