Add Windows FMAs (letter G): 13 apps - #49281
Conversation
Adds Fleet-maintained apps for the letter-G batch of the Windows FMA workstream: - Gadwin PrintScreen, Gadwin PrintScreen Pro, Gadwin ScreenRecorder (MSI) - GitHub CLI, Go, gsudo, grepWin (MSI, developer tools) - GeoGebra Classic (machine MSI; manifest top-level Scope:user, custom scripts) - Google Ads Editor (dual-scope WiX MSI, forced ALLUSERS=1) - GoodSync (MSI; ignore_hash rolling URL; process-stopping uninstall) - Google Web Designer, Gpg4win, GoAnywhere OpenPGP Studio, GoldenDict-ng, Graphviz (NSIS/exe) - Streamlabs Desktop (electron-builder; process-stopping uninstall) - Garmin BaseCamp, Garmin Express (WiX burn; Express uses ignore_hash), Galaxy Modeler (electron-builder /S /allusers) Dropped from this batch (recorded in the workstream tracker): Genesys Cloud Background Assistant (burn + unresolvable VCRedist x86 dependency, x86-only), GoldenDict.GoldenDict (stale, superseded by the maintained -ng fork), GeoGebra GraphingCalculator + Geometry (user-scope-only exe), Garden Gnome Package Viewer (Cloudflare challenge blocks all download URLs). Gadwin ScreenRecorder and Garmin Express ship without a custom catalog icon (no cleanly-licensed >=256px source found).
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #49281 +/- ##
==========================================
- Coverage 67.97% 67.97% -0.01%
==========================================
Files 3801 3814 +13
Lines 239965 239996 +31
Branches 12842 12694 -148
==========================================
+ Hits 163123 163141 +18
- Misses 62057 62070 +13
Partials 14785 14785
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Validation (SYSTEM-context Windows runner) passed 13/19. Dropping the 6 that failed: - gsudo, GitHub CLI: x64 MSI platform/native-arch LaunchCondition fails on the ARM validator runner (gsudo: 'not intended for your platform', 1603). Valid on real x64 hosts; re-add when validated on an x64 runner. - GoodSync: non-versioned 'latest' installer URL serves 12.11.5.2 while the manifest pins 12.11.4.4, so osquery version detection fails. - Garmin Express: WiX burn bootstrapper hangs headless (10-min install timeout, no install). - Gpg4win: /S install spawns a persistent gpg-agent/dirmngr daemon that keeps the installer process alive past the 10-min timeout and locks the installer. - Streamlabs Desktop: electron-builder installer auto-launches the app and never returns (10-min timeout), though it did install machine-wide. Preserved the existing macOS goodsync/garmin-express FMAs (removed only the windows.json variants).
|
Validation update: 13 of 19 passed the SYSTEM-context validator (install → detect → uninstall). Dropped the 6 that failed. Passing (13): Gadwin PrintScreen, Gadwin PrintScreen Pro, Gadwin ScreenRecorder, Galaxy Modeler, Garmin BaseCamp, GeoGebra Classic, Go, GoAnywhere OpenPGP Studio, GoldenDict-ng, Google Ads Editor, Google Web Designer, Graphviz, grepWin. Dropped (6):
Existing macOS Minor note: grepWin and Google Ads Editor passed but with a "no changes in C:\Program Files" warning — grepWin's MSI landed per-user ( |
There was a problem hiding this comment.
Pull request overview
Adds a new batch of Windows Fleet-maintained apps (FMAs) in the “G” set, including generated Windows manifests/scripts and corresponding Software page icon mappings so the UI can render app icons when available.
Changes:
- Added new Software page icon components and extended
SOFTWARE_NAME_TO_ICON_MAPfor the new G-apps. - Added new winget input definitions and PowerShell install/uninstall scripts for the new Windows FMAs.
- Added generated Windows output manifests plus updated the global
apps.jsoncatalog list with the new app entries.
Reviewed changes
Copilot reviewed 55 out of 67 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/pages/SoftwarePage/components/icons/index.ts | Registers new icon components and maps normalized software names to icons. |
| frontend/pages/SoftwarePage/components/icons/Grepwin.tsx | Adds embedded icon asset for grepWin. |
| frontend/pages/SoftwarePage/components/icons/GoogleWebDesigner.tsx | Adds embedded icon asset for Google Web Designer. |
| frontend/pages/SoftwarePage/components/icons/GoogleAdsEditor.tsx | Adds embedded icon asset for Google Ads Editor. |
| frontend/pages/SoftwarePage/components/icons/GoldendictNg.tsx | Adds embedded icon asset for GoldenDict-ng. |
| frontend/pages/SoftwarePage/components/icons/GoanywhereOpenpgpStudio.tsx | Adds embedded icon asset for GoAnywhere OpenPGP Studio. |
| frontend/pages/SoftwarePage/components/icons/Go.tsx | Adds embedded icon asset for Go. |
| frontend/pages/SoftwarePage/components/icons/GeogebraClassic.tsx | Adds embedded icon asset for GeoGebra Classic. |
| frontend/pages/SoftwarePage/components/icons/GalaxyModeler.tsx | Adds embedded icon asset for Galaxy Modeler. |
| ee/maintained-apps/outputs/grepwin/windows.json | Generated Windows manifest for grepWin (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/graphviz/windows.json | Generated Windows manifest for Graphviz (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/google-web-designer/windows.json | Generated Windows manifest for Google Web Designer (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/google-ads-editor/windows.json | Generated Windows manifest for Google Ads Editor (queries, URL, scripts/refs, sha256, upgrade_code). |
| ee/maintained-apps/outputs/goldendict-ng/windows.json | Generated Windows manifest for GoldenDict-ng (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/goanywhere-openpgp-studio/windows.json | Generated Windows manifest for GoAnywhere OpenPGP Studio (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/go/windows.json | Generated Windows manifest for Go (queries, URL, scripts/refs, sha256, upgrade_code). |
| ee/maintained-apps/outputs/geogebra-classic/windows.json | Generated Windows manifest for GeoGebra Classic (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/garmin-basecamp/windows.json | Generated Windows manifest for Garmin BaseCamp (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/galaxy-modeler/windows.json | Generated Windows manifest for Galaxy Modeler (queries, URL, scripts/refs, sha256). |
| ee/maintained-apps/outputs/gadwin-screenrecorder/windows.json | Generated Windows manifest for Gadwin ScreenRecorder (queries, URL, scripts/refs, sha256, upgrade_code). |
| ee/maintained-apps/outputs/gadwin-printscreen/windows.json | Generated Windows manifest for Gadwin PrintScreen (queries, URL, scripts/refs, sha256, upgrade_code). |
| ee/maintained-apps/outputs/gadwin-printscreen-pro/windows.json | Generated Windows manifest for Gadwin PrintScreen Pro (queries, URL, scripts/refs, sha256, upgrade_code). |
| ee/maintained-apps/outputs/apps.json | Adds the new Windows apps to the global maintained-apps catalog list. |
| ee/maintained-apps/inputs/winget/scripts/graphviz_uninstall.ps1 | Custom uninstall script for Graphviz (NSIS registry lookup + /S). |
| ee/maintained-apps/inputs/winget/scripts/graphviz_install.ps1 | Custom silent install script for Graphviz (NSIS /S). |
| ee/maintained-apps/inputs/winget/scripts/google-web-designer_uninstall.ps1 | Custom uninstall script for Google Web Designer (NSIS registry lookup + /S). |
| ee/maintained-apps/inputs/winget/scripts/google-web-designer_install.ps1 | Custom silent install script for Google Web Designer (NSIS /S). |
| ee/maintained-apps/inputs/winget/scripts/google-ads-editor_install.ps1 | Custom install script for Google Ads Editor MSI (forces ALLUSERS=1). |
| ee/maintained-apps/inputs/winget/scripts/goldendict-ng_uninstall.ps1 | Custom uninstall script for GoldenDict-ng (stop process + NSIS registry lookup + /S). |
| ee/maintained-apps/inputs/winget/scripts/goldendict-ng_install.ps1 | Custom silent install script for GoldenDict-ng (NSIS /S). |
| ee/maintained-apps/inputs/winget/scripts/goanywhere-openpgp-studio_uninstall.ps1 | Custom uninstall script for GoAnywhere OpenPGP Studio (install4j uninstall.exe + -q). |
| ee/maintained-apps/inputs/winget/scripts/goanywhere-openpgp-studio_install.ps1 | Custom silent install script for GoAnywhere OpenPGP Studio (install4j -q). |
| ee/maintained-apps/inputs/winget/scripts/geogebra-classic_uninstall.ps1 | Custom uninstall script for GeoGebra Classic MSI (resolve ProductCode + msiexec /x). |
| ee/maintained-apps/inputs/winget/scripts/geogebra-classic_install.ps1 | Custom install script for GeoGebra Classic MSI (silent MSI install). |
| ee/maintained-apps/inputs/winget/scripts/garmin-basecamp_uninstall.ps1 | Custom uninstall script for Garmin BaseCamp (Burn bundle quiet uninstall). |
| ee/maintained-apps/inputs/winget/scripts/garmin-basecamp_install.ps1 | Custom install script for Garmin BaseCamp (Burn bundle /quiet). |
| ee/maintained-apps/inputs/winget/scripts/galaxy-modeler_uninstall.ps1 | Custom uninstall script for Galaxy Modeler (electron-builder NSIS: stop + /allusers /S). |
| ee/maintained-apps/inputs/winget/scripts/galaxy-modeler_install.ps1 | Custom install script for Galaxy Modeler (electron-builder NSIS /S /allusers). |
| ee/maintained-apps/inputs/winget/grepwin.json | New winget input definition for grepWin. |
| ee/maintained-apps/inputs/winget/graphviz.json | New winget input definition for Graphviz (with custom scripts). |
| ee/maintained-apps/inputs/winget/google-web-designer.json | New winget input definition for Google Web Designer (with custom scripts). |
| ee/maintained-apps/inputs/winget/google-ads-editor.json | New winget input definition for Google Ads Editor (with custom install script). |
| ee/maintained-apps/inputs/winget/goldendict-ng.json | New winget input definition for GoldenDict-ng (with custom scripts and exists_query). |
| ee/maintained-apps/inputs/winget/goanywhere-openpgp-studio.json | New winget input definition for GoAnywhere OpenPGP Studio (with custom scripts). |
| ee/maintained-apps/inputs/winget/go.json | New winget input definition for Go. |
| ee/maintained-apps/inputs/winget/geogebra-classic.json | New winget input definition for GeoGebra Classic (with custom scripts). |
| ee/maintained-apps/inputs/winget/garmin-basecamp.json | New winget input definition for Garmin BaseCamp (with custom scripts). |
| ee/maintained-apps/inputs/winget/galaxy-modeler.json | New winget input definition for Galaxy Modeler (with custom scripts). |
| ee/maintained-apps/inputs/winget/gadwin-screenrecorder.json | New winget input definition for Gadwin ScreenRecorder. |
| ee/maintained-apps/inputs/winget/gadwin-printscreen.json | New winget input definition for Gadwin PrintScreen. |
| ee/maintained-apps/inputs/winget/gadwin-printscreen-pro.json | New winget input definition for Gadwin PrintScreen Pro. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| "name": "Gadwin PrintScreen Pro", | ||
| "slug": "gadwin-printscreen-pro/windows", | ||
| "platform": "windows", | ||
| "unique_identifier": "Gadwin PrintScreenPro (64-Bit)", | ||
| "description": "" | ||
| }, |
| import GadwinPrintscreen from "./GadwinPrintscreen"; | ||
| import GadwinPrintscreenPro from "./GadwinPrintscreenPro"; | ||
| import GalaxyModeler from "./GalaxyModeler"; | ||
| import GarminBasecamp from "./GarminBasecamp"; |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughAdds Winget manifests and PowerShell installation workflows for thirteen Windows applications. Adds corresponding Windows app definitions with detection queries, installer metadata, checksums, script references, and embedded install/uninstall logic. Registers the applications in the maintained-app catalog and adds React icon components plus software-name mappings for the Software page. Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ee/maintained-apps/inputs/winget/goldendict-ng.json (1)
14-14: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valuePrefer a fuzzy match in
exists_queryto future-proof version updates.The
exists_queryuses an exact match (name = 'GoldenDict-ng'). While this currently passes validation, many Windows installers append the version to the registryDisplayNameon updates (e.g.,GoldenDict-ng 23.09). Consider using aLIKEclause to ensure the detection remains robust across future versions.♻️ Proposed refactor
- "exists_query": "SELECT 1 FROM programs WHERE name = 'GoldenDict-ng';" + "exists_query": "SELECT 1 FROM programs WHERE name LIKE 'GoldenDict-ng%';"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ee/maintained-apps/inputs/winget/goldendict-ng.json` at line 14, Update the exists_query for GoldenDict-ng to use a LIKE-based name match rather than exact equality, preserving the GoldenDict-ng prefix so registry display names with appended version suffixes are detected.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ee/maintained-apps/outputs/go/windows.json`:
- Around line 20-21: Update the Go installation script identified by the
8959087b entry to normalize MSI exit codes before exiting: treat 0, 3010, and
1641 as successful and exit 0; preserve the existing exit code for all other
results. Apply this around the $installProcess.ExitCode handling without
changing the surrounding installation flow.
---
Nitpick comments:
In `@ee/maintained-apps/inputs/winget/goldendict-ng.json`:
- Line 14: Update the exists_query for GoldenDict-ng to use a LIKE-based name
match rather than exact equality, preserving the GoldenDict-ng prefix so
registry display names with appended version suffixes are detected.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 6b9ad59c-1d37-4607-8551-a2c56ba73919
⛔ Files ignored due to path filters (12)
website/assets/images/app-icon-gadwin-printscreen-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-gadwin-printscreen-pro-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-galaxy-modeler-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-garmin-basecamp-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-geogebra-classic-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-go-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-goanywhere-openpgp-studio-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-goldendict-ng-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-google-ads-editor-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-google-web-designer-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-graphviz-60x60@2x.pngis excluded by!**/*.pngwebsite/assets/images/app-icon-grepwin-60x60@2x.pngis excluded by!**/*.png
📒 Files selected for processing (55)
ee/maintained-apps/inputs/winget/gadwin-printscreen-pro.jsonee/maintained-apps/inputs/winget/gadwin-printscreen.jsonee/maintained-apps/inputs/winget/gadwin-screenrecorder.jsonee/maintained-apps/inputs/winget/galaxy-modeler.jsonee/maintained-apps/inputs/winget/garmin-basecamp.jsonee/maintained-apps/inputs/winget/geogebra-classic.jsonee/maintained-apps/inputs/winget/go.jsonee/maintained-apps/inputs/winget/goanywhere-openpgp-studio.jsonee/maintained-apps/inputs/winget/goldendict-ng.jsonee/maintained-apps/inputs/winget/google-ads-editor.jsonee/maintained-apps/inputs/winget/google-web-designer.jsonee/maintained-apps/inputs/winget/graphviz.jsonee/maintained-apps/inputs/winget/grepwin.jsonee/maintained-apps/inputs/winget/scripts/galaxy-modeler_install.ps1ee/maintained-apps/inputs/winget/scripts/galaxy-modeler_uninstall.ps1ee/maintained-apps/inputs/winget/scripts/garmin-basecamp_install.ps1ee/maintained-apps/inputs/winget/scripts/garmin-basecamp_uninstall.ps1ee/maintained-apps/inputs/winget/scripts/geogebra-classic_install.ps1ee/maintained-apps/inputs/winget/scripts/geogebra-classic_uninstall.ps1ee/maintained-apps/inputs/winget/scripts/goanywhere-openpgp-studio_install.ps1ee/maintained-apps/inputs/winget/scripts/goanywhere-openpgp-studio_uninstall.ps1ee/maintained-apps/inputs/winget/scripts/goldendict-ng_install.ps1ee/maintained-apps/inputs/winget/scripts/goldendict-ng_uninstall.ps1ee/maintained-apps/inputs/winget/scripts/google-ads-editor_install.ps1ee/maintained-apps/inputs/winget/scripts/google-web-designer_install.ps1ee/maintained-apps/inputs/winget/scripts/google-web-designer_uninstall.ps1ee/maintained-apps/inputs/winget/scripts/graphviz_install.ps1ee/maintained-apps/inputs/winget/scripts/graphviz_uninstall.ps1ee/maintained-apps/outputs/apps.jsonee/maintained-apps/outputs/gadwin-printscreen-pro/windows.jsonee/maintained-apps/outputs/gadwin-printscreen/windows.jsonee/maintained-apps/outputs/gadwin-screenrecorder/windows.jsonee/maintained-apps/outputs/galaxy-modeler/windows.jsonee/maintained-apps/outputs/garmin-basecamp/windows.jsonee/maintained-apps/outputs/geogebra-classic/windows.jsonee/maintained-apps/outputs/go/windows.jsonee/maintained-apps/outputs/goanywhere-openpgp-studio/windows.jsonee/maintained-apps/outputs/goldendict-ng/windows.jsonee/maintained-apps/outputs/google-ads-editor/windows.jsonee/maintained-apps/outputs/google-web-designer/windows.jsonee/maintained-apps/outputs/graphviz/windows.jsonee/maintained-apps/outputs/grepwin/windows.jsonfrontend/pages/SoftwarePage/components/icons/GadwinPrintscreen.tsxfrontend/pages/SoftwarePage/components/icons/GadwinPrintscreenPro.tsxfrontend/pages/SoftwarePage/components/icons/GalaxyModeler.tsxfrontend/pages/SoftwarePage/components/icons/GarminBasecamp.tsxfrontend/pages/SoftwarePage/components/icons/GeogebraClassic.tsxfrontend/pages/SoftwarePage/components/icons/Go.tsxfrontend/pages/SoftwarePage/components/icons/GoanywhereOpenpgpStudio.tsxfrontend/pages/SoftwarePage/components/icons/GoldendictNg.tsxfrontend/pages/SoftwarePage/components/icons/GoogleAdsEditor.tsxfrontend/pages/SoftwarePage/components/icons/GoogleWebDesigner.tsxfrontend/pages/SoftwarePage/components/icons/Graphviz.tsxfrontend/pages/SoftwarePage/components/icons/Grepwin.tsxfrontend/pages/SoftwarePage/components/icons/index.ts
| "0047620c": "# Fleet uninstalls app by finding all related product codes for the specified upgrade code\n$inst = New-Object -ComObject \"WindowsInstaller.Installer\"\n$timeoutSeconds = 300 # 5 minute timeout per product\n\n# MSI exit codes that indicate success. 3010 = ERROR_SUCCESS_REBOOT_REQUIRED,\n# 1641 = ERROR_SUCCESS_REBOOT_INITIATED. Treat these as success rather than failure.\n$successCodes = @(0, 3010, 1641)\n\nforeach ($product_code in $inst.RelatedProducts('{22EA7650-4AC6-4001-BF29-F4B8775DB1C0}')) {\n $process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n\n # Wait for process with timeout\n $completed = $process.WaitForExit($timeoutSeconds * 1000)\n\n if (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_UNINSTALL_FAILURE\n }\n\n # If the uninstall failed, bail\n if ($successCodes -notcontains $process.ExitCode) {\n Write-Output \"Uninstall for $($product_code) exited $($process.ExitCode)\"\n Exit $process.ExitCode\n }\n}\n\n# All uninstalls succeeded; exit success\nExit 0\n", | ||
| "8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Normalize MSI success exit codes in the install script.
The installation script for Go (8959087b) directly exits with $installProcess.ExitCode. Unlike the uninstall script and other MSI install scripts in this batch, it does not normalize MSI reboot exit codes (such as 3010 and 1641) to 0. This can cause successful installations that require a reboot to be incorrectly reported as failed.
Please update the input install script for Go to map these success codes to 0.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@ee/maintained-apps/outputs/go/windows.json` around lines 20 - 21, Update the
Go installation script identified by the 8959087b entry to normalize MSI exit
codes before exiting: treat 0, 3010, and 1641 as successful and exit 0; preserve
the existing exit code for all other results. Apply this around the
$installProcess.ExitCode handling without changing the surrounding installation
flow.
Related issue: N/A — part of the ongoing Windows Fleet-maintained apps (FMA) parity workstream (letter G).
What this does
Adds 19 Windows Fleet-maintained apps for the letter-G batch. Each app has a winget-sourced input, generated output manifest, and (where a cleanly-licensed ≥256px icon was found) a catalog icon.
MSI (clean, upgrade-code uninstall):
Scope: userforcedinstaller_scope: userin the input + custom machine-MSI install/uninstall scriptsALLUSERS=1MSI (custom uninstall):
ignore_hash(non-versioned "latest" URL drifts from the manifest version/SHA, Chrome/TeamViewer pattern); process-stopping uninstall for its tray app + sync serviceNSIS / exe (custom install + uninstall):
-q), GoldenDict-ng (maintained fork; name-only exists query), Graphviz/S /allusers+ process-stopping uninstall (versioned ARP name → fuzzy match)WiX burn / electron (custom install + uninstall):
ignore_hash— rolling URL + self-updating app), Galaxy Modeler (/S /allusers)Dropped from this batch (recorded in the workstream tracker)
VCRedist 2015+ x86dependency Fleet won't resolve, x86-only, non-standard burn uninstall.xiaoyifang.GoldenDict-ngfork (shipped instead).ggnome.comdownload URLs sit behind a Cloudflarecf-mitigated: challengeand return 403 to all automated requests (even with the Chrome UA), so Fleet's downloader can't fetch it.Notes
new-fmaskill against the winget-pkgs manifests and, where needed, the real installers.Testing
Summary by CodeRabbit