fix(bridge): multi-window isolation v0.3.4

This commit is contained in:
2026-03-08 16:56:23 +09:00
parent c97414cd37
commit b92c3c072f
6 changed files with 745 additions and 257 deletions

View File

@@ -14,3 +14,4 @@
| 10 | 08:00 | GetCascadeTrajectorySteps 완전 제거 + stall-based WAITING 감지 | `9b9c9c7` | ✅ |
| 11 | 08:10 | Stall 감지 calibration + VS Code 명령어 기반 승인 핸들러 | `f1f9a0b` | 🔧 |
| 12 | 11:30~14:35 | 승인 로직 정밀 디버깅: IDLE→stall 전환, lastModifiedTime 구분, RPC/Commands 전수 테스트, ResolveOutstandingSteps cancel 발견 | - | 🔧 |
| 13 | 15:00~16:52 | Multi-window 격리 (v0.3.1→0.3.4): 세션 필터, per-project 포트, 등록 경쟁 조건 수정, DOM Observer 렌더러 디버깅 | - | 🔧 |

View File

@@ -0,0 +1,29 @@
# 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건 추가