# test_list — 패키지 v275

| ID | 상태 | 모듈 | 테스트 파일 | 검증 기능 | 완료 기준 | 현재 결과 | 실패 원인 | 다음 작업 | 관련 문서 |
|---|---|---|---|---|---|---|---|---|---|
| T-STRUCT-001 | [완료] | 전체 | 구조 검사 | 실제 사용 모듈·base_root 확인 | 6개 현재 모듈과 `mnt/d/_St` 구조 일치 | OK | - | 회귀 유지 | ai_read.md |
| T-IG-001 | [완료] | IG | test_ext_module.js | URL 직접 다운로드 경로 | direct handler 존재 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-IG-002 | [완료] | IG | test_ext_module.js | 구형 물리 마우스·원점·클릭 검증 제거 | 폐기 토큰 없음 | OK | - | 회귀 유지 | ai_read_삭제.md |
| T-IG-003 | [완료] | IG | test_ext_module.js | 메인 `IG account` | username·fallback | OK | - | 실제 Chrome 확인 | ai_read_완료.md |
| T-IG-004 | [완료] | IG | test_ext_module.js | Side 계정·No 분리 | 독립 라벨 | OK | - | 실제 Chrome 확인 | ai_read_완료.md |
| T-IG-005 | [완료] | IG | test_ext_module.js | `🗑️` 계정 제외 | 수집·카운트 제외 | OK | - | 실제 polling 확인 | ai_read_완료.md |
| T-WS-001 | [완료] | WS | test_ws8771_module.py | 파일·JSON·보고서·MEDIA_SAVED | 공통 handler | OK | - | Windows 회귀 | ai_read_완료.md |
| T-WS-002 | [완료] | WS | test_ws8771_module.py | 구형 마우스 자동화 제거 | 주 다운로드에 물리 클릭 경로 없음 | OK | - | 회귀 유지 | ai_read_삭제.md |
| T-AUTO-001 | [완료] | Auto | test_auto8700_module.py | 현재 관리 서비스 구성 | 실제 등록 서비스만 시작·감시 | OK | - | 회귀 유지 | ai_read.md |
| T-AUTO-8780-001 | [완료] | Auto↔Analyze | test_auto8700_module.py | 8780 자동 실행·API health | start=true·health ok | OK | - | 실제 Windows 확인 | ai_read_완료.md |
| T-STORAGE-001 | [완료] | Shared | test_shared_storage.py | SQLite v1~v7 | WAL·FK·필수 테이블·views_available 비파괴 migration | OK | - | 회귀 유지 | ai_read.md |
| T-STORAGE-002 | [완료] | Shared | test_shared_storage.py | MySQL v45·v46 추가형 | 기존 v44 파괴 없음 | OK | - | 서버 적용 전 검토 | ai_read.md |
| T-STORAGE-003 | [완료] | Shared | test_shared_storage.py | 10분 통계 UPSERT | bucket·sample 일치 | OK | - | 실시간 연결 | ai_read_완료.md |
| T-MEDIA-LOCAL-001 | [완료] | Shared | test_shared_storage.py | 5개 다운로드 경로 공통 저장 | 자산·post·sync 일치 | OK | - | 실제 다운로드 회귀 | ai_read_완료.md |
| T-MEDIA-WIRE-001 | [완료] | IG↔WS↔Shared | 고정 테스트 | 전체·필터·Top·개별 연결 | source·event 일치 | OK | - | 실제 Windows 회귀 | ai_read_완료.md |
| T-MVP-LOCAL-001 | [완료] | Shared | test_shared_storage.py | 계정·게시물 repository | upsert·조회·삭제 | OK | - | observation 연결 | ai_read.md |
| T-MVP-PAGE-001 | [완료] | Analyze8780 | test_analyze8780_module.py | 페이지 조회 API | LIMIT·정렬 일치 | OK | - | 실제 UI 확인 | ai_read.md |
| T-DELETE-001 | [완료] | Analyze/Shared | 고정 테스트 | 계정·게시물 soft-delete | 숨김·DELETE queue | OK | - | 실제 Side 확인 | ai_read_완료.md |
| T-POST-URL-001 | [완료] | WS↔Shared↔Analyze | 고정 테스트 | 게시물 canonical URL | scope URL 저장·표시 차단 | OK | - | 실제 Explore 다운로드 확인 | ai_read_완료.md |
| T-BROWSER-LIFECYCLE-001 | [완료] | Auto↔IG | 고정 테스트 | 다운로드 후 탭·Chrome 유지 | 닫기 API·Chrome kill 없음 | OK | - | 실제 Windows 확인 | ai_read_완료.md |
| T-WS-DIALOG-001 | [완료] | WS | test_ws8771_module.py | Save As 보조 fallback | 파일명 판별·Enter·이동 코드 유지 | OK | - | 주 흐름으로 복원 금지 | ai_read_완료.md |
| T-AUTO-HEALTH-001 | [완료] | Auto↔Analyze | test_auto8700_module.py | 8780 HTTP health 1회 | 반복 refresh 호출 1회 | OK | - | 실제 콘솔 확인 | ai_read_완료.md |
| T-AUTO-UI-001 | [완료] | Auto | test_auto8700_module.py | main-thread 총괄 UI·종료 | UI main thread, 관리 서비스 종료, Chrome 유지 | OK | - | Windows 회귀 | ai_read_완료.md |
| T-AUTO-WIN-001 | [검증대기] | Auto↔WS↔Analyze↔RTC | test_auto8700_module.py, 실제 Windows 로그 | 총괄 창 표시·종료 정책 | WS·RTC 종료, Chrome·Analyze8780 유지 | UNKNOWN | v250 종료 기준 변경 후 실제 로그 없음 | Auto X 종료 뒤 PID·포트 확인 | ai_read_패치.md |
| T-WIN-001 | [완료] | IG↔WS | 실제 Windows 로그 | MP4/JPG 직접 다운로드 | 파일·JSON·보고서 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-AUTO-DOWNLOAD-001 | [완료] | IG↔WS | 실제 Chrome·Windows 로그 | 자동 조건 다운로드 액션 | 수동 클릭 없이 첫 파일 저장 | OK | - | AD 회귀 유지 | ai_read_완료.md |
| T-IG-MAIN-LABEL-001 | [코드반영] | IG | test_ext_module.js, test_ext_main_ui.js | Side 계정·No 분리·Main 계정 전용 표시 | Side 별도 No 유지, Main은 IG 계정만 표시, 현재 선택 강조 | OK | 실제 Chrome 렌더링 미확인 | Side No·Main 계정 전용 화면 확인 | ai_read_패치.md |
| T-IG-WS-GUIDE-001 | [코드반영] | IG | test_ext_module.js, test_ext_main_ui.js | WS 미연결 설치 안내 분리·자동 표시 | 진행 현황 아래 안내, `_St.zip`·Auto8700 실행 문구, 연결 시 숨김 | OK | 실제 Windows/Chrome 상태 전환 로그 미확인 | WS OFF/ON 상태와 안내 실행 경로 확인 | ai_read_패치.md |
| T-ANALYZE-SIDEBAR-001 | [완료] | Analyze8780 | test_analyze8780_module.py | 좌측 계정 압축 목록·검색·직접 선택 | 190~230px, 200개 조회, 클릭 상세, `?account=` 자동 선택 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-ANALYZE-WIN-001 | [검증대기] | Analyze8780 | 실제 Windows | 8780 UI·운영 DB | 화면·데이터 보존 | UNKNOWN | 실제 환경 없음 | 실제 실행 | ai_read_패치.md |
| T-SIDE-DELETE-001 | [검증대기] | IG↔Analyze | 실제 Chrome | 삭제 후 `🗑️` 표시 | 30초 내 반영 | UNKNOWN | 실제 Chrome 없음 | 실제 실행 | ai_read_패치.md |
| T-ACCOUNT-SAVE-001 | [완료] | IG | test_ext_module.js | `💾 저장` 버튼 | 명시 저장·blur 자동저장 없음 | OK | - | 실제 Chrome 확인 | ai_read_완료.md |
| T-ACCOUNT-SQLITE-001 | [완료] | IG↔Analyze↔Shared | 고정 테스트 | username 수집목록 SQLite 동기화 | 프로필 변경 후 동일 목록 복원 | OK | - | 실제 Chrome 프로필 확인 | ai_read_완료.md |
| T-WS-STDOWN-001 | [완료] | WS↔Shared | test_ws8771_module.py | `_StDown/instagram/계정` fallback | 완료 파일 이동·MEDIA_SAVED | OK | - | CDP 주 흐름 유지 | ai_read_완료.md |
| T-CDP-DOWNLOAD-001 | [폐기] | Auto↔IG | 실제 Windows | CDP 다운로드 위치 지정 | 실제 확장 Chrome에 적용 | FAIL | CDP Chrome과 확장 Chrome 불일치 | WS 직접 저장으로 대체 | ai_read_삭제.md |
| T-WS-DIRECT-001 | [완료] | IG↔WS | test_ext_module.js, test_ws8771_module.py, 실제 Windows 로그 | URL 직접 저장 | 저장창 없이 `_StDown/instagram/계정/원본파일명` 생성 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-FILE-META-001 | [완료] | WS↔Shared↔Analyze | 고정 테스트 | 계정 폴더·원본 파일명 DB 표시 | folder/file/relative path 일치 | OK | - | 실제 UI 확인 | ai_read_완료.md |
| T-LOG-POLICY-001 | [완료] | 전체 문서 | 문서 검사 | 기능 체크형 로그 운영 기준 | 5개 ai_read/test 문서에 상태·중복방지·예외추적 기준 존재 | OK | - | 기능별 소스 적용은 별도 작업 | ai_read.md |
| T-AUTO-CHECK-001 | [코드반영] | IG↔WS | test_ext_module.js, test_ext_private_views_auto_download.js, test_ws8771_module.py | 자동 다운로드 기능 체크 로그·AD-03 선행 게이트 | AD-01~AD-07·한국어·중복방지, AD-03 완료 전 AD-04/05 금지 | OK | v268 실제 로그에서 AD-03 실패 뒤 다운로드 진행 확인; v270 즉시 다운로드·AD-03 게이트 코드 반영 후 실검증 없음 | 비공개 조회수 Top 1 실제 자동실행 로그 확인 | ai_read_패치.md |
| T-AUTO-AD03-GATE-001 | [코드반영] | IG↔WS | test_ext_private_views_auto_download.js, 실제 Chrome·Windows 로그 | No001 snapshot 대상 연결·AD-03 다운로드 게이트 | Main 시각 No 없이 snapshot rank/shortcode/owner/URL 확인, 실패 시 즉시 중단, 성공 뒤에만 AD-04/05 | OK | 정적·단위 회귀 OK, 실제 v270 자동실행 미확인 | 조회수 비공개 Top 1 실제 AD-03→AD-04→AD-05 순서 확인 | ai_read_패치.md |
| T-PROGRESS-LOG-001 | [검증대기] | WS | test_ws8771_module.py, 실제 Windows 로그 | 프로젝트 진행로그·상세로그·실패로그 연결 | 진행로그 판정, 검색표식, 실패 발췌, 중복방지 | OK | AD-03 복구·AD-06/07 성공 판정 누락 | 후속 로그 판정 수정 | ai_read_패치.md |
| T-IG-MAIN-DIAG-001 | [완료] | IG | test_ext_main_ui.js | Main 진단 축소·Side 시각화 연동 | CDP 옆 토글, 상시영역 숨김, 날짜·막대 동일 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-SIDE-CDP-START-001 | [예정] | IG↔Auto | test_ext_module.js, 실제 Windows 로그 | CDP 없이 예약 Side 자동시작 | 예약 시간에 CDP 대기 없이 시작, 0=현재 화면·1=목록 첫 줄 | UNKNOWN | 미수정 | 다음 버전 단일 목표 | ai_read_패치.md |
| T-HTML-REPORT-THUMB-001 | [완료] | WS | test_ws8771_module.py, 실제 브라우저 | 계정 HTML/index.htm 게시시각·고정 썸네일·전체보기 | 게시시각, 320px 카드, 8780 계정 링크 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-AUTO-MP4-COUNT-001 | [폐기] | IG | test_ext_module.js | `총`을 현재 계정 MP4만으로 표시 | MP4만 총계로 오해시키는 문구 제거 | SKIP | 전체 실행 누적이 없고 JPG·완료 게시물과 모순 | v259 현재 계정/전체 실행 집계로 대체 | ai_read_삭제.md |
| T-AUTO-RUN-COUNT-001 | [코드반영] | IG | test_ext_module.js, 실제 Chrome 로그 | 현재 계정·전체 실행 다운로드 집계 | 새 자동 시작 때 전체 초기화, 계정 변경 때 현재만 초기화, 게시물·MP4·JPG 분리 | OK | 실제 다계정 화면 집계 미확인 | 2개 이상 계정에서 저장 후 현재/전체 수치 확인 | ai_read_패치.md |
| T-SIDE-MIN-FILTER-001 | [완료] | IG | test_ext_module.js, 실제 Chrome | 댓글·하트 최소 필터 | 두 조건 AND 적용, Top 개수·No·자동대상 일치 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-SIDE-PRIVATE-VIEW-RANK-001 | [완료] | IG | test_ext_module.js, test_ext_private_views_auto_download.js, 실제 Chrome·Windows 사용자 확인 | 조회수 비공개 참여합산 Top N·자동 다운로드 | views=-1/views_available=0, 활성 하트·댓글·리포스트 AND 후 원값 단순합산, No001 snapshot 자동 다운로드 | OK | - | 실제 비공개 후보 1개 다운로드·다음 계정 URL 이동 회귀 유지 | ai_read_완료.md |
| T-SIDE-SAVE-COUNT-001 | [예정] | IG | 미정 | 저장 수 수집·참여점수 확장 | 안정적인 저장 수 필드 확인 후 저장×5 적용 | UNKNOWN | 수집 필드 미확정 | 실제 응답 필드 확인 후 별도 버전 | ai_read_패치.md |
| T-OBS-CENTRAL-1H-001 | [코드반영] | IG↔WS↔PHP↔Analyze | test_ext_module.js, test_ws8771_module.py, test_yellow_php_static.py, 운영 로그 | 통계 연동 계정별 UTC 1시간 송수신 | batch 원자 저장·requested=saved·같은 bucket 조회·성공 chunk shortcode signature만 기록 | OK | 운영 yellow.php/MySQL 송수신 로그 미확인 | 통계 연동 ON 후 upsert/list·변경 없음 skip 확인 | ai_read_패치.md |
| T-DIRECT-FILENAME-001 | [예정] | IG↔WS | test_ext_module.js, test_ws8771_module.py, 실제 파일 로그 | canonical 고유 파일명·JSON file_name | raw CDN명 미사용, No00·shortcode 이름 일치 | UNKNOWN | 미수정 | 후속 작업 | ai_read_패치.md |
| T-ITEM-ONLY-001 | [완료] | IG↔Analyze↔Shared | test_ext_module.js, test_analyze8780_module.py, test_shared_storage.py | 다운로드 없이 현재 페이지 통계 수집 | 현재 계정/shortcode scope·views_available·sort/source·수집시각을 10분 저장 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-DATE-CHART-001 | [예정] | WS↔Analyze | 미정 | 수집일자 기준 sort_by 차트 | collected_at 일자별 시계열 | UNKNOWN | 미구현 | 후속 작업 | ai_read_패치.md |
| T-AUTO-V249-FLOW-001 | [완료] | IG↔WS | test_ext_auto_v249_regression.js, test_ext_module.js, 실제 Windows 로그 | v249 계정 이동·swipe·캐시 보완 + v260 시작 탭 보존 | 새 시작의 활성 Instagram 탭 1개 보존, 전체 탭 검색·마지막 탭 복구 없음, 4.5초 대기 후 진행 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-OBS-WIRE-001 | [코드반영] | IG↔Analyze↔Shared | test_ext_module.js, test_analyze8780_module.py, test_shared_storage.py | 현재 페이지 observation batch | 실제 수신만 저장, URL 전환 cache 초기화, account/shortcode scope, 동일 10분 UPSERT | OK | 실제 Chrome·운영 SQLite 로그 미확인 | 다계정 전환·10분 내 재수집 확인 | ai_read_패치.md |
| T-SIDE-STATS-MODE-001 | [코드반영] | IG | test_ext_module.js, test_ext_main_ui.js, 실제 Chrome | 톱니바퀴 통계 단독·통계 연동 설정 | 기본 단독, 연동 선택 저장, Side 상태 개수 표시, 공유 d-none·0 | OK | 실제 Side 설정 저장·재시작 화면 미확인 | 모드 변경·재시작·상태 표시 확인 | ai_read_패치.md |
| T-SERVER-STATS-001 | [코드반영] | PHP/MySQL | test_yellow_php_static.py, 운영 SQL | 중앙 1시간 통계 이력 UPSERT·조회 | collector+shortcode+UTC hour 고유, transaction rollback, shortcode별 최신 수신 | OK | 운영 재수집 후 ig_media_stat_hour 0→증가 로그 없음 | v248 배포·통계 연동 실행 후 테이블 확인 | ai_read_패치.md |
| T-MVP-MEMBER-001 | [예정] | Server | 미정 | 수집자·device token | 인증·중복 방지 | UNKNOWN | 미구현 | 3단계 | ai_read.md |
| T-MVP-GROUP-001 | [예정] | Server/UI | 미정 | 그룹·공개범위 | ACL | UNKNOWN | 미구현 | 4단계 | ai_read.md |
| T-MVP-RESEARCH-001 | [예정] | UI/Server | 미정 | 대본·카테고리·평가·후킹 | 검색·권한 | UNKNOWN | 미구현 | 5단계 | ai_read.md |

