Files
YUZHEthefool 3686db15f8 fix(uninstall): prove package-manager ownership before anchoring
Address the second review round on #6321:

- Rebase onto current main, dropping the commits that piggybacked on
  #6284 (now landed); resolve the two mechanical conflicts (10s
  resolve_path_default deadline; upgrade-button preflight spinner).
- Homebrew arms (upgrade + uninstall) verify the extracted
  formula/cask token against the tool's known channels (gemini-cli /
  opencode formulas, claude-code / codex casks) instead of accepting
  any Cellar/Caskroom segment. A mise shim resolving into an unrelated
  Cellar path now fails closed instead of showing a brew command that
  could never run. Grok Build is deliberately excluded: homebrew-core's
  `grok` formula is an unrelated log parser and xAI ships no cask.
- npm arms require ownership proof: POSIX anchors only when the
  canonical target carries the package's own
  `lib/node_modules/<pkg>/` segment (mise standalone installs and
  shims fail closed); Windows requires `node_modules\<pkg>` in the
  launcher dir, which also unlocks the Node MSI layout (global shims
  in %AppData%\npm, npm.cmd in the Node dir) via bare `npm` with the
  owning prefix pinned explicitly.
- Add pi to the WSL manual-owner-resolution test and to the tool table
  in both user-manual pages.

`cargo fmt --check`, `cargo clippy --all-targets -- -D warnings`, and
the full cargo test suite pass locally (pre-existing, environment-
specific failures in model_pricing/provider/proxy tests reproduce on
clean main).
2026-09-04 16:31:33 +08:00
..