Devolutions / Devolutions/UniGetUI

[IMPROVEMENT] Switch to disable pinget (UI and/or InstallParam)

Open
#4,800 1 comment 4 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
26.1k
Forks
924
Avg merge
15h 52m
Merged PRs (30d)
52

Description

### Please confirm these before moving forward.

- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [x] This improvement refers to an existing feature. If you want to suggest a new feature, please use [this template](https://github.com/Devolutions/UniGetUI/issues/new?labels=new-feature&projects=&template=feature-request.yml&title=%5BFEATURE+REQUEST%5D+%28Enter+your+description+here%29).
- [x] This improvement is not a bug. If you want to report a bug, please use [this template](https://github.com/Devolutions/UniGetUI/issues/new?labels=bug&projects=&template=bug-issue.yml&title=%5BBUG%5D+%28Enter+your+description+here%29).

### Describe the improvement

Currently, **Pinget** is used automatically as a fallback whenever `winget` cannot deliver sources or manifests. While the intention behind this fallback is understandable, the current Pinget implementation has caused several issues (see #4794 and related reports), most notably:

- Stale / corrupted cache under `%LOCALAPPDATA%\Devolutions\Pinget\`
- Incorrect package-to-manifest assignments (Pinget resolves a package ID to the wrong manifest, leading to **wrong packages being installed or updated**)
- Users having to manually delete
`C:\Users\\AppData\Local\Devolutions\Pinget\Microsoft\Windows Package Manager\V1_M\Microsoft.Winget.Source_8wekyb3d8bbwe\manifests\`
to restore correct behavior

**Requested improvement:**

Please add an **official option to fully disable Pinget**, exposing it in **two places**:

1. **UI toggle** in UniGetUI Settings (e.g. *Settings → WinGet → ☐ Use Pinget as fallback*), defaulting to enabled to preserve current behavior.
2. **Installer / command-line parameter** for silent deployments, e.g.:
- `--disable-pinget` for the installer (MSI/EXE)
- A registry value or settings flag that can be pre-seeded via MDM/Intune/Ansible/GPO

When disabled:
- Pinget should **not be invoked** under any circumstance
- The Pinget cache directory should **not be created or written to**
- If `winget` fails, UniGetUI should simply surface the original `winget` error to the user instead of silently falling back

Optionally, a third state *"Ask before using Pinget fallback"* would also be appreciated for power users.

---

### Describe how this improvement could help users

- **Trust & predictability:** Many users (especially in enterprise environments) prefer to rely solely on **Microsoft's official winget** and its signed sources. Being able to opt out of a third-party fallback that currently has known bugs is important for trust.
- **Avoids data-integrity issues:** Prevents the wrong-package-installation problem caused by Pinget's faulty manifest cache assignments until those bugs are fully resolved.
- **Enterprise deployment:** Admins rolling out UniGetUI via Intune, SCCM, Ansible, GPO, etc. need a **deterministic, scriptable way** to disable Pinget. Manually deleting cache folders or renaming `pinget.exe` after each update is not a viable solution at scale.
- **Reduced support burden:** Several GitHub issues currently trace back to Pinget cache corruption. Letting affected users disable it cleanly would reduce duplicate bug reports while the Pinget implementation matures.
- **Reversible & safe:** Since the default would remain *enabled*, existing users are unaffected — only those who explicitly opt out change behavior.
- **Better UX on failure:** Surfacing the real `winget` error instead of a silent (and potentially wrong) fallback helps users and admins diagnose actual source/network issues faster.

In short: give users the **choice** to trust `winget` exclusively until Pinget reaches the same level of reliability.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.