<!-- FILE: _St/IG_StYellow/ai_read_삭제.md | ROLE: IG 폐기·비활성·복원 금지 기록 -->

## v323 JPG 자동/WS direct 연결 폐기 · 복원 금지
- 자동 Top 후보·파일수·목표·ETA·현재/전체 집계에 JPG를 다시 넣지 않는다. 자동다운로드는 MP4만 취급한다.
- JPG 자동 저장은 Cache8701 전담이다. IG 자동다운로드에서 JPG 파일 저장을 다시 실행하지 않는다.
- 수동 JPG를 `IGBLUE_DOWNLOAD_URL → Background → WS8771 direct` 경로로 다시 보내지 않는다.
- 수동 JPG는 MAIN 원래 `fetch → Blob → objectURL → a.download` 브라우저 다운로드만 사용하며 자동 진행/완료 상세 상태에 섞지 않는다.
- 이 허용은 수동 JPG 단건에만 해당한다. 과거 v279aa에서 폐기한 일반/자동 MAIN 직접 저장 경로를 MP4·자동다운로드까지 확장 복원하지 않는다.

## v321 원인 오판 폐기 · 복원 금지
- “Settings가 안 열린 원인은 Instagram target gate”라는 v321 가정을 폐기한다. 실제 원인은 v319 dead-code 제거 중 설정 전역 선언까지 accidental deletion한 것이었다.
- v321의 target gate 제거 패치를 다시 복원하지 않는다. v322에서 v317 handler 원형과 전역 선언을 복구했고 사용자 실제 Chrome에서 정상 확인했다.


## v303 회귀 금지
- Main startup X, 원본 링크 이벤트 삭제, 대상 0개 대기 전환, Video OFF 전체 중단을 폐기한다.


## v288 패키지 회귀 금지
- Analyze8780 패키지 버전 갱신을 이유로 v286 자동 fresh-tab·exact target 종료·v279c WS direct 경로를 변경하지 않는다.
- manifest 표시 버전과 Side·MAIN marker가 서로 다른 버전을 표시하지 않는다.


## v286 폐기·회귀 금지
- `0/N`에서 Explore/current-page snapshot을 자동 후보로 먼저 실행하지 않는다.
- v284의 같은 탭 직접 URL 변경과 v285의 Instagram 검색 UI 이동을 자동 계정 이동 기준으로 복원하지 않는다.
- 이전 자동 탭이 unload/Content 응답을 보내야만 닫히는 협조 종료를 사용하지 않는다.
- user-created Instagram 탭을 managed auto tab처럼 닫지 않는다.
- targetId 없이 URL만 대조해 다른 Instagram 탭을 닫지 않는다.
- 자동 WS8771 direct와 수동 Chrome/WS 분리 경로를 재통합하지 않는다.

## v282 화면 중복·반복 렌더링 폐기
- MAIN 우상단의 별도 `CDP:O` 표시와 별도 `탭 N · OWNER` 표시를 동시에 노출하는 UI는 폐기한다.
- MAIN `DOM 진단복사` 버튼과 `MAIN v 👁` 버튼은 통합 상태줄과 `_ / □`에 기능이 합쳐졌으므로 화면에서 다시 노출하지 않는다.
- 상세 진단 패널을 700ms마다 `textContent`로 다시 쓰는 방식은 텍스트 선택과 복사를 끊으므로 복원 금지한다.
- 긴 진단 전체를 hover 툴팁과 상세 패널에 중복 표시하는 방식은 복원 금지한다. hover는 짧은 사용 안내만 허용한다.
- SIDE 계정 시작 index 0을 헤더 클릭·직접 편집만으로 1로 바꾸게 하는 방식은 `1부터` 버튼으로 보완했으므로 단독 조작 방식으로 되돌리지 않는다.


## v280 폐기·복원 금지
- Background가 새 탭 준비 직후 Side 응답 전에 이전 탭을 닫는 v279d 단일 단계 순서를 복원하지 않는다.
- 가장 큰 tab_id만으로 OWNER를 확정하지 않는다.
- 최근 탭 이력을 20개보다 무제한 누적하지 않는다.
- 탭 제어 토글을 `⋮` 마우스/원점 진단으로 되돌리지 않는다.


