{"commit":{"body":[{"label":"Why","text":"Web 소유 ROI Snapshot을 위해 상시 CPU Frame을 복사하던 구현과 잠금 계약이 달랐고 Tracking adapter의 반복 준비비용을 줄일 필요가 있었다."},{"label":"What","text":"Snapshot API/cache/frame_sink를 제거하고 opt-in 영상 소비자를 보존했다. Tracking 일괄 배열화·클래스 그룹화와 FastAPI 전용 OpenBLAS thread 기본1을 적용했다."},{"label":"Impact","text":"Metadata/ID/threshold/모델/인증은 유지한다. DISCARD 후보는 실제 실패로 철회해 최종은 SDK retrieve/RGB 경로를 유지한다. Artifact 출력규격은 후속 계약만 기록했다."},{"label":"Verify","text":"최종 source/image 각44 tests와 고정입력 ID/reset parity PASS. 준비1.648→0.765ms. 실제2회 중 최종 첫결과2.508초·cleanup2.208초 PASS지만0.961FPS로 목표 미달이다."},{"label":"Rollback","text":"private CAS와 이전 image를 보존했다. 최종 healthy/stopped·표시0.25·restart 복원·detailOff, FastAPI BLAS1/Triton unset을 확인했다. 남은 SDK 경로 대기 원인은 미확정이다."}],"title":"refactor(runtime): 상시 Snapshot 제거와 Tracking 준비비용 보정"},"created_at":"2026-09-12T14:47:04+00:00","expires_at":"2026-09-19T14:47:04+00:00","job_id":"ltb1021-snapshot-tracking-20260912","paths":[{"change":"modified","content_sha256":"0aed093f2a212060a8dce9695437d5210aa51b5bf164a7c026cf49f545b66274","path":"app/main.py"},{"change":"modified","content_sha256":"5ee3be709f7b5ee2b3a4ecd15ed9402048691533d19f370a51ba6544298dba73","path":"app/multi_pipeline.py"},{"change":"modified","content_sha256":"f04eab1745bdba355ca03fbfc9345edbb28d02753222d0fce0e01c286b89f17c","path":"app/stream_manager.py"},{"change":"modified","content_sha256":"16012e6f6b91e49686b7e20fa4593f52278e3927b3048b5244482a7ac3873f37","path":"tests/test_metadata_connection.py"},{"change":"added","content_sha256":"83d6bb3d44a21fea777a089182f3526ebad346f8c0b77a2de44cb20b70675fa4","path":"tests/test_metadata_only.py"},{"change":"modified","content_sha256":"38ea2714f29bf8aa771e688da2d1af03af4316d712287df972fc409a868cf40a","path":"app/byte_tracking.py"},{"change":"modified","content_sha256":"f6d94dfde7e4e1d9369a72941f1554406e562364c403c7b4baf2e5cd45d15f8f","path":"docker/entrypoint.sh"},{"change":"added","content_sha256":"ed72cdff717195757a7c8c911e687b7505cba526089f3c32178aedb66b873ab1","path":"tests/test_tracking_preparation.py"},{"change":"modified","content_sha256":"40831ba0fc7b17b6d362ab094796b0d86d86c7233174af08305b37cecc98fc3f","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"5df731545f4f866e6de5ca747b15a40f6bebfe37ddbf8ee9df6ed51244bca4b9","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260912T234000+0900-decision-snapshot-retirement-tracking-artifact.md"},{"change":"added","content_sha256":"d2762c32dedef250bf4b163a03fe04b492d61a4dc4ccc334c543cb3b5d9be7f7","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260912T234000+0900-run-snapshot-tracking.md"}],"plan_hash":"1f7238d3b15a8b63aa335daa2063bf9cb4b749739c9d1cf3753d155badb92578","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"416ffb0af9a5beece4d0db9723247fd85f37b5cb","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"416ffb0af9a5beece4d0db9723247fd85f37b5cb","branch":"task/runtime-lifecycle-refactor","worktree":"/workspace/contextra-analytics-runtime-lifecycle-refactor"},"schema_version":"ltb1021.codex_hub.git_closeout_manifest.v1","session_alias":"work-session","verify":["source/image44 tests; fixed-input tracking parity/benchmark; window1 failure retained, window2 data/cleanup PASS but 10FPS WAIT; source hash/docs/SOT/diff check PASS"]}
