Skip to content

fix(updater): restore native Linux bundle detection - #190

Merged
Lampese merged 1 commit into
Lampese:mainfrom
capaj:fix/189-linux-updater-permissions
Sep 30, 2026
Merged

Lampese merged 1 commit into
Lampese:mainfrom
capaj:fix/189-linux-updater-permissions

Conversation

@capaj

@capaj capaj commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #189.

Root cause

The release build uses Tauri CLI 2.9.6 with tauri-utils 2.8.3. The CLI predates the newer bundle-marker format and cannot embed the correct Linux bundle type. The v0.2.20 Linux build logs confirm the marker-patching failure. Unknown bundle types fall back to the AppImage installer, which tries to replace the system-owned executable directly instead of using the native package installer. This explains the reported permission error, based on build logs and source inspection rather than an end-to-end reproduction.

Build evidence: https://github.com/Lampese/codex-switcher/actions/runs/35472923995/job/105977085911
Upstream change: tauri-apps/tauri@0575dd2

Changes

Upgrade the Tauri CLI requirement and all locked platform binaries to 2.10.1. Keep other dependencies and the application version unchanged.

Separate download completion from installation success. Display an installing state when the Finished event arrives, and only offer Restart after downloadAndInstall resolves successfully.

Add six installation-lifecycle tests, two toolchain/lockfile tests, and a Node 22 GitHub Actions workflow.

Validation

All 8 tests pass with npm run test:updater on Node 22.16.0. The original CLI configuration fails both toolchain tests. git diff --check passes. Tests ran against checksum-verified source files in a local fixture.

Full dependency installation, application build, native packaging, and a signed .deb update were not run. Before release, verify the bundle-marker warning is gone and a newly built .deb uses the native installer and handles authorization correctly.

Existing binaries with missing metadata need a one-time manual installation of a corrected release; this build-tooling fix cannot repair an already-installed binary.


Maintenance triage — 2026-09-30

#131 is the WSL2/system-package acceptance case. This tooling fix cannot repair metadata in already-installed binaries. Validate a newly built .deb, installer authorization and one-time manual upgrade instructions; do not treat it as an AppImage GTK/EGL fix for #195.

Upgrade the Tauri CLI and locked platform binaries to 2.10.1 so Linux
bundles receive the marker expected by the runtime updater. Keep the UI
in the installing state until installation succeeds, and add regression
tests for the toolchain and update lifecycle.

Fixes Lampese#189
@Lampese Lampese added bug Something isn't working priority:P1 Address first: auth, data integrity, security, startup or release validation. area:linux Linux startup, native packages, AppImage and updater behavior. status:needs-review Maintainer review required; this label is not merge approval. status:needs-ci No check rollup is visible for the current PR head; validate before landing. labels Sep 30, 2026
@Lampese
Lampese merged commit 67460a2 into Lampese:main Sep 30, 2026
1 check passed
@Lampese Lampese removed status:needs-review Maintainer review required; this label is not merge approval. status:needs-ci No check rollup is visible for the current PR head; validate before landing. labels Sep 30, 2026
Kevanko added a commit to Kevanko/codex-switcher-fork that referenced this pull request Oct 13, 2026
- pin Tauri CLI to ~2.10.1 to match the 2.10 runtime; 2.9 built Linux bundles
  the updater could not identify (from upstream Lampese#190)
- updater shows 'installing' after the download instead of offering a restart
  while the installer is still running
- chatgpt.com requests send browser-like headers so Cloudflare stops answering
  with a 403 challenge (upstream Lampese#110); a challenge page that still slips
  through is treated as transient instead of greying the account out
- drop appmenu-gtk-module before GTK starts, which crashed on launch on Linux
  desktops with a global menu (upstream Lampese#191)
- unit tests for keeping MCP logins when switching Claude accounts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:linux Linux startup, native packages, AppImage and updater behavior. bug Something isn't working priority:P1 Address first: auth, data integrity, security, startup or release validation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update failed: Permission denied (os error 13)

2 participants