## v279d 폐기·복원 금지
- 자동 계정 이동에 기존 탭 `chrome.tabs.update({url})` 방식을 복원하지 않는다.
- `instagram_inject.js` document_start에서 unload 전역 monkey patch를 다시 설치하지 않는다.
- 새 탭 ready 전에 이전 자동 탭을 닫지 않는다.
- guard 응답을 무기한 기다려 새 탭 전환을 멈추지 않는다.
- 일반 탭·사용자 탭을 임의 종료하지 않는다. 닫기 대상은 replacement 준비가 확인된 직전 자동 대상 `tab_id`뿐이다.
## v279ccc 폐기·복원 금지
- guard 설치 실패 시 `unload_guard_install_failed`로 첫 URL을 중단하는 방식.
- Main 준비를 `#IGBLUE_NoTop` 생성만으로 판단하는 방식.
- 다운로드 상태에 `No---`를 기본값으로 강제 표시하는 방식.
- 개별 파일 done 100%를 전체 실행 100%로 표시하는 방식.
- ETA 표본 0개에서 임의 최소시간을 계산해 표시하는 방식.

## v279cc 폐기·복원 금지
- Overlay `none` 적용을 unload 경고 해결책으로 다시 연결하지 않는다. 사용자 시험에서 동일 경고가 발생했다.
- `unload` 외 `beforeunload/pagehide/visibilitychange`까지 전역 차단하지 않는다.
- guard 결과를 로그 없이 무시하지 않는다. 실패는 `GUARD_FAILED_CONTINUE`로 기록한 뒤 `chrome.tabs.update()`를 계속한다.
- 새 URL에서 Content/Main 준비 확인 없이 Side 고정 sleep만으로 자동 계속하지 않는다.

## v279c 폐기·복원 금지
- 자동 Top `teAutoPyDownloadableKindsFromCache`에 `metadata`를 다시 넣지 않는다.
- 저장 체크박스가 꺼졌다는 이유로 자동 Top을 metadata-only 완료시키지 않는다.
- `completed.length`, `alreadySaved.length`가 모두 0인데 게시물을 완료 처리하지 않는다.
- v278·v279·v279bb의 파일 0개 순회 완료 상태를 정상으로 기록하지 않는다.
- MAIN hover와 자동 파일 저장 실패를 같은 원인으로 다시 합치지 않는다.

## v279bb 회귀 금지
- 첫 MAIN IIFE 내부 `const`·함수를 첫 IIFE 종료 뒤 별도 패치 IIFE에서 직접 참조하는 방식.
- hover 비활성 guard에서 미정의 지역변수를 읽어 뒤쪽 다운로드·화면 초기화를 중단시키는 방식.
- 자동 다운로드 복구를 이유로 v279aa의 unload 충돌 hover mousemove·200ms 계정 hover를 되살리는 방식.
- 안정화 전 `IGBLUE_` 일부만 `YELLOW`로 바꿔 메시지·storage·DOM ID가 혼합되는 방식.

## v279b 폐기
- `teProgressResetForContext("account_navigation")`로 마지막 파일 상세를 삭제하는 처리.
- `auto_start_new_run`·`auto_account_continue`를 다운로드 상태 메시지로 넣는 처리.
- Auto UI의 prepare/searching phase만으로 다운로드 상태 박스를 여는 처리.
- 다운로드 시작 전 `자동현황 대기 / 다운로드 진행 없음 / No--- / 파일: 대기중`을 표시하는 기본값.
## v279aaaa 폐기
- 수집계정 추가 대상을 400ms마다 자동 판정하는 `teAutoPyStartCurrentAccountAddTracking` 계통.
- 현재 URL/profile·Main Injection 응답·단일 payload owner로 계정추가 버튼을 자동 변경하는 방식.
- URL 변경 시 사용자가 클릭한 Side 계정 선택을 자동 해제하는 방식.
- 수집계정 추가를 위해 MAIN hover 계정 정보를 다시 사용하는 방식.
- 복구 기준은 Side 카드 `IG 계정명` 명시 클릭뿐이다.

