# 승인 신호 누락 진단 & 5건 버그 수정

- **시간**: 2026-03-15 07:00~08:16
- **Commit**: `40e3cd5`

## 결정 사항

### DEDUP conversation_id 가드
- `step_index` 만으로 중복 판정 → 크로스 세션 충돌 빈번
- `project_name`만으로 불충분 (같은 Extension이 여러 세션 관찰 가능)
- **`conversation_id`까지 비교**가 정확한 DEDUP 조건

### fs.watch 대신 polling
- Windows에서 `fs.watch` silent fail 확인 (실측 테스트)
- response watcher도 같은 이슈 있음 (known-issue [2026-03-11])
- **모든 watcher에 polling fallback 병행** 원칙 확립

### stallProbed 시간 기반 리셋 — 불채택
- 유저 의견: fix #1로 DEDUP 해결되면 자연스럽게 delta>0 → stallProbed 리셋
- 30초 리셋은 LS stale 시 불필요한 RPC 호출만 증가
- LS stale은 AG 내부 문제 → AG 재시작이 올바른 해결

## 5건 수정 요약

| # | 파일 | 수정 |
|---|------|------|
| 1 | extension.ts | DEDUP `conversation_id` 가드 |
| 2 | extension.ts | `projectName=default` pending 억제 |
| 3 | extension.ts | commands dir 폴링 fallback |
| 4 | extension.ts | auto 확인 chat_snapshot |
| 5 | bot.py | `on_message` 메시지 ID 중복 방지 |
