chore: remove the Studio desktop app
Merged
GU
2d ago+338+338+012345678901234567890123456789-121847-121847-012345678901234567890123456789012345678901234567890123456789
What is this contribution about?
Discontinues the Studio desktop app (Tauri) and removes it from the repository.
apps/native: the Tauri shell, the Rust local API, and the native e2e suites are deleted.apps/web:- The
VITE_TAURI_APPbuild mode is gone:index.native.*,native-boot.js,src/desktop/,src/lib/desktop/, thebuild:nativeanddev:nativescripts, and the@tauri-apps/*and desktop-terminal xterm addon dependencies. - Every
useIsDesktopApp()gate is collapsed to the web branch, and code that only existed for desktop goes with it:- the download-app dialog and its triggers;
- the IDE deep links;
- the worktree reclaim on archive;
- the restart-to-update button;
- the desktop OAuth browser adapter;
- the
x-deco-fast-previewheader, which only the desktop interceptor read.
- The i18n keys left unused by this are removed from both
enandpt-br.
- The
apps/api:- The
/api/auth/desktoproutes are removed, along with their e2e spec. local.studio.decocms.comis no longer allowed as a CORS origin or as an OAuthredirect_uri.- The 409 for desktop-only coding-agent threads now says the chat ran in the discontinued desktop app.
- The
- CI and release:
native.yml,release-native.yaml, andscripts/check-web-bundle-desktop-free.tsare deleted.release-changes.tsno longer bumpsapps/native/package.json, and thenonedeploy scope it used is gone.- The
cargolefthook hooks and the knip entries for native are removed.
- Development: remove the deleted desktop manifest from the new Compose Watch image, watch rules, and build-context exceptions. Preserve the latest Compose and GitHub Copilot behavior when resolving rebase conflicts.
- Distribution:
- The
deco-studiocask is kept but markeddisable!.brew installandbrew upgradenow print the discontinuation message, andbrew uninstall --zapstill cleans up existing installs. install.shstays at its published URL and prints the same notice plus uninstall steps, then exits 1.
- The
Kept on purpose (persisted data):
local-apistays in thesandboxMapschema.- Desktop-only harness ids stay on thread rows.
- Both remain readable and guarded; nothing new creates them.
- The decopilot harness's portability seams (hooks that are optional for non-cluster runtimes) are untouched.
How did you verify your code works?
- Rebased the full stack onto
mainat3b83e3b0c7; all four remote branches contain their immediate base and match their local heads. - Pinned Bun 1.3.14: frozen-lockfile installation passed.
docker compose config --quietpassed; all 16 development-image COPY sources exist and the deleted desktop manifest is absent from COPY/watch/ignore entries.- API and web typechecks passed.
bun run verify: formatting, lint, and Knip passed. The unit suite completed with 10,791 passing tests and three timing failures in lifecycle-watcher, remote-provider, and thread-connection tests.- Focused rerun of those three files plus runtime setup, Copilot credential handling, model permissions, and release scope: 201 passed, 0 failed.
- Baseline check on
mainfor the two sandbox files: 44 passed, 0 failed. The full-suite timing failures remain unresolved; they are not claimed to be pre-existing failures. - Production web build validation remains incomplete: the fresh pinned-Bun attempt did not reach Vite compilation output before it was stopped, consistent with the earlier local build attempts.
- Integration/E2E suites and the full Docker development-image build were not run.
Screenshots/Demonstration
No new UI. The visible change is that the "Install on Mac/Linux" account menu item and the download CTAs no longer appear.
How to Test
bun install && bun run dev, then sign in. The account menu no longer offers a desktop download.- Open a thread whose harness is
codexoropencode. The input is blocked with the new "can't be continued here" message. curl -fsSL <host>/install.sh | shprints the discontinuation notice.
Migration Notes
- Installed desktop apps keep their current version. The
native-updatesprerelease is not deleted, so the updater has nothing new to fetch. - Once this merges, the cask tap is disabled.
- No database migrations.
Review Checklist
- PR title is clear and descriptive
- Changes are tested and working โ full-suite timing and local build limitations above
- Documentation is updated (if needed)
- No breaking changes โ removes the desktop app and its
/api/auth/desktoproutes
๐ค Generated with Claude Code
Summary by cubic
Discontinues the Studio desktop app (Tauri) and removes it from the repository โ the Rust local API, the desktop build mode and desktop-only paths in apps/web, the /api/auth/desktop routes and local.studio.decocms.com allowances in apps/api, and the native CI/release pipeline.
Migration
- The
deco-studioHomebrew cask is disabled:brew install/upgradeprint the discontinuation message, andbrew uninstall --zapstill cleans up installs;install.shprints the same notice and exits 1. - Installed apps keep their current version with no further updates.
- Persisted
local-apisandbox records and desktop-only harness thread rows stay readable and guarded; nothing new creates them, and resuming those chats returns a 409 saying the chat ran in the discontinued app.