{"commit":{"body":[{"label":"Why","text":"부모 공통송신에서 발생한 결과교체를 줄이고 실시간경로를 보호하며 조건부 학습자료를 저장한다."},{"label":"What","text":"child직접Frame송신/부모상태fencing,공유압축cache/학습worker와인증SettingsCAS/owned용량정리,Event별ROI를추가했다."},{"label":"Impact","text":"score만통과한person합집합8개/900초/1280x720/200GB/여유100GB가기본이다.BOff/batch8/instance8/Event10초/Redis300/전송계약은유지한다.외부Webroute는추가하지않았다."},{"label":"Verify","text":"Python3.12표적50+13+19+6+13PASS중복과4subtest.최종본lastSeq/3provider송신/추가3child회수canary PASS.복합1/8시험,24child exit0/unforced/reap,학습6READY동일PTS,36stopped/WSS복구.8채널Redis40.87->99.27FPS이나완료량하락및비대상시작시각변경으로전체성능개선은미확정."},{"label":"Rollback","text":"이전image와전체privateCompose보존.정상Stop/reap뒤명시원복하며training자료나Event원장/원본은삭제하지않는다.이미자동정리된학습자료는복구불가다.아이서티/전체확장/Web수용은별도승인."}],"title":"feat(runtime): provider 송신 독립화와 조건부 학습 스냅샷 추가"},"created_at":"2026-09-26T15:59:12+00:00","expires_at":"2026-09-27T15:59:12+00:00","job_id":"20260927-contextra-sender-training-r02","paths":[{"change":"modified","content_sha256":"58c03d2fd23fc219e21d411c235265f3c1ecdfe8c317783c944782c8a4a0f49e","path":"app/artifact_media.py"},{"change":"modified","content_sha256":"9607855ac46d1b2f3a40082cdd1d779b4d679a62aa2965dc29d904d03e4401bd","path":"app/channel_child.py"},{"change":"modified","content_sha256":"d997b6f5b8c4f5ee7d8c9dcdcd2591b3972ac0a6b98c25cb0b3894e63bbefc2b","path":"app/event_artifact_service.py"},{"change":"modified","content_sha256":"235e48e6f331152b23f3402ef83dc73a32e36fcaef097895067c626c13239a23","path":"app/event_capture.py"},{"change":"modified","content_sha256":"c81d9e8b43bcde05baf674e446c056390d12c11406b7263e4bae3bfa6bdcb349","path":"app/main.py"},{"change":"modified","content_sha256":"be28491e3b763d00e86ea45a3c77eb0696ea26da7d98bba919eb1f5dce90b609","path":"app/process_metadata.py"},{"change":"modified","content_sha256":"f55a8f93e4789d701720d49ff0208c5209eab027742f0d14c554d63824e71f2f","path":"app/provider_process_group.py"},{"change":"modified","content_sha256":"3e31f43f4aa4a04aea893db3269063335b661df35ea8f20ba5ce3d13a1dfb89d","path":"app/secure_control.py"},{"change":"added","content_sha256":"f27065345426cc096b095f5dc4e1f514a312cc042f6d71004ca75c6eacf1fa91","path":"app/training_capture.py"},{"change":"added","content_sha256":"e6a5454f89dcaf7de09b6662375514ef71e0c71732cc15888249bfe728a1924b","path":"app/training_media.py"},{"change":"added","content_sha256":"aaa405ee467c32938527d7dd5ebb341a707895a8893f1fff6a282a20a9ebf0cc","path":"app/training_service.py"},{"change":"added","content_sha256":"061d8fa8b0b6dcf1a9440c94a7dbce5adf696d2c01b9ae1e9eb80da3e815ac49","path":"app/training_store.py"},{"change":"modified","content_sha256":"6ec61f63242a03ad3a715899f8415e9a9edf6651aae2d30a325f9a5ae2c7f21f","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"e69c0c6289656ad637bd60d4ccb227b7bcb4e44bae41d06c2602cb7e01142d5c","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/analysis/20260927T004500+0900-analysis-sender-training.md"},{"change":"added","content_sha256":"143ebe0de72e3025ff8c1710fe6f9976d3929e90a49e3ebf82bd5c72dddab5ff","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260927T003655+0900-decision-sender-training.md"},{"change":"added","content_sha256":"de7b7d74b7ba08b2f4c694f8f11dfa9c2bc25f0decbe21a1ec9f6e0fd2672d03","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/validation/20260927T004500+0900-validation-sender-training.md"},{"change":"modified","content_sha256":"e057e59bf221c8718bd3b088f0ff3da0b603baa41dcb1f8ba7e836998023ae59","path":"docs/scenarios/PROVIDER_PROCESS_RUNTIME.ko.md"},{"change":"added","content_sha256":"9bd72693a9864a56cf3acb8861fd17684e40977c164491a54a41663fc2ab492e","path":"docs/scenarios/TRAINING_SNAPSHOTS.ko.md"},{"change":"modified","content_sha256":"5410d5149a18134657de629ace720cef84932e23b052db0b1ca82fdc1d3558c9","path":"tests/test_artifact_media_runtime.py"},{"change":"modified","content_sha256":"89805f7739bf32fe1e3d285b2974549edab46f4ac8a8967ba59ed64356ad6d0b","path":"tests/test_process_metadata.py"},{"change":"added","content_sha256":"4d3afbc2b54c47a127859ebc3022a42e8a996c2f9f7baeca97d0b0f7887190ef","path":"tests/test_training.py"}],"plan_hash":"79d825146b3e49b9bbb1cb4dca9b197981bda18596b54fd5917ee6027defd5b6","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"10ddca4635378fadb2effa70f4f3faa2f906ae4e","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"10ddca4635378fadb2effa70f4f3faa2f906ae4e","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":["Targeted Python3.12 50/13/19/6/13 PASS (overlap); final sequence/3-provider canary PASS; 4 subtests; isolated Redis and codec fixture","Composite1/8 measured; 6 exact-PTS training bundles; 24 children reaped; final model/config/image/WSS verified"]}