| T-SERVER-ERROR-BODY-001 | [완료] | WS↔PHP | test_ws8771_module.py, 실제 Windows 로그 | HTTP 500 응답 body 보존 | status·stage·message·누락컬럼 유지 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-MYSQL-SCHEMA-001 | [코드반영] | PHP↔MySQL | test_yellow_php_static.py | schema_check·v47 통계 스키마 | 새 ig_media 컬럼·ig_media_stat_hour 필수 컬럼 확인 | OK | 최신 PHP v47 운영 배포·schema_check 로그 없음 | 배포 후 schema_check | ai_read_패치.md |
| T-SERVER-INSERT-001 | [검증대기] | WS↔PHP↔MySQL | 실제 서버 로그 | media_insert 등록 | video/image HTTP 200·ok=1 | FAIL | schema_check의 SHOW TABLES LIKE ? 문법 오류 | v241 배포 후 동일 shortcode 재검증 | ai_read_패치.md |

| T-AUTO-RECOVERY-001 | [코드반영] | Auto↔WS↔Analyze↔RTC | test_auto8700_module.py, test_ws8771_module.py | 관리 서비스 개별 종료 자동복구 | X·정상·비정상·포트 down 모두 재실행, 전체종료만 제외 | OK | 실제 Windows 종료 방식별 로그 미확인 | WS X·단축키·taskkill·Analyze/RTC 종료 실검증 | ai_read_패치.md |
| T-ACCOUNT-NORMALIZE-001 | [코드반영] | IG↔Analyze↔Shared | test_ext_module.js, test_shared_storage.py | `@account` 중복 제거·삭제 no-retry·입력순서 보존 | 저장 표시 통일, tombstone 우선, 삭제 URL 미생성, 일반 저장 자동정렬 없음 | OK | 실제 Chrome 저장·자동이동 미확인 | Chrome 저장·새로고침·자동실행 확인 | ai_read_패치.md |
| T-SIDE-WS-ONLY-001 | [코드반영] | IG↔WS | test_ext_module.js, test_ws8771_module.py, 실제 Chrome·Windows 로그 | 구형 다운로드 UI 제거·WS 단일 저장 경로 | 구형 UI·downloads 권한 없음, root=instagram, 계정 폴더 분리, WS 실패 시 전 경로 중단 | OK | 실제 WS OFF/ON 화면·다운로드 로그 미확인 | Side UI와 수동·전체·필터·Top 실검증 | ai_read_패치.md |
| T-HTML-REPORT-REBUILD-001 | [코드반영] | IG↔WS | test_ext_module.js, test_ws8771_module.py, 실제 생성 HTML | 기존 계정 보고서 전체 재생성·8780 링크 | 부모 JSON 기준 상위 HTML+index.htm 생성, folder_name fallback 계정 링크 | OK | 실제 `_StDown` 전체 재생성 미실행 | `lilys_home` 포함 실제 보고서 재생성·링크 확인 | ai_read_패치.md |
| T-TOP-TARGET-META-001 | [코드반영] | IG↔WS↔PHP | test_ext_module.js, test_ws8771_module.py, 운영 MySQL | Top 목표·후보 수·수집 순위 분리 | top_n=사용자 목표, rank_total=후보 수, rank_no=수집 당시 순위 | OK | 운영 collect event 재수집 미확인 | Top 목표 4 실행 후 MySQL 값 확인 | ai_read_패치.md |
| T-SIDE-ANALYZE-LINK-001 | [완료] | IG↔Analyze | test_ext_side_account_link_ui.js, test_ext_main_ui.js, 실제 Chrome | Side 8780 실제 링크·동적 계정 URL | health OK 때 href 활성, 실패 때 href 제거, `target=_blank`, `rel=noopener noreferrer`, 강제 창 열기 없음 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-AUTO-ANALYZE-KEEP-001 | [코드반영] | Auto↔Analyze | test_auto8700_module.py, 실제 Windows | Auto 종료 뒤 Analyze8780 유지 | 8780 PID·페이지 유지, 중복 실행 없음, 소스변경 재시작 유지 | OK | 실제 Windows 종료 로그 없음 | Auto X 종료·재실행·소스변경 확인 | ai_read_패치.md |

