程序员阿江(Relakkes) 9e4893ac36 fix(release): prepare unsigned macOS v0.4.0 install path
Bump the Electron desktop package version to 0.4.0, publish a macOS unsigned install helper, and let the release workflow continue when Developer ID signing is not configured.

Tested: bash -n desktop/scripts/install-macos-unsigned.sh
Tested: bun test scripts/pr/release-workflow.test.ts
Tested: bun run scripts/release.ts 0.4.0 --dry
Tested: git diff --check
Tested: bun run check:docs
Tested: bun run check:policy
Confidence: high
Scope-risk: moderate
2026-06-03 22:03:27 +08:00

6.3 KiB
Raw Blame History

Claude Code Haha v0.4.0

这是一个以桌面端底层框架迁移为核心的大版本。相比 v0.3.2,本次最重要的变化是桌面端从 Tauri 2 迁移到 ElectronReact/Vite 渲染层、本地 server/sidecar、REST/WebSocket 业务协议继续保留,系统能力改由 Electron main/preload 和 desktopHost typed bridge 承载。

这次迁移不是简单换壳。原先 Tauri 负责的自动更新、系统通知、文件选择、外链打开、窗口/托盘/菜单、PTY 终端、sidecar 进程、内置浏览器预览、应用模式和窗口状态持久化,都已经被重新映射到 Electron 运行时,并补了对应的 IPC、安全和 package-smoke 验证。

Highlights

  • 桌面底层迁移到 Electron:新增 Electron main/preload/preview-preload以及 sidecar、updater、notification、dialog、shell、window、tray、menu、terminal、preview、app mode、zoom 等主进程服务。
  • 保留业务边界,降低迁移风险:前端继续使用现有 Zustand store、HTTP API 和 WebSocket 流式协议不会把会话、聊天、workspace、team 等业务协议改成 Electron IPC。
  • 跨平台打包链路切换为 electron-buildermacOS 产出 DMG/ZIPWindows 产出 NSIS 安装器Linux 同时产出 AppImage 和 debrelease workflow 会校验完整资产和 update metadata。
  • Electron updater 元数据重建:从 Tauri 的 latest.json 迁移到 Electron 的 latest-mac.ymllatest.ymllatest-linux.ymllatest-linux-arm64.ymlmacOS 会合并 x64/arm64 update metadata。
  • 打包结构验证加强:新增 package-smoke 检查,覆盖 app.asar、sidecar、node-pty、update metadata、blockmap 和 canonical release artifact set避免缺资源的包被上传或发布。
  • 桌面安全边界重建renderer 不暴露 Node/Electron 原始 APIpreload 只暴露固定 desktopHost contractIPC channel 和 payload 走 allowlist外链、本地路径、预览消息和导航都有守卫。
  • 系统交互稳定性修复:修复 Windows PowerShell 选择未传给 agent sidecar、退出时 sidecar 残留、macOS 外接屏菜单栏异常、窗口拖拽区域、sidebar/titlebar 交互和 Windows AppUserModelID。
  • Workbench 和聊天体验继续打磨agent slash 走正常聊天链路并流式展示进度选择气泡更稳定会话标题按用户语言生成thinking summary 支持 Markdown 且默认收起。
  • Provider 与输入兼容性改进MiniMax preset 升级到 MiniMax-M3并使用 provider context window 估算;恢复大图和常见长截图读取;桌面 stale auth/socket 会自动恢复。
  • 发布质量治理收口:恢复 quarantine quality gatespre-push 改为非阻塞提示server 测试避免固定端口冲突Linux deb metadata 和 Linux package-smoke artifact 匹配已修复。

底层框架迁移说明

v0.4.0 是第一个 Electron 桌面版本。迁移前桌面端基于 Tauri 2 和系统 WebView迁移后桌面端使用 Electron/Chromium宿主能力由 Electron main process 管理renderer 通过 preload 暴露的 typed bridge 调用。

这带来几个用户能感知到的变化:

  • 安装包体积会比 Tauri 版本明显变大,这是 Electron 自带 Chromium runtime 的正常结果。
  • macOS release assets 里会同时出现 .dmg.zip。普通用户手动安装只需要 DMGZIP、blockmap 和 latest-mac.yml 是 Electron auto-update 需要的发布资产,不应该从 GitHub Release 里删除。
  • 旧 Tauri 版本的自动更新 feed 是 latest.jsonElectron 版本使用 latest*.yml。因此从旧 Tauri 版本升级到第一个 Electron 版本时,推荐手动下载安装 v0.4.0,把它作为后续 Electron 自更新的基线。
  • 应用 bundle id 仍保持 com.claude-code-haha.desktop。直接替换 /Applications/Claude Code Haha.app 不会删除 ~/.claude~/.claude/cc-haha 或用户选择的便携数据目录;少量窗口/UI 本地状态可能会按 Electron 首次运行重新生成。

下载安装

前往 GitHub Release 下载对应系统和架构的文件:

平台 推荐下载
macOS Apple Silicon Claude-Code-Haha-0.4.0-mac-arm64.dmg
macOS Intel Claude-Code-Haha-0.4.0-mac-x64.dmg
Windows x64 Claude-Code-Haha-0.4.0-win-x64.exe
Linux x64 Claude-Code-Haha-0.4.0-linux-x86_64.AppImageClaude-Code-Haha-0.4.0-linux-amd64.deb
Linux ARM64 Claude-Code-Haha-0.4.0-linux-arm64.AppImageClaude-Code-Haha-0.4.0-linux-arm64.deb

Windows

下载 Claude-Code-Haha-0.4.0-win-x64.exe 后双击安装。如果 Windows SmartScreen 提示未知发布者,选择"更多信息"再选择"仍要运行"。

Linux

AppImage

chmod +x Claude-Code-Haha-0.4.0-linux-x86_64.AppImage
./Claude-Code-Haha-0.4.0-linux-x86_64.AppImage

deb

sudo apt install ./Claude-Code-Haha-0.4.0-linux-amd64.deb

ARM64 Linux 对应把文件名替换为 Claude-Code-Haha-0.4.0-linux-arm64.AppImageClaude-Code-Haha-0.4.0-linux-arm64.deb

macOS

正式签名并公证的 DMG下载与你 Mac 架构匹配的 DMG打开后把 Claude Code Haha.app 拖到 Applications,再从 Applications 打开。

如果本次 0.4.0 因 Apple Developer ID 还未准备好只能先发布未签名构建macOS 可能提示 DMG "已损坏"或"无法验证开发者"。这种情况下请下载同一个 Release 里的 install-macos-unsigned.sh,和 DMG 放在同一目录后运行文末命令。M 系列和 Intel 都用同一个脚本;脚本会自动选择同目录里匹配当前机器架构的 DMG也可以手动传入 DMG 路径。

发布者备注

  • GitHub Release 正文继续以 release-notes/v0.4.0.md 作为来源。
  • 发布前请确认 desktop/package.json 版本、tag v0.4.0 和本文件名完全一致。
  • 如果 macOS Developer ID / notarization secrets 已配置release workflow 会额外跑 Gatekeeper 验证;如果暂时没有 Apple ID本版本会以 unsigned macOS 构建发布,并依赖 install-macos-unsigned.sh 完成首次安装。
  • 不要只上传 DMG 后删除 ZIP、blockmap 或 latest*.yml。DMG 是手动安装入口ZIP 和 metadata 是 Electron auto-update 链路需要的资产。

macOS 未签名构建安装命令:

bash ~/Downloads/install-macos-unsigned.sh