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

## 이전 유지 완료

- v223: 마우스·원점·Heart 폐기, `IG_StYellow` 기준
- v224: SQLite v2·MySQL v45/v46 구조
- v225: IG→WS→Shared `MEDIA_SAVED` 연결
- v226: 메인 주입 `IG account` 표시

## v227 완료 항목

### Side 계정·순위 분리

- 테스트: `IG_StYellow/test_ext_module.js`
- 결과: OK
- 검증:
  - `IG account` 독립 라벨
  - `No000` 독립 라벨
  - Top 조건이 없으면 `No000` 숨김
  - 직접 다운로드 기존 토큰 유지

### SQLite v3·10분 repository

- 테스트: `Shared/test_shared_storage.py`
- 결과: OK
- 검증:
  - 기존 v1 DB에서 v3까지 추가 마이그레이션
  - 10분 내림 처리
  - 같은 버킷 UPSERT와 `sample_count`
  - 계정·게시물 페이지 조회
  - 최근 10분 증가량과 시간당 환산
  - 계정·게시물 soft-delete
  - DELETE sync_queue

### Analyze8780

- 테스트: `Analyze8780/test_analyze8780_module.py`
- 결과: OK
- 검증:
  - health
  - account list
  - account posts
  - 10분 통계
  - account DELETE
  - deleted account tombstone API
  - 임시 포트 HTTP 실행

### 삭제 계정 Side 제외

- 테스트: `IG_StYellow/test_ext_module.js`
- 결과: OK
- 검증:
  - `🗑️` prefix 인식
  - 삭제 항목 수집 목록 제외
  - 삭제 항목 카운팅 제외
  - Analyze8780 삭제 목록 polling 코드 존재

## 완료로 표시하지 않는 항목

- 실제 Windows Chrome Side 렌더링
- 실제 운영 SQLite 데이터 마이그레이션
- IG 실시간 observation 전송
- PHP/MySQL 10분 중앙 저장
- 대본 추출


## v228 완료 항목

### Analyze8780 자동 실행 설정

- 테스트: `Auto8700/test_auto8700_module.py`
- 결과: OK
- 검증: 서비스 등록, 자동 시작, 8780 포트, HTTP JSON health, bat catalog, Shared restart 연동

### Side 계정목록 명시 저장

- 테스트: `IG_StYellow/test_ext_module.js`
- 결과: OK
- 검증: `💾 저장`, dirty 표시, blur 자동 저장 제거, 삭제 polling 미저장 보호

### Analyze8780 실행 BAT

- 테스트: `Analyze8780/test_analyze8780_module.py`
- 결과: OK
- 검증: `py312` 실행 명령과 health version `2.3.8.228`


## v229 완료 항목

### 게시물 canonical URL

- 테스트: `Shared/test_shared_storage.py`, `WS8771/test_ws8771_module.py`, `Analyze8780/test_analyze8780_module.py`
- 결과: OK
- 검증:
  - `/explore/`, `/reels/`, 프로필, 홈, CDN URL의 post_url 저장 차단
  - shortcode 일치 `/reel/`, `/p/`, `/tv/` permalink 유지
  - 유효 링크가 없으면 영상 `/reel/`, 그 외 `/p/` 생성
  - 기존 잘못된 DB URL의 Analyze8780 조회 표시 교정
  - 기존 다운로드·MEDIA_SAVED·10분 repository 회귀 유지