| T-INJECT-DOWNLOAD-META-001 | [코드반영] | IG↔WS | test_ext_module.js, test_ws8771_module.py, 실제 Chrome·Windows 로그 | Injection 수동 Image/Video 전체 메타 병합·정확한 ✅ 표시 | shortcode+asset+index 일치, 전체 통계·URL·caption 저장, 해당 버튼만 ✅ | OK | 개별 게시물 MP4와 Side 썸네일 수동 다운로드는 사용자 확인; 전체 메타·정확한 ✅·carousel은 미확인 | JPG·재클릭·carousel·생성 JSON 메타 확인 | ai_read_패치.md |

| T-ANALYZE-MEDIA-BADGE-001 | [코드반영] | Analyze8780↔Shared | test_analyze8780_module.py, 실제 브라우저 | JPG/MP4 이미지 배지·이미지 16:9·링크 rel 유지 | has_jpg/has_mp4, JPG·MP4·JPG · MP4, image-only 16:9, noopener noreferrer, 미다운로드 통계 유지 | OK | 실제 8780 브라우저 렌더링 미확인 | MP4/JPG/둘 다/미다운로드 카드 화면 확인 | ai_read_패치.md |

| T-AUTO-TARGET-COMPLETE-001 | [코드반영] | IG | test_ext_auto_target_completion.js, test_ext_auto_wait_resume.js, 실제 Chrome·Windows 로그 | 실제 저장 완료 shortcode Top목표·기간/All time 끝 판정·상태 제목 | 대상 0개도 실제 계정 n/n 전체 순회 후 자동종료, 완료 결과 n/n 유지, 다음 실행 위치만 0/n 초기화 | OK | v257 실제 중간 강제완료 실패를 v260 queue_completed guard로 코드 수정했으나 실제 Chrome 재검증 없음 | 대상 0개 44계정 순회·44/44 종료·다음 입력 0/44 확인 | ai_read_패치.md |
| T-AUTO-WAIT-RESUME-001 | [완료] | IG | test_ext_auto_wait_resume.js, 실제 Chrome 사용자 검증 | 다른 탭·창 사용 시 자동 무한 대기·사유 알림·같은 단계 재개 | 계정 위치·전체 집계 유지, 원래 자동 탭 복귀 시 동일 단계 자동 재개 | OK | - | WS 단절·Instagram 외 주소는 별도 실제 검증 유지 | ai_read_완료.md |

