From 0ef020ebf830a7c6d8ea188538196c4d3c891fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Fri, 24 Apr 2026 23:46:14 +0800 Subject: [PATCH] Prepare 0.1.6 for tagged desktop publishing The desktop release workflow reads release-notes/v0.1.6.md from the tagged commit, so this commit aligns version metadata, lockfile state, and release copy before creating the v0.1.6 tag. Constraint: GitHub Actions packaging is triggered by pushed v*.*.* tags, not by a plain main push Constraint: The release script expects release-notes/vX.Y.Z.md to exist in the tagged commit Rejected: Push main without a tag | that would not start the desktop release workflow Confidence: high Scope-risk: narrow Directive: Keep version files, Cargo.lock, release notes, and the release tag aligned for desktop releases Tested: bun run scripts/release.ts 0.1.6 --dry Tested: git diff --cached --check Not-tested: Remote GitHub Actions run before pushing the tag --- desktop/package.json | 2 +- desktop/src-tauri/Cargo.lock | 30 +++++++++--------- desktop/src-tauri/Cargo.toml | 2 +- desktop/src-tauri/tauri.conf.json | 2 +- release-notes/v0.1.6.md | 51 +++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 release-notes/v0.1.6.md diff --git a/desktop/package.json b/desktop/package.json index 7cd33e83..620236fb 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "claude-code-desktop", "private": true, - "version": "0.1.5", + "version": "0.1.6", "type": "module", "scripts": { "dev": "vite", diff --git a/desktop/src-tauri/Cargo.lock b/desktop/src-tauri/Cargo.lock index 8933a60e..72545d9f 100644 --- a/desktop/src-tauri/Cargo.lock +++ b/desktop/src-tauri/Cargo.lock @@ -268,9 +268,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.60" +version = "1.2.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" +checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" dependencies = [ "find-msvc-tools", "shlex", @@ -329,7 +329,7 @@ dependencies = [ [[package]] name = "claude-code-desktop" -version = "0.1.5" +version = "0.1.6" dependencies = [ "anyhow", "portable-pty", @@ -1834,9 +1834,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.185" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libloading" @@ -3007,9 +3007,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.38" +version = "0.23.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21" +checksum = "7c2c118cb077cca2822033836dfb1b975355dfb784b5e8da48f7b6c5db74e60e" dependencies = [ "once_cell", "ring", @@ -3033,9 +3033,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "zeroize", ] @@ -3069,9 +3069,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.12" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "ring", "rustls-pki-types", @@ -4345,7 +4345,7 @@ dependencies = [ "indexmap 2.14.0", "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow 1.0.1", + "winnow 1.0.2", ] [[package]] @@ -4354,7 +4354,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.1", + "winnow 1.0.2", ] [[package]] @@ -5326,9 +5326,9 @@ checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" dependencies = [ "memchr", ] diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index 98f28b9d..142eebce 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "claude-code-desktop" -version = "0.1.5" +version = "0.1.6" edition = "2021" [lib] diff --git a/desktop/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json index b5899b12..758c4dd8 100644 --- a/desktop/src-tauri/tauri.conf.json +++ b/desktop/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/nicegui/nicegui/main/nicegui/static/tauri-schema-v2.json", "productName": "Claude Code Haha", - "version": "0.1.5", + "version": "0.1.6", "identifier": "com.claude-code-haha.desktop", "build": { "frontendDist": "../dist", diff --git a/release-notes/v0.1.6.md b/release-notes/v0.1.6.md new file mode 100644 index 00000000..c8e6b49a --- /dev/null +++ b/release-notes/v0.1.6.md @@ -0,0 +1,51 @@ +# Claude Code Haha v0.1.6 + +这是一个以桌面端扩展管理、MCP 使用体验、命令行安装路径和会话稳定性为主的版本。 + +相比 `v0.1.5`,这次重点补齐了桌面端里 MCP、插件和命令式安装配置的真实操作入口,同时修复了 provider/model 选择串台、MCP 冷启动、插件详情刷新、流式消息格式错乱、回退恢复不完整等问题。 + +## 新功能 + +- 新增桌面端真实终端能力,支持在桌面端内直接运行宿主机命令,用于安装插件、Skills、MCP 依赖,以及处理需要命令行完成的扩展配置。 +- 新增桌面端捆绑 CLI 启动器,安装后可在外部终端通过 `claude-haha` 使用桌面端随包提供的 CLI 能力,减少手动查找可执行文件的成本。 +- 新增桌面端 MCP 管理能力: + - 支持在设置页查看、创建、编辑、启用/停用、删除和重连 MCP Server。 + - 支持区分用户级 MCP 与插件暴露的 MCP。 + - 支持在详情页直接查看重连进度和运行状态。 +- 新增聊天输入框里的本地 Slash Command 管理入口,`/mcp`、`/plugin`、`/skills` 等入口可以直接跳转到对应桌面管理视图。 +- 新增桌面端插件管理 API 和界面能力,插件、Skills、Agents 等能力可以在桌面端设置页内统一查看和进入详情。 +- 增强桌面端会话回退能力,rewind 不只恢复对话状态,也会同步恢复对应的文件检查点,降低误操作后的恢复成本。 +- 优化 provider/model 选择体验,会话会更稳定地使用用户当前选择的 provider、model 和运行时配置,不再被全局 Claude 设置意外覆盖。 + +## 问题修复 + +- 修复桌面端首次对话时 MCP 工具可能尚未准备好,导致第一轮请求能力不完整的问题。 +- 修复 MCP 列表被实时健康检查阻塞的问题,列表可以先快速展示,再异步更新状态。 +- 修复 provider/model 选择继承全局设置导致会话串台的问题,并对齐内置 provider preset 到当前可用模型。 +- 修复插件详情在刷新或重载时可能触发 React Hook 顺序不一致的问题。 +- 修复流式回复中任务进度更新可能破坏 Markdown 排版的问题。 +- 修复桌面端 assistant 文本被拆成多个不连续气泡的问题,让回复内容保持在同一条消息里。 +- 修复桌面端历史记录和重连过程中的状态错位问题,减少重连后输出丢失或绑定到错误会话的情况。 +- 修复部分破坏性操作缺少确认流程的问题,删除 provider、插件关联、会话等操作会先弹出确认。 +- 修复 Computer Use 设置在 Python 3.8 环境下的兼容性问题。 +- 修复 Ink 主界面 resize 后可能残留旧内容、出现 ghosting 的显示问题。 +- 修复标签拖拽迁移后关闭按钮可见性下降的问题。 +- 修复旧版 macOS 下应用图标显示成方形,以及桌面端图标预览和实际打包图标不一致的问题。 +- 优化更新提示,不再显示误导性的 `0%` 进度,并支持按版本记住“稍后再说”的选择。 + +## 其他说明 + +- 桌面端的安装配置入口已从旧的 Install Center 收敛到更稳定的宿主机终端、`claude-haha` CLI 和对应设置页中。 +- Windows 安装包和发布产物命名做了整理,减少安装时的歧义和误判成本。 +- 文档发布流程已补齐锁文件和 Node 版本约束,避免依赖更新后 docs workflow 因 `npm ci` 失败。 +- GitHub Release 正文继续以 `release-notes/v0.1.6.md` 作为来源,发布时无需再手动复制 Markdown。 + +## 安装说明 + +### macOS + +首次打开如果提示“已损坏”或“无法验证开发者”,请执行: + +```bash +xattr -cr /Applications/Claude\ Code\ Haha.app +```