## v279aaa 임시 비활성
- MAIN 계정 hover 200ms 확정과 다운로드 버튼 hover 색상·좌표 추적은 unload 원인 분리 전까지 비활성 상태로 유지한다.
- 사용자 실검증 없이 hover 계통을 복원하지 않는다.
- 클릭 다운로드 이벤트 자체는 삭제 대상이 아니다.

<!-- FILE: _St/IG_StYellow/ai_read_삭제.md | ROLE: 삭제·폐기·복원 금지 기준 -->
## v279aa 폐기
- MAIN 페이지에서 직접 `fetch/Blob/objectURL/a.click()`로 파일을 저장하는 경로
- Auto8700 미실행 상태를 `CDP 필요`로 먼저 표시하는 일반 자동실행 gate
- 로컬 엔진 설치 안내를 `auto_account_continue` 대기 문구가 덮는 처리

# IG_StYellow 삭제·폐기 기준 — v279a

- origin calibration과 구형 물리 클릭·물리 hover 검증은 제거 상태를 유지한다. 사용자 계정 선택용 DOM hover는 별도 기능이다.
- popup 전환 후 `window.close()`로 Side를 닫는 로직을 사용하지 않는다.
- `chrome.windows.remove()`로 Chrome 창을 닫지 않는다. `chrome.tabs.remove()`는 v279d에서 replacement 준비가 확인된 직전 자동 대상 탭 종료에만 사용한다.
- 수집계정 원본에 전체 URL을 저장하지 않는다.
- `/explore/`, `/reels/`, `/p/`, `/reel/`을 username으로 해석하지 않는다.
- localStorage를 PC 공통 계정목록 원본으로 사용하지 않는다.
- 계정명과 No 순위를 한 박스로 다시 합치지 않는다.
- 삭제 계정을 수집 카운트에 포함하지 않는다.

- 자동 직접 다운로드 background 중복 확인을 `force_probe` 없이 실행하지 않는다.
- 정상 자동 cycle 상세 상태를 사용자 로그에 반복 출력하지 않는다.

## v239 Main UI 회귀 금지

- 원점·mouse·HOVER·DEV·RTC 정보를 Main 오른쪽에 상시 큰 패널로 다시 노출하지 않는다.
- 진단 토글을 CDP와 무관한 먼 위치에 배치하지 않는다.
- 원점 데이터 로딩 자체를 삭제하지 않는다. 진단 패널에서 읽을 원본 상태는 유지한다.
- Main의 날짜·통계 막대를 Side와 다른 표시 기준으로 분리하지 않는다.



## v240 수집계정 회귀 금지

- 저장 후 `@` 없는 계정명과 Instagram 전체 URL을 혼합 표시하는 방식
- 대소문자·URL·`@account` 형식 차이를 다른 계정으로 보고 중복 저장하는 방식
- `🗑️ @account`를 URL 생성 함수에 전달해 프로필 이동을 재시도하는 방식
- 삭제 계정과 활성 계정이 중복될 때 삭제 tombstone을 해제하는 방식

## v244 회귀 금지

- `_St.zip 다운로드` 안내를 접힌 다운로드 목록 안에 다시 배치하는 방식
- WS 상태를 확인하지 않아 안내가 영구 숨김 또는 영구 표시되는 방식
- Side 표시 v240을 남긴 채 manifest·ZIP만 다른 버전으로 올리는 방식

## v245 회귀 금지
- JPG를 자동 진행 총 다운로드 개수에 합산하는 방식
- 댓글·하트 최소 입력을 Top 후보 필터에 적용하지 않는 방식
- WS 설치 실행 파일을 yjm_win2rtc 배치로 안내하는 방식


## v246 회귀 금지
- 조회수 미제공 게시물을 0 조회수로 간주해 Top 후보에서 제거하는 방식
- 조회수 미제공 후보에 정상 No 순위를 만들지 않는 방식
- 공유와 리포스트를 같은 필드로 저장·표시하는 방식
- 입력값 0인 참여 항목을 참여점수 합산에 포함하는 방식

## v247 통계 UI·수집 회귀 금지

- 통계 단독 기본값을 통계 연동으로 바꾸는 방식
- 설정을 메인 화면의 자주 누르는 다운로드 버튼 사이에 배치하는 방식
- 실제 인젝션이 아닌 Side 복원 payload를 새 통계로 저장하는 방식
- 공유 입력·Sort by·카드 항목을 다시 표시하거나 share_count를 0 이외 값으로 전달하는 방식
- 다운로드 실행 여부에 따라 observation batch를 생략하는 방식
- 같은 계정·같은 시간의 변경 없는 shortcode를 인젝션마다 반복 송수신하는 방식


## v248 scope 회귀 금지
- 현재 URL 검증 없이 누적 media map 전체를 observation batch로 보내는 방식
- URL 변경 후 이전 계정 cache를 유지하는 방식
- 같은 shortcode를 한 payload에서 여러 번 저장하는 방식

## v249 폐기

- `다운위치/Down/10만/계정.폴더통합/위치 열기` Side UI
- Chrome downloads 권한과 기본 다운로드 폴더 열기
- WS 실패를 다운로드 허용으로 바꾸는 수동 fallback
- 사용자 저장값으로 root·계정 통합 여부를 변경하는 기능


## v250 자동 fixed-tab 로직 폐기
- 자동 시작 전에 fixed-tab session을 반드시 확보하는 방식
- 마지막 연결 tab_id와 URL을 자동 시작 대상으로 복구하는 방식
- Instagram 탭 전체를 검색해 후보를 고르는 방식
- 계정 이동 후 18초 owner·DOM 완전 일치를 요구하는 방식
- 모든 캐시 보완·snapshot 복원 자체를 제거하는 방식
- owner 불일치만으로 자동 전체를 중단시키는 방식

## v252 잘못된 패치 폐기
- 수동 탭 추종을 확대 수정한 `v252_manual_active_tab_fixed`는 사용하지 않는다.


## v251 회귀 금지
- Injection 다운로드 메타를 rank label의 축약 통계만으로 만드는 방식
- 성공 응답 shortcode가 없는데 확장자만으로 여러 버튼을 완료 처리하는 방식
- 재생 아이콘을 한글 완료 문자열로 교체하는 방식
- carousel의 media_index를 모두 0으로 보내는 방식


## v255 자동 완료 회귀 금지

- 마지막 No 도달 또는 후보 배열 길이를 실제 Top목표 완료로 사용하는 방식
- 후보 0개에서 swipe하지 않고 즉시 계정을 끝내는 방식
- 날짜 경계·게시물 처음 확인 없이 목표 부족 종료하는 방식
- 같은 shortcode의 MP4/JPG를 완료 게시물 2개로 세는 방식
- 완료 결과 표시 자체를 0/n으로 덮는 방식
- 다음 실행 시작 index와 직전 완료 결과 n/n을 같은 상태값으로 관리하는 방식
- 완료 제목에서 `자동종료`를 누락하는 방식

## v256 메모리·증분 전송 회귀 금지

- `img_b64` Base64 썸네일 누적
- 매초 누적 전체 목록 재전송
- 화면 밖 모든 썸네일 동시 로딩
- 처리 대기 통계 스냅샷 무한 queue
- 첫 1시간 batch 성공 후 같은 시간 신규 게시물 skip
- 100개 batch를 제거하고 500개 초과를 한 번에 전송
- 페이지별 100개 순위로 전체 Top 순위를 변경


## v257 가상 목록·로컬 통계 회귀 금지

