- WS response 파일에 _from_ws 마커 추가하여 processResponseFile 삭제 방지 - extractContextFromNearby에 sibling 탐색 추가 (AG Native DOM 구조 대응) - thinking 블록 (max-h-[200px]) 필터링으로 내부 사고 릴레이 차단 - DOM 탐색 depth 5→10 확대 + pre.font-mono 우선 탐색 - 사용자 메시지 셀렉터 (.select-text.rounded-lg) 추가
1.9 KiB
1.9 KiB
Retry Auto-Approve 흐름 복구 및 Observer 고도화
- 시간: 2026-04-18 09:20~23:50
- Commit:
pending - Vikunja: 신규 생성 예정
결정 사항
1. _from_ws 마커 기반 response 파일 보존
- 문제: WS 응답 핸들러가 response 파일 작성 → processResponseFile이 300ms 후 삭제 → Observer pollResponseGroup 실패
- 선택: response 파일에
_from_ws: true마커 추가, processResponseFile에서 스킵 - 이유: pending 파일 생성을 추가하는 것보다 단순하고, WS 핸들러에서 이미 tryApprovalStrategies를 실행하므로 중복 실행 방지도 함께 해결
2. 형제(sibling) DOM 탐색
- 문제: "Always run" 버튼의 조상(parentElement) 탐색으로는
pre.font-mono도달 불가 (footer.parentElement가 null) - 선택: 각 depth에서
node.parentElement.children을 순회하여 형제 요소의 code 블록 탐색 - 이유: AG Native DOM 구조에서 명령어는 footer의 형제 요소에 있으므로 조상 탐색만으로는 구조적으로 불가
3. Thinking 블록 필터링
- 문제: AI의 내부 사고 과정이 Discord에 릴레이됨
- 선택:
max-h-[200px]조상 확인으로 thinking 블록 식별 - 이유: thinking 블록은 접힌 상태에서 max-height가 200px로 제한되는 특징이 있음
시행착오
- depth 5→10 증가만으로 해결 시도 → 실패 (조상이 아닌 형제에 명령어가 있었음)
- Observer HTML 변경 후 Reload Window만 실행 → 실패 (AG 2번 재시작 필요)
- response 파일이 삭제되는 원인을 clickTrigger 타이밍으로 오인 → 실제는 processResponseFile의 isDomObserver 판별 실패
미완료
- 명령어 컨텍스트 추출 타이밍 이슈 (DOM 렌더링 전 scan 시 추출 실패)
- Observer pollResponseGroup이 시작되지 않는 케이스 (POST /pending 이전에 trigger-click 소비)