# 완료·검증 기록 — 패키지 v226

## v223 유지 완료 항목

- 마우스·원점·Heart 계층 폐기
- `IG_StYellow` 폴더명 기준
- 직접 URL 다운로드 경로 유지
- WS 파일·JSON·ECharts 보고서 기능 유지
- SQLite v1·MySQL v45 기본 구조

## v224 완료 항목

### Shared SQLite v2

- 테스트 파일: `Shared/test_shared_storage.py`
- 결과: `10 passed`
- 검증 범위:
  - SQLite user_version 2
  - v1·v2 migration 기록
  - `_StDown/instagram` 고정 루트
  - `download_batches`, `download_jobs`, `media_saved_events`
  - 다섯 source mode 공통 `MEDIA_SAVED`
  - media asset `AVAILABLE`
  - post `MEDIA_AVAILABLE`
  - download job `COMPLETE`
  - event UUID 멱등 처리
  - sync_queue 단일 생성
  - sync payload의 로컬 경로 제외
  - 저장 루트 밖 경로 거부

### MySQL v46 구조

- 파일: `Shared/storage/mysql/migration_v46_media_saved_flow.sql`
- 결과: 구조 테스트 OK
- 검증 범위:
  - 기존 `ig_media`, `ig_media_user_download` ALTER·DROP 없음
  - v45 기존 테이블 DROP·TRUNCATE 없음
  - download batch/job/media saved event 테이블 추가
  - 로컬 경로 컬럼 없음
  - `device_id + client_event_id` 중복 방지 구조

## v224 당시 완료로 표시하지 않은 항목

- IG·WS 실제 호출 연결은 당시 미구현이었다.
- 실제 Windows Chrome 다운로드는 실행 로그가 없다.
- 실제 운영 MySQL 적용과 PHP API 연결은 하지 않았다.
- 따라서 위 항목은 `[예정]` 또는 `[검증대기]`다.


## v225 완료 항목

### IG→WS 다운로드 식별정보 전달

- 테스트 파일: `IG_StYellow/test_ext_module.js`
- 결과: OK
- 검증 범위:
  - `MANUAL_SINGLE`, `BULK_ALL`, `BULK_FILTERED`, `TOP_SORTED` source mode
  - client batch/job/event key 존재
  - bulk 재개 시 batch key 유지
  - 수동 캐러셀의 모든 파일이 하나의 실제 batch key 공유
  - WS 알림 예외와 Shared 실패를 `partial`로 표시
  - 실제 수정 모듈 버전 `2.3.8.225`

### WS→Shared MEDIA_SAVED 호출

- 테스트 파일: `WS8771/test_ws8771_module.py`
- 결과: OK
- 검증 범위:
  - Shared import와 `record_shared_media_saved()` 연결
  - 파일 완료 후 `storage_ok`·`media_saved` 결과 반환
  - 실패 시 `MEDIA_SAVED_FAIL` 노출

### Shared 실제 파일 완료 orchestration

- 테스트 파일: `Shared/test_shared_storage.py`
- 결과: 13개 OK
- 검증 범위:
  - 실제 다운로드 루트 로컬 등록
  - 계정·게시물·통계 upsert
  - batch/job 생성과 완료
  - 요청 파일 수 충족 전 RUNNING 유지
  - event 재처리 멱등성
  - sync payload 로컬 경로 제외

## v225에서도 완료로 표시하지 않는 항목

- 실제 Windows Chrome 다운로드 실행 로그
- `TRANSCRIPT_REQUEST` 실제 호출 연결
- 운영 MySQL v45/v46 적용
- PHP MEDIA_SAVED 수신 API


## v226 완료 항목

### IG 메인 주입 계정명 표시

- 테스트 파일: `IG_StYellow/test_ext_module.js`
- 결과: OK
- 검증 범위:
  - username이 있으면 `IG double_king0.1` 형식
  - username이 없으면 `IG` fallback
  - 순위 라벨이 있으면 기존 `No 000\naccount\nkind` 유지
  - JavaScript syntax OK
  - 실제 수정 모듈 버전 `2.3.8.226`

## v226에서도 완료로 표시하지 않는 항목

- 실제 Instagram 화면 렌더링 확인
- 10분 단위 observation 수집·중앙 DB 저장
