Feature/app update followups#253
Merged
Merged
Conversation
When the install-channel marker file is absent, infer a candidate channel from the app's run directory before falling back to not-managed: - Scoop: run dir under <scoop>/apps/<package>/current (incl. a custom $SCOOP root). - Homebrew formula: run dir under <prefix>/Cellar/<formula>/... for a known brew prefix, matched against the formula name. - Homebrew cask stays marker-driven (the .app runs from /Applications, not the Cellar). The path is only a guess and is still confirmed by querying the package manager, so detection stays biased to not-managed. Refactor the brew prefix / scoop root lists into shared helpers reused by both the fallback and executable resolution. Add 7 unit tests covering the fallback confirm/veto paths.
5ab733c to
cd188d3
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Follow-ups to the app update-detection / delegated-update feature (#251). Four independent items, one commit each.
1. Document the new update functionality
User-facing docs for the update behavior: a shared Staying up to date section in
installation.md, the--version/--check-update/--updateflags folded into the sharedcli-general.mdCLI reference (with host-specific notes), and a per-app "update surface" summary — noduplication across the host-app pages.
2. RemoteClient
--check-server-versionNew read-only
server.inforemote command (host app name + release-stamped version).dotnet-6502-remote --check-server-versionconnects, compares the endpoint's version with theclient's, and warns on mismatch (exit
3) with the brew/scoop update commands. No automatic check andno extra round-trip on the normal command path. Docs updated (remote-client, examples, tcp-protocol).
3. Terminal update UI
In-TUI update affordance for the Terminal host: a
TerminalUpdateService, an Updates dialog reachedvia the
F9 Uleader command (version/status, Check now, Update now), and an "update available"indicator in the window title / hint line (behind the leader key, so it never steals emulator focus).
Update now quits the TUI and runs the package-manager upgrade in the foreground. The automatic
Logs-pane notice is retained.
4. Install-channel path fallback
When the
install-channelmarker is absent, infer the channel from the run directory (Scoopapps/<pkg>/current; Homebrew formulaCellar/<formula>/…; the cask stays marker-only). Stillconfirmed by the package manager and biased to not-managed.
Testing
RemoteClient.Testsproject (7 tests) green.3).