# WS8771 현재 기준 — v240

- 원본 미디어 URL을 `_StDown/instagram/{계정}/{원본파일명}`에 직접 저장한다.
- `.part`로 내려받고 완료 후 원본 파일명으로 atomic rename한다.
- 이후 파일 존재·해시·MD5·JSON·ECharts·Shared MEDIA_SAVED를 처리한다.
- 자동 다운로드 기능 체크는 별도 `ws_project_progress_log_*`에 `[자동다운로드][AD-ID][상태] 한국어 내용` 형식으로 기록한다.
- 동일 cycle·체크 ID·상태·자산 로그는 한 번만 기록한다.
- 실패 시 기존 `ws_run_log_*`에 `*** 상세로그 *** {검색키워드}`를 남긴다.
- 프로젝트 진행로그에는 상세로그 경로·검색어·`ws_failure_log_*` 경로를 기록한다.
- 실패 발췌로그는 관련 항목만 저장하며 전체 실행로그를 복사하지 않는다.
- 같은 cycle의 후속 저장 성공 시 이전 실패를 `[복구완료]`로 해제한다.
- 서버 등록 실패는 로컬 저장 성공과 분리하고 자동 다운로드 진행을 막지 않는다.
- 정상 상세 cycle 상태는 기능 체크 모드에서 사용자 로그에 반복 출력하지 않는다.
- Save As 감지·Enter는 보조 진단 기능이며 주 다운로드 흐름이 아니다.

- HTTP 500은 응답 body를 읽어 `http_status`, `error_stage`, `sql_error_code`, `message`, `table`, `missing_columns`를 보존한다.
- 서버 오류에 토큰·비밀번호를 기록하지 않는다.
- `media_insert` 운영 성공 로그 전에는 서버 등록을 완료로 표시하지 않는다.
