diff --git a/release-notes/v0.4.0.md b/release-notes/v0.4.0.md index e3e6a246..4a17d152 100644 --- a/release-notes/v0.4.0.md +++ b/release-notes/v0.4.0.md @@ -1,34 +1,28 @@ # Claude Code Haha v0.4.0 -这是一个以**桌面端底层框架迁移**为核心的大版本。相比 `v0.3.2`,本次最重要的变化是桌面端从 Tauri 2 迁移到 Electron:React/Vite 渲染层、本地 server/sidecar、REST/WebSocket 业务协议继续保留,系统能力改由 Electron main/preload 和 `desktopHost` typed bridge 承载。 +这是一个以**桌面端底层框架迁移**为核心的大版本。桌面端已经从 Tauri 2 迁移到 Electron,内置浏览器、Workbench、终端、文件选择、系统通知、自动更新和 sidecar 进程管理都已经切到新的 Electron 桌面运行时。 -这次迁移不是简单换壳。原先 Tauri 负责的自动更新、系统通知、文件选择、外链打开、窗口/托盘/菜单、PTY 终端、sidecar 进程、内置浏览器预览、应用模式和窗口状态持久化,都已经被重新映射到 Electron 运行时,并补了对应的 IPC、安全和 package-smoke 验证。 +对用户来说,这次迁移的目标是让桌面端在 macOS、Windows 和 Linux 上有更一致的渲染效果和系统交互能力。因为 Electron 自带 Chromium runtime,安装包体积会比过去的 Tauri 版本更大,这是本次迁移后的正常变化。 -## 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-builder**:macOS 产出 DMG/ZIP,Windows 产出 NSIS 安装器,Linux 同时产出 AppImage 和 deb;release workflow 会校验完整资产和 update metadata。 -- **Electron updater 元数据重建**:从 Tauri 的 `latest.json` 迁移到 Electron 的 `latest-mac.yml`、`latest.yml`、`latest-linux.yml`、`latest-linux-arm64.yml`;macOS 会合并 x64/arm64 update metadata。 -- **打包结构验证加强**:新增 package-smoke 检查,覆盖 `app.asar`、sidecar、`node-pty`、update metadata、blockmap 和 canonical release artifact set,避免缺资源的包被上传或发布。 -- **桌面安全边界重建**:renderer 不暴露 Node/Electron 原始 API;preload 只暴露固定 `desktopHost` contract;IPC 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 gates,pre-push 改为非阻塞提示,server 测试避免固定端口冲突,Linux deb metadata 和 Linux package-smoke artifact 匹配已修复。 +- **桌面底层切换到 Electron**:内置浏览器、Workbench 预览、终端、通知、托盘、菜单、窗口状态和自动更新都迁移到新的桌面运行时。 +- **跨平台安装包更新**:macOS 提供 DMG,Windows 提供安装器,Linux 提供 AppImage 和 deb。 +- **内置浏览器和 Workbench 更稳定**:预览、截图、网页选择和本地文件打开链路继续保留,并适配新的 Electron 桌面壳。 +- **Agent 指令体验继续打磨**:agent slash 现在走正常聊天链路并流式展示进度,选择气泡更稳定,会话标题会按用户语言生成。 +- **上下文和图片输入兼容性改进**:恢复大图和常见长截图读取,provider context window 估算更准确。 +- **Provider 更新**:MiniMax preset 升级到 MiniMax-M3。 +- **桌面稳定性修复**:修复 Windows PowerShell 选择、退出时 sidecar 残留、macOS 外接屏菜单栏异常、窗口拖拽区域和 sidebar/titlebar 交互问题。 -## 底层框架迁移说明 +## 框架迁移说明 -`v0.4.0` 是第一个 Electron 桌面版本。迁移前桌面端基于 Tauri 2 和系统 WebView;迁移后桌面端使用 Electron/Chromium,宿主能力由 Electron main process 管理,renderer 通过 preload 暴露的 typed bridge 调用。 +`v0.4.0` 是第一个 Electron 桌面版本。旧版 Tauri 桌面端使用系统 WebView,新版 Electron 桌面端使用 Chromium,因此滚动、预览和内置浏览器行为会更接近统一的桌面浏览器体验。 -这带来几个用户能感知到的变化: +从旧 Tauri 版本升级到第一个 Electron 版本时,推荐手动下载安装 `v0.4.0`,把它作为后续 Electron 自更新的基线。直接替换 `/Applications/Claude Code Haha.app` 不会删除 `~/.claude`、`~/.claude/cc-haha` 或用户选择的便携数据目录。 -- 安装包体积会比 Tauri 版本明显变大,这是 Electron 自带 Chromium runtime 的正常结果。 -- macOS release assets 里会同时出现 `.dmg` 和 `.zip`。普通用户手动安装只需要 DMG;ZIP、blockmap 和 `latest-mac.yml` 是 Electron auto-update 需要的发布资产,不应该从 GitHub Release 里删除。 -- 旧 Tauri 版本的自动更新 feed 是 `latest.json`,Electron 版本使用 `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 首次运行重新生成。 +macOS Release 里会同时出现 `.dmg` 和 `.zip`。普通用户手动安装只需要 DMG;ZIP、blockmap 和 `latest-mac.yml` 是后续自动更新需要的文件。 -## 下载安装 +## 下载 前往 GitHub Release 下载对应系统和架构的文件: @@ -40,11 +34,11 @@ | Linux x64 | `Claude-Code-Haha-0.4.0-linux-x86_64.AppImage` 或 `Claude-Code-Haha-0.4.0-linux-amd64.deb` | | Linux ARM64 | `Claude-Code-Haha-0.4.0-linux-arm64.AppImage` 或 `Claude-Code-Haha-0.4.0-linux-arm64.deb` | -### Windows +## Windows 下载 `Claude-Code-Haha-0.4.0-win-x64.exe` 后双击安装。如果 Windows SmartScreen 提示未知发布者,选择"更多信息"再选择"仍要运行"。 -### Linux +## Linux AppImage: @@ -61,21 +55,10 @@ sudo apt install ./Claude-Code-Haha-0.4.0-linux-amd64.deb ARM64 Linux 对应把文件名替换为 `Claude-Code-Haha-0.4.0-linux-arm64.AppImage` 或 `Claude-Code-Haha-0.4.0-linux-arm64.deb`。 -### macOS +## macOS -正式签名并公证的 DMG:下载与你 Mac 架构匹配的 DMG,打开后把 `Claude Code Haha.app` 拖到 `Applications`,再从 `Applications` 打开。 +如果 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 路径。 +如果本次 0.4.0 因 Apple ID 和签名还没准备好,macOS 可能提示 DMG "已损坏"或"无法验证开发者"。这种情况下请下载同一个 Release 里的 `install-macos-unsigned.sh`,和 DMG 放在同一目录后运行下面这条命令。M 系列和 Intel 都用同一个脚本;脚本会自动选择同目录里匹配当前机器架构的 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 -bash ~/Downloads/install-macos-unsigned.sh -``` +macOS 未签名构建安装命令:`bash ~/Downloads/install-macos-unsigned.sh`