fix(bridge): approval flow robustness — pending cleanup, MERGE dedup, false positive filter, auto_resolve, 30min timeout

This commit is contained in:
2026-03-10 00:35:41 +09:00
parent 7fdefb0c63
commit 373c0f7ddc
8 changed files with 340 additions and 22 deletions

View File

@@ -13,3 +13,4 @@
| 009 | 21:33~22:28 | 승인 플로우 튜닝 — dedup + 텍스트 정제 + stall fallback 제거 + reject 안전화 | `18b3734` | ✅ |
| 010 | 22:38~23:10 | E2E 검증 + Retry/Dismiss/Reject all 버튼 패턴 추가 + V8 캐시 삭제 | `4ba65f9` | ✅ |
| 011 | 23:11~23:20 | agent_guide 템플릿 통합 — 워크플로우 교체 + 플레이스홀더 적용 + 중복 helper 정리 | `4ba65f9` | ✅ |
| 012 | 23:30~00:31 | 승인 플로우 안정화 — pending 누적/false positive/MERGE dedup/auto_resolve/timeout | `` | 🔧 |

View File

@@ -0,0 +1,16 @@
# 승인 플로우 안정화 — pending 누적/MERGE dedup/false positive/auto_resolve
- **시간**: 2026-03-09 23:30 ~ 2026-03-10 00:31
- **Commit**: `72d718f`
- **Vikunja**: #276 → 미완료 (검증 필요)
## 결정 사항
- **MERGE vs. Skip**: step_probe가 DOM observer pending에 상세 명령어를 MERGE (이전: skip). DOM이 먼저 "Run" pending 생성 → step_probe가 10초 후 상세 정보로 UPDATE
- **봇 Deferred Sending**: 짧은 명령어(≤15자) 4 cycles(12s) 대기. 매 cycle re-read하여 MERGE 즉시 전송. MERGE 타이밍(~10s)보다 defer를 길게 설정
- **False Positive 필터**: renderer HTML 인라인 스크립트는 extension.js 배포로 안 바뀜 → HTTP POST /pending 핸들러에 서버사이드 필터 추가. `sessionStalled` 플래그로 "Run" 버튼 게이팅
- **auto_resolve**: delta>0 발생 시 pending을 "auto_resolved"로 마킹 → 봇이 Discord 메시지를 "✅ AG에서 직접 승인됨"으로 업데이트
## 미완료
- AG 재시작 후 E2E 검증 필요 (Vikunja #276)
- error recovery (Retry) 감지 실제 동작 확인 필요
- "Accept all" diff review bar 버튼 Discord 릴레이 미확인