fix(bridge): 5 bug fixes for approval signal drop and Discord relay
- DEDUP: add conversation_id guard to prevent cross-session step_index collision - step_probe: suppress pending when projectName=default (empty window) - watchCommandsDir: add 3s polling fallback (fs.watch silent fail on Windows) - auto toggle: write chat_snapshot confirmation back to Discord - bot on_message: add message ID dedup for Gateway event replay
This commit is contained in:
31
docs/devlog/entries/20260315-001.md
Normal file
31
docs/devlog/entries/20260315-001.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# 승인 신호 누락 진단 & 5건 버그 수정
|
||||
|
||||
- **시간**: 2026-03-15 07:00~08:16
|
||||
- **Commit**: `pending`
|
||||
|
||||
## 결정 사항
|
||||
|
||||
### 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 중복 방지 |
|
||||
Reference in New Issue
Block a user