공개 Web 후보 사전검증 증거 고정

This commit is contained in:
Yun Chan 2026-08-12 18:20:53 +09:00
parent 00f851a66f
commit 80bcacc723
5 changed files with 135 additions and 0 deletions

View file

@ -116,6 +116,10 @@
## B3. 소유자(윤찬) 결정 — 전건 확정(2026-06-30)
- [ ] **공개 Web 후보 Pages 승격 승인**`00f851a6…c229`·tree `9f78cd16…9486`의 deterministic build와
focused E2E 12/12, 현행/최근 Pages 자산 133개 보존은 완료됐다. 실제 공개와 NAS에는 아직 배포하지 않았다.
승인 시 Pages Web만 승격하고 공개 API/DB·task·NAS runtime은 범위 밖으로 유지한다.
> 7건(평가설계 H1 κ/ICC·환각률, s2s 2차 PoC 채택, 페르소나 음성 모델·권리, fast-loop 외부 API 허용,
> 재귀학습 fine-tuning 범위, 운영 보존기간·에스컬레이션, 추가 축어록 수급 20건/1개월)은 **전건 확정**됐다.
> 결정 상세는 대시보드 "윤찬 결정 상세" 탭, ADR은 `docs/decisions/`(`voice-s2s-poc.md`,

View file

@ -0,0 +1,116 @@
{
"schema": "vignette.public-web-preflight.v1",
"captured_at": "2026-08-12T18:18:30+09:00",
"status": "preflight_passed_approval_required",
"deployment_executed": false,
"external_mutation": false,
"source": {
"branch": "detached HEAD",
"commit": "00f851a66fb680f650bf2077c72fcd563c27c229",
"tree": "9f78cd165b59e04986905e182b3e0cb89d9e9486",
"candidate_root": "D:\\workspace\\vignette-public-web-preflight-00f851a6",
"tracked_clean": true,
"api_generated_types_lf_pinned": true
},
"candidate_gates": {
"npm_ci_ignore_scripts": "passed",
"api_type_contract": "passed",
"typecheck": "passed",
"production_build_runs": 2,
"production_build_deterministic": true,
"production_file_count_before_asset_preservation": 599,
"focused_playwright": {
"passed": 12,
"failed": 0,
"projects": [
"chromium-desktop",
"chromium-mobile"
],
"contracts": [
"all-role topbar controls are at least 44px at 1280, 1024, 390, and 320 widths",
"login root has no horizontal overflow at narrow scrollbar viewports",
"secondary Google login action preserves its domain and redirect contract",
"learner self-directed home to session to review to repractice flow",
"transient boot diagnostic clears and actual empty boot remains fail-honest"
],
"listener_15471_after": 0,
"temp_remaining": 0
}
},
"new_primary_assets": {
"css": {
"path": "assets/index-Dzmt2kJS.css",
"bytes": 29683,
"sha256": "da5e8535acd714fd85dfbd6d041f457a7a5d16eb15132b4889f2ff3f2867fb9a"
},
"javascript": {
"path": "assets/index-BUoTLplD.js",
"bytes": 246182,
"sha256": "08654d08230358fdb607cc4d5116862b2e988787e7ea14fd5bcc73a87e1a3c05"
}
},
"previous_asset_preservation": {
"origins_checked": 6,
"assets_added": 133,
"final_file_count": 732,
"download_temp_remaining": 0,
"current_public_assets": [
{
"path": "assets/index-1zrRyPRd.css",
"sha256": "96954208bc09396ddcb30acc11f727658fa865957a9cf223e54e2fa06200ae61",
"preserved_exact": true
},
{
"path": "assets/index-BrpoQ5nP.js",
"sha256": "b8e6b6679f6ad073f4a2ecfe81aa86769b09dcff7203ff393a8c3d9d854d623e",
"preserved_exact": true
}
]
},
"actual_runtime_read_only": {
"public": {
"health_status": "ok",
"db": true,
"engine": true,
"environment": "prod",
"auth_me_status": 401,
"openapi_paths": 126,
"voice": "local_whisper/small + melotts/melotts-korean",
"console_errors": 0,
"boot_diagnostic_overlays": 0,
"horizontal_overflow_px": 0,
"pii_placeholder_literals": 0,
"mobile_topbar_controls_under_44px": 6,
"candidate_not_deployed": true
},
"nas_preview": {
"login_http_status": 200,
"auth_me_status": 401,
"openapi_paths": 126,
"health": "timeout",
"relay_9100_listener_count": 0,
"mobile_login_horizontal_overflow_px": 10,
"candidate_not_deployed": true
}
},
"known_dependency_risk": {
"production_audit": {
"critical": 0,
"high": 0,
"moderate": 2
},
"package": "react-router-dom@6.30.4",
"advisory": "GHSA-jjmj-jmhj-qwj2",
"introduced_by_candidate": false,
"patched_v6_available": false,
"decision": "track a separate React Router 7 migration; do not apply an unreviewed major upgrade in this UI-only release"
},
"approval_boundaries": {
"public_pages_deploy": "explicit owner approval required",
"nas_engine_relay": "explicit owner approval required",
"g7_physical_microphone": "device selection and explicit consent required",
"public_api_db_scheduled_tasks_touched": false,
"nas_containers_db_touched": false,
"physical_microphone_opened": false
}
}