docs/design/desktop-electron-to-tauri-update-bridge.md
The last published desktop release, desktop-v0.0.5, is an Electron app named Qwen Code Desktop with bundle identifier com.alibaba.qwen-code. Its macOS updater reads latest-mac.yml from the fixed desktop-latest release and installs a ZIP archive.
The new desktop shell is a Tauri app. It currently uses a different product name and bundle identifier and publishes desktop-latest.json, so the existing Electron app cannot discover or replace it.
0.0.5 installations update directly to the first stable Tauri release.The Tauri bundle uses the legacy macOS identity:
Qwen Code Desktopcom.alibaba.qwen-codeQwen-Code-DesktopThe bridge release must be newer than 0.0.5. It publishes two updater views over the same signed app bundles:
latest-mac.yml points legacy Electron clients at Qwen-Code-Desktop-arm64.zip or Qwen-Code-Desktop-x64.zip.desktop-latest.json points Tauri clients at the signed Tauri updater archives.The ZIP is created from the already signed and notarized .app; it is not rebuilt by Electron tooling.
Desktop Release gains an electron_bridge input, disabled by default.
electron_bridge is enabled, each macOS build also creates a legacy-compatible ZIP.latest-mac.yml from the two ZIPs and two DMGs.desktop-latest together with desktop-latest.json.electron_bridge disabled. Updating desktop-latest.json does not remove the bridge files, so Electron installations that return later can still cross to Tauri.Draft and prerelease runs may build and publish bridge artifacts for inspection, but they never update the stable feed.
The repository already stores the Electron-era Apple certificate and App Store Connect API key under MAC_CSC_* and APPLE_NOTARY_* secret names. The workflow accepts those names as fallbacks for the newer Tauri names, so the Developer ID identity remains unchanged.
Tauri updater artifacts additionally require TAURI_SIGNING_PRIVATE_KEY; TAURI_SIGNING_PRIVATE_KEY_PASSWORD is only needed for an encrypted private key. The private key must match the public key in the Tauri configuration before the first published Tauri release.
Automated release-helper tests verify:
latest-mac.yml,Before the stable release, install the signed desktop-v0.0.5 arm64 and x64 builds, point them at an isolated bridge feed, and verify both 0.0.5 -> Tauri bridge and Tauri bridge -> newer Tauri updates.