feat(desktop): bridge Electron users to Tauri updates - #8392
Conversation
|
🤝 Takeover engaged: the autofix loop now manages this PR — it will address new review feedback and resolve base conflicts until the label is removed or the round cap is reached. Remove the 中文说明🤝 已接管:autofix 循环现在管理此 PR —— 将持续处理新的评审反馈与 base 冲突,直到移除标签或达到轮次上限。移除 |
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
doudouOUC
left a comment
There was a problem hiding this comment.
— qwen3.7-max via Qwen Code /review
|
🤖 Addressed the latest review feedback (round 1/100). What changed, and what I pushed back on: · 已处理最新评审反馈(第 1/100 轮)。改动内容与我反驳保留之处如下: Address Review Summary — PR #8392Feedback points[rc:3699956836] Suggestion: add negative test cases for
|
Local verification reportI built and exercised this PR in a real local environment rather than reading the diff. The short version: the bridge mechanism works end to end against the real published Environment — macOS (Darwin 25.6.0) on Apple Silicon, Node 22.23.2 (same major as the workflow's 1. The generated
|
|
@qwen-code /triage |
|
🤖 Reviewed the latest feedback — no changes needed. Why, point by point: · 已审阅最新反馈——无需改动。逐点说明原因如下: Autofix review round — no action requiredThe only feedback newer than the last evaluation is @wenshao's hands-on local verification report, which concludes the bridge mechanism is sound, reproduces the failure and success paths against the real published artifacts and the real Triage of every point in the report:
No verification commands were run this round because no change was made. 中文说明Autofix 审查轮次 —— 无需任何改动上次评估之后唯一的新反馈是 @wenshao 的本地实机验证报告。该报告结论为桥接机制成立:针对真实已发布的发布资产和真实的 报告中每一点的分类处理如下:
本轮未做任何改动,因此未运行任何验证命令。 Base-conflict check · 基分支冲突检查: no conflict with main. · 与 main 无冲突。 🧠 Handled by Qwen Code · model/模型 |






What this PR does
This PR adds an opt-in, one-time macOS update bridge from the published Electron desktop app to the Tauri desktop shell. The Tauri bundle adopts the existing
Qwen Code Desktopname andcom.alibaba.qwen-codeidentifier, and the release workflow can publish legacy Electron ZIP/DMG assets pluslatest-mac.ymlalongside the normal signed Tauri updater manifest.The macOS release jobs can reuse the existing Electron-era signing and notarization secrets as complete credential sets. The packaged smoke test now reads the bundle identifier from the Tauri configuration so release validation follows the same identity.
Why it's needed
Electron
0.0.5readslatest-mac.ymlfrom the fixeddesktop-latestrelease. It cannot discover the Tauri JSON feed, and a Tauri bundle with a different name and identifier cannot safely replace the installed Electron app. The bridge lets existing macOS users cross to Tauri through the updater they already have; later releases continue on the Tauri updater without retaining Electron build tooling.Reviewer Test Plan
How to verify
Desktop Releaseworkflow as a dry run withelectron_bridge=trueand confirm both macOS jobs produce aQwen Code Desktop.appand the architecture-specific legacy ZIP while the normal Tauri updater archives remain present.0.0.5 -> Tauri bridge -> newer Taurion both arm64 and x64. The stabledesktop-latestrelease should retainlatest-mac.ymland the four legacy assets after later Tauri-only releases updatedesktop-latest.json.Evidence (Before & After)
N/A — release infrastructure and application identity only; no UI change.
Tested on
Environment (optional)
macOS arm64, Node.js 22.22.0. A local unsigned Tauri app bundle was produced as
Qwen Code Desktop.app; its bundle identifier iscom.alibaba.qwen-code.Risk & Scope
0.0.5, andTAURI_SIGNING_PRIVATE_KEYmust match the checked-in updater public key.Linked Issues
None — this migration was requested directly.
中文说明
这个 PR 做了什么
这个 PR 增加了一个可选、仅需执行一次的 macOS 自动更新桥接,让已发布的 Electron 桌面应用可以升级到 Tauri 桌面壳。Tauri 包采用现有的
Qwen Code Desktop名称和com.alibaba.qwen-code标识;发布流程可以在正常的 Tauri 签名更新清单之外,同时发布兼容旧 Electron 更新器的 ZIP、DMG 和latest-mac.yml。macOS 发布任务可以按完整凭据组复用 Electron 时代已有的签名和公证 secrets。打包 smoke 测试现在直接从 Tauri 配置读取 bundle identifier,确保发布验证与应用身份保持一致。
为什么需要
Electron
0.0.5会读取固定desktop-latestRelease 中的latest-mac.yml。它无法发现 Tauri 的 JSON 更新源,而名称和 identifier 不同的 Tauri 包也无法安全覆盖已安装的 Electron 应用。这个桥接让现有 macOS 用户通过当前已有的更新器迁移到 Tauri;后续版本继续使用 Tauri updater,不需要长期保留 Electron 构建工具链。Reviewer 测试计划
如何验证
electron_bridge=true对Desktop Releaseworkflow 执行 dry run,确认两个 macOS 任务都生成Qwen Code Desktop.app和对应架构的旧版 ZIP,同时保留正常的 Tauri updater 归档。Electron 0.0.5 -> Tauri 桥接版 -> 更新的 Tauri。后续仅发布 Tauri 的版本更新desktop-latest.json后,稳定的desktop-latestRelease 应继续保留latest-mac.yml和四个旧版资产。证据(Before & After)
N/A——仅涉及发布基础设施和应用身份,没有 UI 变化。
测试平台
环境(可选)
macOS arm64,Node.js 22.22.0。本地已成功生成未签名的 Tauri 应用
Qwen Code Desktop.app,bundle identifier 为com.alibaba.qwen-code。风险与范围
0.0.5,并且TAURI_SIGNING_PRIVATE_KEY必须与仓库中的 updater 公钥匹配。关联 Issue
无——这项迁移由维护者直接提出。