release: prepare v0.4.6

Prepare the v0.4.6 desktop release note, bump the desktop package version, and refresh README/docs guidance for signed releases and updater validation.

Tested: bun run scripts/release.ts 0.4.6 --dry
Tested: bun test scripts/pr/release-workflow.test.ts scripts/release-update-metadata.test.ts scripts/quality-gate/package-smoke/index.test.ts
Tested: bun run check:policy
Tested: bun run check:docs
Not-tested: bun run verify; release prep was validated with docs and release-focused gates only.
Confidence: high
Scope-risk: narrow
This commit is contained in:
程序员阿江(Relakkes) 2026-07-09 17:56:51 +08:00
parent e429e0a6d8
commit b28867d551
7 changed files with 125 additions and 15 deletions

View File

@ -56,7 +56,7 @@ The Claude Code Haha desktop app brings sessions, multi-project navigation, bran
1. Download the macOS / Windows / Linux desktop installer from [Releases](https://github.com/NanmiCoder/cc-haha/releases). 1. Download the macOS / Windows / Linux desktop installer from [Releases](https://github.com/NanmiCoder/cc-haha/releases).
2. On first launch, configure your model provider, API key, and default model in Settings. 2. On first launch, configure your model provider, API key, and default model in Settings.
3. This build is currently unsigned, so the first launch needs a one-time manual approval (clear quarantine on macOS, click "Run anyway" on Windows). See the [desktop installation guide](docs/desktop/04-installation.md). 3. Public macOS releases require signing and notarization. Draft or unsigned temporary builds may still need one-time manual approval. Unsigned Windows installers may show SmartScreen; click "More info" -> "Run anyway". See the [desktop installation guide](docs/desktop/04-installation.md).
## Run the CLI from Source ## Run the CLI from Source
@ -80,6 +80,8 @@ See [environment variables](docs/en/guide/env-vars.md) and [global usage](docs/e
- **Visual code changes**: inspect edits, file writes, and diffs directly in the desktop app. - **Visual code changes**: inspect edits, file writes, and diffs directly in the desktop app.
- **Permission review**: approve risky commands, tool calls, and model follow-up questions in the GUI. - **Permission review**: approve risky commands, tool calls, and model follow-up questions in the GUI.
- **Multi-provider setup**: configure Anthropic-compatible APIs, third-party models, WebSearch fallback, and local options. - **Multi-provider setup**: configure Anthropic-compatible APIs, third-party models, WebSearch fallback, and local options.
- **Skill Marketplace**: discover, preview, install, and manage third-party skills from ClawHub / SkillHub in the desktop app.
- **Session Activity Panel**: review tasks, background tasks, SubAgents, team activity, and sources in one side panel.
- **Computer Use**: let the agent take screenshots, click, type, and control desktop apps after authorization. - **Computer Use**: let the agent take screenshots, click, type, and control desktop apps after authorization.
- **H5 remote access**: open the current desktop session from a phone or another device with a one-time token. - **H5 remote access**: open the current desktop session from a phone or another device with a one-time token.
- **IM integration**: chat, switch projects, and approve actions through Telegram / Feishu / WeChat / DingTalk. - **IM integration**: chat, switch projects, and approve actions through Telegram / Feishu / WeChat / DingTalk.

View File

@ -56,7 +56,7 @@ Claude Code Haha 的桌面端把会话、多项目、分支 / Worktree、右侧
1. 前往 [Releases](https://github.com/NanmiCoder/cc-haha/releases) 下载 macOS / Windows / Linux 桌面端安装包。 1. 前往 [Releases](https://github.com/NanmiCoder/cc-haha/releases) 下载 macOS / Windows / Linux 桌面端安装包。
2. 首次启动后在桌面端设置里配置模型提供商、API Key 和默认模型。 2. 首次启动后在桌面端设置里配置模型提供商、API Key 和默认模型。
3. 当前版本暂未签名首次安装需要手动放行一次macOS 解除隔离、Windows 点"仍要运行"。详见 [桌面端安装指南](docs/desktop/04-installation.md)。 3. 正式 macOS Release 需要经过签名和公证;如果安装的是 draft/unsigned 临时包首次打开可能仍需手动放行。Windows 未签名安装包可能出现 SmartScreen 提示,点「更多信息」→「仍要运行」即可。详见 [桌面端安装指南](docs/desktop/04-installation.md)。
## 从源码启动 CLI ## 从源码启动 CLI
@ -80,6 +80,8 @@ cp .env.example .env
- **代码修改可视化**:直接查看 AI 对文件的编辑、Diff 和执行过程。 - **代码修改可视化**:直接查看 AI 对文件的编辑、Diff 和执行过程。
- **权限与确认流**:危险命令、工具调用和 AI 反问可以在桌面端集中审批。 - **权限与确认流**:危险命令、工具调用和 AI 反问可以在桌面端集中审批。
- **多模型提供商**:支持 Anthropic 兼容 API、第三方模型、WebSearch fallback 和本地配置。 - **多模型提供商**:支持 Anthropic 兼容 API、第三方模型、WebSearch fallback 和本地配置。
- **技能市场**:在桌面端发现、预览、安装和管理 ClawHub / SkillHub 第三方技能。
- **会话活动面板**集中查看任务、后台任务、SubAgent、团队活动和 sources。
- **Computer Use**:让 Agent 在授权后截图、点击、输入并控制桌面应用。 - **Computer Use**:让 Agent 在授权后截图、点击、输入并控制桌面应用。
- **H5 远程访问**:用一次性令牌在手机或其他设备上接入当前桌面端会话。 - **H5 远程访问**:用一次性令牌在手机或其他设备上接入当前桌面端会话。
- **IM 接入**:通过 Telegram / 飞书 / 微信 / 钉钉远程对话、切换项目和审批权限。 - **IM 接入**:通过 Telegram / 飞书 / 微信 / 钉钉远程对话、切换项目和审批权限。

View File

@ -1,7 +1,7 @@
{ {
"name": "claude-code-desktop", "name": "claude-code-desktop",
"private": true, "private": true,
"version": "0.4.5", "version": "0.4.6",
"description": "Desktop coding agent workbench for Claude Code Haha.", "description": "Desktop coding agent workbench for Claude Code Haha.",
"homepage": "https://github.com/NanmiCoder/cc-haha", "homepage": "https://github.com/NanmiCoder/cc-haha",
"author": { "author": {

View File

@ -11,6 +11,7 @@
| macOS (Apple Silicon / M 系列) | `Claude-Code-Haha-<版本>-mac-arm64.dmg` | | macOS (Apple Silicon / M 系列) | `Claude-Code-Haha-<版本>-mac-arm64.dmg` |
| macOS (Intel) | `Claude-Code-Haha-<版本>-mac-x64.dmg` | | macOS (Intel) | `Claude-Code-Haha-<版本>-mac-x64.dmg` |
| Windows (x64) | `Claude-Code-Haha-<版本>-win-x64.exe` | | Windows (x64) | `Claude-Code-Haha-<版本>-win-x64.exe` |
| Windows (ARM64) | `Claude-Code-Haha-<版本>-win-arm64.exe` |
| Linux (x64) | `Claude-Code-Haha-<版本>-linux-x86_64.AppImage``...-linux-amd64.deb` | | Linux (x64) | `Claude-Code-Haha-<版本>-linux-x86_64.AppImage``...-linux-amd64.deb` |
| Linux (ARM64) | `Claude-Code-Haha-<版本>-linux-arm64.AppImage``...-linux-arm64.deb` | | Linux (ARM64) | `Claude-Code-Haha-<版本>-linux-arm64.AppImage``...-linux-arm64.deb` |
@ -68,4 +69,6 @@ bun run dev --host 127.0.0.1 --port 2024
**Q: 这个版本会自动更新吗?** **Q: 这个版本会自动更新吗?**
`v0.4.3` 起的正式 Release 会通过 GitHub Releases 检查更新,并下载对应平台的更新包。首次迁移到 signed/notarized macOS 版本时,建议先手动下载安装 `v0.4.3`;后续版本可以走应用内更新。覆盖安装不会删除本地配置和会话数据(`~/.claude`)。 `v0.4.3` 起的正式 Release 会通过 GitHub Releases 检查更新,并下载对应平台的更新包。覆盖安装或应用内更新不会删除本地配置和会话数据(`~/.claude`)。
正式公开的 macOS Release 需要签名和公证draft/unsigned 临时包仍可能需要手动放行。Windows 签名不是发布阻塞项,未签名安装包仍可更新,但可能出现 SmartScreen 提示。

View File

@ -9,7 +9,7 @@
| 平台 | 安装/更新目标 | Metadata | | 平台 | 安装/更新目标 | Metadata |
|------|---------------|----------| |------|---------------|----------|
| macOS arm64/x64 | `dmg` 用于首次安装,`zip` 用于 Squirrel.Mac 更新 | `latest-mac.yml` | | macOS arm64/x64 | `dmg` 用于首次安装,`zip` 用于 Squirrel.Mac 更新 | `latest-mac.yml` |
| Windows x64 | NSIS `.exe` | `latest.yml` | | Windows x64 / ARM64 | NSIS `.exe` | `latest.yml` |
| Linux x64 | `.AppImage`,同时发布 `.deb` 供手动安装 | `latest-linux.yml` | | Linux x64 | `.AppImage`,同时发布 `.deb` 供手动安装 | `latest-linux.yml` |
| Linux arm64 | `.AppImage`,同时发布 `.deb` 供手动安装 | `latest-linux-arm64.yml` | | Linux arm64 | `.AppImage`,同时发布 `.deb` 供手动安装 | `latest-linux-arm64.yml` |
@ -48,15 +48,15 @@ WINDOWS_CERTIFICATE_PASSWORD
4. 确认只出现标准下载来源确认,不出现无法验证开发者、文件损坏或 unidentified developer。 4. 确认只出现标准下载来源确认,不出现无法验证开发者、文件损坏或 unidentified developer。
5. 再把后续 `v0.4.4` 作为自动更新验证目标。 5. 再把后续 `v0.4.4` 作为自动更新验证目标。
## v0.4.4 自动更新验证 ## v0.4.6 自动更新验证
发布 `v0.4.4` 时至少验证一条真实更新链路: 发布 `v0.4.6` 时至少验证一条真实更新链路:
1. 安装 GitHub Release 中的 `v0.4.3` 正式包。 1. 安装 GitHub Release 中的 `v0.4.5` 正式包。
2. 发布 `v0.4.4` tag`Release Desktop` workflow 完整通过。 2. 发布 `v0.4.6` tag`Release Desktop` workflow 完整通过。
3. 打开 `v0.4.3` 应用,等待启动后自动检查,或进入 Settings 手动检查更新。 3. 打开 `v0.4.5` 应用,等待启动后自动检查,或进入 Settings 手动检查更新。
4. 确认应用提示 `v0.4.4`,下载完成后点击安装并重启。 4. 确认应用提示 `v0.4.6`,下载完成后点击安装并重启。
5. 重启后确认 About/Settings 中版本为 `0.4.4`。 5. 重启后确认 About/Settings 中版本为 `0.4.6`。
平台重点: 平台重点:
@ -69,9 +69,9 @@ WINDOWS_CERTIFICATE_PASSWORD
发版前至少运行: 发版前至少运行:
```bash ```bash
bun run scripts/release.ts 0.4.3 --dry bun run scripts/release.ts 0.4.6 --dry
bun test scripts/pr/release-workflow.test.ts scripts/release-update-metadata.test.ts scripts/quality-gate/package-smoke/index.test.ts bun test scripts/pr/release-workflow.test.ts scripts/release-update-metadata.test.ts scripts/quality-gate/package-smoke/index.test.ts
bun run check:policy bun run check:policy
``` ```
正式调用 `bun run scripts/release.ts 0.4.3` 前,先确认对应 `release-notes/v0.4.3.md` 已经存在。 正式调用 `bun run scripts/release.ts 0.4.6` 前,先确认对应 `release-notes/v0.4.6.md` 已经存在。

View File

@ -42,7 +42,7 @@
### [Electron 发布与自动更新](./10-release-auto-update.md) ### [Electron 发布与自动更新](./10-release-auto-update.md)
维护者发版 runbookDeveloper ID 签名、GitHub Release metadata、`v0.4.3 -> v0.4.4` 自动更新验证路径。 维护者发版 runbookDeveloper ID 签名、GitHub Release metadata、`v0.4.5 -> v0.4.6` 自动更新验证路径。
### [Electron 迁移交互式验收清单](/desktop/electron-migration-qa-checklist.html) ### [Electron 迁移交互式验收清单](/desktop/electron-migration-qa-checklist.html)

103
release-notes/v0.4.6.md Normal file
View File

@ -0,0 +1,103 @@
# Claude Code Haha v0.4.6
这是 `v0.4.5` 之后的桌面功能和稳定性版本,重点新增技能市场和会话活动面板,同时补齐 TeamoRouter 供应商、更新流程、便携数据目录、终端、输出风格本地化、浏览器 zoom、高 DPI 预览和 provider stalled stream 诊断等问题。
相比 `v0.4.5`本版本让用户可以直接在桌面端发现、预览、安装和管理第三方技能也把会话中的任务、后台任务、SubAgent 和团队活动集中到右侧活动面板,减少主聊天区噪音并提升多 Agent 工作流可见性。
## Highlights
- **技能市场上线**:新增桌面端技能市场,聚合 ClawHub 与 SkillHub支持搜索、筛选、分页、详情、文件预览、安装确认、卸载和已安装状态识别。
- **技能安装更保守**:市场安装链路补齐风险标签、扫描摘要、来源状态、免责声明和不可确认风险阻断,避免把上游不完整或高风险结果误展示成安全可装。
- **会话活动面板**:新增右侧活动面板,集中展示 tasks、background tasks、SubAgent、team activity 和 sourcesSubAgent 运行可进入独立详情页查看。
- **Agent 工作流更清楚**SubAgent 活动行加入本地头像和状态,工具调用组默认折叠,并在流式更新中保留用户手动展开/折叠状态。
- **更新与正式发布更稳**:公开 release 会先保持 draft等全平台安装包、blockmap 和 `latest*.yml` 更新元数据上传并校验完成后再发布,降低自动更新拿到不完整资产的风险。
- **Provider 和平台补齐**:新增 TeamoRouter provider 预设provider 流式响应卡住时增加 watchdog 诊断;浏览器 zoom、高 DPI 坐标和 Windows/macOS/Linux 发布资产继续收敛。
## Fixes
- 修复检查更新流程中重复检查可能清空待安装更新的问题如果重启安装没有让桌面端退出UI 会恢复到可操作状态 (#797)。
- 修复正式 GitHub Release 可能在 updater 资产未完整上传前公开的问题;现在会先创建 draft完整校验发布资产和标准更新元数据后再取消 draft。
- 修复更换数据存储位置后,窗口状态等 best-effort 写入失败可能导致权限错误持续弹出的问题;写入失败会被捕获并反馈到设置状态 (#949)。
- 修复 Terminal 设置页重复触发 terminal runtime 启动,导致命令行出现两行的问题,并补齐 stale async start 的销毁保护 (#964, #967)。
- 修复 General -> 输出风格中内置选项名称和说明没有按当前语言本地化的问题 (#966)。
- 修复内置浏览器 zoom/scale 在高 DPI 下坐标和交互区域不稳定的问题,缩放控件改为浮在预览区右下角,避免被 native WebContentsView 覆盖 (#952)。
- 修复 provider 流式响应中途停住时缺少明确诊断的问题,新增分阶段 watchdog 和更稳定的桌面 WebSocket 错误码。
- 加固 Telegram adapter 命令处理和桌面导航 guard减少异常输入或外部跳转带来的风险。
- 修复技能市场搜索、详情预览、fallback 缓存、主题色、loading 状态和卡片风险文案中的若干边界问题。
## Features and Improvements
- 新增技能市场 API 和桌面端 Market 页面,支持 ClawHub / SkillHub 聚合、来源健康状态、远程详情、文件内容预览和分页加载。
- 新增技能市场安装服务,安装前会展示风险摘要和确认弹窗,安装后能识别本地已安装状态。
- 技能市场新增第三方技能免责声明、安全徽章、确定性技能头像、多语言文案和暗色主题适配。
- 新增会话活动面板和活动模型,把 Todo/task summary、后台任务、SubAgent 通知、team member 和 sources 统一整理成可扫描的侧边信息。
- 新增 SubAgent run 详情页和相关 API支持从活动面板打开 SubAgent 输出、状态和 token/duration 信息。
- 新增 TeamoRouter provider 预设,默认模型映射到 `claude-opus-4-8``claude-sonnet-5``claude-haiku-4-5`,并在 README 赞助商区域加入 TeamoRouter 入口 (#994)。
- 发布 workflow 继续校验 macOS ARM64/x64、Windows x64/ARM64、Linux x64/ARM64 的安装包、blockmap 和 updater metadata。
- Windows 签名仍为非阻塞 warning未签名 Windows 安装包仍可更新,但用户可能会看到 SmartScreen 提示。
- 非 draft 的公开 macOS release 现在要求签名和公证 secrets缺失时会阻止发布避免自动更新和 Gatekeeper 拿到不合格正式产物。
## Issue 对照
- #797:修复检查更新和发布资产公开顺序,降低自动更新拿到不完整 release 的风险。
- #949:修复更换数据存储位置后的写入权限错误处理。
- #952:补齐内置浏览器 zoom/scale 的高 DPI 和控件覆盖问题。
- #964 / #967:修复 Terminal 重复启动导致命令行出现两行。
- #966:修复输出风格说明文案未本地化。
- #994:新增 TeamoRouter provider 预设和赞助商入口。
## Notes
- GitHub Release 正文继续以 `release-notes/v0.4.6.md` 作为来源。
- 桌面端发布版本号来源是 `desktop/package.json`root `package.json` 仍保留本地开发用的 `999.0.0-local`。发布时需确保 `desktop/package.json`、Git tag `v0.4.6``release-notes/v0.4.6.md` 三者严格对齐。
- 正式发布时,`Release Desktop` workflow 会校验 tag 与 `desktop/package.json` 版本一致,并加载 `release-notes/v0.4.6.md`
- 自动更新依赖 GitHub Release 中完整的安装包、blockmap 和标准 updater metadata`latest-mac.yml``latest.yml``latest-linux.yml``latest-linux-arm64.yml`
- macOS 正式公开发布需要签名和公证 secrets缺失时只能保留 draft/测试产物。Windows 签名不是发布阻塞项,但未签名安装包会触发 SmartScreen 提示。
- 如果下载更新后桌面端没有自动退出重启,可以手动重启应用完成安装。
- 发布前建议至少跑 `bun run scripts/release.ts 0.4.6 --dry``bun run verify`;如果 GitHub Actions hosted runner 恢复,可先手动触发 draft `Release Desktop` 验证全平台资产。
## 安装
到本页面底部的 Assets 里,按系统和 CPU 架构下载对应文件:
| 平台 | 文件 |
|------|------|
| macOS Apple SiliconM 系列) | `Claude-Code-Haha-0.4.6-mac-arm64.dmg` |
| macOS Intel | `Claude-Code-Haha-0.4.6-mac-x64.dmg` |
| Windows x64 | `Claude-Code-Haha-0.4.6-win-x64.exe` |
| Windows ARM64 | `Claude-Code-Haha-0.4.6-win-arm64.exe` |
| Linux x64 | `Claude-Code-Haha-0.4.6-linux-x86_64.AppImage``Claude-Code-Haha-0.4.6-linux-amd64.deb` |
| Linux ARM64 | `Claude-Code-Haha-0.4.6-linux-arm64.AppImage``Claude-Code-Haha-0.4.6-linux-arm64.deb` |
### macOS
双击 DMG 把应用拖入「应用程序」。如果 macOS 签名和公证验证通过,首次打开应直接走正常 Gatekeeper 流程。
如果仍提示"已损坏"或"无法验证开发者",说明当前产物可能仍是 unsigned fallback 或本地 quarantine 状态未清理,可在终端执行:
```bash
xattr -cr /Applications/Claude\ Code\ Haha.app
```
也可以在「系统设置 → 隐私与安全性」里点"仍要打开"。
### Windows
双击 `.exe` 安装。SmartScreen 提示时点「更多信息」→「仍要运行」。
### Linux
AppImage
```bash
chmod +x Claude-Code-Haha-0.4.6-linux-x86_64.AppImage
./Claude-Code-Haha-0.4.6-linux-x86_64.AppImage
```
deb
```bash
sudo apt install ./Claude-Code-Haha-0.4.6-linux-amd64.deb
```
ARM64 机器把文件名换成 `...-linux-arm64.AppImage` / `...-linux-arm64.deb`