<!-- FILE: _St/Auto8700/ai_read_패치.md | ROLE: Auto8700 현재 작업·검증대기 -->

## v286 exact target close API
- 상태: `[검증대기]`
- 단일 목표: IG가 자동생성 시 저장한 exact CDP targetId를 받아 오류 상태와 관계없이 page target 하나를 강제 종료한다.
- endpoint: `POST /api/cdp/ig/close_target`.
- 입력: `target_id` 필수, `expected_url/reason` 진단용.
- 처리: exact target resolve→browser `Target.closeTarget`→제거 확인→실패 시 1회 재시도.
- URL mismatch는 오류 탭·검은 화면에서 흔할 수 있으므로 종료 차단 조건이 아니다.
- 테스트: 정상 exact target close, URL 변경 target close, route 존재, 로그 토큰. 전체 pytest 77 passed.
- 실제 완료 기준: Windows 오류 탭에서 TC-01→TC-02 완료와 target 목록 제거 확인.

# Auto8700 패치 상태 — v286

## v281 CDP lifecycle preload
- `[코드반영·실제 Windows 검증대기]`
- local bootstrap page `/cdp-bootstrap?token=...` 제공.
- exact CDP target 확인 후 새 문서 선삽입과 빈 문서 즉시 설치.
- unload 등록 차단, beforeunload/pagehide/visibilitychange source/stack 추적.
- Auto8700 단위 테스트 22 passed 포함 전체 pytest 74 passed.

상태: `[코드반영·실제 Windows 검증대기]`

- `자동실행` 클릭이 CDP Chrome을 실제로 준비한 뒤 IG 자동시작 요청을 전송하도록 변경
- `CDP모드 실행` 클릭 시 기존 정상 탭 bring-to-front 또는 전용 CDP Chrome 실행
- `/json/new` GET 실패 경로를 PUT으로 수정하고 `Target.createTarget` 보조 경로 추가
- 8700 포트만 열린 상태와 Instagram Runtime 정상 상태 분리
- stale 전용 CDP Chrome만 선택적으로 종료·재실행
- 설정 화면에 실행 결과 표시
- `test_auto8700_module.py` 정적·단위 회귀 OK

실제 확인: Windows에서 자동실행·CDP모드 실행 버튼, CDP:PORT 복구, 일반 Chrome 유지.
