main.spec's --clean flag wipes dist/ at the start of main.exe build,
which deleted dist/updater.exe before it could be embedded as data
(v2.2.2 main.exe shipped without embedded updater).
Fix: release.ps1 copies dist/updater.exe to build/staging/ after
the updater build, and main.spec datas references that staged path.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- main.spec: include dist/updater.exe in datas (when present)
- main.py: extract embedded updater.exe next to main.exe on launch
- updater_client.py: _MEIPASS fallback to TEMP if extraction fails
- release.ps1: build updater FIRST so main.spec can embed it
Now users can deploy main.exe alone; auto-update still works because
main.exe self-extracts updater.exe on first launch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PowerShell 5.1 Get-Content defaults to system ANSI (cp949 in KR locale),
which corrupted UTF-8 Korean text in release notes. Use .NET API
[System.IO.File]::ReadAllText with explicit UTF-8 encoding instead.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>