Repository navigation
chore: remove the Tauri app, GPUI is the only desktop app - #3529
Merged
Merged
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Member
Author
|
hey @greptileai, please re-review the PR |
Member
Author
|
hey @greptileai, please re-review the PR |
richiemcilroy
marked this pull request as ready for review
October 29, 2026 00:16
This branch was successfully deployed
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.
Cap has shipped as the GPUI app since 0.6.1. This removes the Tauri app (
apps/desktop) and everything that only existed for it, soapps/desktop-gpuiis the one desktop app in the repository. The Tauri source stays browsable atcap-v0.6.2.flowchart LR subgraph before[Before] T[apps/desktop<br/>icons, sounds, backgrounds,<br/>music, entitlements, binaries/,<br/>Tauri CLI] --> B1[tauri bundle] G1[apps/desktop-gpui] --> B1 end subgraph after[After] G2[apps/desktop-gpui<br/>icons/ assets/ packaging/<br/>binaries/ package.json] --> B2[tauri bundle] end B1 --> R[Cap.app / NSIS / deb / rpm / AppImage<br/>same identity, updater key and endpoint] B2 --> RThe GPUI app owns its inputs
The GPUI build and bundle read a lot straight out of
apps/desktop. Those files move withgit mv(byte-identical) to where the bundle already places them:src-tauri/icons/{32x32,128x128,128x128@2x,icon,Square310x310Logo}.*,icons/macos/icon.icnsapps/desktop-gpui/icons/src-tauri/icons/tray-default-icon.pngapps/desktop-gpui/assets/tray/src-tauri/sounds/*.oggapps/desktop-gpui/assets/sounds/src-tauri/assets/backgrounds/**,src/assets/music/*.mp3apps/desktop-gpui/assets/{backgrounds,music}/(same relative paths the bundle uses)src/assets/tears-and-fireflies-adi-goldstein.mp3,packages/ui-solid/icons/cursor-{macos,windows}.svgapps/desktop-gpui/assets/onboarding/src-tauri/Entitlements.plist,assets/dmg-background.pngapps/desktop-gpui/packaging/macos/src-tauri/assets/nsis-{header,sidebar}.bmpapps/desktop-gpui/packaging/windows/src-tauri/test-data/clip-thumbnail-*.mp4apps/desktop-gpui/tests/data/src-tauri/src/recording_start_sound.rs(was#[path]-included)apps/desktop-gpui/src/app_sounds/recording_start_sound.rssrc-tauri/binaries/(sidecar staging)apps/desktop-gpui/binaries/apps/desktop-gpui/tauri.conf.json,build.rs,include_bytes!sites and the dev fallbacks ineditor_sidebar.rs/editor_audio.rspoint at the new paths; nothing in the GPUI app reaches intoapps/desktopany more.apps/desktop-gpui/package.json, which takes over the@cap/desktopworkspace name, sobun run tauri bundle/tauri signer signrun from the app's own directory (scripts/bundle-gpui.mjs,scripts/build-macos-packages.mjs,scripts/finalize-linux-appimage.mjs).scripts/bundle-gpui.test.mjsnow pins the shipped identity (bundle id, updater pubkey and endpoint,cap-desktopdeep link) as literals instead of comparing against the deleted Tauri configs.Removed
apps/desktop,packages/ui-solid,vendor/tao,vendor/tauri-nspanel, the strayapps/src/utils/tauri.ts.tauriworkspace dependency, and thetao/tauri-nspanelpatches (Cargo.toml).Cargo.lockonly loses the 212 packages nothing else uses; no version changes.scripts/check-tauri-plugin-versions*,scripts/run-gpui-build*,scripts/verify-gpui-release-inputs.mjs, thetauri:build,check-tauri-versionsandtest:desktop:memory*scripts, the CItauri-pluginsjob, theapps/desktopresource path filter, and--exclude cap-desktopin clippy.build-gpui-binary.shno longer stagescap-gpui-<target>as a Tauri sidecar;bundle-gpui.mjsstages the main binary itself as before.scripts/linux-bundle-config.mjsdrops the Tauri defaults (WebKitGTK RPM deps, GStreamer media framework). The generatedapps/desktop-gpui/tauri.linux.conf.jsonis byte-identical to the onemainwrites.packages/ui.Dev-only switch back to the Tauri app
Debug builds had a Settings > Experimental > Developer toggle that quit the GPUI app and asked
scripts/dev-desktop.mjsto restarttauri dev, plus a hand-off marker file and adev.shgate that skipped launching while "the classic app owns the session". All of it goes (settings_pages.rs,settings_window.rs,store.rs,main.rs, the 17 strings in every locale,dev.sh). Release builds never showed it.bun run dev:desktopnow runscap-setup, prepares the patched gpui checkout, then:On Windows and Linux,
runtimeEnvironmentputs the roottarget/FFmpeg / ONNX Runtime libraries onPATH/LD_LIBRARY_PATH, matching what CI's GPUI test job does.Releases
apps/desktop-gpui/Cargo.tomlis the version source.sync-desktop-versions.mjskeeps the CLI in step with it, andpublish.yml,publish-nightly.ymlandbuild-linux-packages.mjsread it.promote-nightlycan rebuild a nightly commit from before this change with the new workflow, sodesktop-release.ymlalso stampsapps/desktop/src-tauri/Cargo.tomlwhen it exists, and the Windows updater re-sign step uses whichever directory holds the Tauri CLI.Deliberately unchanged
crates/workspace-hack. Regenerating it after dropping the Tauri crate would also drop features Tauri had been unifying into the shipped binaries:reqwest's rustls, cookies and macOS proxy features andort'sdownload-binariesin the CLI,objc2'sexceptionhandling, andobjc2'sdisable-encoding-assertionsin the GPUI app. That is a behavior change for shipped artifacts and belongs in its own PR. Only the twotaurientries that would makecargo hakarierror are removed from.config/hakari.toml. ThecapCLI andcap-muxerfeature trees matchmainon all four release targets, and the GPUI lockfile is untouched.storefile format,so.cap.desktopidentifier,cap-desktopscheme, updater key and endpoint, the web/api/releases/tauriand desktop API routes, and the "last Tauri version" download page all stay.*.tsx,apps/desktop/...) as the 1:1 parity source stay as written;apps/desktop-gpui/README.mdexplains they point atcap-v0.6.2. Historical findings logs (crates/editor/PLAYBACK-FINDINGS.md,crates/export/EXPORT-FINDINGS.md,capcodec/) are left as records of past work.Heads up
CAP_LOGO_URL(transactional emails) and the README logo now loadapps/desktop-gpui/icons/Square310x310Logo.pngfrom raw GitHub. Emails sent before this merges reference the old path, which stops resolving once it lands.apps/desktop/(node_modules,src-tauri/target); it can be deleted by hand.Docs (
README.md,CONTRIBUTING.md,AGENTS.md,apps/desktop-gpui/README.md,packaging/linux/README.md) describe the GPUI-only layout, the dev flow per platform, and where recordings live in development builds.

Confidence Score: 5/5
The changes since the last review appear safe to merge.Summary
Removes the old Tauri app and makes
apps/desktop-gpuithe only desktop app.Reviews (3) · Last reviewed commit: "test(desktop-gpui): drop the removed swi..." · Reviewed by Greptile