{"commit":{"body":[{"label":"Why","text":"FALL core를 기존 Pose/Tracking과 연결하면서 침입·배회를 중복 추론 없이 함께 실행하도록 한다."},{"label":"What","text":"FALL ROI/Settings/Web projection, Pose 의존성, Loitering provider 확장, NMS objectRef 매핑, selected/drop gap과 Stop 중 Event 인계, 공통 허용목록 및 표적 테스트를 추가했다."},{"label":"Impact","text":"test 대상3서비스만 반영했다. 21카메라 stopped와 Artifact On, 모델·SSIMS·공유서비스·과거원장 보존. 동일 채널 Person/Pose+Fire는 보류다."},{"label":"Verify","text":"Python3.12 core96 및 Pose/연결/CAS/수명 검증 PASS. fixture 계측 오류 교정 뒤 worker3 PASS. nginx -t, 모델3종 READY, WSS bootstrap4개/heartbeat2회, source17파일hash 일치. FALL 실제영상/카메라/Event시험 대기."},{"label":"Rollback","text":"자동 rollback 없음. 기존 image와 private 설정백업을 보존하며 필요시 별도 승인 후 대상서비스만 Stop/reap하고 복구한다. 원장/파일 삭제 및 Event재전송 금지."},{"label":"Related","text":"PR8 eb342d3; FALL-WIRE-01 extends SCENARIO-FANOUT-01"}],"title":"feat(fall): Pose 공유 시나리오와 Web 실행 경로 연결"},"created_at":"2026-09-20T12:02:22+00:00","expires_at":"2026-09-21T12:02:22+00:00","job_id":"20260920-contextra-fall-ready-r01","paths":[{"change":"modified","content_sha256":"19ce20830a3947a1dcf559827e5c018d8d0ca1595b22c7d5d649bd5f9c0e6219","path":".gitignore"},{"change":"modified","content_sha256":"c9efe9beaff96bd33dae6d686a41a2e1740db34d29e1bf8929301820583e983b","path":"app/api/streams.py"},{"change":"modified","content_sha256":"0b32b38f26befc79ffc74b64100a24f7e46407bff18472c5b61d63248c211068","path":"app/contracts/visualization.py"},{"change":"modified","content_sha256":"34d8ff91770029d4d37f7b515cc1b27ecdd79ba27f2601de651f1ab4db284f0f","path":"app/det_result_path.py"},{"change":"modified","content_sha256":"97fd4bd873e1cd3a7d153cb94f419c4b11d3b1fd51ebb87326ecebe44d1e7490","path":"app/event_artifact_contract.py"},{"change":"modified","content_sha256":"a9e9a14a98ab168178e6c534dc2f9740e6779d8541434b370c79977da0b1b454","path":"app/event_capture.py"},{"change":"added","content_sha256":"6bb31b1f90d000449d156c8cce6f5c7757a1501088a2a814932a0f0d0d15bce8","path":"app/fall_config.py"},{"change":"added","content_sha256":"d5ac8604b36a272c4ceeedb7a2f291bd7c2c052c5a53423189661d9c697ff31e","path":"app/fall_geometry.py"},{"change":"added","content_sha256":"ceb3a9729074ad760cf8f496e229d413d25769b679df7ef3922a653bf322f0ca","path":"app/fall_runtime.py"},{"change":"added","content_sha256":"d5acd13f06baffc17e5e08ffa2c87c8c6f99c81dd57fbdf1e80874ce9b27fbb2","path":"app/fall_scenario.py"},{"change":"modified","content_sha256":"0dd4a24ffe9d589e5617e2126b7798f7926fb97ff77a54495b3170b6848f6a14","path":"app/frame_ingress.py"},{"change":"modified","content_sha256":"24f8a78c214dc11eeec31eef1210c873e49ee2708bdfc40a561e9dc2908b3803","path":"app/loitering.py"},{"change":"modified","content_sha256":"76d7d20b9f3c27771b6c154830a534ac4377040ca79e066e5c6962249e7359ae","path":"app/pose_config.py"},{"change":"modified","content_sha256":"a71538ff0f0fc149f0fa1a2e9bada3480fd4dfa8df4a859cace77e82b0c4dd98","path":"app/region_scenario.py"},{"change":"modified","content_sha256":"65d209d284c772f5cb13ccb2c746d4a7e3e16e9e4c5dccb29444647cb379974b","path":"app/secure_control.py"},{"change":"modified","content_sha256":"743a4a63e57304c8789c19e75227403d2e00a89ba280fe98830ed09ab34dd6b4","path":"app/stream_manager.py"},{"change":"modified","content_sha256":"1000a35d554819c4fa96f16740510a5c6a8a5920344055ad6cc4594af71657f6","path":"app/stream_settings.py"},{"change":"modified","content_sha256":"93125d831f75380c6701ab5e62729762c596a36249364006bf14eba2daa86ca5","path":"control_sidecar/main.py"},{"change":"modified","content_sha256":"04f9853dbe00a86bb4f5e93c5ff07bdce8832bd03c595fccc62957500cd9ab97","path":"docker/secure-gateway.conf.template"},{"change":"modified","content_sha256":"01ae2e99ecef664649ecff64d7865596fe6b5aa95c5db1eee3de2ddd411a8e0c","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"653f72cfa791431b7355e9a5817d5edf80287b9fa243f3b49bf195e43b45d12a","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260920T210000+0900-decision-fall-wire.md"},{"change":"added","content_sha256":"dbb5af7735334ff86d9f18d7e773523f6f646677eebdf714c19c3c5fbb20f922","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260920T210000+0900-run-fall-web-ready.md"},{"change":"added","content_sha256":"0649091e889208b734076755dcdb6d9d5fc333ce8262f5021ef87cbdef46a23e","path":"docs/scenarios/FALL_HANDOFF.ko.md"},{"change":"added","content_sha256":"c83d99b0494aa9a042f0c367aff243fb42c19b5926170e1438f4129ee1b55e9a","path":"docs/scenarios/FALL_TEST_RESULTS.json"},{"change":"added","content_sha256":"54d36e7659b74c632420ab84ce09b4f3eedabafe6a780ad882fe9d30c7c8b7dc","path":"docs/scenarios/FALL_V1.ko.md"},{"change":"added","content_sha256":"443f69ad6205a404d762cb643fa1afdb6e6dd73cd16976b0ee9a89daa86e21d3","path":"docs/scenarios/FALL_VERIFICATION.ko.md"},{"change":"modified","content_sha256":"e8e507436aea72f51bea1513d9b04bd3baf35ba94aa288ab8b95683998ba08ca","path":"docs/scenarios/SCENARIO_WEB_READY.ko.md"},{"change":"added","content_sha256":"471e11206bcaeaaf05b14dba93c04af400a74268483d46660da67a9604413808","path":"tests/fall_fixtures.py"},{"change":"added","content_sha256":"6c96993d5327e23c816184b27d73f8b2fdf98fa621eb9ebec48c55aaaaaa2e06","path":"tests/test_fall_boundaries.py"},{"change":"added","content_sha256":"d5973c0731c7cb89f911af39544559c792feaf8e56842e3900ac12e746a73a32","path":"tests/test_fall_core.py"},{"change":"added","content_sha256":"20c2d71bcde60d79c81aa3acb1b784b976f04291e73c9d4f5d7c7e22ab247b54","path":"tests/test_fall_integration.py"},{"change":"modified","content_sha256":"d2fbd9406e1b74a95e894fe330aab75e563d328bff9e450137add14081af902e","path":"tests/test_loitering_contracts.py"},{"change":"modified","content_sha256":"3ca823df325c3fae070b72ca934323ad90e5e23515835f531fb076a7fe10a157","path":"tests/test_loitering_settings.py"},{"change":"modified","content_sha256":"e32f04ce64f95755d858a53c858d8361861b519324d4b5a54ed965d98e23e561","path":"tests/test_secure_bridge.py"}],"plan_hash":"c39062532fd0d766876fbd53f7ea6f9964d284433e3e800a9d85c53f2917a2d4","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"f2a12013b7521d7f7960b58dd0d04a6974ffd214","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"f2a12013b7521d7f7960b58dd0d04a6974ffd214","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":["Python3.12 FALL core96 and targeted wiring/protection PASS; fixture harness corrected; final worker3 PASS","Medium/Pose/Fire READY; WSS bootstrap4 heartbeat2; 21 stopped; Artifact On; ledger and 15 other containers unchanged","Running source hashes17 PASS; nginx -t PASS; git diff --check and Markdown links PASS; no camera test"]}
