vignette/docs/ops
Yun Chan 93dd8f82d7 G8 실제 rollback 증명 종료와 비-secure origin 회기 리뷰 크래시 수정
G8 마지막 게이트인 receipt-bound 실제 image rollback을 격리 NAS
vignette-preview-20260807 에서 실행해 종료했다.

Gate6 계약 정정:
감사 대상 current API 이미지가 com.docker.compose.project/service/version
image label 을 갖고 있어 "helper 의 compose label 0개" 계약은 감사되지 않은
다른 이미지를 쓰지 않는 한 성립하지 않는다. 계약을 key 부재가 아니라
소속(membership) 으로 바꿔 launch-nas-preview-g8-helpers.py 에 구현했다.
image 상속 label 을 baseline 으로 읽고 container 의 모든 compose label 이
baseline 과 같거나 선언된 격리 override 인지 검사하며, 최종 project 는
target 이 아니고 service 는 api/web/db/proxy 가 아니어야 한다. docker run
argv 에 target label 을 주입하면 fake-runner 테스트가 먼저 깨진다 (37/37).

실행 결과:
- rollback-old  receipt nas-g8-723eeef22eab05e63e3fafb0 -> 79ec../c530..
- restore-current receipt nas-g8-2738846cf2cf4fbe8ce0fc26 -> 52e0../6fdb..
- release gate/approval 각 2회 멱등, audit.ci_lifecycle_event rollback/executed 2,
  audit.ci_human_approval_event authorize_rollback 2, silent auto-promotion 0
- HMAC journal 6-record 체인 검증, health 3/3, OpenAPI 126, auth 401, Web 200
- helper 0, listener 0, 비밀 env 파기. down/volume rm/prune 미실행, 공개 런타임 미접촉
- 계획했던 Windows SSH 터널은 NAS sshd 가 direct-tcpip 를 거부해 사용할 수 없어
  sshd 설정 변경 대신 같은 격리 계약의 NAS-side probe 컨테이너로 실행했다

비-secure origin 크래시 수정:
배포된 NAS 프리뷰(평문 HTTP, 비-localhost)에 회기 스펙을 돌려 24건 실패를 확인했고
원인은 하나였다. crypto.randomUUID 는 secure context 전용인데 제품 코드 18곳이
fallback 없이 호출했고 RuptureRepairCard 는 렌더 시점 호출이라 회기 리뷰 라우트
전체가 error boundary 로 떨어졌다. 릴리스 게이트 108/108 은 localhost 후보 스택에서만
돌아 이 경로를 밟은 적이 없다. src/lib/uuid.ts 의 randomUuid() 로 통일하고 fallback 도
crypto.getRandomValues 를 우선 사용해 idempotency key 의 예측 불가능성을 유지했다.
회귀는 insecure-context-uuid.spec.ts 6/6 으로 고정했다(직접 호출 0건 검사 포함).
이 수정은 아직 NAS 에 배포하지 않았다.

검증:
API 898, gateway 58, executor 28, probe 11, helper launcher 37, release agent 21,
ruff clean, web api-types/typecheck/build, SSOT FAIL 0, SSOT unit 5/5,
dashboard E2E 10/10, 학생 폐루프 실 DB 브라우저 4/4(일회용 클론),
crypto 수정 후 기존 스펙 회귀 70/70, 복원된 NAS 실제 브라우저 SSE->DB 리뷰 PASS.

부수 발견(열린 항목):
공개 API 가 engine=false 로 degraded 인데 워치독이 이를 감지하지 못한다. engine 판정이
게이트웨이 /health 의 ok 만 보고 claude readiness probe 를 돌리지 않기 때문이다.
같은 .env 와 같은 CLI 로 새 게이트웨이를 다른 포트에 띄우면 즉시 ready 이므로 상주
프로세스의 세션만 죽은 형태다. TODO A절과 대시보드에 기록했다.

이 커밋은 파일 단위로 담겼다. 위 파일들에는 이전 세션의 미커밋 G0~G8 작업이 함께
들어 있으며, hunk 를 쪼개면 대시보드/체커/TODO 정합성이 깨져 SSOT 체커가 실패한다.
2026-08-07 22:17:20 +09:00
..
evidence G8 실제 rollback 증명 종료와 비-secure origin 회기 리뷰 크래시 수정 2026-08-07 22:17:20 +09:00
layout-research-2026-06-27 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
backlog-2026-06-26.md G8 실제 rollback 증명 종료와 비-secure origin 회기 리뷰 크래시 수정 2026-08-07 22:17:20 +09:00
code-quality-research-2026-06-26.md 세션 평가·라이브코치·교수자 분석 라운드 마감 + 문서 정리 + 코드품질 리팩터 2026-07-02 02:50:36 +09:00
e2e-full-sweep-2026-07-27.md feat: 운영 안정성과 세션 음성 경험 개선 2026-07-31 00:13:08 +09:00
engine-rss-smoke-2026-06-28.md 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
handoff-avatar-seoyeon-2026-06-27.md 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
hanshin-data-governance-gate.md 대시보드 폴드아웃/드릴다운 정리 + 페르소나 역린·misconduct 반응 + 게이트웨이 격리·RAG 비차단 수정 2026-06-27 02:30:46 +09:00
hanshin-feedback-improvement-plan-2026-07-03.md 한신대 피드백 개선팩 반영 2026-07-03 19:53:14 +09:00
hanshin-meeting-actions-2026-07-13.md 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
nas-preview-deployment-evidence-2026-08-07.md G8 실제 rollback 증명 종료와 비-secure origin 회기 리뷰 크래시 수정 2026-08-07 22:17:20 +09:00
nas-preview-g8-rollback-proof-runbook.md G8 실제 rollback 증명 종료와 비-secure origin 회기 리뷰 크래시 수정 2026-08-07 22:17:20 +09:00
pilot-usage-guide-draft.md 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
postgres-rls-audit-smoke.md 대시보드 폴드아웃/드릴다운 정리 + 페르소나 역린·misconduct 반응 + 게이트웨이 격리·RAG 비차단 수정 2026-06-27 02:30:46 +09:00
public-runtime-watchdog.md feat: 운영 안정성과 세션 음성 경험 개선 2026-07-31 00:13:08 +09:00
refactor-governance-2026-07-15.md 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
resistance-openness-db-smoke-2026-06-28.json 운영 문서와 상태판 동기화 2026-06-28 20:13:36 +09:00
resistance-openness-db-smoke-2026-06-28.md 운영 문서와 상태판 동기화 2026-06-28 20:13:36 +09:00
server-migration-runbook-draft.md feat: 운영 안정성과 세션 음성 경험 개선 2026-07-31 00:13:08 +09:00
session-progress-gauge-design-2026-07-14.md 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
source-docs-gap-analysis-2026-06-26.md 사례개념화 워크시트 저장 추가 2026-06-27 19:27:34 +09:00
tagged-data-utilization-2026-07-15.md 전 저장소 리팩터링과 SSOT 정비 2026-07-15 21:31:30 +09:00
tailscale-vnet-runtime-2026-06-27.md P4-P7 페르소나와 Tailnet 허용 보강 2026-06-27 19:04:46 +09:00