diff --git a/README.en.md b/README.en.md index 72d529fa..8f586fa1 100644 --- a/README.en.md +++ b/README.en.md @@ -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). 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 @@ -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. - **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. +- **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. - **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. diff --git a/README.md b/README.md index d1ef1b0a..8940170c 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Claude Code Haha 的桌面端把会话、多项目、分支 / Worktree、右侧 1. 前往 [Releases](https://github.com/NanmiCoder/cc-haha/releases) 下载 macOS / Windows / Linux 桌面端安装包。 2. 首次启动后,在桌面端设置里配置模型提供商、API Key 和默认模型。 -3. 当前版本暂未签名,首次安装需要手动放行一次(macOS 解除隔离、Windows 点"仍要运行")。详见 [桌面端安装指南](docs/desktop/04-installation.md)。 +3. 正式 macOS Release 需要经过签名和公证;如果安装的是 draft/unsigned 临时包,首次打开可能仍需手动放行。Windows 未签名安装包可能出现 SmartScreen 提示,点「更多信息」→「仍要运行」即可。详见 [桌面端安装指南](docs/desktop/04-installation.md)。 ## 从源码启动 CLI @@ -80,6 +80,8 @@ cp .env.example .env - **代码修改可视化**:直接查看 AI 对文件的编辑、Diff 和执行过程。 - **权限与确认流**:危险命令、工具调用和 AI 反问可以在桌面端集中审批。 - **多模型提供商**:支持 Anthropic 兼容 API、第三方模型、WebSearch fallback 和本地配置。 +- **技能市场**:在桌面端发现、预览、安装和管理 ClawHub / SkillHub 第三方技能。 +- **会话活动面板**:集中查看任务、后台任务、SubAgent、团队活动和 sources。 - **Computer Use**:让 Agent 在授权后截图、点击、输入并控制桌面应用。 - **H5 远程访问**:用一次性令牌在手机或其他设备上接入当前桌面端会话。 - **IM 接入**:通过 Telegram / 飞书 / 微信 / 钉钉远程对话、切换项目和审批权限。 diff --git a/desktop/package.json b/desktop/package.json index fb4fa8e5..a18ce21a 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "claude-code-desktop", "private": true, - "version": "0.4.5", + "version": "0.4.6", "description": "Desktop coding agent workbench for Claude Code Haha.", "homepage": "https://github.com/NanmiCoder/cc-haha", "author": { diff --git a/docs/desktop/04-installation.md b/docs/desktop/04-installation.md index 0a039de9..182f12b6 100644 --- a/docs/desktop/04-installation.md +++ b/docs/desktop/04-installation.md @@ -11,6 +11,7 @@ | macOS (Apple Silicon / M 系列) | `Claude-Code-Haha-<版本>-mac-arm64.dmg` | | macOS (Intel) | `Claude-Code-Haha-<版本>-mac-x64.dmg` | | 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 (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: 这个版本会自动更新吗?** -`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 提示。 diff --git a/docs/desktop/10-release-auto-update.md b/docs/desktop/10-release-auto-update.md index fb265497..b033b648 100644 --- a/docs/desktop/10-release-auto-update.md +++ b/docs/desktop/10-release-auto-update.md @@ -9,7 +9,7 @@ | 平台 | 安装/更新目标 | Metadata | |------|---------------|----------| | 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 arm64 | `.AppImage`,同时发布 `.deb` 供手动安装 | `latest-linux-arm64.yml` | @@ -48,15 +48,15 @@ WINDOWS_CERTIFICATE_PASSWORD 4. 确认只出现标准下载来源确认,不出现无法验证开发者、文件损坏或 unidentified developer。 5. 再把后续 `v0.4.4` 作为自动更新验证目标。 -## v0.4.4 自动更新验证 +## v0.4.6 自动更新验证 -发布 `v0.4.4` 时至少验证一条真实更新链路: +发布 `v0.4.6` 时至少验证一条真实更新链路: -1. 安装 GitHub Release 中的 `v0.4.3` 正式包。 -2. 发布 `v0.4.4` tag,让 `Release Desktop` workflow 完整通过。 -3. 打开 `v0.4.3` 应用,等待启动后自动检查,或进入 Settings 手动检查更新。 -4. 确认应用提示 `v0.4.4`,下载完成后点击安装并重启。 -5. 重启后确认 About/Settings 中版本为 `0.4.4`。 +1. 安装 GitHub Release 中的 `v0.4.5` 正式包。 +2. 发布 `v0.4.6` tag,让 `Release Desktop` workflow 完整通过。 +3. 打开 `v0.4.5` 应用,等待启动后自动检查,或进入 Settings 手动检查更新。 +4. 确认应用提示 `v0.4.6`,下载完成后点击安装并重启。 +5. 重启后确认 About/Settings 中版本为 `0.4.6`。 平台重点: @@ -69,9 +69,9 @@ WINDOWS_CERTIFICATE_PASSWORD 发版前至少运行: ```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 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` 已经存在。 diff --git a/docs/desktop/index.md b/docs/desktop/index.md index 88cc6067..783745ab 100644 --- a/docs/desktop/index.md +++ b/docs/desktop/index.md @@ -42,7 +42,7 @@ ### [Electron 发布与自动更新](./10-release-auto-update.md) -维护者发版 runbook:Developer ID 签名、GitHub Release metadata、`v0.4.3 -> v0.4.4` 自动更新验证路径。 +维护者发版 runbook:Developer ID 签名、GitHub Release metadata、`v0.4.5 -> v0.4.6` 自动更新验证路径。 ### [Electron 迁移交互式验收清单](/desktop/electron-migration-qa-checklist.html) diff --git a/release-notes/v0.4.6.md b/release-notes/v0.4.6.md new file mode 100644 index 00000000..c99d3e63 --- /dev/null +++ b/release-notes/v0.4.6.md @@ -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 和 sources;SubAgent 运行可进入独立详情页查看。 +- **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 Silicon(M 系列) | `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`。