# 삭제·폐기 기준 — 패키지 v240

## 다시 되살리면 안 되는 기능

- Heart8772 기반 원점 추적
- OS 커서 이동·방황·실제 마우스 클릭 자동화
- hover 색상·DOM ACK 기반 물리 클릭 검증
- 빨간하트·owner 권한 게이트
- `IG_Sorter_Yello` 구 폴더명
- 다운로드 경로마다 별도 DB 완료 로직을 중복 구현하는 방식
- 서버에 로컬 절대경로·상대경로를 저장하는 방식
- 삭제 계정을 수집 카운트에 포함하는 방식
- 계정 삭제 시 MP4/JPG를 확인 없이 자동 삭제하는 방식
- 포커스 이탈만으로 계정목록을 자동 저장하는 방식
- Chrome 프로필별 localStorage를 수집계정 원본으로 사용하는 방식
- 수집계정 목록에 전체 Instagram URL을 원본으로 저장하는 방식
- `/explore/`, `/reels/`, `/p/`, `/reel/`을 계정 username으로 해석하는 방식
- `data.href`·`page_url`의 scope URL을 게시물 `post_url`로 저장하는 방식
- 서로 다른 source scope·EXT 기간·sort_by·기준값·Top 개수의 `No000`을 같은 순위로 합치는 방식
- 다운로드 완료·popup 전환 후 Side·탭·Chrome을 닫는 방식
- Auto8700 종료·재실행 시 Chrome/CDP 프로세스를 종료하는 방식
- Analyze8780 `/api/health`를 1초마다 반복 호출하는 방식
- WS arm 응답 전에 다운로드를 시작하는 방식
- Chrome 기본 Downloads 폴더를 Instagram 최종 저장소로 사용하는 방식
- Save As 제목 완전 일치만으로 창을 놓치는 방식
- 공유·저장·리포스트 미수집을 실제 0으로 기록하는 방식

## 최종 ZIP 제외 기준

```text
Heart8772/ 전체
IG_StYellow/js/ig_origin_calibration.js
WS8771/ws8771_heart_client.py
WS8771/ws8771_ig_auto_click_download.py
WS8771/ws8771_ig_auto_download.py
WS8771/ws8771_origin_crosscheck.py
```

## soft-delete 기준

- 계정·게시물 삭제는 DB 상태와 tombstone으로 처리한다.
- 실제 미디어 삭제는 별도 명시 기능 전까지 하지 않는다.
- 삭제 계정은 `🗑️ username`으로 보존하고 수집·카운팅에서 제외한다.

## v231 실제 파일 삭제 없음

이번 작업은 저장 구조와 다운로드 흐름 수정이며 기존 기능 파일을 삭제하지 않았다.


## v232 폐기 흐름

- 주 다운로드 전에 `ig_rtc_enter_auto_arm`을 기다리는 흐름은 폐기한다.
- Save As 창에 경로 입력·Enter를 주 저장 방식으로 되살리지 않는다.
- Chrome 기본 Downloads에 저장한 뒤 이동하는 방식은 CDP 실패 환경의 보조 fallback일 뿐 정상 경로가 아니다.
- 물리 파일명을 `계정_시각_No_shortcodes`로 강제 변경하지 않는다. Instagram 원본 파일명을 유지한다.


## v233 폐기

- `Browser.setDownloadBehavior`를 실제 Instagram 다운로드 위치 보장 수단으로 사용하는 구조
- IG 주 다운로드의 `chrome.downloads.download` 호출
- 저장창 Enter 성공을 다운로드 완료 조건으로 보는 구조
- 이유: 8700 CDP Chrome과 실제 확장 Chrome이 다를 수 있어 다운로드 설정이 적용되지 않음


## v234 폐기

- Tkinter 전체 UI를 daemon thread에서 생성하는 구조
- Auto8700 창이 생성되지 않아도 manager와 자식 서비스만 숨은 상태로 계속 실행하는 구조
- Auto8700 종료 시 WS·Analyze·RTC 중 일부 프로세스 또는 포트를 남기는 구조


## v235 회귀 금지

- Auto8700 저장 위치를 보정하지 않고 화면 밖 좌표 그대로 적용하는 방식
- UI 로그에서 `WINDOW_VISIBLE`만 남기고 실제 HWND 위치·mapped/viewable을 확인하지 않는 방식
- `igblueNormalizeDownloadPrefix`에 `msg.prefix` 문자열만 전달하는 방식
- WS 직접 다운로드 완료 결과의 `result.finalize`를 무시하는 방식
- 메인 화면에서 `IG 계정`과 `No000`을 하나의 텍스트 박스로 다시 합치는 방식


## v236 로그 운영 폐기 기준

- 정상 health·대기·감시 상태를 초 단위로 계속 출력하는 방식
- 같은 기능·체크 ID·결과를 상태 변화 없이 반복 출력하는 방식
- 실제 결과가 확인되지 않았는데 `[체크완료]` 또는 `[완료]`로 기록하는 방식
- 한국어 기능명 없이 내부 함수명·원시 데이터만 대량 출력하는 방식
- 최초 실패 지점과 무관한 전체 디버그 로그를 항상 활성화하는 방식
- 예외가 없는 상태에서도 상세 추적 로그를 상시 남기는 방식


## v237 자동 다운로드 회귀 금지

- 자동 직접 다운로드의 `ig_media_exists`를 `force_probe` 없이 호출해 background WS 연결 시도 자체를 생략하는 방식
- `AUTO_DIRECT_WS_NOT_READY` 원인을 확인하지 않고 수동 Save As·Enter 방식으로 자동 다운로드를 되돌리는 방식
- 정상 자동 cycle의 `S00~S99` 상세 로그를 사용자 로그에 반복 출력하는 방식
- 같은 cycle·체크 ID·상태·자산의 기능 체크 로그를 중복 기록하는 방식


## v238 프로젝트 진행로그 회귀 금지

- 프로젝트 진행로그와 기존 실행로그에 동일 상세 내용을 이중 기록하는 방식
- 프로젝트 진행로그만 보고 성공·실패를 판단할 수 없는 방식
- 실패 시 상세로그 위치와 검색어를 남기지 않는 방식
- 변동 가능한 로그 줄 번호로 상세로그를 연결하는 방식
- 실패와 무관한 전체 실행로그를 실패 발췌로그에 복사하는 방식
- 동일 cycle·체크ID·상태·자산·메시지를 반복 기록하는 방식

## v239 Main UI 회귀 금지

- 원점·mouse·HOVER·DEV·RTC 상태를 Main 오른쪽에 상시 큰 영역으로 다시 노출하는 방식
- Main 날짜·통계 막대를 Side와 별도 기준으로 적용하는 방식
- rank map이 있는데도 계정 행 갱신으로 `No000`을 숨기는 방식
- Prev/Next 현재 항목을 화면에서 구분할 수 없게 하는 방식


## v240 서버 등록 회귀 금지

- HTTP 500 응답 body를 버리고 `Internal Server Error` 문자열만 기록하는 방식
- 운영 DB 구조를 확인하지 않고 `yellow_schema_reset.sql`을 적용하는 방식
- 운영 데이터가 있는 테이블에 DROP TABLE, TRUNCATE, DELETE를 사용하는 방식
- API 응답에 PHP warning·HTML 오류를 섞는 `display_errors=1` 방식
- `media_exists` 성공을 `media_insert` 성공으로 간주하는 방식
- 로컬 다운로드 성공과 서버 MySQL 등록 실패를 하나의 실패로 합치는 방식
- SQL 오류 단계·테이블·누락 컬럼을 숨기고 성공처럼 기록하는 방식
