From 80b50c80b3be535f25b142058df8aea4d922cc85 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Tue, 28 Jul 2026 22:04:44 +0900 Subject: [PATCH] fix: recover first-run live config conflicts --- README.md | 4 + docs/DEVELOPMENT_LIVE_VISUAL_STUDIO.md | 7 +- scripts/Initialize-ExistingDevelopmentPc.ps1 | 3 +- .../FirstRunSetupWindow.xaml | 6 + .../FirstRunSetupWindow.xaml.cs | 143 ++++++++++++++++-- .../LegacyFirstRunSetupNativeContractTests.cs | 45 +++++- ...gacyRuntimeAssetDeploymentContractTests.cs | 2 +- 7 files changed, 195 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 960a6df..bebd0ac 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,10 @@ Registry64 등록, 지속 K3D pin, `127.0.0.1:30001` Development Live 승인 및 빌드를 한 번에 확인하므로 시간이 걸릴 수 있습니다. 이 과정은 DB 연결, K3D COM 활성화, Tornado2/PGM 연결이나 송출 명령을 실행하지 않습니다. 성공 뒤 누르는 다음 F5에서는 `Cuts`와 `Res\MmoneyCoder.ini`를 복사하지 않고 선택한 원래 경로를 직접 사용합니다. +기존 보호 Live 설정이 고정값과 다르면 자동으로 덮어쓰지 않고 정확한 원인과 +`기존 Live 설정 교체 후 다시 시도` 버튼을 표시합니다. 이 버튼은 안내된 +`127.0.0.1:30001`, 채널 미지정, 고정 allowlist/timeout만 명시적으로 교체하며 K3D pin이나 +기존 runtime binding은 변경하지 않습니다. K3D는 다음 회사 표준 배치만 허용합니다. diff --git a/docs/DEVELOPMENT_LIVE_VISUAL_STUDIO.md b/docs/DEVELOPMENT_LIVE_VISUAL_STUDIO.md index 28018c7..dbb23da 100644 --- a/docs/DEVELOPMENT_LIVE_VISUAL_STUDIO.md +++ b/docs/DEVELOPMENT_LIVE_VISUAL_STUDIO.md @@ -37,8 +37,11 @@ 설정 중에는 DB 연결, K3D COM 활성화, Tornado2/PGM 연결 또는 송출 명령을 실행하지 않는다. 설정을 완료한 뒤 창을 닫고 F5를 한 번 더 누르면 검증된 전체 앱이 시작된다. 기존 로컬 -설정과 충돌하거나 K3D pin이 달라 자동 설정이 중단되면 대상을 검토한 뒤 아래 수동 교체 -절차를 사용한다. 자세한 절차는 +Live 설정과 충돌하면 화면은 자동으로 덮어쓰지 않고 `127.0.0.1:30001`, 채널 미지정, +고정 allowlist/timeout으로 교체된다는 안내와 별도 +`기존 Live 설정 교체 후 다시 시도` 버튼을 표시한다. 이 명시적 재시도는 K3D pin과 runtime +binding을 바꾸지 않는다. runtime binding 충돌이나 K3D pin 차이로 중단되면 대상을 검토한 +뒤 아래 수동 교체 절차를 사용한다. 자세한 절차는 [개발 PGM 인수 절차](DEVELOPMENT_LIVE_HANDOFF.md#2-기존-자산-보유-pc-clone-후-1회-초기화)를 따른다. diff --git a/scripts/Initialize-ExistingDevelopmentPc.ps1 b/scripts/Initialize-ExistingDevelopmentPc.ps1 index cf5c865..1e50d5d 100644 --- a/scripts/Initialize-ExistingDevelopmentPc.ps1 +++ b/scripts/Initialize-ExistingDevelopmentPc.ps1 @@ -1494,7 +1494,8 @@ function Get-DevelopmentLivePreflight { # refused. The caller asked to configure Live, so failure is fail-closed. Remove-DevelopmentLiveAuthorizationFailClosed -Path $authorizationPath throw ( - 'Existing Development Live files differ from the exact requested ' + + '[MBN_SETUP_LIVE_CONFIG_REPLACEMENT_REQUIRED] Existing Development ' + + 'Live files differ from the exact requested ' + 'endpoint/hash contract. Re-run with -ReplaceLiveConfig.') } diff --git a/src/MBN_STOCK_WEBVIEW.LegacyParityApp/FirstRunSetupWindow.xaml b/src/MBN_STOCK_WEBVIEW.LegacyParityApp/FirstRunSetupWindow.xaml index 85406c0..0f650bb 100644 --- a/src/MBN_STOCK_WEBVIEW.LegacyParityApp/FirstRunSetupWindow.xaml +++ b/src/MBN_STOCK_WEBVIEW.LegacyParityApp/FirstRunSetupWindow.xaml @@ -104,6 +104,12 @@ Click="OnCloseClicked" Content="닫기" Visibility="Collapsed" /> +