Repository navigation
chore(gui): upgrade to gpui kit 0.6.1 and published pre adapters - #1338
Conversation
Co-authored-by: Xuan Zhang <xuan@arcbox.dev>
There was a problem hiding this comment.
🔵 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 thegpui-kitv0.6.1 git tag (themes retained via git source). - Update the desktop to use
gpui-kit-assets,swr-gpui-pre, andgpui-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.
|
Co-authored-by: Xuan Zhang <xuan@arcbox.dev>
Co-authored-by: Xuan Zhang <xuan@arcbox.dev>
|
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 |
Summary
Upgrade OpenLogi's complete GPUI stack to GPUI Kit 0.6.1 and the aligned
gpui-pre0.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
gpui-pre/gpui-pre-platformat exactly 0.3.4, pin all Kit crates to v0.6.1, and remove the old Zed[patch.crates-io]override.gpui-kit-assets,swr-gpui-pre0.1.0 andgpui-updater-pre0.1.0 through existing Rust import names; locate themes by Cargo package identity and retain asset/theme regression coverage.The six dependency versions are already published:
swr-gpui0.1.2,swr-gpui-pre0.1.0,swr0.1.2,gpui-updater-core0.1.0,gpui-updater0.1.0, andgpui-updater-pre0.1.0.swr-core0.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"andCARGO_BUILD_JOBS=4:cargo fmt --all -- --checkcargo clippy --locked --workspace --all-targets -- -D warningscargo 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-agentcargo 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.nixnix flake check --all-systems --no-build --show-trace— both Linux architecture derivations evaluated.cargo xtask linux package— release build and.deb,.rpm,.pkg.tar.zstgeneration passed. Inspected the Debian package's four binaries, udev rules, systemd unit and desktop entry;target/release/openlogi --versionreports 0.8.3. Packages were not installed.OPENLOGI_PROFILE=dev: five mock devices rendered, MX Master 3S Buttons/Pointer pages opened, and a DPI slider click displayed/persisted 2800 and producedAgent.set_dpiwithdpi=2800in the mock log. Screenshot below is from the final release binary, not the earlier prototype.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-error2emits 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.