Repository navigation
Fix updater cancellation and installer handoff lifecycle - #478
Merged
gabrielhhaber merged 3 commits intoOct 12, 2026
Merged
gabrielhhaber merged 3 commits into
gabrielhhaber merged 3 commits into
Conversation
m-enes-senovali
marked this pull request as ready for review
October 12, 2026 21:43
Collaborator
|
Thank you very much, Muhammet. It is indeed a bug that we hadn't noticed yet. Great contribution to making the program more robust. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cancelling an update as its download finished could leave a batch installer waiting for the still-running WinZapp indefinitely. The progress modal returned CANCEL, so the caller ignored the launched installer; the next attempt then saw the live install claim and misleadingly reported another open account.
This change serializes cancellation with a UI-granted installer handoff. An early modal return retains the dialog, package and claim until the worker settles, and a confirmed installer launch requires
real_exit()regardless of the modal return code. Failed or cancelled prelaunch attempts release only their own token; a live same-process claim is never blindly stolen.Validation:
winzapp-reviewersource review found one diagnostic-message issue, resolved in the second commit; final-head review found no outstanding findings. This is a local source review, not a GitHub APPROVED review or native acceptance.The initial CI at
cc149371completed with one failed legacy source-text guard, 19,362 passed and 320 skipped. Completion had moved out of_do_install, so the guard's string lookup failed. The follow-up test-only commit replaces it with three behavioral cases that verify a second synthetic account can claim the prompt after cancellation, dev-mode completion or declining a retry.Final-head CI at
e1ebd1515fba95dca3e77043116c59834035b00bis green: run 38310912209 completed with 19,365 passed / 320 skipped (606.26s). Both the Windows suite andvenv + pip installcheck runs report this exact head SHA and SUCCESS; the pip environment's focused dependency/build checks also passed (28 tests). The reviewer read the test-only follow-up and found no outstanding findings. The PR was marked ready for review following the author's request, then merged by maintainergabrielhhaberat 2026-10-12 21:43:50 UTC (merge commitd7b64b2232a32f7cd8b21fee2276a69b9ab3e4bf). CI is not current-main or packaged/native user acceptance.No local full suite, wx GUI/WinEvent, real installer/UAC/CMD, provider, phone or packaged NVDA acceptance was run. Four process-identity probes were excluded and one unrelated hard-link test was blocked by the local sandbox. GitHub CI remains separate evidence. No installed-app/session/data/log/key access or recovery of an older already-running installer was performed; this fix applies to installers generated by a build containing the change.