| T-EXT-MEMORY-001 | [코드반영] | IG | test_ext_memory_windowing.js, test_ext_virtual_list.js, 실제 Chrome 작업관리자·스크롤 | 대량 게시물 Base64·반복전송·이미지 디코딩 메모리 보호 | Base64 미생성, 변경시/30초만 전체 전달, 전체 카드 DOM 유지, 화면 밖 img src/srcset 해제, 16:9 고정, 전체 순위 유지 | OK | 실제 600~800개 Chrome 메모리 회수량 미확인 | 128·600개에서 스크롤/메모리/재로딩 확인 | ai_read_패치.md |
| T-EXT-VIRTUAL-SCROLL-ANCHOR-001 | [폐기] | IG | 실제 Chrome 스크롤 | 120카드 가상 DOM·spacer·anchor 보정 | 128개 경계에서 반짝임·왕복 없음 | SKIP | v258 실제 하단 스크롤에서 뒤로 갔다 내려가며 화면 반짝임 확인 | v259 전체 DOM·이미지 해제로 대체 | ai_read_삭제.md |
| T-EXT-DOM-STABLE-001 | [코드반영] | IG | test_ext_virtual_list.js, test_ext_memory_windowing.js, 실제 Chrome 스크롤 | 전체 카드 DOM 고정·화면 밖 이미지 자원 해제 | 스크롤 중 카드 추가/삭제·행측정·spacer·scrollBy 없음, src/srcset만 해제/복원 | OK | 실제 Chrome 128·600개 장시간 스크롤 미확인 | 하단 왕복·빠른 휠·이미지 재표시·메모리 확인 | ai_read_패치.md |
| T-OBS-INCREMENTAL-001 | [코드반영] | IG↔WS↔Analyze | test_ext_stats_incremental.js, 실제 Chrome·WS 로그 | 같은 1시간 신규·변경 shortcode 증분 송수신·100개 batch | 첫 전송 뒤 시간 전체 잠금 금지, 신규/변경만 100개씩 전송, 성공 chunk만 완료키 기록 | OK | 실제 `전송 12` 이후 스크롤 신규 전송 증가 로그 미확인 | 통계 연동 ON에서 250개 이상 스크롤·100/100/나머지 전송 확인 | ai_read_패치.md |
| T-OBS-LOCAL-DEDUP-001 | [코드반영] | IG↔Analyze↔Shared | test_ext_stats_incremental.js, test_analyze8780_module.py, test_shared_storage.py | 새 10분 구간 실제 통계 변경분만 SQLite 저장 | 최초 저장, 동일 통계·메타면 전체 쓰기 없음, 메타 변경만 갱신, 변경 통계만 이력 저장, 정상 조회수 보존 | OK | 실제 10분 이상 운영 SQLite 행 증가 로그 미확인 | 동일값 20분 유지·지표 1개 변경·재시작 후 중복 방지 확인 | ai_read_패치.md |

