{"commit":{"body":[{"label":"Why","text":"현장 탐색기 접근과 재부팅 후 유지보수를 보완하고 명시 승인된 Event·학습 초기화를 기록한다."},{"label":"What","text":"ct access의 보호 영역 예외·ACL 백업과 ct auth의 숨김 입력·단일 로그인·계약 검사·중단 재개/취소를 추가한다. 운영 안내와 source 지문 및 검증 Owner를 갱신한다."},{"label":"Impact","text":"현장 미디어/전용 원장 초기화와 CLI 부팅 설정을 반영했다. 카메라·모델·인증 원본·보관 설정·Web DB를 보존한다. Web PC Off로 새 계정은 적용하지 않고 원래 Sidecar를 복구했다."},{"label":"Verify","text":"Python3.12 표적24PASS/source51지문PASS/ACL 실제 read-write PASS. systemd unit8개와 maintenance guard PASS. 5서비스running/4모델READY/44stopped. 실제 reboot와 새 계정/WSS 수용은 미확인; 로그인 재시도 없음."},{"label":"Rollback","text":"소스/도구 변경은 별도 검토로 복귀한다. ACL 전값과 DB 원장 복구본은 root 전용 경로에 보존하나 삭제한 미디어의 복구본은 없다. 자동 rollback이나 인증 재시도를 하지 않는다."}],"title":"ops(offline): Workspace 권한과 인증 CLI 및 저장 초기화 기록"},"created_at":"2026-09-28T10:11:11+00:00","expires_at":"2026-09-29T10:11:11+00:00","job_id":"contextra-offline-access-auth-20260928-r01","paths":[{"change":"modified","content_sha256":"5773c6127e4ccfb3dd39beeaf52db40485b723d6fbb8533a3b9d457ca70765ef","path":"docs/deployment/ICERTI_OFFLINE_MAINTENANCE.ko.md"},{"change":"modified","content_sha256":"474d73e62fd7137649ef002a3cb73dd211d0dc8230845aa29ccd18f7d523f0ec","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/README.ko.md"},{"change":"added","content_sha256":"bddcee0a514baa6fc682cfd53f32654794f111170123f499896b328d13cd68a4","path":"docs/profiles/ltb1021/topics/runtime-lifecycle/validation/20260928T190556+0900-validation-workspace-reset-auth.md"},{"change":"modified","content_sha256":"973ea1fa8635a4b8fc003a1efd8304a0d3c3d004f3dc7300b43aa6a21bce0b49","path":"tools/icerti_offline/README.ko.md"},{"change":"modified","content_sha256":"4315ddb5280ffac42d35c0c55774528508a2ddf900cc6475bee42a4ca0fec6f2","path":"tools/icerti_offline/maintenance/OFFLINE_OPERATIONS.ko.md"},{"change":"modified","content_sha256":"69523869ab03d7509b8da80d40d0028ee489a15b548cda204c368dda4c159cab","path":"tools/icerti_offline/maintenance/ct.py"},{"change":"modified","content_sha256":"d8c75e4a84ba88b6749ed6ef2ae96d072545ea40983a7d4e6274b49b098893cb","path":"tools/icerti_offline/maintenance/maintenance_guard.py"},{"change":"modified","content_sha256":"731e0814557c47cbcd2eb635947dacd24ac09abccd350e5db3438e6c45e265fb","path":"tools/icerti_offline/maintenance/test_tools.py"},{"change":"added","content_sha256":"45db58a3c9308231419f41421052dc966d224e46df5d8791e52dfc8a3eeaff30","path":"tools/icerti_offline/maintenance/workspace_access.py"},{"change":"added","content_sha256":"2565a3835aa367d530300910bb86f1f30742edd271ec411b8b282a6f55ff6e50","path":"tools/icerti_offline/maintenance/auth_control.py"},{"change":"added","content_sha256":"da4265482d2f94e845705a77a2864cfffa8e971da34977e8470428a4d893868a","path":"tools/icerti_offline/maintenance/test_auth_control.py"},{"change":"modified","content_sha256":"a70fceb1ca7ebdd452f8425f7a1d98895840d4338738292abe5b73ff197b25ce","path":"tools/icerti_offline/source-manifest.json"},{"change":"modified","content_sha256":"01bbdc32558a3882641097584a25715d150265c82a2ce78f2f2ab2238e289dae","path":"tools/icerti_offline/test_verify_sources.py"}],"plan_hash":"3197aa498855762934d1aabeef8bd07c0ff385972cbfcd48511d607063a27636","profile":"ltb1021","push":{"branch":"task/runtime-lifecycle-refactor","mode":"upstream","remote":"origin","remote_identity":"sha256:3a9ce41319a2ebea","upstream_head":"060c9ba41398c0193849b1d82ccfca1d330d2cec","upstream_ref":"origin/task/runtime-lifecycle-refactor"},"repository":{"baseline_head":"060c9ba41398c0193849b1d82ccfca1d330d2cec","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: maintenance20 PASS + source4 PASS; source51 hashes PASS","si workspace/runtime/data read-write PASS; boot unit8 verify0; maintenance guard PASS","Event ledger0 and training jobs0; camera/settings preserved;5 containers running/44 stopped","Web PC Off: new credential acceptance and WSS NOT VERIFIED; no subsequent login; git diff --check PASS"]}
