Desktop updates: Linux package installs update via their package manager #256

Merged
jared merged 3 commits from linux-package-updates into lotus 2026-09-30 20:09:51 -04:00
Owner

Web half of LotusGuild/cinny-desktop#32. It fixes the CachyOS update failure (Permission denied (os error 13) at /usr/bin/tauri_current_app…): the app was installed from the Arch package, and the in-app updater can only replace an AppImage.

For Linux package installs

  • The toast says the update is available and opens Settings → General → App Updates.
  • The tile shows the package-manager command, curl -LO …/LotusChat-x86_64.pkg.tar.zst && sudo pacman -U ./LotusChat-x86_64.pkg.tar.zst (download first: pacman -U <url> also wants a .sig we don't publish, reported by the user) (or the .deb plus sudo apt install), with Copy command and Download package. There's no Install & Restart that can't work.
  • Copy feedback: "Copied" only when the clipboard write succeeded; otherwise "Copy failed: select it above".
  • Other distros: a link to the downloads page.
  • Unchanged: Windows, AppImage, and desktop builds without the new command keep the in-app update.

Tested

  • Unit: install kinds, the commands, refusal detection.
  • Real client, with a simulated desktop bridge:
    • pacman: toast, then Settings with the command and buttons; install_update never called; no page errors;
    • older desktop: the in-app flow as before.
  • Full suites: unit 1,321 pass; Playwright 26 passed.

Safe on its own: older desktop builds don't have the command, so they keep today's behaviour.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA

Web half of LotusGuild/cinny-desktop#32. It fixes the CachyOS update failure (*Permission denied (os error 13) at /usr/bin/tauri_current_app…*): the app was installed from the Arch package, and the in-app updater can only replace an AppImage. ## For Linux package installs - **The toast** says the update is available and opens **Settings → General → App Updates**. - **The tile** shows the package-manager command, `curl -LO …/LotusChat-x86_64.pkg.tar.zst && sudo pacman -U ./LotusChat-x86_64.pkg.tar.zst` (download first: `pacman -U <url>` also wants a `.sig` we don't publish, reported by the user) (or the .deb plus `sudo apt install`), with **Copy command** and **Download package**. There's no *Install & Restart* that can't work. - **Copy feedback:** "Copied" only when the clipboard write succeeded; otherwise "Copy failed: select it above". - **Other distros:** a link to the downloads page. - **Unchanged:** Windows, AppImage, and desktop builds without the new command keep the in-app update. ## Tested - **Unit:** install kinds, the commands, refusal detection. - **Real client, with a simulated desktop bridge:** - pacman: toast, then Settings with the command and buttons; `install_update` **never called**; no page errors; - older desktop: the in-app flow as before. - **Full suites:** unit 1,321 pass; Playwright 26 passed. Safe on its own: older desktop builds don't have the command, so they keep today's behaviour. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
jared added 1 commit 2026-09-30 19:00:43 -04:00
fix(desktop updates): Linux package installs update via their package manager
CI / Build & Quality Checks (pull_request) Failing after 1m40s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Playwright smoke (e2e) (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 6s
27d659118f
Reported on CachyOS: "Check for Updates → The update downloaded but
couldn't be installed … Permission denied (os error 13) at path
/usr/bin/tauri_current_app…". The app was installed from the Arch package;
Tauri's Linux updater can only replace an AppImage.

With cinny-desktop's new update_install_kind command:
- pacman / deb installs: the toast says the update is available and opens
  Settings → General → App Updates, which shows the package-manager command
  (`sudo pacman -U …pkg.tar.zst`, or the .deb + `sudo apt install`) with
  Copy command and Download package — no Install & Restart that can't work.
  "Copied" only when the clipboard write actually succeeded.
- other distros: a link to the downloads page.
- Windows, AppImage, and desktop builds without the command: unchanged
  in-app update.
- a native "package-managed" refusal shows the same help.

Tests: unit (kinds, commands, refusal detection); in the real client with a
simulated desktop bridge: pacman → toast + Settings command/buttons,
install never attempted; older desktop → in-app flow as before. Unit 1321,
Playwright 26 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
jared added 1 commit 2026-09-30 19:41:41 -04:00
Merge remote-tracking branch 'origin/lotus' into linux-package-updates
CI / Build & Quality Checks (pull_request) Successful in 1m38s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 6s
CI / Playwright smoke (e2e) (pull_request) Canceled after 2m32s
9aec3691ac
jared added 1 commit 2026-09-30 19:57:14 -04:00
fix(desktop updates): pacman command downloads first, installs the local file
CI / Build & Quality Checks (pull_request) Successful in 1m44s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 6s
CI / Playwright smoke (e2e) (pull_request) Successful in 10m38s
6acdd439d5
`sudo pacman -U <url>` also fetches `<url>.sig` and failed (404) on
CachyOS: remote packages fall under RemoteFileSigLevel (signature
required) and we don't sign the package. A downloaded file installs under
LocalFileSigLevel (optional): `curl -LO <url> && sudo pacman -U ./…`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
jared merged commit 8e30c73e2f into lotus 2026-09-30 20:09:51 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#256