- 대청소 사건·Docker 사망·WinNAT 포트 예약·DHCP IP 회수 연쇄 복구 기록
- 릴레이 bf5f7352 재핀(r3) + 192.168.0.224 계약 이전(방화벽·NAS .env 재구성)
- NAS agy_cli 전환으로 health 3/3 engine true + actual-origin turn→review smoke 통과
— 201차 current GREEN 조건 전부 충족, TODO 항목 종결
- 직렬 게이트 잔여: 동맹 포인터 타임아웃 결정 재현(3/3)·스윕 협폭 결함과 함께 조사 이관 기록
- 대시보드 213차 노트, 수집량 1111 갱신(체커 요구), SSOT 59 PASS
81 lines
5.4 KiB
JSON
81 lines
5.4 KiB
JSON
{
|
|
"schema": "vignette.nas-relay-recovery.v1",
|
|
"captured_at": "2026-08-18T15:48:00+09:00",
|
|
"owner_approval": "2026-08-18 소유자 지시로 남은 작업 3순위로 'NAS 엔진 릴레이 복구(start-nas-preview-engine.ps1 -CheckOnly → 실제 1회 시작 → NAS health/auth/OpenAPI 재검증)'를 명시해 마무리를 지시함. LAN 노출(192.168.0.223:9100)은 중단 세션에서 명시 승인 완료. 방화벽 규칙 추가(관리자 승격)는 실행 시점 소유자 UAC 승인.",
|
|
"checkonly": {
|
|
"status": "preflight_passed",
|
|
"mutation": false,
|
|
"receipt_path": "D:\\workspace\\nas-relay-state\\receipt-checkonly-20260818.json",
|
|
"binding": {
|
|
"source_commit": "4771b97c3a9a4c52349f8a6a55a08a3ce0a5c880",
|
|
"source_tree": "286723de877ed950c36656d5598fdf2d57c861fa",
|
|
"launcher_sha256": "492d8b5c4ba21d1463c9a937ac2949f0a6d3725f6f37786f14dd5aac419fb27c",
|
|
"python_sha256": "5f7b89a612c9b8af1d6456cdfcd1dbe5ca630849e79aebced9bee9a6694952ec",
|
|
"env_sha256": "312afcb50c11be16d90fa6ad79c0b416f9d65c4877c06aeafd436260f18c18ec",
|
|
"listen_address": "192.168.0.223",
|
|
"port": 9100,
|
|
"consumer_engine_url": "http://192.168.0.223:9100",
|
|
"secret_value_emitted": false
|
|
}
|
|
},
|
|
"nas_consumer_contract_observed": {
|
|
"engine_url": "http://192.168.0.223:9100",
|
|
"engine_mode": "claude_cli",
|
|
"source": "docker inspect vignette-preview-20260807 api 컨테이너 환경(2026-08-18 실측)"
|
|
},
|
|
"actual_start": {
|
|
"status": "passed",
|
|
"started_at": "2026-08-18T06:25:35Z (15:25:35 KST)",
|
|
"receipt_path": "D:\\workspace\\nas-relay-state\\receipt-actual-20260818.json",
|
|
"pid": 65328,
|
|
"checks": {
|
|
"source_detached_clean": true,
|
|
"port_previously_unused": true,
|
|
"listener_owner_matches": true,
|
|
"liveness_ok": true,
|
|
"generation_ready": true
|
|
},
|
|
"notes": "엔진 구독 한도(15:00 KST) 리셋 직후 15:05 자동화가 실행했다. ready?force=true 실생 1회 통과."
|
|
},
|
|
"firewall_fix": {
|
|
"problem": "NAS→릴레이 TCP 연결 타임아웃(transport error). 릴레이의 Python311 인바운드 허용 규칙이 Public 프로필뿐이었고 이더넷 네트워크는 Private.",
|
|
"fix": "인바운드 TCP 9100 허용 규칙 추가 — LocalAddress 192.168.0.223, RemoteAddress 192.168.0.0/24, Profile Private(소유자 UAC 승인). 규칙명 'Vignette NAS preview engine relay (9100 LAN)'."
|
|
},
|
|
"verification": {
|
|
"local_relay_health": "http://192.168.0.223:9100/health → {ok:true, engine:claude_cli}",
|
|
"nas_origin_health_3_consecutive": "http://100.116.83.60:8088/api/health → status=ok, db=true, engine=true, engine_detail=OK (3/3)",
|
|
"auth_me_status": 401,
|
|
"openapi_paths": 126,
|
|
"nas_to_relay_probe_from_nas": "SSH YunChan@100.116.83.60 → curl 192.168.0.223:9100/health → ok:true"
|
|
},
|
|
"remaining_for_full_current_green": "201차 계약의 actual-origin 실제 회기 turn→review smoke는 아직 실행 전 — health/auth/OpenAPI 회복만으로 current GREEN 표기하지 않는다.",
|
|
"restarts_and_migration_2026_08_18_evening": {
|
|
"incident_chain": [
|
|
"워크스페이스 대청소 사건: apps/web/node_modules 소실, 구 런타임 워크트리(4771b97c/6369f294 등) 삭제, %LOCALAPPDATA%\\Temp 정리 — 이 사건으로 릴레이(워크스페이스가 사라짐)와 whisper 사이드카 로그가 사망",
|
|
"Docker Desktop 사망(공개 DB 포함) → 재기동 + vignette-dev-db 복구(healthy)",
|
|
"whisper 사이드카(9882)가 Windows 제외 포트 범위(9791-9890, WinNAT 동적)에 걸려 바인딩 거부 → winnat 재시작 + 9882 단일 고정 예약(UAC)",
|
|
"DHCP가 호스트 LAN IP를 192.168.0.223 → 224로 회수/재할당 — NAS 계약 주소 상실"
|
|
],
|
|
"migration": {
|
|
"relay_root": "D:\\workspace\u000bignette-public-runtime-bf5f7352 (구 루트 삭제로 현행 승격 루트로 재핀)",
|
|
"listen": "192.168.0.224:9100 (방화벽 규칙 224로 재발행, LAN 서브넷 한정)",
|
|
"receipts": [
|
|
"receipt-actual-20260818-r3.json (바인딩 bf5f7352/c39f917b, launcher·python·env SHA 동일 핀)"
|
|
],
|
|
"nas_side": "프로젝트 .env(0600)를 실행 컨테이너 env 전량 추출로 재구성해 ENGINE_URL=http://192.168.0.224:9100 적용, api 컨테이너만 재생성(-p vignette-preview-20260807)",
|
|
"engine_provider": "엔진 예산 한도(Reached maximum budget $0.5 — 클로드 구독)가 재발해 ENGINE_MODE=agy_cli(gemini)로 전환. 소유자가 공개는 이미 관리자 UI로 agy 전환 완료 상태였음"
|
|
},
|
|
"verification_after_migration": {
|
|
"nas_origin_health_3_consecutive": "status=ok, db=true, engine=true, engine_mode=agy_cli (3/3)",
|
|
"auth_me_status": 401,
|
|
"openapi_paths": 126,
|
|
"actual_origin_turn_to_review_smoke": "dev-login→온보딩→회기 생성→agy 턴 2개(33.9s/32.4s)→종료 200→review 200(서연 P1 실데이터, session 4d02bdfe-e2bf-41d5-9b28-7808d6b108a6) — 201차 current GREEN 조건 전부 충족",
|
|
"note": "NAS 구 릴리스(2026-08-09) 코드에서 종료 직후 상세 조회가 active로 보이는 비동기 지연 관찰(리뷰는 정상 200)"
|
|
},
|
|
"recommendations": [
|
|
"공유기에서 호스트 MAC(D8-BB-C1-A2-3C-5D)에 192.168.0.224 DHCP 고정 예약 — 재발 방지(소유자 조치)",
|
|
"Docker Desktop VM 클럭이 호스트보다 ~4일 선행(DB 타임스탬프 오염) — wsl --shutdown 후 재기동으로 동기화 필요(소유자 승인 대기)",
|
|
"NAS 로컬 agy 설치가 릴레이·노트북 의존을 완전히 제거하는 근본 해법"
|
|
]
|
|
}
|
|
}
|