Skip to content

feat(cli): consolidate maintenance surface under wright update - #441

Merged
Teakowa merged 2 commits into
mainfrom
wright-439-update-surface
Sep 29, 2026
Merged

Teakowa merged 2 commits into
mainfrom
wright-439-update-surface

Conversation

@e54-bot

@e54-bot e54-bot commented Sep 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • wright update now resolves every Wright-managed update target: the standalone installation plus already-installed first-party providers. A skipped or failed target (e.g. package-manager-managed Wright) no longer blocks the remaining ones.
  • wright update self [--version V] preserves the standalone self-update contract: exact versions, checksum verification, matched wright/wright-lsp installs, downgrade refusal, and package-manager detection (exit 3 with actionable guidance).
  • wright update provider updates installed providers only; wright update provider <NAME> [--version V] installs or updates a named provider. Absent optional providers are never installed implicitly.
  • wright update --check resolves the same target set without modifying anything.
  • The top-level provider, help, and version commands are retired; --help/--version are the canonical surfaces.
  • Provider store gains installed() (local, no network) and latest_version() (pointer-only fetch); bare provider updates no longer downgrade or re-download the active version.

Docs (docs/cli/update.md, command table, machine contract, release notes), CI, release and smoke scripts updated to the new command shape.

Closes #439

Test plan

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace --all-targets --all-features (all green; 18 update e2e tests cover aggregate/self/provider paths, package-manager skip vs. refuse, absent-provider skip, and exact-version installs)
  • git diff --check
  • Binary smoke: wright version/help/provider exit 2; new subcommand help matches the issue's command shape

Group update operations around user intent: plain 'wright update' covers every Wright-managed component (standalone self-update plus installed first-party providers), 'update self' keeps the standalone contract, and 'update provider [NAME]' replaces the top-level provider namespace. Retire the top-level provider, help, and version commands in favor of --help/--version.

Closes #439
A pinned 'wright update --check self --version V' suggested 'wright update', which installs the latest release rather than the checked version. The hint now names 'wright update self --version V' when a version was requested.
@Teakowa
Teakowa enabled auto-merge (squash) September 29, 2026 21:06
@Teakowa
Teakowa merged commit fae0de9 into main Sep 29, 2026
22 checks passed
@Teakowa
Teakowa deleted the wright-439-update-surface branch September 29, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

Consolidate the Wright CLI maintenance surface around update

2 participants