Skip to content

chore(gui): upgrade to gpui kit 0.6.1 and published pre adapters - #1338

Merged
AprilNEA merged 3 commits into
masterfrom
chore/upgrade-gpui
Sep 15, 2026
Merged

AprilNEA merged 3 commits into
masterfrom
chore/upgrade-gpui

Conversation

@AprilNEA

Copy link
Copy Markdown
Owner

Summary

Upgrade OpenLogi's complete GPUI stack to GPUI Kit 0.6.1 and the aligned gpui-pre 0.3.4 snapshot, using the newly published independent SWR and updater adapters instead of application-level GPUI patches.

Kit remains pinned to its v0.6.1 Git tag because the registry archives omit the full upstream theme catalog. The GPUI core/platform and both adapters now resolve from crates.io; no local patches or external path dependencies remain.

Changes

  • Workspace: align gpui-pre/gpui-pre-platform at exactly 0.3.4, pin all Kit crates to v0.6.1, and remove the old Zed [patch.crates-io] override.
  • Desktop: adopt gpui-kit-assets, swr-gpui-pre 0.1.0 and gpui-updater-pre 0.1.0 through existing Rust import names; locate themes by Cargo package identity and retain asset/theme regression coverage.
  • Shared UI/overlay: retain the pure-GPUI boundary without introducing Kit component dependencies.
  • Packaging: update the Nix source hash and Git vendor entries; remove the obsolete icon-directory workaround.
  • Guidance/source policy: document the single-package-identity constraint and current Git sources.

The six dependency versions are already published: swr-gpui 0.1.2, swr-gpui-pre 0.1.0, swr 0.1.2, gpui-updater-core 0.1.0, gpui-updater 0.1.0, and gpui-updater-pre 0.1.0. swr-core 0.1.0 is unchanged. No OpenLogi version bump or release is included.

Testing

Rebased onto the current master before the following Linux x86_64 checks, using Rust 1.98.1, RUSTFLAGS="-D warnings" and CARGO_BUILD_JOBS=4:

  • cargo fmt --all -- --check
  • cargo clippy --locked --workspace --all-targets -- -D warnings
  • cargo test --locked --workspace — 1608 passed, 0 failed, 2 existing ignored doctests.
  • RUSTDOCFLAGS="-D warnings" cargo doc --locked --workspace --no-deps --document-private-items --exclude openlogi-ui --exclude openlogi-desktop --exclude openlogi-overlay --exclude openlogi-agent
  • cargo xtask ci cargo-deny — advisories, bans, licenses and sources passed for the CLI publish closure.
  • uvx prek run --from-ref origin/master --to-ref HEAD --hook-stage pre-push — all applicable hooks passed, including Clippy/rustdoc/typos.
  • nix fmt -- --check flake.nix devenv.nix packaging/linux/package.nix packaging/linux/nixos-module.nix
  • nix flake check --all-systems --no-build --show-trace — both Linux architecture derivations evaluated.
  • cargo xtask linux package — release build and .deb, .rpm, .pkg.tar.zst generation passed. Inspected the Debian package's four binaries, udev rules, systemd unit and desktop entry; target/release/openlogi --version reports 0.8.3. Packages were not installed.
  • Native final-release smoke test under Xvfb/Openbox and Mesa llvmpipe OpenGL, with isolated XDG directories and OPENLOGI_PROFILE=dev: five mock devices rendered, MX Master 3S Buttons/Pointer pages opened, and a DPI slider click displayed/persisted 2800 and produced Agent.set_dpi with dpi=2800 in the mock log. Screenshot below is from the final release binary, not the earlier prototype.
  • Before rebasing, unpatched registry consumers compiled, linked and ran both adapter routes; dependency-closure assertions verified backend isolation and a GUI-independent core. Final OpenLogi builds above use those published versions.

Not runtime-tested on hardware. macOS/Metal, Windows, real-GPU Vulkan and a full Nix build were not run here; Nix checks above are evaluation/format checks only. Upstream proc-macro-error2 emits a non-failing future-compatibility warning.

Openbox smoke-test observation: the first-run update-consent dialog's default 380×220 size clipped its buttons; it was resized to decline the prompt. That window's source is unchanged by this PR, but a comparison against the old GPUI stack has not been run, so this is not classified as a pre-existing or upgrade-induced issue.

Hardware verification: launch the packaged app on macOS/Linux/Windows with a supported mouse, verify themes/icons and device pages, change DPI/SmartShift, exercise the Actions Ring, and check the update page without installing an update.

Final release: MX Master 3S Pointer settings after a verified DPI change to 2800

Co-authored-by: Xuan Zhang <xuan@arcbox.dev>
Copilot AI lite review requested due to automatic review settings September 10, 2026 06:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

It performs a large dependency-graph and UI stack upgrade (GPUI core/platform + Kit) with broad downstream impact across build, packaging, and runtime behavior.

Pull request overview