| T-SIDE-TAB-REREAD-001 | [완료] | IG | test_ext_side_reread_restart_ui.js, 실제 Chrome | 페이지 reload·swipe 없는 현재 탭 재읽기 | Main 동일 payload 억제 해제, 현재 DOM·캐시 재스캔, Side 카드 재전송 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-AUTO-PROGRESS-CONTINUE-001 | [코드반영] | IG | test_ext_side_reread_restart_ui.js, test_ext_auto_control_eta_v274.js, 실제 Chrome | 자동시작 처음/이어하기·사용자 중지 후 제어 복귀 | 중지는 진행상태 보존, 중지 완료 뒤 자동시작 가능·중지 불가, 리셋 후 0/n 시작 | UNKNOWN | v273에서 `중지중...` 고착으로 자동시작 불가 회귀 확인; v274 정적 회귀 OK, 실제 Chrome 재검증 없음 | 실행 중 중지→자동시작 가능·이어하기 확인 | ai_read_패치.md |
| T-SIDE-OPERATOR-UI-001 | [코드반영] | IG | test_ext_side_reread_restart_ui.js, 실제 Chrome | queue 계정명·방식 2/3 재배치·구 안내 삭제 | 현재 주소 계정명, 필터 결과 방식 2 위, Top 방식 3 아래, 부정확한 영문 안내 없음 | OK | 실제 화면 정렬 미확인 | Side 실제 배치와 계정 전환 표시 확인 | ai_read_패치.md |
| T-SIDE-CURRENT-ACCOUNT-ADD-001 | [완료] | IG | test_ext_side_account_link_ui.js, test_ext_main_ui.js, test_ext_module.js, 실제 Chrome | 현재계정추가 대상명 표시·동일값 추가 | 프로필 현재 계정 또는 Explore·Reels hover 계정 표시, 표시값=클릭값, 미확인 시 이전값 제거·비활성 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-ACCOUNT-ORDER-SAVE-001 | [완료] | IG↔Shared | test_ext_module.js, test_shared_storage.py, 실제 Chrome | 계정 추가 끝 삽입·일반 저장 순서 보존·명시 정렬 | 저장만 누르면 화면 순서 유지, 정렬 버튼에서만 오름차순, 정렬 시 진행상태 리셋 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-EXPLORE-HOVER-ACCOUNT-001 | [완료] | IG | test_ext_side_account_link_ui.js, test_ext_main_ui.js, test_ext_spa_injection.js, 실제 Chrome | Explore·Reels 썸네일 hover 계정 전달·강조 | 실제 media host, `data-code → S(code)`, 0.2초 확정, Side 이동 중 유지, 다른 카드 확정 때 교체 | OK | - | 회귀 유지 | ai_read_완료.md |

