block / block/buzz

Windows: 0.5.8 auto-update drops the PATH entry and registry uninstall key — buzz CLI stops resolving

Open
#5,377 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.