feat(windows): enable in-app MSI updates via gpui-updater v0.0.6 - #504
Merged
davidbudnick merged 2 commits intoAug 3, 2026
Merged
Conversation
Greptile SummaryEnables in-app Windows MSI updates through gpui-updater v0.0.6.
Confidence Score: 5/5The PR appears safe to merge, with no concrete changed-code failures identified. The Windows UI and automatic-update observer now consistently route install requests through the newly pinned updater version’s MSI flow, while manifest generation and artifact verification behavior remain aligned with that path.
|
| Filename | Overview |
|---|---|
| crates/openlogi-gui/src/platform/updater.rs | Removes the Windows install gate and allows opted-in Windows clients to invoke the updater’s download-and-install flow. |
| crates/openlogi-gui/src/windows/settings/updates.rs | Exposes automatic installation and the shared Download & Install action on Windows. |
| crates/openlogi-gui/Cargo.toml | Pins gpui-updater to v0.0.6 for staged MSI installation support. |
| Cargo.lock | Updates only the resolved gpui-updater package from v0.0.5 to v0.0.6. |
| xtask/src/commands/release/latest_json.rs | Updates command documentation to describe Windows MSI entries as installable artifacts. |
Sequence Diagram
sequenceDiagram
participant User
participant UI as Updates UI
participant Updater as gpui-updater
participant Manifest as Update manifest
participant Installer as msiexec
User->>UI: Check or enable automatic updates
UI->>Updater: Check for update
Updater->>Manifest: Fetch signed manifest
Manifest-->>Updater: MSI metadata and signatures
Updater-->>UI: Update available
UI->>Updater: Download and install
Updater->>Updater: Verify SHA-256 and minisign
Updater->>Installer: Stage post-exit apply script
User->>UI: Restart to Update
UI-->>Installer: Application exits
Installer->>Installer: Install MSI passively
Installer-->>User: Relaunch updated application
Reviews (1): Last reviewed commit: "feat(windows): enable in-app MSI updates" | Re-trigger Greptile
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.
Summary
Bumps gpui-updater to v0.0.6, which brings the staged msiexec install flow for
.msiartifacts (AprilNEA/gpui-updater#6) and retries for transient download failures (AprilNEA/gpui-updater#5). With an MSI install flow finally upstream, Windows update checks are no longer notify-only: theINSTALL_SUPPORTEDgate and its fallback paths are removed, so Windows gets the same Download & Install button and Automatically download and install toggle as macOS and Linux. A found update downloads the per-arch MSI from the update manifest, verifies it (SHA-256 + minisign,Verification::Strict), stages an apply script, and applies it viamsiexec /passive /norestartafter the app exits through "Restart to Update".Changes
gpui-updaterattag = "v0.0.6";Cargo.lockupdated surgically so thezed/gpuiandgpui-componentpins are untouched (a plaincargo update -p gpui-updaterwould have moved the zed rev).platform::updater::INSTALL_SUPPORTEDand both notify-only branches — the "Download from GitHub" action on the Updates page and the hidden auto-install toggle; the auto-install observer no longer gates on platform. Therelease_format()comment now reflects that the MSI entries are installable."Download from GitHub"key fromen.ymland all 19 translations (ordered-parity test passes).--include-windowsdoc onrelease latest-json— the emitted MSI entries are consumed by the client's install flow, not notify-only.release.yml.Testing
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace— all suites green, includingi18n::tests::locale_files_have_the_same_keys-D warnings+ 31 tests + doctests)No UI change on macOS/Linux; on Windows the Updates page gains the auto-install toggle and the install action replaces the "Download from GitHub" button (no screenshot — not built on Windows here).