{"commit":{"body":[{"label":"Why","text":"빈 bin 검증이 실제 source의 상속 signal과 dynamic pad 제약을 놓쳐 Flow/API 중단이 반복됐다."},{"label":"What","text":"public setup probe로 source hook을 초기화하고 Flow 세부 관측과 실제 source worker 회귀를 추가했다. 단계별 예산과 복원 최소화 원칙을 Owner에 통합했다."},{"label":"Impact","text":"별도 Decode/pixel 복사나 SDK patch 없이 RTP를 Frame에 연결한다. 표시0.25·모델·인증/LAN·기존 lifecycle 계약을 유지한다."},{"label":"Verify","text":"관련25 tests·source/image 실제 source worker 및 SDK copy PASS. 실패2/build1/live1에서 first3.499초·독립live30/30·RTP Redis/JPEG3쌍·cleanup2.527초 PASS. 실제 절대시각/품질/표본 trackId는 미검증."},{"label":"Rollback","text":"private CAS 원장과 이전 image를 보존했다. 현재 healthy/stopped·capture Off·restart 복원이며 explicit synthetic Anchor는 공동 연동까지 카메라 설정에 유지한다."}],"title":"fix(rtp): 실제 source 초기화 교정과 Frame 시간 전달 검증"},"created_at":"2026-09-12T11:01:55+00:00","expires_at":"2026-09-19T11:01:55+00:00","job_id":"ltb1021-flow-boundary-20260912","paths":[{"change":"modified","content_sha256":"847eb7cb9d847be2d0e2853a4e0ddbaf18c65575c23723a7b44dba5b3f5efd6e","path":"app/multi_pipeline.py"},{"change":"modified","content_sha256":"bf446be9cede218ec204ba7f7d75aeb0a62184b5c22b245b0d3cd954edc87e27","path":"app/source_adapters/rtsp.py"},{"change":"modified","content_sha256":"be76e7e33d8ae9611319340facc20b8b6864ec5747b574b16cf66f71a2dc96fc","path":"app/start_diagnostics.py"},{"change":"modified","content_sha256":"52bdac2b716aadbf103cc8ac0c6e63fa1b7eb210f395ea16b80c77de3494afe7","path":"native/frame_metadata/rtp_signal.cpp"},{"change":"modified","content_sha256":"cbfbfa578f43abe4789baf0288691a53f8d1af1f50ed53a628cf708aa26d3bd1","path":"native/frame_metadata/rtp_time.hpp"},{"change":"modified","content_sha256":"127ec31a5ee3cffda43a63331e49224045e53887dbf914176c5450198178737a","path":"tests/sdk_rtp_loader_probe.py"},{"change":"modified","content_sha256":"7e6e95515ab37ab1c6014c9d4d81fe4a480646c6d263fb56416ab1540516ff67","path":"tests/sdk_rtp_time_probe.py"},{"change":"modified","content_sha256":"adb2b2f447c758c4181b34d6c984b196ad8cf4437027477723f9ec7ff404cc4b","path":"tests/test_rtsp_source_adapter.py"},{"change":"modified","content_sha256":"72efe9da9f1f70e4b41bcc36db62e778cc80c2b6c117a5d89722791156648bad","path":"tests/test_start_diagnostics.py"},{"change":"added","content_sha256":"39751aa037e37875c7c01b2559baa8ab1f572d2311df34aff45df0264a57442b","path":"tests/sdk_rtsp_compose_probe.py"},{"change":"modified","content_sha256":"6f6ef004bb0dddc790e99dc30fd9a1efee5cfc911af477a78b3770c5fcec5d64","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"e876d78b367a56e2b2019e3fd2c9f16fd6ffb3801bc600c9e036a997ce7db5c4","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260912T195459+0900-decision-bounded-correction-recovery.md"},{"change":"added","content_sha256":"a4e775ac6423d68d41f1b029cfa0e4a012be6ecd5f757b546b2f76622636d50a","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260912T195459+0900-run-flow-boundary-rtp-pass.md"}],"plan_hash":"c0826c37027555366453a9f22f468793cf083681318bfd061c62a84a85ed9d72","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"3c9c9a5599a06e20f6052f17de26eb65752047e9","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"3c9c9a5599a06e20f6052f17de26eb65752047e9","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":["25 targeted tests; actual source worker/image SDK PASS; actual RTP/Frame/Redis3/API30/cleanup PASS; source pin/docs/diff check PASS"]}
