공개 복구 상태 동기화
This commit is contained in:
parent
a73bcd248f
commit
2605661f0c
5 changed files with 43 additions and 28 deletions
|
|
@ -9,7 +9,7 @@
|
|||
**G0~G6의 내부 구현·증거와 G8 clean-head NAS-origin runtime은 종료됐다. G8은 source HEAD
|
||||
`61a41d1f…6af`·tree `87dec55d…3b77`·archive `4d15d055…119d4d`로 candidate 112/112와 actual NAS-origin
|
||||
112/112를 모두 통과했다. 앞선 fail-closed·verified rollback 이력과 previous `6030a677…c611`은 보존했다. G7 공개 런타임은
|
||||
detached-clean `b34623f3…`·tree `32cc85c7…`로 fresh 승격했고 OpenAPI 126, local Whisper/MeloTTS, Uvicorn queue 4,
|
||||
detached-clean `a73bcd24…`·tree `b02b3a1b…`로 fresh 승격했고 OpenAPI 126, local Whisper/MeloTTS, Uvicorn queue 4,
|
||||
API/cloudflared provenance receipt와 source-pinned Scheduled Task result 0을 확인했다. 인증 WSS·runtime·Windows topology의
|
||||
30초 무마이크 rehearsal도 통과했다. 남은 것은 명시 동의 물리 마이크 3,120초·공통 3,000초 high-water,
|
||||
독립 human pack과 canonical checker exit 0이다.**
|
||||
|
|
@ -23,7 +23,7 @@ API/cloudflared provenance receipt와 source-pinned Scheduled Task result 0을
|
|||
| G4 Deliberate Practice | DONE | completed-session observer, actual API/DB attempts, teacher correction, returned-practice browser 폐루프 |
|
||||
| G5 Calibration & Transfer | DONE | actual transfer execution, independent/model-run/instrument/evidence provenance, DB/browser idempotency |
|
||||
| G6 Supervision & Research | DONE | safety event metadata-only projection, safety priority 1 > deterioration 2, raw detail 0 |
|
||||
| G7 Multimodal Alliance | **internal DONE · external GATE** | consent/withdrawal, synthetic soak 59/59, public `b34623f3…`·OpenAPI 126·local voice, no-mic rehearsal 3 legs × 7 samples |
|
||||
| G7 Multimodal Alliance | **internal DONE · external GATE** | consent/withdrawal, synthetic soak 59/59, public `a73bcd24…`·OpenAPI 126·local voice, no-mic rehearsal 3 legs × 7 samples |
|
||||
| G8 Continuous Improvement | **DONE · CLEAN-HEAD NAS VERIFIED** | 실제 image rollback 2회 + executed receipt 2건, source/archive 결속, candidate 112/112, actual NAS-origin 112/112 |
|
||||
|
||||
대시보드 status count는 **33 done / 2 doing / 0 planned**다.
|
||||
|
|
@ -47,10 +47,10 @@ G8 배포 source 기준선은 branch `master`, HEAD `61a41d1f08239b5f9e99cfae42a
|
|||
ok·db/engine true·auth 401·OpenAPI 126, fresh dump `36ec8748…24db8`을 확인했다.
|
||||
- G7 Windows topology mode, 3,000초 공통 시간창, canonical checker-bound exit와 공개 런처의 local
|
||||
Whisper/MeloTTS lifecycle·exact readiness·Uvicorn queue·fresh API/cloudflared provenance 계약은 코드와 공개 runtime에서
|
||||
확인했다. detached-clean `b34623f3…`·tree `32cc85c7…`의 receipt `9f8d1941…a21bf`가 passed이고,
|
||||
확인했다. detached-clean `a73bcd24…`·tree `b02b3a1b…`의 receipt `47388d58…9b08`가 passed이고,
|
||||
OpenAPI 126·`/admin/voice-runtime`·`local_whisper/small`·`melotts/melotts-korean`·queue 4가 공개 경로와 일치한다.
|
||||
- **public task source-pin P0 완료:** watchdog·로그온 boot는 detached clean release의 commit/tree와
|
||||
watchdog|boot/start script SHA를 mutation 전에 검증한다. 두 Scheduled Task를 같은 `b34623f3…` stable root에
|
||||
watchdog|boot/start script SHA를 mutation 전에 검증한다. 두 Scheduled Task를 같은 `a73bcd24…` stable root에
|
||||
재등록하고 명시 실행해 `LastTaskResult=0`·Ready와 working directory pin을 확인했다. 실제 Windows 재부팅 뒤
|
||||
자동복구 smoke는 별도 운영 게이트로 남는다.
|
||||
- 인증 WSS ready/ping/close 1000, runtime 7 samples, Windows topology 7 samples의 30초 무마이크 rehearsal을 통과했다.
|
||||
|
|
@ -190,9 +190,15 @@ UI가 active DB container에 직접 stop을 보내 같은 증상이 재발했다
|
|||
start는 302→`accounts.google.com`, 공개 OpenAPI는 126 paths이고 `/admin/voice-runtime`이 존재한다.
|
||||
`/voice/health`는 `local_whisper/small`·`melotts/melotts-korean`·WS queue 4를 보고한다.
|
||||
- DB 컨테이너는 `vignette_recovered_prod_20260807` named volume과 `unless-stopped`를 유지한다. API/cloudflared는
|
||||
detached-clean `b34623f3…`·tree `32cc85c7…`에서 실행되고 receipt `9f8d1941…a21bf`가 passed다.
|
||||
detached-clean `a73bcd24…`·tree `b02b3a1b…`에서 실행되고 receipt `47388d58…9b08`가 passed다.
|
||||
watchdog·로그온 task도 같은 stable root/commit/tree/script SHA에 pin해 명시 실행 결과 0·Ready를 확인했다.
|
||||
실제 Windows 재부팅 뒤 자동복구 smoke만 남아 있다.
|
||||
- **2026-08-12 public reconnect incident:** 휴면 Gradle daemon이 `127.0.0.1:8001`을 점유했고 cloudflared와
|
||||
9882/9883 sidecar가 없는 상태에서 PowerShell 5.1 native stderr가 start/watch/boot의 복구 분기를 조기 종료했다.
|
||||
exact Gradle PID만 중지하고 DB dump `9cbda31e…0ce5`(7,532,625 bytes·TOC 1,492)를 먼저 고정했다. 복구 코드는
|
||||
103/103과 PS5.1 parser를 통과했고, detached-clean `a73bcd24…`·tree `b02b3a1b…`에서 API/cloudflared를
|
||||
fresh 교체했다. receipt `47388d58…9b08` passed, public health 3/3·db/engine true·OpenAPI 126·local voice exact,
|
||||
웹 진단 overlay/console error/`[NAME]` 0, watchdog·로그온 boot 명시 실행 result 0을 확인했다.
|
||||
|
||||
보안상 과거 `auth_session`은 복원하지 않았다. 사용자는 Google 재로그인이 필요하다.
|
||||
|
||||
|
|
@ -428,9 +434,9 @@ G7 내부 소스 계약은 완료됐고 `scripts/check-g7-external-proof.py`는
|
|||
|
||||
운영·코드 선행조건과 무마이크 rehearsal은 닫혔다.
|
||||
|
||||
- 공개 API는 detached-clean `b34623f3…`·tree `32cc85c7…`에서 OpenAPI 126과
|
||||
- 공개 API는 detached-clean `a73bcd24…`·tree `b02b3a1b…`에서 OpenAPI 126과
|
||||
`/admin/voice-runtime`을 제공한다. `/voice/health`는 `local_whisper/small` +
|
||||
`melotts/melotts-korean`, Uvicorn WS queue 4를 정확히 보고하고 receipt `9f8d1941…a21bf`가 passed다.
|
||||
`melotts/melotts-korean`, Uvicorn WS queue 4를 정확히 보고하고 receipt `47388d58…9b08`가 passed다.
|
||||
- local Whisper 9882와 MeloTTS 9883은 API보다 먼저 exact readiness를 통과했고, 런처는 기존 비정상 리스너를
|
||||
임의 종료·재사용하지 않는다. public health는 promotion과 rehearsal 뒤에도 `status=ok·db=true·engine=true`다.
|
||||
- **외부 실행 전 코드 P0 3건은 완료:** (1) production 프로세스 exit 0은 canonical checker
|
||||
|
|
@ -447,7 +453,7 @@ G7 내부 소스 계약은 완료됐고 `scripts/check-g7-external-proof.py`는
|
|||
- Windows topology는 API/cloudflared의 PID·start·exe SHA·command SHA·cwd와 detached-clean commit/tree,
|
||||
runner/collector/checker SHA, `psutil==6.1.1`을 결속한다. 30초 rehearsal에서 API listener owner/conflict와
|
||||
cloudflared TCP, RSS/CPU/handles/threads를 7회 수집했고 raw command line·endpoint·UUID·email은 저장하지 않았다.
|
||||
- watchdog·로그온 boot 두 task도 같은 `b34623f3…` stable root에 재등록했다. commit/tree/script hash marker,
|
||||
- watchdog·로그온 boot 두 task도 같은 `a73bcd24…` stable root에 재등록했다. commit/tree/script hash marker,
|
||||
working directory, `LastTaskResult=0`·Ready를 확인했다. 실제 Windows 재부팅 뒤 복구 smoke는 아직 남아 있다.
|
||||
- 운영 Python에 `psutil`이 없으면 collector는 `command_unavailable:psutil`로 fail-closed한다. current
|
||||
`apps/api/requirements.txt`와 명시적 Python 3.11 모두 `psutil==6.1.1`로 고정됐다.
|
||||
|
|
@ -760,8 +766,8 @@ G7은 내부 구현과 clean public runtime·local_whisper/melotts ready·authen
|
|||
독립 human voice-gain pack을 모아 canonical checker exit 0을 만들어야 한다.
|
||||
G7 runner exit의 checker exit 0/gate_closed 결속, browser Origin과 API/WSS host 분리, 3,120초 capture와
|
||||
3,000초 공통 overlap, detached-clean HEAD/tree, runner/collector/checker SHA와 exact psutil pin은 소스에서 완료됐다.
|
||||
API/cloudflared는 detached-clean `b34623f3…`·tree `32cc85c7…`에서 새 PID로 교체됐고 safe receipt
|
||||
`9f8d1941…a21bf`가 passed다. 공개 OpenAPI 126·`/admin/voice-runtime`·local provider/model·queue 4와
|
||||
API/cloudflared는 detached-clean `a73bcd24…`·tree `b02b3a1b…`에서 새 PID로 교체됐고 safe receipt
|
||||
`47388d58…9b08`가 passed다. 공개 OpenAPI 126·`/admin/voice-runtime`·local provider/model·queue 4와
|
||||
public health db/engine true를 확인했다. 30초 rehearsal은 인증 WSS·runtime·Windows topology 세 leg 7 samples를
|
||||
모두 통과했고 `physical_capture=false`·UUID/email 0이다. 이 증거를 물리 마이크나 사람 평가로 과장하지 마.
|
||||
watchdog·로그온 boot도 같은 stable root와 exact Git commit/tree/script SHA에 재등록했고 두 task의 명시 실행 결과가
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue