Windows: 0.5.8 auto-update drops the PATH entry and registry uninstall key — buzz CLI stops resolving
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Summary
The 0.5.8 Windows auto-update left Buzz installed but unregistered: after the updater ran, the install directory (`%LOCALAPPDATA%\Buzz`) was no longer on the user `PATH`, and the app has **no uninstall entry in the registry** (nothing under any `...\CurrentVersion\Uninstall` hive, so it also disappears from "Add or remove programs"). The binaries themselves are present and work when invoked by full path — but `buzz` stops resolving in every shell, which looks to the user like the CLI vanished.
Updates 0.5.4 → 0.5.5 → 0.5.7 on the same machine did not have this problem; `buzz` resolved fine until the 0.5.8 update.
## Environment
- Windows 11 Pro (build 10.0.26200), x64
- Buzz Desktop 0.5.8, installed per-user in `%LOCALAPPDATA%\Buzz`
- Update chain on this machine (from updater artifacts in `%TEMP%`): 0.5.4 (Aug 4) → 0.5.5 (Aug 6) → 0.5.7 (Aug 8) → 0.5.8 (Aug 9)
- The 0.5.8 update ran unattended/headless (no interactive session in front of it)
## Timeline (from file timestamps, Aug 9)
| Time (local) | Event |
|---|---|
| 05:55:01 | `Buzz-0.5.8-installer.exe` dropped in `%TEMP%\Buzz-0.5.8-updater-*` and run |
| 05:55:17 | Fresh `uninstall.exe` written to `%LOCALAPPDATA%\Buzz` |
| after | New binaries present (`buzz.exe`, `buzz-agent.exe`, `buzz-acp.exe`, `buzz-dev-mcp.exe`, `git-credential-nostr.exe`), but no PATH entry and no registry uninstall key |
## Observed state after the update
- `Get-Command buzz` → not found (checked user PATH, machine PATH, and live session PATH — the Buzz dir is in none of them)
- No `DisplayName like '*buzz*'` entry under `HKCU:\...\Uninstall`, `HKLM:\...\Uninstall`, or `HKLM:\...\WOW6432Node\...\Uninstall`
- `& "$env:LOCALAPPDATA\Buzz\buzz.exe" --help` works normally, so the payload itself is fine
## Expected
The updater should leave the install registered: PATH entry re-added and uninstall key re-created, as previous versions did.
## Hypothesis
This has the signature of the classic uninstall-then-reinstall update flow failing halfway: the old version's uninstaller removed the PATH entry and registry key, the new install wrote the files and `uninstall.exe`, but the re-registration steps never ran (or failed silently — no installer log was left behind). Possibly related to running headless, or to Defender interference (cf. the 0.5.4 release-note hardening for Defender blocks, #4382).
## Workaround
Manually re-add the install dir to the user PATH:
```powershell
[Environment]::SetEnvironmentVariable('Path',
[Environment]::GetEnvironmentVariable('Path','User') + ';' + "$env:LOCALAPPDATA\Buzz", 'User')
```
This restores `buzz` in new shells, but the missing registry uninstall entry remains.
Contributor guide
Research direction
Start by tracing the 0.5.8 updater flow around the installer executable and the fresh uninstall.exe written in %LOCALAPPDATA%\Buzz, comparing it with the 0.5.4–0.5.7 update path. Reproduce a headless update and verify that the user PATH entry and registry uninstall key are present afterward; no source files or tests are named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, release
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100