- 전체 게시물 수만큼 `.post-item` DOM을 다시 생성·유지하는 방식
- 메모리 절약을 이유로 전체 순위 데이터를 100개 페이지별 순위로 분리하는 방식
- 범위 밖 카드 제거 시 `IntersectionObserver`와 이미지 src를 남기는 방식
- 모든 썸네일을 고정 비율로 강제해 기존 자연 비율을 바꾸는 방식
- 새 10분 bucket이라는 이유만으로 동일 통계를 다시 Analyze8780에 전송하는 방식
- `saved_count=0`을 요청 항목 수로 치환해 저장 성공 수를 거짓 증가시키는 방식


## v258 가상 스크롤 anchor 회귀 금지

- 가상 범위 변경마다 `box.replaceChildren(fragment)`로 현재 화면 카드까지 전체 교체하는 방식
- 현재 가시 카드 anchor 없이 spacer 높이만 바꾸는 방식
- 브라우저 자동 anchor와 수동 scroll 보정을 동시에 적용하는 방식


## v259 폐기

- 최대 120개만 DOM에 남기는 가상 목록
- 스크롤 중 카드 제거·생성·`insertBefore` 재배치
- top/bottom virtual spacer
- 실측 행 평균 높이 재계산
- 첫 가시 카드 anchor와 `window.scrollBy` 위치 보정
- 이미지 natural ratio 적용으로 카드 높이를 변경하는 방식
- 현재 계정 MP4만 `총`으로 표시하는 방식
- v257의 `전체 카드 DOM 유지 금지` 기준은 사용자 최신 지시로 폐기됐다.


## v260 자동 상태 회귀 금지

- 다른 탭·Chrome 창 사용, 같은 시작 탭의 Instagram 외 주소, WS/Main/현재 No 일시 미준비를 즉시 자동중단으로 처리하는 방식
- `no_instagram_tab` 하나만 보고 대상 없음 또는 전체 자동종료로 처리하는 방식
- 대기 상태에서 계정 index·No·run_seq 흐름·전체 실행 집계를 초기화하는 방식
- `automatic_end` 문구만으로 실제 목록 index를 n/n으로 강제 표시하는 방식
- 시작 탭 보존을 이유로 열린 Instagram 탭 전체 검색·마지막 연결 탭 복구·후보 탭 순회를 되살리는 방식
- v260 시작 탭 보존은 새 자동 시작 당시 현재 활성 Instagram 탭 한 개만 저장하는 경량 세션이며, v250 fixed-tab 검색·복구·owner 강제 gate와 다르다.


## v261 Side 작업 화면 회귀 금지

- `탭 새로읽기`를 기존 `🔄`와 동일하게 페이지 reload로 처리하는 방식
- 재읽기 버튼에서 swipe 또는 계정 이동을 실행하는 방식
- 사용자 중단 뒤 재시작할 때 queue·현재 No·현재/전체 집계·완료 shortcode를 초기화하는 방식
- 화면상 방식 2/3 번호 변경과 내부 다운로드 handler·통신 mode 변경을 혼합하는 방식
- 현재 실제 규칙과 맞지 않는 Video only·ID-date filename·다운 지연 영문 설명을 다시 표시하는 방식


## v262 Side UI 회귀 금지

- 재시작 실패 시 스냅샷을 삭제하는 방식
- 8780 열기를 JavaScript click handler로 강제 실행하는 방식
- 오프라인 상태에서 이전 8780 href를 유지하는 방식
- `현재계정추가`를 고정 문구로 두거나 표시값과 클릭값을 분리하는 방식
- 현재 대상 미확인 시 이전 계정명을 남기는 방식
## v263 회귀 금지

- 별도 `자동재시작` UI·전용 복원 함수·첫 로딩 재시작 버튼을 되살리는 방식
- 자동시작 준비 중 중지 버튼을 비활성화하는 방식
- 일반 저장에서 계정 목록을 자동 정렬하는 방식
- 계정 추가 시 queue index를 0으로 강제 초기화하는 방식
- 정렬 후 기존 위치 기반 진행상태를 유지하는 방식
- Explore hover 계정명 대신 불확실한 페이지 URL만 사용해 대상 계정을 판정하는 방식

## v264 회귀 금지 — 렌더링 문자열 기반 hover 계정 판정

