{"commit":{"body":[{"label":"Why","text":"동일 URI로 AI와 Web이 현재 영상과 공통 시간 기준을 공유하는 반복 시험을 준비한다."},{"label":"What","text":"LAN bind와 실행별 URI/Anchor 조회, 내부 keeper와 public shared media key, RTCP SR 계산, Swagger canonical identity 전달 및 중복 source 차단을 준비했다."},{"label":"Impact","text":"source 준비 단계이며 실제 shared/LAN 송수신은 미검증이다. sample01 교체는 승인만 확보했고 registry/운영 image/AI/Redis는 변경하지 않았다."},{"label":"Verify","text":"표적24 tests와 host 공식 RTP/RTCP parser callback PASS. 이번에는 파일과 hash/AST/diff만 재확인했다. API registration2 tests와 실제 송수신 및 image 반영은 대기다."},{"label":"Rollback","text":"운영 반영 전 source 변경만 되돌릴 수 있다. 후속 반영 시 이전 registry/owned sender 조건을 먼저 확인하고 기존 영상과 모델을 보존한다."}],"title":"feat(rtsp-test): 공통 URI와 공유 송출 Anchor 및 Swagger source 준비"},"created_at":"2026-09-14T08:04:50+00:00","expires_at":"2026-09-15T08:04:50+00:00","job_id":"contextra-rtsp-shared-20260914-165217-r02","paths":[{"change":"modified","content_sha256":"a06c0b3f5914493ce3c3ec06ebecec90a0e5c70dd5f84fd2e2c5ece62a1f1c5c","path":"app/api/streams.py"},{"change":"modified","content_sha256":"ae4cd612d3e7d3df849a70b62dee61df2b6ed4edc2be1a9ad5e9e79cb3fb015f","path":"app/stream_manager.py"},{"change":"modified","content_sha256":"57d91e5e4a08f236ed57c47a287d61d0f458bb9e54b799622dc1ccbf22a1ea41","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"efcc758ccdb0b308de81090de9a42b25ec04090afabada3bb75b11c993b9a11e","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260914T165217+0900-decision-rtsp-shared-swagger.md"},{"change":"added","content_sha256":"46d5fa6349ac393b1ddb86dada0d5821778f5bd799f2ee076bfc9cd12b1e8c0a","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260914T165217+0900-run-rtsp-shared-swagger.md"},{"change":"modified","content_sha256":"7c02e3822eea9896c40e1bc0467672a93d2be13fe2c894f3c4f5e1d4dd0418e2","path":"tests/test_rtsp_test_manager.py"},{"change":"added","content_sha256":"ecdae957cbf6790cb695c2b95de3c0095e4eadd46e39ffdbf3078af0b442a45f","path":"tests/test_rtsp_test_time.py"},{"change":"added","content_sha256":"bb6d7afeb65fb34c89781499fe84dbd2c3c10bc029e54f5ca12134be20811e0e","path":"tests/test_rtsp_test_worker.py"},{"change":"added","content_sha256":"f902ab30964587f6461e2935b8dbd04e73802526a5809d4483f2ad5142734c1b","path":"tests/test_stream_registration_identity.py"},{"change":"added","content_sha256":"7aa83bf189dbb96b1e78f2a7bd35161b792b20473e6393add017a96350cbd743","path":"tools/RTSP_SWAGGER_GUIDE.ko.md"},{"change":"modified","content_sha256":"891ee8f5ecb018331a22929c0591cbb2f371bd800c251f487c65398e419da97b","path":"tools/RTSP_TEST_GUIDE.ko.md"},{"change":"modified","content_sha256":"7ce38537d0df1c595f792e940763eed479b26d1930ab377a586961faa434ff2c","path":"tools/rtsp_test.py"},{"change":"modified","content_sha256":"3773fa28b83684f19f1580b18f43ee071f512bcd184907ed37cb68c4e952d7fd","path":"tools/rtsp_test_manager.py"},{"change":"added","content_sha256":"8e6941ae15dcb7d433734ea21e1baed63b664076e274e9ae3de94b5191ca1961","path":"tools/rtsp_test_time.py"},{"change":"modified","content_sha256":"c5e9501be40a20963617df93302d85ee6262f970207720c606e8a2f7b74f835d","path":"tools/rtsp_test_worker.py"}],"plan_hash":"913b3fcb15ba6c75a150f55f13a8f7f7d96f737ee6d4df244324a7f79b109ce2","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"c2ceb05277dca15292cc25caf9efe93d39f0ee50","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"c2ceb05277dca15292cc25caf9efe93d39f0ee50","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":["24 source tests previously PASS; installed host Gst1.24.2 RTP/RTCP callbacks PASS; current AST/diff PASS; actual shared/LAN/SR wire NOT_RUN; API registration2 tests WAIT; no operating mutation"]}
