Summary
A large class of modern Windows apps installs into %LocalAppData% (per-user, no admin) via the Squirrel installer or an Electron auto-updater. Examples: Slack (older builds), Discord, GitHub Desktop, Atom-heritage tools, several Electron apps, and Microsoft Teams classic.
Uninstall for these is not a normal MSI or NSIS invocation — it is:
%LocalAppData%\<Vendor>\<App>\Update.exe --uninstall -s
BCU sees these in HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\<key> with a QuietUninstallString pointing at Update.exe, but:
- The
UninstallerKind classification is not "Squirrel" — it falls through to a generic bucket.
- Junk detection does not look under
%LocalAppData%\<Vendor>\<App>\packages\<version> and %LocalAppData%\<Vendor>\<App>\SquirrelSetup.log, both of which routinely survive.
%LocalAppData%\<Vendor>\<App>\Update.exe and any shortcut in %AppData%\Microsoft\Windows\Start Menu\Programs\<Vendor> also survive.
Proposal
- Add a
Squirrel value to UninstallerKind (analogous to Msiexec, Nsis, InnoSetup, Scoop, …) so users can filter for these separately.
- Detection heuristic:
QuietUninstallString matches %LocalAppData%\**\Update.exe --uninstall*, OR the install location contains \packages�pp-<semver>\ alongside a top-level Update.exe and SquirrelSetup.log.
- Junk scan: when an app is classified
Squirrel, add its full %LocalAppData%\<Vendor>\<App>\ directory as a high-confidence leftover candidate after uninstall completes.
Related
No prior issue mentions Squirrel by name.
Version
BCU v6.2.0.0 on Windows 11. Verified with Discord + GitHub Desktop installed via their normal installers.
Summary
A large class of modern Windows apps installs into
%LocalAppData%(per-user, no admin) via the Squirrel installer or an Electron auto-updater. Examples: Slack (older builds), Discord, GitHub Desktop, Atom-heritage tools, several Electron apps, and Microsoft Teams classic.Uninstall for these is not a normal MSI or NSIS invocation — it is:
BCU sees these in
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\<key>with a QuietUninstallString pointing atUpdate.exe, but:UninstallerKindclassification is not "Squirrel" — it falls through to a generic bucket.%LocalAppData%\<Vendor>\<App>\packages\<version>and%LocalAppData%\<Vendor>\<App>\SquirrelSetup.log, both of which routinely survive.%LocalAppData%\<Vendor>\<App>\Update.exeand any shortcut in%AppData%\Microsoft\Windows\Start Menu\Programs\<Vendor>also survive.Proposal
Squirrelvalue toUninstallerKind(analogous toMsiexec,Nsis,InnoSetup,Scoop, …) so users can filter for these separately.QuietUninstallStringmatches%LocalAppData%\**\Update.exe --uninstall*, OR the install location contains\packages�pp-<semver>\alongside a top-levelUpdate.exeandSquirrelSetup.log.Squirrel, add its full%LocalAppData%\<Vendor>\<App>\directory as a high-confidence leftover candidate after uninstall completes.Related
No prior issue mentions Squirrel by name.
Version
BCU v6.2.0.0 on Windows 11. Verified with Discord + GitHub Desktop installed via their normal installers.