Stubbing uname alone is not enough on a WSL host: the script's
'grep -qi microsoft /proc/version' probe still fires and the Linux test
cases would run the real WSL cleanup against the host's /mnt/* shortcuts
and /etc profile. Add a PATH-stubbed grep that fails only the
/proc/version probe (delegating everything else to the real grep via an
absolute path so the stub can never self-exec), plus no-op
powershell.exe and sudo stubs as defense in depth.
The desktop app's WebView creates runtime data keyed by the Tauri bundle
id (ai.unsloth.studio) at first launch, not at install time, so the
uninstallers never removed it. A leftover WebKit/WebView2 cache then
serves a stale frontend bundle to the next install, showing old styles
after a supposedly clean reinstall.
uninstall.sh: remove ~/Library Caches/WebKit/Application Support/
HTTPStorages/cookies/saved state/prefs on macOS and the XDG cache/data/
config/state dirs on Linux; stop the desktop app binary first.
uninstall.ps1: remove LOCALAPPDATA (EBWebView profile) and APPDATA dirs
for the bundle id; stop the desktop app and any msedgewebview2.exe
helper holding handles on them first.
Adds tests/sh/test_uninstall_webview_data.sh running the full script
against a fixture HOME for both OS branches.