# test 오프라인 패치: 여기서 시작

검토: @DATE@ KST. **준비/봉인 완료, 사용자 설치는 아직 미실시**다.
배포 ID는 `test-demo-20261103-r02`, 대상은 test의 `contextra-local / compose`다.
아이서티/청계산에 적용할 패키지가 아니다.

## 먼저 할 일

1. 이 폴더 `Contextra_Offline_USB_20261103_r01` 전체를 Windows로 다운로드한다.
2. 여유 있는 USB의 새 폴더로 복사한다. 기존 자료는 지우지 않는다.
3. USB를 test에 연결한 뒤 [전체 절차](01_FULL_PROCEDURE.ko.md)의 장치 확인부터 진행한다.
4. **해시 확인 → 서버 staging → prepare까지는 서비스 정지 없이 진행한다.**
5. 대상/목적지/복귀 준비를 확인한 후에만 사용자가 Contextra를 정상 정지하고 apply한다.

`package/` 내부의 이름/내용은 바꾸거나 파일을 추가하지 않는다. 사용자 메모는 그 바깥에 둔다.

## 용량과 대상

- 영상이 아니라 완성 Docker image6개가 들어 있다. 총 약64.3GiB이며 일반64GB USB에는 들어가지 않는다.
- **128GB 이상 USB와 실제 여유70GiB 이상**을 권장한다. NTFS/exFAT 등 단일23GB급 파일을 지원해야 한다.
- FAT32이면 포맷하지 말고 중단한다. 기존 도구의2GiB 분할 기능은 있으나 이번 전달물은 분할본이 아니다.
- test는 VM이다. USB가 보이지 않으면 호스트에서 게스트로 장치 전달이 필요할 수 있다.
- 현재 test의 `/dev/sda`는 root, `/dev/sdb`는 `/data`다. 이름을 추측해 마운트/포맷하지 않는다.
- 서버 staging에 추가 약65.3GiB 이상이 필요하다. 실제 설치/복귀의 root 기준은15GiB로 유지된다.
  반출 준비용10/12GiB 정책을 설치에 적용하지 않는다.

## 신뢰할 지문

패키지 manifest `package/package.json`의 SHA256:

```text
@PACKAGE_SHA@
```

USB 안의 파일끼리만 비교하면 신뢰 확인이 되지 않는다. 최종 채팅에서 별도로 받은
`BOOTSTRAP_SHA256SUMS` 지문으로 먼저 작은 진입 파일과 이 안내서를 확인한다.
그다음 `stage`가 큰 image까지 전부 검증한다. 자세한 명령은 전체 절차에 있다.

## 적용 범위와 보호

- Analytics image를 누적 개선본으로 바꾸고 기존/신규 채널 FIGHT R5·FALL R2 기본 선택을 연결한다.
- 사람/관절의 유효한 높은 값, cooldown, ROI, On/Off, 다중ROI 운영 모드는 보존한다.
- FIGHT 표시 최대3초, FALL 최대1초다. 현재 대응이 없으면 옛bbox를 그리지 않는다.
- 다른4개 서비스 image와 모델·DB·Event·영상·인증정보·기존ct는 교체/초기화하지 않는다.
- 다만 정상 적용 중 **Contextra의5개 서비스는 일시 정지/재기동**된다. SSIMS에는 정지 명령을 내리지 않는다.
- 네트워크·SSH·Docker daemon은 끄지 않는다. 새 도구는 별도 staging에서 실행한다.

## 어디까지 확인됐나

봉인 지문·image archive 전체 읽기·독립 진입점·네트워크 없는 진입 검사와
기존 격리 테스트를 확인했다. [검증 범위](VALIDATION.ko.md)를 참고한다.
실제 Windows/USB 전송, 사용자 적용/복귀, cold image load, 브라우저·알람 수용과 처리속도는 아직 확인하지 않았다.
test에는 image가 이미 있어 실제 적용에서 load가 생략될 수 있다.

문제 발생 시 같은 명령을 반복하지 말고 [복구·반출 안내](02_RECOVERY_AND_LOGS.ko.md)를 따른다.
설치 전 충분한 시간이 없으면 서비스를 정지하지 않는다. 이번 test의 전체 해시1회는 약12~13분이었다.
stage는3회 검사와1회 복사를 하므로 USB 속도에 따라1시간 이상 걸릴 수 있다.
apply/rollback도 전체 검사부터 수행한다. Contextra 정지는 긴 반입/prepare가 끝난 뒤에만 한다.
