{"commit":{"body":[{"label":"Why","text":"채널 증가 시 고정 worker를 공유하는 전송 대기를 분리하고16채널 시연의 준비 범위를 확정한다."},{"label":"What","text":"전용 worker/sink·입장 상한·Stop join·중지 heartbeat handoff를 추가하고 fixed 복원 경로를 보존했다."},{"label":"Impact","text":"Metadata 전송 수명과 Compose 기본값만 변경. Tracking·Scenario·Frame 스키마·Redis100개/TTL/인증은 유지한다."},{"label":"Verify","text":"source/image67 tests PASS.16개 생성/회수와17번째 거부 fixture PASS. 실제3채널24초 Redis10.01/10.01/9.99FPS·교체/오류0·현재running. 실제16채널 성능은 미검증."},{"label":"Rollback","text":"대상 채널 정상 종료 후 private CAS 원장으로 이전 image·active Compose·runtime.env를 복원한다. 신규 image의 fixed 모드와 기존workers4도 보존한다."}],"title":"feat(metadata): 활성 채널별 전송 worker와 최대16개 수명 경계 적용"},"created_at":"2026-09-15T09:09:51+00:00","expires_at":"2026-09-16T09:09:51+00:00","job_id":"contextra-channel-publisher-20260915-180615","paths":[{"change":"added","content_sha256":"088784e0626734b8e32b2a4a4342bd0e7d3e8ae06b5cb892d15f37a3b612c61f","path":"app/channel_publisher.py"},{"change":"modified","content_sha256":"89f9a8a557313ad61fef429571f3b7a05ce7a2747989ad21b631c86bce8afd12","path":"app/metadata_publisher.py"},{"change":"modified","content_sha256":"6d443c34e20218f558a0f65b93df175c9014587f1d772b0bb10dd89b91613dbc","path":"app/metadata_runtime.py"},{"change":"modified","content_sha256":"341151908981a13c8935cdfab243d077aded6b63cfc63953674ad12b62b3b4e7","path":"app/det_result_path.py"},{"change":"modified","content_sha256":"9ddc558e0bee4e038ab631b5b4334757e2263b8396e217f90f399725e51c5b6e","path":"docker-compose.yml"},{"change":"added","content_sha256":"95c473652b3c48aa0e9195708b672d8a45333cb01359d13d9fb18cd55e3c0c3d","path":"tests/test_channel_publisher.py"},{"change":"modified","content_sha256":"e215d37b69fa44399486bdc57adcce495be162ba9527597fee2f3429cc8bec31","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"2164c7ef38d6f872b680a691ebae2f0725997752c84df22a0fdee52695273a6e","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260915T180615+0900-decision-channel-publisher.md"},{"change":"added","content_sha256":"554668aa86b6683aedf8c0c28438892c3d6602361b6ce17723488d5997edfda4","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260915T180615+0900-run-channel-publisher.md"}],"plan_hash":"5568c66e42b9bf6eea90baed1bac001c9143246a6f2a8d9af2b0a1176e0642b1","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"f444ab20c243424e90e7f0924b43d76156f1c885","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"f444ab20c243424e90e7f0924b43d76156f1c885","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":["source/image67 tests;3채널24초 bounded Runtime;설정·sender·Redis 보존;git diff --check"]}