- `.igblue-main-account-row span`의 화면 문자열을 hover 계정 원본으로 다시 읽지 않는다.
- 인젝션 카드는 `pointer-events:none`일 수 있으므로 카드 자체 document pointerover만으로 썸네일 hover를 판정하지 않는다.
- 실제 Instagram media host에 hover를 연결하고 카드의 현재 `data-code → S(code)` 결과만 Side에 전달한다.
- 같은 카드가 새 shortcode로 재사용될 때 새 pointerover를 기다리지 않고 `N()` 재연동 시 계정을 갱신한다.



## v265 회귀 금지

- Explore 상세 팝업 전환에서 전체 Explore media map 삭제
- popup 복귀 카드 복원을 F5에 의존
- pointerenter 즉시 hover 계정 변경
- Side 이동 pointerleave에서 확정 선택 제거

## v266/v267 폐기·회귀 금지 — Main 순위 시각 UI와 Side 과삭제

- Main 카드의 `No000` 행, Rank badge, 순위 연동 미디어 종류 행을 다시 생성하지 않는다.
- 우측 `1 / Prev / Current / Next / 마지막` 이동 버튼 DOM·CSS·click handler를 다시 만들지 않는다.
- Main용 순위 체크·Main rank payload를 다시 넣지 않는다.
- v266에서 Side 순위 탭·No000·Rank badge까지 제거한 과삭제는 폐기한다. Side 순위 기능은 유지한다.
- 자동실행 Current/Next를 `#IGBLUE_NoNav_*` 요소 검색·클릭 방식으로 되돌리지 않는다.
- Main 준비 완료를 시각 버튼 존재 여부로 판정하지 않는다.
- 자동실행 내부 순번은 `IGBLUE/internal_no_nav_state`, 내부 Current/Next handler, shortcode 기반 `.ndy_ins_info[data-code]` 탐색으로 유지한다.
- 시각 helper 삭제 뒤 `teMainAnchorId()` 같은 폐기 함수 호출을 남겨 내부 활성 대상 설정 실패를 숨기지 않는다.


## v267 진단 단계

- 실제 생성경로가 확인되기 전에 같은 shortcode 카드를 전역 하나로 강제 병합하지 않는다.
- 생성경로 색상은 진단용이며 hover 확정 청록색보다 우선하지 않는다.


## v268 회귀 금지

- 다른 article의 동일 shortcode를 전역 병합하지 않는다.
- hidden video 때문에 image-only 인젝션을 제거하지 않는다.
- Explore SPA 수집을 fetch wrapper 하나에만 의존하지 않는다.
- 링크 1개 이상·카드 0개 상태를 성공으로 처리하지 않는다.

## v269 회귀 금지

- `play_count=-1` 또는 `views_available=0`을 실제 조회수로 취급해 비공개 후보를 탈락시키는 방식
- 조회수 비공개인데 좋아요·댓글·리포스트 활성 조건이 하나도 없는데 후보를 만드는 방식
- 참여순위에 고정 가중치나 비활성 지표·공유 수를 포함하는 방식
- Main 시각 No DOM이 없다는 이유만으로 snapshot No001을 다운로드하지 않는 방식
- AD-03 `[체크실패]` 뒤 AD-04·AD-05 또는 cache direct download를 진행하는 방식



## v270 회귀 금지

- Top목표 전체 후보가 모일 때까지 첫 다운로드를 미루는 방식
- 완전한 snapshot을 Main 시각 No·Current·카드 연결에 다시 종속시키는 방식
- 완료 shortcode를 새 snapshot에서 다시 다운로드하는 방식
- 목표 미달이지만 날짜 범위 안인 상태를 중단으로 처리하는 방식
- 날짜 범위 종료 뒤 다음 계정으로 이동하지 않고 같은 계정 swipe를 계속하는 방식
- `instagram_inject.js` IIFE 밖의 `teMainEnsureHoverAccountStyle();` 단독 호출


## v271 overlay 표시 회귀 금지