| T-IG-SPA-INJECTION-001 | [완료] | IG | test_ext_spa_injection.js, 실제 Chrome 사용자 검증 | SPA 게시물·Reels 인젝션·계정 재연동 | fetch/History/DOM/video 재판정, F5 없는 Explore→p·Reels 최초/다음 이동, 현재 shortcode 계정 적용 | OK | - | 회귀 유지 | ai_read_완료.md |


| T-EXPLORE-POPUP-RETURN-001 | [코드반영] | IG | test_ext_spa_injection.js, 실제 Chrome | Explore 상세 팝업 닫기 후 전체 인젝션 유지 | `/explore/ ↔ /p|reel|reels/{code}`에서 전체 media map 유지·F5 불필요 | OK | 실제 팝업 복귀 화면 미확인 | 여러 카드 인젝션 상태에서 팝업 열기·닫기 반복 | ai_read_패치.md |
| T-EXPLORE-HOVER-DELAY-001 | [완료] | IG | test_ext_spa_injection.js, 실제 Chrome | hover 통과 오감지 방지 | 200ms 전 leave는 미변경, 확정 선택은 Side 이동 중 유지 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-MAIN-DOM-DIAG-COPY-001 | [완료] | IG | test_ext_spa_injection.js, 실제 Chrome DOM진단복사.txt | Main 누락 DOM 진단복사 | URL·가시 링크·인젝션 수·data-code·첫 누락 HTML 복사 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-MAIN-NAV-VISUAL-HIDE-001 | [폐기] | IG | test_ext_spa_injection.js | 사용자용 No 이동 메뉴 숨김·숨은 DOM 유지 | v266에서 시각 DOM 완전 제거·내부 handler 분리로 대체 | SKIP | 숨은 `IGBLUE_NoNav_*` DOM 유지 방식 폐기 | `T-MAIN-RANK-VISUAL-REMOVE-001` 유지 | ai_read_삭제.md |
| T-MAIN-RANK-VISUAL-REMOVE-001 | [검증대기] | IG | test_ext_rank_visual_removal.js, test_ext_main_ui.js, 실제 Chrome | Main 순위 시각 UI·Main 설정 제거 | Main No000·Rank badge·순위 종류 행·1/Prev/Current/Next/마지막 부재, Side 순위 설정 유지 | OK | 정적 회귀 OK, 실제 Chrome 화면 미확인 | Side 순위 유지와 Main 부재 동시 확인 | ai_read_패치.md |
| T-SIDE-RANK-RESTORE-001 | [완료] | IG | test_ext_rank_visual_removal.js, test_ext_main_ui.js, test_ext_module.js, 실제 Chrome | v266 과삭제 Side No/rank 복원 | Side No000·Rank badge·순위 탭·저장/복원·실시간 갱신, Main 체크/payload 없음 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-HOME-INJECT-SOURCE-DIAG-001 | [완료] | IG | test_ext_home_injection_source_diagnostic.js, 실제 Chrome 사용자 확인 | 홈 중복 인젝션 생성경로 색상·상세 진단 | H/D/B 출처색과 duplicate_codes로 실제 중복 경로 구분 | OK | - | H_IMAGE_LINK+D_VIDEO_LINK 조합 회귀 유지 | ai_read_완료.md |
| T-MAIN-INTERNAL-NONAV-001 | [검증대기] | IG | test_ext_rank_visual_removal.js, test_ext_auto_wait_resume.js, 실제 Chrome 자동실행 | NoNav DOM 없는 내부 Current/Next·shortcode 이동 | internal state/handler 준비, 현재 순번 shortcode 카드 일치, go_no 이동·중지·이어하기 유지 | OK | 정적 회귀 OK, 실제 자동실행 미확인 | Top 3 이상 자동실행·중지·이어하기 확인 | ai_read_패치.md |
| T-HOME-INJECT-DUPLICATE-001 | [완료] | IG | test_ext_home_explore_recovery.js, 실제 Chrome | 홈 동영상 게시물 중복 인젝션 제거 | 같은 article·shortcode에서 visible video가 있으면 H_IMAGE_LINK 차단, D_VIDEO_LINK 카드 1개만 유지 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-EXPLORE-SPA-ENTRY-RECOVERY-001 | [완료] | IG | test_ext_home_explore_recovery.js, test_ext_spa_injection.js, DOM 진단, 실제 Chrome | 홈→Explore SPA 첫 진입 인젝션 복구·원인 로그 | fetch clone+Response json/text 수집, 0~8초 재스캔, INJ-01~05와 media_map/capture counter 출력 | OK | - | 회귀 유지 | ai_read_완료.md |

