Skip to content

Fix MSIX installer manifests and mark unverified versions - #5369

Merged
Gabriel Dufresne (GabrielDuf) merged 3 commits into
mainfrom
fix/msix-installer-host-lookup
Sep 10, 2026
Merged

Fix MSIX installer manifests and mark unverified versions#5369
Gabriel Dufresne (GabrielDuf) merged 3 commits into
mainfrom
fix/msix-installer-host-lookup

Conversation

@GabrielDuf

Copy link
Copy Markdown
Contributor

This pull request improves how UniGetUI handles and displays package version information, especially when the installed version cannot be reliably determined (for example, if the package was updated outside of UniGetUI). It introduces a new mechanism to detect and visually warn users about unverified or unknown installed package versions, both in package lists and in the package details dialog. The changes also enhance user communication with new tooltips and warning icons, and include a small utility for better version string matching.

User interface improvements for unverified package versions:

  • Added a warning icon and tooltip in package lists and details views when a package's installed version is unverified, making it clear to users when the version information may be outdated or unreliable. The tooltip explains the situation and is localized. (src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml, src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml.cs, src/Languages/lang_en.json) [1] [2] [3] [4] [5] [6] [7]

  • Updated the package details dialog to display a warning and tooltip for unverified installed versions, including a warning icon and localized message. (src/UniGetUI.Avalonia/ViewModels/DialogPages/PackageDetailsViewModel.cs, src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml.cs) [1] [2] [3] [4] [5] [6]

Backend and data model changes:

  • Added a new property InstalledVersionIsUnverified to the IPackage interface and set this property in WinGet manager code when the installed version is unknown or unverified. (src/UniGetUI.PackageEngine.Interfaces/IPackage.cs, src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs, src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/PingetCliHelper.cs) [1] [2] [3] [4] [5] [6] [7]

  • Updated PackageWrapper and related view models to expose the new unverified version state and tooltip to the UI. (src/UniGetUI.Avalonia/Models/PackageCollections.cs) [1] [2]

Version string handling improvement:

  • Added a utility method to trim trailing zero segments from version strings, improving the ability to match package versions that may be reported in different formats. (src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/PingetPackageDetailsProvider.cs) [1] [2]

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changed data paths, UI presentation, localization, version fallback, and edge cases are coherently implemented and covered by targeted tests.

Pull request overview

This PR improves WinGet/MSIX version handling by retrying manifest lookup with normalized trailing-zero versions and surfacing unreliable installed-version data in Avalonia views.

Changes:

  • Marks unknown or restored WinGet versions as unverified across CLI, Pinget, and native paths.
  • Adds localized warning tooltips/icons to package lists and package details.
  • Adds trailing-zero MSIX version fallback with focused tests.
File summaries
File Description
src/UniGetUI.PackageEngine.Tests/WinGetManagerTests.cs Tests fallback matching and unverified update versions.
src/UniGetUI.PackageEngine.Tests/WinGetCliParsingTests.cs Tests CLI unknown-version flags.
src/UniGetUI.PackageEngine.Tests/InstalledVersionNoticeTests.cs Tests warning tooltip generation.
src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Package.cs Stores unverified-version state.
src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/InvalidImportedPackage.cs Implements the new interface property.
src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/InstalledVersionNotice.cs Builds localized warning text.
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/WinGetCliHelper.cs Flags unknown CLI versions.
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/PingetPackageDetailsProvider.cs Adds trailing-zero manifest lookup fallback.
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/PingetCliHelper.cs Flags unknown Pinget versions.
src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs Flags unknown native API versions.
src/UniGetUI.PackageEngine.Interfaces/IPackage.cs Exposes unverified-version state.
src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml Displays list warnings and tooltips.
src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml.cs Displays the details warning icon.
src/UniGetUI.Avalonia/ViewModels/DialogPages/PackageDetailsViewModel.cs Exposes details tooltip state.
src/UniGetUI.Avalonia/Models/PackageCollections.cs Exposes list tooltip state.
src/Languages/lang_en.json Adds localized warning strings.
Review details
  • Files reviewed: 16/16 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@randy-but-a-ro randy-but-a-ro Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Pull request was approved automatically: the AI review is complete and all its review threads are resolved. 🎉

Integration Details
{
	"deliveryId": "4f017a60-ad4d-11f1-8a9a-ebb0f86a4e64",
	"headSha": "5428016d77750292adaa66ffc6ab4d90b4e6a01d",
	"reviewer": "copilot-pull-request-reviewer[bot]"
}

@GabrielDuf
Gabriel Dufresne (GabrielDuf) merged commit fe5a6f9 into main Sep 10, 2026
7 checks passed
@GabrielDuf
Gabriel Dufresne (GabrielDuf) deleted the fix/msix-installer-host-lookup branch September 10, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants