docs: record 1.0.4 package verification

This commit is contained in:
2026-07-12 12:11:31 +09:00
parent af80c36cde
commit 6e00955f1b
8 changed files with 125 additions and 32 deletions

View File

@@ -32,14 +32,14 @@
Oracle/MariaDB 조회 계층과 Tornado/K3D 어댑터의 코드·계약·자동 검증은 구현했습니다. 이는 운영 Oracle 쓰기나 35개 장면 전체의 실제 PGM 동등성이 끝났다는 뜻이 아닙니다. 앱과 패키지의 기본 모드는 계속 `DryRun`이며 Live allowlist, 회차별 승인, 명령 예산, callback/`OutcomeUnknown` 게이트를 완화하지 않습니다. DB 설정은 [DB 운영 가이드](docs/DATABASE.md), 송출 설정·실제 검증 증거·롤백은 [Tornado/K3D 운영 가이드](docs/PLAYOUT.md), 원본 Scene/PageN 대조는 [송출 흐름 분석](docs/LEGACY_PLAYOUT_ANALYSIS.md), 장면별 현황은 [35개 Scene 동등성 매트릭스](docs/SCENE_EQUIVALENCE.md), 전체 412개 실행 action과 전용 편집 화면은 [운영자 UI 동등성 인벤토리](docs/OPERATOR_UI_PARITY.md)를 참고하세요. 재감사에서 확인한 미적용·적용 중·외부자산 필요 항목은 [원본 기능 재감사 기준표](docs/LEGACY_FEATURE_AUDIT.md)가 최종 상태 기준입니다.
35개 Scene/PageN 런타임과 원본 MainForm·UC1~UC7·GraphE·FSell·VIList·PList·AList·ThemeA·EList의 화면·bridge 계약은 WinUI 3/WebView2에 연결했습니다. 412개 고정 실행 action은 폐쇄형 매트릭스로 고정하며, 수동 재무·순매도·VI·테마·전문가·이름 있는 플레이리스트는 저장 후 재조회와 신뢰 검증이 끝나기 전에는 PREPARE할 수 없습니다. 다만 PList의 기존 한국어 `DC_TITLE`/`LIST_TEXT` 복원, GraphE·FSell·VI를 포함한 수동 항목의 named save→fresh restore, ThemeA/EList의 실제 운영 identity, 구현된 `종목비교.dat` importer의 운영 DB 연결 1회 실행, FSell/VI 원본 파일의 one-time import는 아직 운영 동등성 완료로 판정하지 않습니다. 운영 DB write와 승인된 `5001`/`5074` 밖의 실제 PGM 확인 미검증입니다.
35개 Scene/PageN 런타임과 원본 MainForm·UC1~UC7·GraphE·FSell·VIList·PList·AList·ThemeA·EList의 화면·bridge 계약은 WinUI 3/WebView2에 연결했습니다. 412개 고정 실행 action은 폐쇄형 매트릭스로 고정하며, 수동 재무·순매도·VI·테마·전문가·이름 있는 플레이리스트는 저장 후 재조회와 신뢰 검증이 끝나기 전에는 PREPARE할 수 없습니다. 실제 PList 2,213행은 한국어 7필드 무손상과 typed persistence가 모두 일치했고, KRX·해외종목·GraphE fresh proof를 합쳐 1,603행이 현재 selection으로 복원되며 610행은 명시적 사유로 차단됩니다. `종목비교.dat` 8쌍은 설치 패키지에서 1회 이전·재시작 영속성까지 확인했습니다. 이 수치는 scene data·asset·PREPARE·PGM 성공이 아니며, 운영 DB write와 승인된 `5001`/`5074` 밖의 실제 PGM 확인은 여전히 미검증입니다.
## 최종 검증 기준선 (2026-07-12)
- 현재 마이그레이션 소스에서 Core 1,259개, Infrastructure 173개, Playout 387개가 Debug/Release x64에서 각각 모두 통과했다. 구성별 1,819개, 전체 3,638개이며 실패·skip은 0건이다. Web 구문 25개와 테스트 371/371, 원본 scene 기준선 35/35도 통과했다.
- 현재 마이그레이션 소스에서 Core 1,377개, Infrastructure 173개, Playout 387개가 Debug/Release x64에서 각각 모두 통과했다. 구성별 1,937개, 두 구성 합계 3,874개이며 실패·skip은 0건이다. Web 구문 27개와 테스트 413/413, 원본 scene 기준선 35/35도 통과했다.
- 원본 `Cuts` 기준 active alias 45개의 `.t2s`는 missing/unsafe 0건이고 종속 asset 23개는 unsafe 0건, missing 14건이다. 누락은 `s5006` 큐브 배경 1개와 `s6001` 국가별 영상 13개다. 실제 Oracle 21c/MariaDB read-only 스모크는 `삼성` 검색과 필수 loader 33/33, 전체 query 58건을 통과했지만 DB→DTO→mutation 검증 범위다.
- Visual Studio 2026 MSBuild `18.7.8.30822`로 clean source commit `a01836a`의 Release x64와 signed MSIX를 빌드했다. `1.0.3.0` SHA-256은 `B46C225B6859F7EBBFDDA83F4433DC64AFDCD59230B667A28BAEC0AE328534C6`이며, `CN=Comtrophy` 서명, 288개 패키지 항목, Web 31개 byte-for-byte 일치, 금지 자산·비밀값 0건을 확인했다.
- 설치본 `Wickedness.MBNStockWebView_1.0.3.0_x64__qbv3jkvsn3aj0``C:\Program Files\WindowsApps`의 실제 package context에서 WebView2 하위 프로세스 6개와 함께 실행됐다. 단일 인스턴스, 종료 확인 취소/명시적 종료, 재시작 로그 존재를 확인했 상태는 `DryRunReady`, Oracle/MariaDB `Healthy`다. 이 회차에서 Tornado 실제 명령은 보내지 않았다.
- Visual Studio 2026 MSBuild `18.7.8.30822`로 clean source commit `af80c36`의 Release x64와 signed MSIX를 빌드했다. `1.0.4.0` SHA-256은 `E8DB3C0E94963130548FAEF1880A9F9B99829064257F7196F41B7B8F0EE50B6C`이며, `CN=Comtrophy` 서명, 290개 패키지 항목, Web 33개 byte-for-byte 일치, 금지 자산·비밀값 0건을 확인했다.
- 설치본 `Wickedness.MBNStockWebView_1.0.4.0_x64__qbv3jkvsn3aj0``C:\Program Files\WindowsApps`의 실제 package context에서 실행됐다. 단일 인스턴스, 기본 해외 화면, 실제 `삼성` 검색 63건, 모든 10개 업무 탭을 거친 뒤 검색 상태·31개 컷 유지, 비교 8쌍 영속성을 확인했다. 상태는 `DryRunReady`, Oracle/MariaDB `Healthy`고 playout command·`OutcomeUnknown`은 0건이다. 상세 증거는 [1.0.4 패키지 감사](docs/RELEASE_1_0_4_AUDIT.md)에 있다.
- 실제 Tornado2 검증은 고정 계획 `55C7755C2F874B4B012239117D4AB717BBCE194E7DCC8DA9B0E40D094FF8CA19``MBNWEB-20260711-H` 한 회차로 제한했다. PGM에서 `5001``5074` page 1/page 2를 확인한 뒤 TAKE OUT의 검은 화면을 확인했다. Network Monitoring의 정확한 합계는 `SCENE_PREPARE 5001 = 3`, `SCENE_PREPARE 5074 = 2`, `PLAY = 4`, `SCENE_PLAYED = 4`, `FAILURE = 0`, `ERROR = 0`, retry `0`이며 최종 `OutcomeUnknown = false`다.
- 실제 Tornado 증거는 승인된 `5001`/`5074`에만 적용한다. 나머지를 포함한 35개 builder, 45개 active alias, 5·6·12행 PageN 경계와 마지막 페이지는 자동 매트릭스 테스트로 검증했다. `s5025`는 Git/MSIX 밖의 승인된 trusted CP949 입력 파일이 있어야 하는 운영 전제조건을 유지한다.