| T-AUTO-IMMEDIATE-TOP-001 | [완료] | IG | test_ext_immediate_top_download.js, test_ext_auto_target_completion.js, 실제 Chrome·Windows 사용자 확인 | Top 후보 즉시 다운로드·완료 후 swipe 계속·끝에서 다음 계정 이동 | 첫 pending 후보 snapshot 즉시 AD-03→저장, 완료 shortcode 재다운로드 없음, 목표 미달은 탐색 계속, 날짜/게시물 끝에서 현재 완료 수 유지 후 다음 계정 | OK | - | 실제 후보 1개 다운로드·다음 계정 URL 이동 회귀 유지 | ai_read_완료.md |

| T-INJECT-OVERLAY-MODE-001 | [코드반영] | IG | test_ext_overlay_mode_bridge.js, 실제 Chrome | Side 3단계 인젝션 표시 설정 bridge | detail=통계+버튼, download=버튼만, none=전체 숨김, 저장·즉시 변경 전달 | OK | 정적·helper 실행 회귀 OK, 실제 Chrome 3모드 전환 미확인 | 3모드 선택·새로고침·SPA 이동·콘솔 오류 확인 | ai_read_패치.md |
| T-VISUAL-SIDE-MAIN-001 | [완료] | IG | test_ext_visual_settings_download_status.js, 실제 Chrome 사용자 확인 | Metric bars·Date border Use/Side/Main 독립 저장·적용 | main을 side로 덮지 않고 storage·Side·Main 각각 선택 상태 유지, 현재 입력값 기본값 적용 | OK | - | 회귀 유지 | ai_read_완료.md |
| T-MAIN-DOWNLOAD-STATUS-001 | [완료] | IG | test_ext_visual_settings_download_status.js, test_ext_module.js, 실제 Chrome 사용자 확인 | Main DOM MP4/JPG 다운로드 상태 강조 | 정확한 shortcode·asset_kind 카드에 시작·진행·성공·중복·부분·실패 표시, 설정 Glow/테두리/radius/투명도/확대 적용 | OK | - | 회귀 유지 | ai_read_완료.md |

| T-AUTO-INDEXED-START-001 | [코드반영] | IG | test_ext_account_queue_v273.js, test_ext_auto_control_eta_v274.js, 실제 Chrome | 0/N 현재페이지와 1/N 이상 지정 URL 시작 분리 | 0/N 비 Instagram이면 실행 진입 없이 안내·자동시작 가능, 1/N 이상은 지정 URL을 background tabs.update로 먼저 로드 | UNKNOWN | 1/N 직접 시작은 사용자 확인; v273 0/N은 대기상태 진입·새 탭 혼선 확인, v274 코드 수정 후 실제 재검증 없음 | 0/N 비 Instagram 안내·버튼 상태와 1/N 회귀 확인 | ai_read_패치.md |
| T-AUTO-DELETED-ACCOUNT-001 | [코드반영] | IG↔Analyze↔Shared | test_ext_account_queue_v273.js, test_analyze8780_module.py, test_shared_storage.py, 실제 Chrome | 없어진 계정 명시 판정·휴지통 SQLite 저장·다음 URL | 동일 username의 명시적 not_found만 🗑️ 저장, 재오픈 없이 같은 활성 index의 다음 URL, private/auth/delay 오판 없음 | OK | 실제 Instagram 없어진 계정·인증·비공개 화면 검증 없음 | 없어진 계정과 비공개/로그인 계정을 연속 목록에서 확인 | ai_read_패치.md |
| T-ACCOUNT-DB-FILE-001 | [코드반영] | IG↔Analyze↔Shared↔WS | test_ext_account_queue_v273.js, test_analyze8780_module.py, test_shared_storage.py, 실제 Windows | 수집계정 SQLite 파일 열기·새 파일·다른이름 저장·선택 유지 | Shared/data 안전 파일명, 비덮어쓰기, 선택 JSON 지속, DB 전환 뒤 목록·index 0, Analyze·WS 같은 선택 DB 사용 | OK | 단위·HTTP API OK, 실제 Side·재실행·다운로드 저장 검증 없음 | 세 버튼 전환·재실행·선택 DB의 계정/통계/다운로드 확인 | ai_read_패치.md |

| T-AUTO-CONTROL-STATE-001 | [코드반영] | IG | test_ext_auto_control_eta_v274.js, 실제 Chrome | 사용자 중지·자동종료 후 제어 상태 복구 | 중지 완료·자동종료 완료 뒤 시작 사용 가능, 중지 사용 불가, 자동실행 사용 설정 유지, stopping 고착 없음 | UNKNOWN | 정적 회귀 OK, 실제 Chrome 중지·자동종료 재검증 없음 | 중지·자동종료 각각 버튼 상태 확인 | ai_read_패치.md |
| T-AUTO-TAB-ID-UI-001 | [코드반영] | IG | test_ext_auto_control_eta_v274.js, test_ext_side_operator_manual_v275.js, 실제 Chrome | 방식 3 tab_id 단일 표시 | Top sorted 자동 개수 앞 1곳만 표시, 유효 대상 숫자·미확정 `-`, 자동실행 버튼 사이·하단 중복 없음 | UNKNOWN | 정적 DOM·상태 함수 회귀 OK, 실제 탭 전환·종료 검증 없음 | Instagram/비Instagram/탭닫기/중지 후 표시 확인 | ai_read_패치.md |
| T-AUTO-ETA-001 | [코드반영] | IG | test_ext_auto_control_eta_v274.js, 실제 Chrome·Windows | 전체 계정·Top목표 종료예상 | 남은 현재 목표 + 이후 계정×Top목표, MP4+JPG 성공시간 게시물 평균 JSON 누적, 다운 지연 합산, 완료 0분 | UNKNOWN | 계산 helper·저장 계약 OK, 실제 장시간 자동실행 ETA 검증 없음 | 11/44 등 중간값·중지/재실행 평균 유지 확인 | ai_read_패치.md |
| T-SIDE-AUTO-LABEL-TAB-001 | [코드반영] | IG | test_ext_side_operator_manual_v275.js, 실제 Chrome | 자동실행 한국어 UI·기본 체크·설정 우측 정렬 | 저장값 없음이면 자동실행 사용 ON, 명시 OFF 유지, 표시명 `자동실행 사용/시작/중지`, 톱니바퀴 오른쪽 | OK | 정적 회귀 OK, 실제 Side 재로딩·화면 배치 미확인 | 기본값/명시 OFF/톱니바퀴 위치 확인 | ai_read_패치.md |
| T-SIDE-ACCOUNT-CARD-SELECT-001 | [코드반영] | IG | test_ext_side_operator_manual_v275.js, test_ext_module.js, 실제 Chrome | Side 카드 IG 계정 클릭 대상 선택 | 클릭 계정이 기존 계정추가 버튼 대상으로 표시, URL 변경 시 오래된 수동 선택 해제, 클릭만으로 저장 없음 | OK | 정적 회귀 OK, 실제 여러 카드 클릭 미확인 | 다른 계정 카드 연속 클릭·계정추가·저장 확인 | ai_read_패치.md |
| T-MANUAL-DOWNLOAD-START-001 | [코드반영] | IG | test_ext_side_operator_manual_v275.js, test_ext_visual_settings_download_status.js, 실제 Chrome | 수동 MP4/JPG 클릭 즉시 시작 강조 | Side/Main 수동 클릭 순간 정확한 shortcode·asset_kind·media_index start, 이후 성공/부분/실패 전환, 자동 경로 비변경 | OK | payload·bridge 정적 회귀 OK, 실제 수동 MP4/JPG 화면 검증 없음 | 수동 클릭 즉시 해당 카드 강조·결과 전환 확인 | ai_read_패치.md |
| T-EXT-RUNTIME-DIAG-001 | [코드반영] | IG | test_ext_runtime_diagnostic_v276.js, 실제 Chrome DevTools | 3/3 응답 없음 runtime 계측 | 10초 DOM/heap/media 표본, Long Task, V scan 시간, Observer/debug 누적, 계정 index 상관관계, 자동복구·unload patch 없음 | OK | 정적 계약만 확인, 실제 1/3→3/3 profile 없음 | Gemini DevTools에서 snapshot·Performance·Heap 비교 후 확정 원인 기록 | ai_read_패치.md |
완료: 55 / 전체: 110 = 50%
