Files
gravity_control/docs/devlog/entries/20260414-001.md

2.4 KiB

Observer v9 E2E 검증 + v10-diag 진단 추가

  • 시간: 2026-04-14 07:29~07:36
  • Commit: pending
  • Vikunja: #task-619 → 진행중

검증 결과

동작 확인 (정상)

  1. Observer v9 스크립트 실행: /ping 수신 확인 (22:30:13~)
  2. BEACON ping: /ping?beacon=1&t=... 형태로 GET /ping 수신
  3. DOM dump: dump_html_5.json (7858 bytes) 정상 저장
  4. WS Hub 연결: wsConnected: true
  5. 세션 감지: activeSessionId: 39c51225 (현재 세션)
  6. pending POST: /pending1776119428450_gnpw 등 다수 수신

실패: 컨텍스트 추출

  • 모든 pending에서 cmd="Always run", btns=1, ctx="Always run"
  • extractContextFromNearby() 실패: pre/code 요소를 찾지 못함
  • collectSiblingButtons() 실패: 1개 버튼만 감지 ("Cancel" 미감지)
  • sessionStalled: true + lastPendingStepIndex: -1 (trajectory not found)

원인 분석 (추정)

  • AG Native UI의 "Always run" 버튼 근처에 <pre>, <code>, [class*="terminal"] 요소가 없음
  • 실제 명령어 텍스트가 다른 요소 유형(span, div 등)에 담겨있을 가능성
  • DOM 구조가 이전 세션에서 확인한 것과 다를 수 있음 (Settings/Launchpad dump vs 대화 dump)

수정 사항 (v10-diag)

observer-script.ts

  • extractContextFromNearby(): 각 depth에서 tag/class/codeEls 수를 _debugTrail에 기록
  • depth ≤ 5에서 span, div, p 요소의 실제 텍스트도 trail에 포함
  • 성공 시 CONTEXT-OK, 실패 시 CONTEXT-FAIL 로그 출력
  • pending payload에 _debug_trail 필드 추가

http-bridge.ts

  • _handlePending()에서 _debug_trail 필드를 [HTTP-DIAG] trail: 로그로 출력

미완료

  1. AG 재시작 필요 — v10-diag 빌드 완료 + V8 캐시 삭제됨, AG 재시작 후 trail 분석 필요
  2. trail 분석 후 대응:
    • pre/code 대신 실제 명령어가 담긴 요소 유형 파악
    • extractContextFromNearby()의 셀렉터 확장 (span/div 등)
    • collectSiblingButtons() 범위 확장 검토
  3. "trajectory not found" 에러 — AG Native 세션이 Cascade trajectory API에 등록되지 않는 근본 문제 (known-issues에 이미 기록)

결정 사항

  • 진단을 먼저 진행하는 것이 올바른 접근 — blind fix 대신 실제 DOM 구조를 trail로 확인한 후 정확한 셀렉터 수정
  • trail 데이터가 extension.log에 기록되므로 AG 재시작 후 즉시 확인 가능