Files
gravity_control/docs/devlog/entries/20260418-001.md
Variet Worker 139ad3ee93 fix(extension): Retry auto-approve 흐름 복구 + Observer 형제 탐색 + thinking 필터링 (v0.5.79)
- 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) 추가
2026-04-19 03:46:39 +09:00

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로 제한되는 특징이 있음

시행착오

  1. depth 5→10 증가만으로 해결 시도 → 실패 (조상이 아닌 형제에 명령어가 있었음)
  2. Observer HTML 변경 후 Reload Window만 실행 → 실패 (AG 2번 재시작 필요)
  3. response 파일이 삭제되는 원인을 clickTrigger 타이밍으로 오인 → 실제는 processResponseFile의 isDomObserver 판별 실패

미완료

  • 명령어 컨텍스트 추출 타이밍 이슈 (DOM 렌더링 전 scan 시 추출 실패)
  • Observer pollResponseGroup이 시작되지 않는 케이스 (POST /pending 이전에 trigger-click 소비)