- Side 선택 UI만 유지하고 content bridge 함수 정의를 제거하지 않는다.
- `download` 모드는 통계만 숨기고 MP4/JPG 버튼은 유지한다.
- `none` 모드는 인젝션 카드 전체를 숨긴다.
- overlay 복구와 무관한 자동·수동 다운로드 흐름을 함께 변경하지 않는다.


## v272 Visual settings·다운로드 상태 회귀 금지

- `main` 체크값을 `side` 값으로 덮거나 Side 값으로 저장하지 않는다.
- Side 렌더링은 `side`, Main 렌더링은 `main`을 사용한다.
- 버튼 가로폭을 줄이거나 활성 대상 버튼만 크게 만드는 구 `다운버튼 크게 표시` 의미를 복원하지 않는다.
- shortcode·asset_kind 없는 진행 메시지로 임의 DOM을 강조하지 않는다.
- 실패·부분완료를 성공 배지로 표시하지 않는다.
- background의 `runtime.sendMessage`만으로 content/Main 상태 전달을 대체하지 않는다.


## v273 자동 계정·SQLite 파일 회귀 금지

- indexed start 전에 Instagram 탭 존재를 요구하지 않는다.
- 명시적인 not_found 외 상태를 휴지통 처리하지 않는다.
- tombstone 저장 뒤 같은 URL을 다시 열지 않는다.
- 새 파일·다른이름 저장으로 기존 SQLite를 덮어쓰지 않는다.
- DB 전환 뒤 이전 계정목록·index를 혼합 유지하지 않는다.


## v274 자동실행 제어·ETA 회귀 금지

- 0/N 비 Instagram에서 running을 켜고 Injection을 무한 대기하는 방식
- 사용자 중지 뒤 stopping을 영구 유지하는 방식
- 이전 stop 응답으로 새 실행 상태를 덮는 방식
- 자동종료에서 Auto PY를 자동 해제하는 방식
- 중지·자동종료 완료 뒤 두 제어 버튼을 모두 비활성화하는 방식
- tab_id 하단 중복·무효 탭 과거 ID 유지
- 전체 계정 수와 Top목표를 제외한 현재 계정 기준 ETA
- 실패·중복 시간을 성공 평균에 포함하는 방식


## v276 진단 회귀 금지

- `unload` 경고 제거를 응답 없음 해결로 처리하지 않는다.
- EventTarget 전역 monkey patch와 자동 reload를 넣지 않는다.
- runtime 표본은 ring 제한을 유지하고 진단 때문에 자동 다운로드 순서를 바꾸지 않는다.


## v277 Side 제어·저장 선택 회귀 금지

- `Video only`, `ID-date filename` UI 복원 금지
- CDP:X 자동·예약 활성 표시 금지, 수동 다운로드 차단 금지
- popup 연결 확인 전 기존 Side 닫기 금지
- 자동실행 중 popup 전환 금지
- metadata-only 게시물 누락 금지


## v278 다운로드 회복 회귀 금지

- 자동 preload에 `allow_cache_fallback:false`를 다시 넣지 않는다.
- Main active 정보가 비었다는 이유만으로 exact snapshot 다운로드를 막지 않는다.
- Main actual shortcode 충돌을 snapshot으로 무마하지 않는다.
- owner·요청 No·shortcode·선택 자산 URL 검증 없는 cache 다운로드를 허용하지 않는다.
- 복구 성공을 `[체크실패]` 뒤 진행으로 기록하지 않는다. `[복구완료]`를 사용한다.
- 수동 다운로드 함수와 `MANUAL_SINGLE` payload를 자동 회복 수정에 합쳐 변경하지 않는다.


## v279 유지

- Auto8700 CDP 실행 복구를 이유로 IG 다운로드·계정 순회 로직을 다시 변경하지 않는다.

## v279a 폐기

- `IGBLUE/runtime_diag_v276` 10초 표본 저장
- `pagehide → sample("pagehide")` 전체 DOM 스캔
- Long Task/V scan/Observer/debug 누적 Runtime 진단
- `test_ext_runtime_diagnostic_v276.js`는 0Byte 폐기 파일로 포함한다.
- 위 진단을 정상 기능으로 되살리지 않는다.

