{"commit":{"body":[{"label":"Why","text":"실제 Metadata를 읽기 쉬운 이미지로 확인하고 시험 Anchor와 실제 관측 시각을 분리한다."},{"label":"What","text":"후보/클래스 집계·사람 강조·고정 palette·label 충돌 완화와 source-scoped synthetic FrameTime copy를 구현했다. 승인 테스트 표시0.1을 유지한다."},{"label":"Impact","text":"Redis 업무 color/기존 threshold/모델/인증은 보존한다. raw RTP 추출 및 시각 계산은 보류하고 현재 시험 설정은 다음 기본 recreate에서 제외한다."},{"label":"Verify","text":"최종 source/image 각36 tests와 SDK copy/release PASS. 실제 Start1/Stop1에서 동일 JSON/JPEG3쌍·Anchor 전달·cleanup PASS; 사용자 시각 확인 대기."},{"label":"Rollback","text":"private 원장과 actual drift를 확인해 이번 image/env/overlay/active compose만 복원한다. 기존 image/모델/인증과 실패 evidence는 보존했다."}],"title":"feat(metadata): 개발용 시각화와 명시 시험 Anchor 연결"},"created_at":"2026-09-12T00:23:52+00:00","expires_at":"2026-09-19T00:23:52+00:00","job_id":"ltb1021-visual-time-20260912","paths":[{"change":"modified","content_sha256":"64a6ac73821cabf06bdbe6f8be063d754fe3a38f6cc519e2d392e0196161c20c","path":"app/frame_ingress.py"},{"change":"modified","content_sha256":"2962a6b8162a402e421043041413772eb770bedd380ca6bf8ea01de3832fe3bc","path":"app/metadata_visual.py"},{"change":"modified","content_sha256":"285f8df36f4aacc43555608a1c66ae31d97a2a7fa16bd799ac468d3408fd90d2","path":"app/stream_manager.py"},{"change":"added","content_sha256":"f3f02d183a7d750e6610c46ed296c1dd67fbecea35f1bb45a2478ddef1557f5c","path":"app/metadata_render.py"},{"change":"added","content_sha256":"870d313b7afdd832f45290c95ae14645442cbd69a47dd5183b95fca0a363651c","path":"app/test_frame_time.py"},{"change":"modified","content_sha256":"8be200a6146e3f40bbc8fc5365f68ddaea37c9a18e585d7f69371c630c7a6509","path":"tests/sdk_frame_identity_probe.py"},{"change":"modified","content_sha256":"e23abdeff3dacbd2b497c5c253c539676a98008c26d07321ccb5fa8a6e2abe18","path":"tests/test_metadata_connection.py"},{"change":"added","content_sha256":"8f1a64463379e05f3498db478102d4962ad76b56044d60925f3012f44ee85c61","path":"tests/test_metadata_render_time.py"},{"change":"modified","content_sha256":"431b4eb32a936d190a585b30e15388996926748fdc28e704e257eaa27f6c1da3","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"743ec06a17b54d57ce0dec3ee2b6afd17a3e30dbc8e2fd2d36ba0511b7f5603f","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260912T091739+0900-decision-debug-visual-test-anchor.md"},{"change":"added","content_sha256":"6ac8ce64a241d33d17500ad472007c635c4e7a243115e1f7cd4e94bce170942d","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260912T091739+0900-run-debug-visual-test-anchor.md"}],"plan_hash":"f21d9f483a5ed2f771b17f00c552b860176a4b3f99ef8089ea0f62cb63c56e09","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"ec11f507f0db3939dfd03c51fcf6c4a4bda9e3de","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"ec11f507f0db3939dfd03c51fcf6c4a4bda9e3de","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":["36 source + 36 image tests and SDK copy PASS; actual visual3/Anchor/cleanup PASS; display0.1 active; docs links/source hashes/diff-check PASS"]}
