{"commit":{"body":[{"label":"Why","text":"Web Start 전체 설정으로 신규 카메라를 등록할 준비와 운영 Artifact 기본값을 현재 Runtime과 분리한다."},{"label":"What","text":"Medium 기본/Pose·Fire 준비 template, opt-in Compose overlay, ROI 누락·null 정규화와 시험용 전송 ID 제한 해제를 연결했다."},{"label":"Impact","text":"기존 Start/저장/no-op/CAS와 인증 경계를 재사용한다. source 및 Analytics 후보만 준비했고 현재 container/채널/Event 원장은 보존했다."},{"label":"Verify","text":"외부 연결 없는 표적22개PASS, image-owned import/hash 및 최소 계약PASS, Compose 허용 차이/설정·PID·원장 보존/AST·문서link·diff 검사PASS. 실제 Web 시험은 미실행이다."},{"label":"Rollback","text":"Runtime 반영 없음. 기존 활성 설정은 그대로 유지하며 준비 후보는 별도 경로에 보존한다. 자동 rollback/재Start는 하지 않는다."}],"title":"feat(web-start): 신규 카메라 기본 설정과 연동시험 후보 준비"},"created_at":"2026-09-18T06:02:39+00:00","expires_at":"2026-09-19T06:02:39+00:00","job_id":"20260918-contextra-web-start-prep-r01","paths":[{"change":"modified","content_sha256":"13c68060ed4ab67897518967bb426eb452d7dc7b067db52b6bcc39dcba273e78","path":".gitignore"},{"change":"modified","content_sha256":"0bf2bca4f58eef921f51031dffa52ad3b2ec5e87578b86716d6b3a679d23116c","path":"app/event_artifact_contract.py"},{"change":"modified","content_sha256":"e01381f633dd1800427709a02f417078cb081b66d963c6ca1c26f75b86eb3741","path":"app/secure_control.py"},{"change":"added","content_sha256":"b764b1239213e92ccb2125678bd69534e8f048a2c9f5d49fdd9b4801928d4fcc","path":"configs/control_templates/fire.json"},{"change":"added","content_sha256":"a15d3e18423592356284f0ef216b7e1858856ca630ed4209474a1ee97bb8a231","path":"configs/control_templates/medium.json"},{"change":"added","content_sha256":"4ba0849fdfa053271939623d4c78622defda568a45a182c258df5e3f091f4457","path":"configs/control_templates/pose.json"},{"change":"added","content_sha256":"a7186361ec930976afd049a1a0b992ac1e78312eb081b1e13b31523012f3f73f","path":"deploy/web-start.compose.yml"},{"change":"added","content_sha256":"fe84d8f45df0f5c5af68910742b6c864bd1bc82b6499a6b482406ce82667b6f7","path":"docs/integration/WEB_START_PREPARATION.ko.md"},{"change":"modified","content_sha256":"f88fe582d64542250999faa6edea5e24160433c4ffa2cd73cc7998911be429fd","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"2d18015b8dc110584b84f7bf27ec1a2d6dfa48f2aecf6a87bd6cd3b4d8458704","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/decision/20260918T145744+0900-decision-web-start-preparation.md"},{"change":"added","content_sha256":"2e582315a29ee3e052f814c0dbb167ae615e2fd2b38a823c1a8fa7ca4b89ee28","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/runs/20260918T145744+0900-run-web-start-preparation.md"},{"change":"modified","content_sha256":"f09b2a20b24ef5c4ff99684b3b9995f8c299b3acc73311e689f1d400e67c878b","path":"tests/test_secure_bridge.py"},{"change":"added","content_sha256":"c7384f682435e62c53ec3ea4267aafcd9d8f69c1ad6b671ca7b5e3a4dd2ddf62","path":"tests/test_web_start_preparation.py"}],"plan_hash":"c619bffc82202623a75802a1639032315b2021ff21201183fa7854fcc25f2b85","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"2d67e2db28a1422463b76c23089c27dccd017af5","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"2d67e2db28a1422463b76c23089c27dccd017af5","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":["22 targeted tests PASS; image-owned source hashes and minimal ROI/delivery contract PASS","Compose difference allowlist and runtime/config/ledger preservation PASS; no live Start/Stop or POST","AST, Markdown links, git diff --check PASS"]}