## v293 폐기 UI
- 본문 `Auto8700 DevTools`의 자동 섬네일 전체/페이지별 중복 체크박스는 제거했다.
- 섬네일 설정의 공식 위치는 우측 톱니바퀴 `Settings → 자동 섬네일`이다.

## v305 재사용 금지
- tab_id를 무시한 전역 이미지 URL 매칭.
- 자동 중단 플래그로 탭 추적·DOM 감시·Cache 저장까지 중단.
- 저장된 진행상태가 화면 리스트 박스 시작번호를 덮어쓰는 로직.

- 사용자 중단 시 기존 통합 진행 표시를 숨기고 중단 사유/이어하기 안내만 보여주는 방식.

- 중단 스냅샷의 `account_queue_index`/last_rank를 `시작` 버튼 실행 위치로 복원하는 이어하기 로직.

## v307 수집계정 목록 회귀 금지
- 수집계정 목록의 `Shift+더블클릭=새창`, `Ctrl+더블클릭=새탭` 기능을 다시 누락하지 않는다.
- modifier 더블클릭 구현을 위해 일반 더블클릭/단일클릭의 textarea 편집 동작을 가로채지 않는다.

## v307 회귀 금지
- `igbluePublishCdpProof()`에서 전달값과 무관하게 `{ok:true}`를 강제하는 로직은 폐기한다.
- `탭 제어 vNNN`을 manifest-derived 전역 버전과 별개 문자열로 관리하지 않는다.


## v311 섞기·DBG 회귀 금지
- `자동섞기`를 0/N, 2/N 이상, 계정 continuation에서 실행하지 않는다.
- 수집계정 섞기 이력을 Instagram 페이지 localStorage만으로 관리하지 않는다.
- `[IG_DBG]` 상세 payload를 매 반복마다 콘솔에 다시 출력하지 않는다. debug snapshot 자체는 삭제하지 않는다.


## v312 Explorer 회귀 금지
- Explorer `clips` 응답을 `fill_items`와 `one_by_two_item`만 읽는 구형 2.4.0 파서로 되돌리지 않는다.
- Swipe/scroll 이후 `layout_content.medias[].media`와 `layout_content.medias[].clips.items[].media` 경로를 다시 누락하지 않는다.

## v313 숨김/폐기 기준
- `Image 저장` 일반 자동·일괄 JPG 파일 저장 옵션은 폐기한다. Cache8701 자동 섬네일 저장과 역할이 중복되므로 되살리지 않는다.
- 다운로드 방식 1 `Down all medias`, 방식 2 `Down filtered medias`는 기능 삭제가 아니라 **UI 숨김**이다. 향후 복구 가능하도록 DOM/핸들러는 유지한다.
- 랜덤 예약값을 polling 때마다 재추첨하는 방식은 사용하지 않는다. Side 로딩 1회/정상 자동종료 후 1회만 재추첨하고 사용자의 수동 입력값을 실행 전까지 유지한다.

## v314 회귀 금지
- 다운로드 방식 1/2의 `d-none`을 제거해 JS 상태 갱신으로 다시 노출되게 하지 않는다.
- 방식 1/2 기능 자체를 삭제하지 않는다. 현재 기준은 비표시 보존이다.


## v322 설정 회귀 폐기/금지
- v319에서 자동 다중 편집복사 dead code를 제거할 때 그 아래의 설정 전역 선언까지 함께 삭제한 범위 초과 수정은 폐기한다. `m/b/g/_`, `y/v/w/x`, `teAutoPyStatsTimer`, `teAutoPyStatsLastMainPush`를 다시 삭제하지 않는다.
- v321의 `settings` target gate 제거는 실제 원인이 아니었으므로 폐기한다. 기존 v317 handler 조건을 유지한다.
- `test_ext_settings_open_without_target_v321.js`는 잘못된 요구를 강제하므로 0Byte 폐기한다.