This PR upgrades OpenLogi’s GPUI stack to GPUI Kit v0.6.1 and aligns the workspace onto the gpui-pre 0.3.4 registry snapshot, removing the prior Zed [patch.crates-io] workaround and adopting the newly published SWR/updater adapter crates.

Changes:

  • Switch workspace GPUI dependencies to gpui-pre / gpui-pre-platform =0.3.4, and pin Kit crates to the gpui-kit v0.6.1 git tag (themes retained via git source).
  • Update the desktop to use gpui-kit-assets, swr-gpui-pre, and gpui-updater-pre, and add regression tests ensuring upstream themes and icon assets remain available.
  • Refresh Linux packaging/Nix pins and cargo-lock output hashes to match the new GPUI Kit source, and simplify the previous vendoring workaround.
File summaries
File Description
packaging/linux/package.nix Updates gpui-kit fetch pin/hash and simplifies cargo lock output hashes and packaging notes.
crates/openlogi-ui/Cargo.toml Updates crate metadata comment to reflect internal distribution (no longer “git-only gpui”).
crates/openlogi-overlay/Cargo.toml Removes outdated build-dependency pinning commentary.
crates/openlogi-desktop/src/ui/theme.rs Adds a GPUI test asserting upstream + OpenLogi bundled themes remain present.
crates/openlogi-desktop/src/app_assets.rs Switches to gpui_kit_assets and adds a regression test for asset availability.
crates/openlogi-desktop/Cargo.toml Swaps deps to gpui-kit-assets and gpui-updater-pre; adds serde_json build-dep.
crates/openlogi-desktop/build.rs Uses cargo metadata JSON parsing (serde_json) to robustly locate the gpui-component themes dir.
Cargo.toml Replaces prior git-based gpui core with gpui-pre/platform registry packages; pins kit crates to v0.6.1; replaces swr-gpui with swr-gpui-pre.
Cargo.lock Large lockfile refresh reflecting the new GPUI stack and related dependency graph changes.
.claude/rules/rust.md Updates contributor guidance to match new gpui-pre + Kit pinning approach.
.claude/rules/objc-ffi.md Updates ObjC/GPUI pinning guidance to the new gpui-pre + Kit scheme.
.claude/rules/gui.md Updates GUI rules to reference gpui-pre and gpui-kit-assets conventions.
.cargo/deny.toml Updates cargo-deny policy commentary and allow-git list to match current git sources.
Review details
  • Files reviewed: 12/13 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread crates/openlogi-desktop/src/app_assets.rs Outdated
@greptile-apps

greptile-apps Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge with no outstanding actionable findings.

Summary

Upgrades the desktop GUI dependency stack to GPUI Kit 0.6.1 and the registry-published gpui-pre ecosystem while preserving a single GPUI package identity.

  • Replaces the former Zed GPUI Git dependencies and application-level adapter patches with aligned registry packages.
  • Moves themes and icons to gpui-kit-assets and resolves theme assets using Cargo package identity.
  • Updates source policy, repository guidance, lockfile resolution, and Linux packaging metadata.
  • Changes since the previous review only advance rustls and rustls-webpki patch versions.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Desktop[openlogi-desktop] --> GPUI[gpui-pre 0.3.4]
  Desktop --> Kit[GPUI Kit 0.6.1]
  Desktop --> SWR[swr-gpui-pre 0.1.0]
  Desktop --> Updater[gpui-updater-pre 0.1.0]
  Kit --> GPUI
  SWR --> GPUI
  Updater --> GPUI
  Kit --> Assets[gpui-kit-assets]
  Overlay[openlogi-overlay] --> GPUI
  SharedUI[openlogi-ui] --> GPUI
Loading

Reviews (3) · Last reviewed commit: "fix(deps): update rustls for tls handsha..."

@davidbudnick davidbudnick added type: packaging Release packaging, signing, notarization, or artifacts area: gui Graphical user interface platform: all Cross-platform issue labels Sep 14, 2026
AprilNEA and others added 2 commits September 15, 2026 05:08
Co-authored-by: Xuan Zhang <xuan@arcbox.dev>
Co-authored-by: Xuan Zhang <xuan@arcbox.dev>

Copy link
Copy Markdown
Owner Author

The cargo-deny failure was caused by RUSTSEC-2026-0285, published on September 14, against the previously locked rustls 0.23.40. Fixed in 3bc9d6a9 by updating rustls to 0.23.45 and its required rustls-webpki dependency to 0.103.15. No advisory suppression or GPUI version changes.

Verification: reproduced the original failure, then cargo xtask ci cargo-deny passed. The full local gate also passed: fmt, workspace all-target Clippy, workspace tests (1608 passed, 0 failed, 2 existing ignored doctests), and non-GUI rustdoc. Dual-architecture Nix evaluation passed. New-head CI is running; no stale workflow was rerun.

@AprilNEA
AprilNEA merged commit 598c542 into master Sep 15, 2026
24 checks passed
@AprilNEA
AprilNEA deleted the chore/upgrade-gpui branch September 15, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: gui Graphical user interface platform: all Cross-platform issue type: packaging Release packaging, signing, notarization, or artifacts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants