fix(install.ps1): fast-forward without a diffstat
Updating an old checkout ran `git merge --ff-only`, which prints a diffstat plus create/delete-mode summary. From v2026.7.1 to today that is ~27k lines, emitted in under a second. Hermes-Setup.exe forwards every stage line to its window as its own Tauri event; the burst overflows the UI thread's Windows posted-message queue (10k), emits fail with FailedToSendMessage, and afterwards clicking Launch can leave the installer on "Launching" without ever spawning Hermes.exe. This is why both Windows desktop-installer@latest E2E legs from v2026.7.1 timed out waiting for the app window after Launch, while the same routes from v2026.9.24 (small diff) passed. Reproduced on Windows arm64 with the production Hermes-Setup.exe and a protocol-faithful stage script: a 32k-line burst hangs Launch in most runs (with ~14k FailedToSendMessage warnings), 5k lines and no burst always launch. --no-stat reduces the merge to two lines.
This commit is contained in:
@@ -773,7 +773,12 @@ function Stage-Repository {
|
||||
}
|
||||
Invoke-Logged "Checking out $Branch" { git -C $InstallDir checkout $Branch }
|
||||
if ($LASTEXITCODE) { Fail "git checkout failed" }
|
||||
Invoke-Logged -MayFail "Fast-forwarding to origin/$Branch" { git -C $InstallDir merge --ff-only "origin/$Branch" }
|
||||
# --no-stat: across a large gap (v2026.7.1 -> today is ~27k lines) the
|
||||
# diffstat arrives as one burst. Hermes-Setup.exe forwards every line
|
||||
# to its window as a separate event; the burst overflows the Windows
|
||||
# posted-message queue (10k), events drop, and the installer's Launch
|
||||
# button can then hang on "Launching" forever.
|
||||
Invoke-Logged -MayFail "Fast-forwarding to origin/$Branch" { git -C $InstallDir merge --ff-only --no-stat "origin/$Branch" }
|
||||
if ($LASTEXITCODE) {
|
||||
# A release cut off the main line, a force-pushed remote, or the
|
||||
# user's own commits cannot fast-forward. Every stage below reads
|
||||
|
||||
Reference in New Issue
Block a user