Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,12 @@ uffs --update repair # diagnose + self-heal
uffs --update apply --version v0.6.5 # pin / roll back to a specific release
```

> **WinGet installs** update with `winget upgrade SkyLLC.UFFS` instead — UFFS
> defers to WinGet for WinGet-managed installs.
> **WinGet installs:** prefer `uffs --update` here too. `winget upgrade
> SkyLLC.UFFS` can fail with `remove_all: Access is denied` — the running
> daemon and broker hold open the very binaries WinGet tries to replace.
> `uffs --update` stops those services first, then swaps, so it's the reliable
> path. (If you do run `winget upgrade`, stop UFFS first — elevated
> `uffs --daemon stop` + `uffs-broker --stop`.)

> 📖 **[Full update guide](docs/user-manual/updating.md)** — every action, version pinning/rollback, the health check, and edge cases.

Expand Down
11 changes: 8 additions & 3 deletions docs/user-manual/updating.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,14 @@ inconsistent — it downloads, SHA-256-verifies, and atomically swaps every core
binary in place (journaled, with automatic rollback on failure). If you're
already current, it does nothing and touches no services.

> **WinGet installs:** if you installed via `winget install SkyLLC.UFFS`, update
> with `winget upgrade SkyLLC.UFFS` instead — UFFS detects a WinGet-managed
> install and defers to WinGet rather than swapping those files itself.
> **WinGet installs:** use `uffs --update` here too — it updates the WinGet
> install in place (the binaries live in a per-user `…\WinGet\Links` location
> UFFS treats as an ordinary unmanaged install). Prefer it over `winget upgrade
> SkyLLC.UFFS`, which can fail with `remove_all: Access is denied` because the
> running daemon and broker hold the binaries open while WinGet tries to replace
> them. `uffs --update` stops those services first, then swaps. If you do want
> `winget upgrade`, stop UFFS first: elevated `uffs --daemon stop` +
> `uffs-broker --stop`.

---

Expand Down
Loading