# 유지 설정과 재개

actual Analytics는 새 image pose-nms-30af673-2ef8ad7e, healthy/Stream stopped입니다.
기존 카메라 overlay를 byte 단위로 복원했으므로 다음 일반 Start는 기존 Medium 경로입니다.
Pose 모델은 preload되어 있지만 카메라 Pose enabled/show_joints/show_edges는 시험 전 값입니다.
필요한 경우 기존 settings API revision CAS로 Pose를 명시 활성화합니다. 카메라가 자동 실행되지는 않습니다.

## 동일 persistent 구성 재생성

아래는 기록용 명령이며 실행 승인은 다음 작업 범위를 따릅니다. Start는 포함하지 않습니다.

```bash
docker compose --env-file /workspace/contextra-runtime-config/runtime.env \
  -f /workspace/contextra-analytics-runtime-lifecycle-refactor/docker-compose.yml \
  -f /workspace/contextra-runtime-config/metadata-active/compose.yaml \
  up -d --no-deps --force-recreate --pull never analytics
```

Pose 모델 exact 경로/hash/config와 read-only mount는 model-prepared.json,
최종 image/env/mount readback은 final-state.private.json이 소유합니다. 기본 compose만으로 재생성하지 않습니다.
원래 Pose1/config는 변경하지 않고 새 deployments 경로를 별도 mount했습니다.
metadata-active의 기존 인증/LAN 값과 Medium version2 설정은 유지합니다.

## 복원 경계

- 이전 image/env/compose/overlay byte는 plan.json 및 *.before에 보존되어 있습니다.
- 실제 현재 hash와 비교하여 이번 image tag와 추가 Pose mount만 복원합니다.
- staged Pose plan은 삭제하지 않습니다. 기존 version1/FP32로 자동 전환하지 않습니다.
- capture.enabled 제거, file/visual/diagnostic mount 제거, restart on-failure:3 복원 완료입니다.

SDK 검증 재사용 시 image-owned PYTHONPATH=/opt/contextra를 보존해야 합니다.
source tests는 /source와 /source/tests를 앞에 추가하되 /opt/contextra를 누락하지 않습니다.
image tests는 /opt/contextra와 tests만 사용하고 app source로 image를 가리지 않습니다.
진단은 ModuleNotFoundError를 원인으로 확정했고 PYTHONPATH 보존으로 실제 SDK/Runtime이 통과했습니다.
원인 조사·모델 변환·완료한 Start를 같은 원장으로 반복하지 않습니다.
