Skip to content

Update-check popup wrongly shown (with wrong action) to Microsoft Store/MSIX installs #874

Description

@AgreeDK

Description

The built-in update checker (updater.py / mainwindow.py) doesn't distinguish between installation sources on Windows. A user who installed via the Microsoft Store gets the exact same "new version available" popup as a portable/manual .exe user — including the same primary action, which opens the GitHub releases page in the browser (webbrowser.open(url)) and invites a manual download.

This is wrong for a Store install:

The Store already updates the app automatically in the background — the user doesn't need to (and shouldn't) do anything.
Directing a Store user to manually download and run a .exe risks mixing installation methods on the same machine.
Reported by a user on Facebook who was confused about why the update didn't just happen automatically.

Steps to Reproduce

There is currently only one installation-source special case in the update flow: AppImage on Linux (appimage.is_running_as_appimage() / is_appimage_integrated() in mainwindow.py's _on_update_available()), which swaps in an "Upgrade now" self-update button. There is no equivalent check for MSIX/Store on Windows, so those users fall through to the generic "Open releases page" branch.

Separately (not blocking this issue, just context): MSIX submission to Partner Center is currently a manual step per release, not automated in CI, so there can be a real gap between a GitHub tag/build existing and it actually being available in the Store. This is an argument for suppressing the notification entirely for MSIX builds, rather than just changing its wording.

Expected Behavior

Proposed fix

Mirror the existing AppImage pattern:

Add an is_running_as_msix() helper (Windows-only, no-op elsewhere) using the standard Desktop Bridge detection technique: ctypes.windll.kernel32.GetCurrentPackageFullName(...), which returns APPMODEL_ERROR_NO_PACKAGE when the process has no package identity.
In _check_update_background(): skip the automatic background check entirely when is_running_as_msix() is true — the Store already handles this silently.
In _check_update_manual() ("Check for updates" menu item): since the user actively clicked, don't silently no-op. Instead show a simple info message ("This installation updates automatically via the Microsoft Store") with no download button, instead of the generic dialog.
Scope

Windows-only change; no effect on portable .exe, Linux (AppImage), or macOS builds — those keep their current behavior.

Environment

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions