{"commit":{"body":[{"label":"Why","text":"9월 시연용 FIGHT와 신규 사람·머리 CROWD를 기존 Runtime 계약 안에서 최소 연결한다."},{"label":"What","text":"PR9/10을 통합하고 FIGHT latch/gap/ROI/pair Event, CROWD512 전처리/native/model/Settings/publisher를 연결했다."},{"label":"Impact","text":"FIGHT는 Pose/Tracking 공유, CROWD는 단독·Tracking/Event 없음. 대상3서비스와 새 모델 mount만 반영하고 22카메라 stopped 및 기존 원장/비대상 서비스를 보존했다."},{"label":"Verify","text":"Python3.12 표적152, native26, 공식decoder200행 parity,512 GPU normalization, protobuf/nginx/source22 hash PASS. 모델4종 READY/WSS/Artifact On. 카메라Start·정확도·브라우저 수용 미실행."},{"label":"Rollback","text":"자동 rollback/재Start 없음. 이전 image/env/compose를 private evidence에 보존하며 별도 승인 후 대상 서비스만 정상 Stop/reap하여 복구한다. 원장 삭제/과거Event 재전송 금지."},{"label":"Related","text":"PR9 4c7e300; PR10 5cd8b34; FIGHT-CROWD-WIRE-01; FALL 보완과 복수모델은 보류"}],"title":"feat(scenarios): 임시 FIGHT와 CROWD 모니터링 Web 실행 경로 연결"},"created_at":"2026-09-20T14:18:08+00:00","expires_at":"2026-09-21T14:18:08+00:00","job_id":"20260920-contextra-fight-crowd-ready-r01","paths":[{"change":"modified","content_sha256":"28d8c4bf7f149940da8c193532ecc968ab784c0268cac29e0f1f4f15d2728e73","path":".gitignore"},{"change":"modified","content_sha256":"c2b1bb5990afc8c4d12965ede9f57748f43bc084698065fcfee347826610f3bc","path":"app/api/streams.py"},{"change":"added","content_sha256":"1314f08acfbc9f0d297fc78df25a88bf06a9fc56a1b9899603ca953557a7c80b","path":"app/crowd_config.py"},{"change":"added","content_sha256":"7a6bf2e43bb8084fe299e3c72ff51226b571d2ed8ebe313ffe1aeeacda1a3f80","path":"app/crowd_model_contract.py"},{"change":"added","content_sha256":"2fe6b4c1a590055910f78ef7ef9b5755db9c6426e080ba3c24a3e601dc7b7907","path":"app/crowd_result.py"},{"change":"added","content_sha256":"adc926aed28ce350c1357e2ec81863be35e4ced66fe7cc77e1c748fd08d5e9b6","path":"app/crowd_runtime.py"},{"change":"added","content_sha256":"01fd037f64ab5584f6fd0473cabf0488c04513d6c00a04c578917f40c9247046","path":"app/crowd_scenario.py"},{"change":"modified","content_sha256":"94b5159d9c04fb97e36f9c8f845622ae0dee69b6f80062062d5d6a58f961b422","path":"app/det_result_path.py"},{"change":"added","content_sha256":"ac7f59ff4c018c93ae6623036a7adbca6f43f5d74e6da40cc9532969ecc0133d","path":"app/detection_nms.py"},{"change":"modified","content_sha256":"e084c171fe6f0186545098b5903b05a1b2f0a444f67c3445cc78c8046542a38b","path":"app/event_artifact_contract.py"},{"change":"modified","content_sha256":"f919636c023f07fbec2a78135934911787be1638bb8bddc8545303b598cf505a","path":"app/event_capture.py"},{"change":"added","content_sha256":"c2c77ed2364c93083300d7eb814fbbdebd1f03b32876912090f12604db7ac945","path":"app/fight_config.py"},{"change":"added","content_sha256":"2a2305dee6c159e9ee9a92f0b9697877032f20aa7119a778122a427ab600f252","path":"app/fight_runtime.py"},{"change":"added","content_sha256":"b4c9dd2312d27ef9d05c906f7f056fde305bcc420f78d59f3f3ac2be8a869691","path":"app/fight_scenario.py"},{"change":"modified","content_sha256":"867141fb0b34a8abab92beb8fbcd5d00d850dff934c6aeb5c50d855a1334c5e5","path":"app/inference_config.py"},{"change":"modified","content_sha256":"fcfc324e90d2c6e8f8067fc680e4e4ab994eb7d332f980937f1780735b22a5df","path":"app/inference_profiles.py"},{"change":"modified","content_sha256":"bc03d6fb464be4eb2d9baca24323a88299b84433ffabf80418272e697684482a","path":"app/medium_preprocess.py"},{"change":"modified","content_sha256":"24951b72778c4ccd47e381ab56ad7217b8135150646563cc58f87dd0f971bed3","path":"app/multi_pipeline.py"},{"change":"modified","content_sha256":"dd4d2eaf9235e1436746f32d98199ca2878f4db70991c847540adb6ded511e5e","path":"app/pose_config.py"},{"change":"modified","content_sha256":"60fe3664ec02d7c60fe631d62329f9601bb3a0ff545d73983624ec72d3ec87a4","path":"app/region_scenario.py"},{"change":"modified","content_sha256":"1d8ade89e7d5791a78c269e3fd4c95cb94144e538d7bef91d40ad73f605a9cf9","path":"app/secure_control.py"},{"change":"modified","content_sha256":"c2583dee9f22f88aa058f154a0f442e7c733665d8cbaddbb9c51c36400495e92","path":"app/stream_manager.py"},{"change":"modified","content_sha256":"9ec41e6562519c67d2d2e18a2b49feeed09193119e298ee392f675a5ba9702aa","path":"app/stream_settings.py"},{"change":"modified","content_sha256":"493269897cace7f03a4370ab884d4972d21b3c3b23dbe902cc987df40122a889","path":"control_sidecar/main.py"},{"change":"modified","content_sha256":"cd60fdf9d8a92a0668981de521eaeac091d66b801235d4811d3b3c6c0d318bbc","path":"docker/Dockerfile"},{"change":"modified","content_sha256":"5212bcadc42c16879da2a96d177e7ac016abeee2ee910c84af45616071fde475","path":"docker/secure-gateway.conf.template"},{"change":"modified","content_sha256":"4d7797d509df3fd66bdd1799a3cb4904483dff1b249c712cbf1fb96d877744cd","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"2c11aaa10a13167f5995ce347adc4456608aee3bd01d05b58df8d06d6160cc91","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260920T231430+0900-decision-fight-crowd-wire.md"},{"change":"added","content_sha256":"9d85353884745d39d81eb2ef28793e8c81ecd7d0a9c8a8e76d152ae0b498237e","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260920T231430+0900-run-fight-crowd-web-ready.md"},{"change":"added","content_sha256":"3dcddd90b6400ebc8065898f49861ac9114bcc34a9c192e0b509e7733e724194","path":"docs/scenarios/CROWD_HANDOFF.ko.md"},{"change":"added","content_sha256":"2320699d005d20702f3efd8cd95093650bf7f9dbdadd7c465946e14bb9b9c9f9","path":"docs/scenarios/CROWD_PROGRESS.ko.md"},{"change":"added","content_sha256":"715511630f2219bcb40beefbdc440241b2ec8feb5f556dc880b2f3a7136f07d6","path":"docs/scenarios/CROWD_TEST_RESULTS.json"},{"change":"added","content_sha256":"52022a37b523c0eb717850a21efe235300b08eaea225a488c3a95281d94182d9","path":"docs/scenarios/CROWD_V1.ko.md"},{"change":"added","content_sha256":"0587758cb06003d2eaa1af625ccb67415b8ad2cf5c4e3f894e40c844b509c9c7","path":"docs/scenarios/CROWD_VERIFICATION.ko.md"},{"change":"added","content_sha256":"c6ec3965d16888feaf8251abbdd4313245e47838057a55e773e59edd66cfe0af","path":"docs/scenarios/FIGHT_HANDOFF.ko.md"},{"change":"added","content_sha256":"f2163d19d4ec0b1fb1085fb663880a8493f1043b31524ebedf2192fd278e2332","path":"docs/scenarios/FIGHT_V0.ko.md"},{"change":"modified","content_sha256":"54482e0ce1e354358c6113cdea27a809d67d1da9e39b639695dc21b72758616c","path":"docs/scenarios/SCENARIO_WEB_READY.ko.md"},{"change":"added","content_sha256":"f4df589b8ae3edf4449806d661460355b884113635c14282a8dbd5bbfbbaab9b","path":"model_tooling/crowd_manifest.example.json"},{"change":"modified","content_sha256":"b5129bdd111a3963a74cb0f7389ebf0459260ebb596a767afe9715010c5c052a","path":"native/nvinferserver_rfdetr/Makefile"},{"change":"added","content_sha256":"9d75b19fc9bce8f3f4d6528cab1a4dbaae83fe7a18eb780fc7ae894df88d0b9b","path":"native/nvinferserver_rfdetr/crowd_contract.hpp"},{"change":"added","content_sha256":"8ea6a7be1899cb71c1a48371b6b89392ffaf2dc92c6a14ad4bb531dfbc5ef110","path":"native/nvinferserver_rfdetr/crowd_contract_test.cpp"},{"change":"added","content_sha256":"48fc1108a0bbdee0309e27e0802201b666a4d2fe7708fadfd2f566927d6b48d3","path":"native/nvinferserver_rfdetr/crowd_decode.hpp"},{"change":"added","content_sha256":"bdfae371135da4749e28bd34c2e49e04dde6c9cbece9956f162dfacf62ac9d74","path":"native/nvinferserver_rfdetr/crowd_parity_test.cpp"},{"change":"added","content_sha256":"d25dd7871b4ce7086ee6fa2e1906d4e52e310f3c848aac3bb71fdb0282733631","path":"native/nvinferserver_rfdetr/crowd_preprocess_test.cu"},{"change":"modified","content_sha256":"0e544558e8b5f61bb3eb54be7d4541f8a66f43b24abe144ec2b8748a01afa2ef","path":"native/nvinferserver_rfdetr/medium_preprocess.cu"},{"change":"modified","content_sha256":"f0a3e322e44239077a882aab8089db5cb5a2b06765236553fd90dca523e930a9","path":"native/nvinferserver_rfdetr/processor.cpp"},{"change":"added","content_sha256":"326bcf27530363774cbfeb77165703d5e8b0807ed3f34c23be11d127f079a241","path":"tests/crowd_fixtures.py"},{"change":"added","content_sha256":"47326ff50e9e7c1354745387091ba43830d929954acf4a4c4489156ec83440ce","path":"tests/fixtures/crowd_legacy_frame.json"},{"change":"added","content_sha256":"c59bbd6d70ab483471313ad43a40afa3cfda1ec80b6c96ec6d274c527246b897","path":"tests/test_crowd_admission.py"},{"change":"added","content_sha256":"951a5a33b6e9f27479184b269b741a643719a61ffc3164dc849f907cbd3c1b05","path":"tests/test_crowd_config.py"},{"change":"added","content_sha256":"c38bc4bb0d44f15e9ba62d4c065a9c2860fe98389f4db25e9168827ec5289b79","path":"tests/test_crowd_output.py"},{"change":"added","content_sha256":"54479c8245d50c8f26c628bf7c3fde7b604c2fcf7b02365fc2db3d8ca4c5cd09","path":"tests/test_crowd_temporal.py"},{"change":"added","content_sha256":"80ee5ac78d3532a12366d32445de38972070176dab532166a4a51a68377ed932","path":"tests/test_fight.py"},{"change":"added","content_sha256":"73d988e97d650121dcfcf1262bb00ead03529caaea934edb20cacc7f35281bc2","path":"tests/test_fight_crowd_integration.py"}],"plan_hash":"f924fa11dd64af00085f208554c9afe664c4078909cbcceeabb5032cbf0d40c9","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"f9cc52f69503221ebf3c0e5f874f9f307da90112","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"f9cc52f69503221ebf3c0e5f874f9f307da90112","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 targeted152 PASS; native26; official PostProcess200 rows parity; GPU512 normalization PASS","Models4 READY; WSS/Artifact On; 22 stopped; ledger and non-target containers preserved","Source22/native identity, protobuf/nginx, git diff --check and live guide links PASS; browser test NOT RUN"]}
