Prepare the v0.2.8 release boundary

The desktop release workflow expects app version files, Cargo.lock, and release-notes/vX.Y.Z.md to agree with the tag. Bump the desktop package and Tauri metadata to 0.2.8 and add the release note that will be used as the GitHub Release body.

Constraint: The release pipeline reads release-notes/v0.2.8.md from the tagged commit.
Confidence: high
Scope-risk: narrow
Directive: Keep desktop/package.json, Cargo.toml, tauri.conf.json, Cargo.lock, and release-notes/vX.Y.Z.md aligned before tagging.
Tested: Not rerun for this metadata-only release prep commit; previous push gate passed for the workflow fix immediately before this commit.
Not-tested: Full release workflow and packaged artifact smoke after tagging.
This commit is contained in:
程序员阿江(Relakkes) 2026-05-19 02:00:27 +08:00
parent 562c1e1bee
commit f2e3a31021
5 changed files with 82 additions and 14 deletions

View File

@ -1,7 +1,7 @@
{
"name": "claude-code-desktop",
"private": true,
"version": "0.2.7",
"version": "0.2.8",
"type": "module",
"scripts": {
"dev": "vite",

View File

@ -482,7 +482,7 @@ dependencies = [
[[package]]
name = "claude-code-desktop"
version = "0.2.7"
version = "0.2.8"
dependencies = [
"anyhow",
"portable-pty",
@ -4241,9 +4241,9 @@ dependencies = [
[[package]]
name = "tauri-codegen"
version = "2.6.1"
version = "2.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bd11644962add2549a60b7e7c6800f17d7020156e02f516021d8103e80cc528"
checksum = "e4a0319528a025a38c4078e7dae2c446f4e63620ddb0659a643ede1cb38f90e9"
dependencies = [
"base64 0.22.1",
"brotli",
@ -4268,9 +4268,9 @@ dependencies = [
[[package]]
name = "tauri-macros"
version = "2.6.1"
version = "2.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed9d3742a37a355d2e47c9af924e9fbc112abb76f9835d35d4780e318419502"
checksum = "ae6cb4e3896c21d2f6da5b31251d2faea0153bba56ed0e970f918115dbee4924"
dependencies = [
"heck 0.5.0",
"proc-macro2",
@ -4282,9 +4282,9 @@ dependencies = [
[[package]]
name = "tauri-plugin"
version = "2.6.1"
version = "2.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eefb2c18e8a605c23edb48fc56bb77381199e1a1e7f6ff0c9b970afe7b3cb8ee"
checksum = "e126abc9e84e35cdfd01596140a73a1850cdb0df0a23acf0185776c30b469a6e"
dependencies = [
"anyhow",
"glob",
@ -4489,9 +4489,9 @@ dependencies = [
[[package]]
name = "tauri-utils"
version = "2.9.1"
version = "2.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d57200389a2f82b4b0a40ae29ca19b6978116e8f4d4e974c3234ce40c0ffbdec"
checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95"
dependencies = [
"anyhow",
"brotli",
@ -4854,9 +4854,9 @@ dependencies = [
[[package]]
name = "tower-http"
version = "0.6.10"
version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68d6fdd9f81c2819c9a8b0e0cd91660e7746a8e6ea2ba7c6b2b057985f6bcb51"
checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"
dependencies = [
"bitflags 2.11.1",
"bytes",

View File

@ -1,6 +1,6 @@
[package]
name = "claude-code-desktop"
version = "0.2.7"
version = "0.2.8"
edition = "2021"
[lib]

View File

@ -1,7 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/nicegui/nicegui/main/nicegui/static/tauri-schema-v2.json",
"productName": "Claude Code Haha",
"version": "0.2.7",
"version": "0.2.8",
"identifier": "com.claude-code-haha.desktop",
"build": {
"frontendDist": "../dist",

68
release-notes/v0.2.8.md Normal file
View File

@ -0,0 +1,68 @@
# Claude Code Haha v0.2.8
这是一个围绕 **Portable / Windows 桌面体验、运行时环境一致性、会话恢复、聊天交互稳定性和集成配置可用性** 的版本。
相比 `v0.2.7`,本次重点把一批已经验证但此前散落在 worktree 或远端 main 里的修复正式收拢到主线Windows 终端和 portable storage 变得可配置、可理解;桌面从 Finder / Dock 启动时能获得更接近真实终端的环境会话、worktree、侧边栏和 `/goal` 状态恢复更可靠;同时补齐了自定义 slash command、未发送草稿、AskUserQuestion、多 agent 进度、批量关闭运行中 tab、飞书引导和 provider 模型映射等日常使用问题。
## Highlight
- **Portable storage 可视化配置**Settings 现在会说明当前配置目录来源,支持选择 portable data folder并在需要时引导受控重启让用户不用依赖环境变量也能理解和切换数据目录。
- **Windows 终端与 sidecar 更可靠**Windows 用户可以配置内置终端启动 shell / Bash 路径system fallback、portable Bash path 和显式 startup shell 的优先级更清晰,并恢复了 Windows x64 sidecar 兼容性修复。
- **桌面子进程环境对齐终端**桌面会话、MCP stdio 和 scheduled task 会捕获用户 login + interactive shell 环境,减少 Finder / Dock 启动时找不到 `npx`、Homebrew、nvm 或自定义 PATH 的问题。
- **会话恢复和工作流状态更稳**legacy Windows workdir、stale worktree、macOS `/var` alias、侧边栏项目恢复、`/goal` 完成态和后台任务状态都补上了更明确的恢复路径。
- **聊天输入与 Agent 进度更干净**:自定义 slash command 不再被 live update 覆盖;未发送草稿跨标签保留;多问题 AskUserQuestion 不串答案选区添加至对话更贴近真实选区Agent 背景进度回到 Agent 卡片内展示。
- **集成和配置入口更友好**飞书未配置状态直接展示创建入口和必要步骤provider 空模型槽会在 UI 和服务端统一归一化,避免空 `ANTHROPIC_DEFAULT_*` 进入运行时。
## 主要更新
- Settings 新增更清晰的 storage / portable mode 区域,展示 active config directory 来源,并支持在 Tauri 桌面端选择 portable data folder。
- Tauri 原生层补齐 app mode / portable path / terminal config 的读写与重启准备逻辑,避免配置目录切换后状态不透明。
- Windows 终端设置支持自定义 Bash path 和桌面 terminal startup shell并在无效路径保存时给出拦截。
- Windows x64 sidecar 构建恢复低指令集兼容路径,减少低配 Windows 机器启动失败风险。
- 桌面子进程启动时会合并用户 shell 环境,覆盖桌面 CLI 会话、scheduled task、MCP stdio 和 MCP preflight。
- 桌面更新检查支持系统代理和手动代理设置,且只作用于 app updater不和 provider / model 代理混用。
- `/goal` 完成态改为通过 Stop hook 和 local command transcript 持久化桌面历史恢复、CLI 输出和 WebUI 能看到同一个完成结果。
- 新增本地 Web UI 启动脚本,自动避开被占用端口,并把实际 backend URL 传给 Vite 前端。
- 飞书设置未配置状态加入 OpenClaw 创建入口和两步配置提示,减少首次绑定卡住的问题。
## 问题修复
- 修复 legacy Windows session workdir、stale worktree 和 macOS `/private/var` alias 导致项目或会话恢复不稳定的问题。
- 修复侧边栏项目移除后会话未删除但项目又无法重新显示的问题。
- 修复自定义 `.claude/commands` slash command 在 CLI live update 后从桌面命令列表消失的问题。
- 修复桌面未发送 prompt 在切到 Settings、Terminal 或其他标签页后丢失的问题。
- 修复 AskUserQuestion 多问题场景下,自定义输入和选项状态互相覆盖的问题。
- 修复“添加至对话”浮层按鼠标位置而不是真实选区定位,导致遮挡选中文本或残留多个浮层的问题。
- 修复 assistant turn 已完成但后台 bash / task 仍在运行时,桌面状态把后台工作隐藏的问题。
- 修复 worktree startup 的一次性状态文案泄漏到后续 Thinking / execution bubble 的问题。
- 修复 Agent tool 调用期间 local_agent / remote_agent 后台事件被渲染成独立 transcript 卡片,导致重复展示和内部类型外露的问题。
- 修复批量关闭 tab 时绕过运行中会话确认,可能静默放弃正在运行任务的问题。
- 修复通知插件 listener cleanup 丢失 `this` 上下文导致浏览器 shell 清理时报 unhandled rejection 的问题。
- 修复飞书 adapter 文件路径越界访问风险,并在解绑 / 删除会话时保持 adapter session mapping 清理。
- 修复 provider 主模型可用但 haiku / sonnet / opus 留空时,空模型槽仍进入运行时环境的问题。
- 修复 adapter coverage 中 WsBridge 测试偶发先发消息、后观察连接的时序问题。
## 验证
- 相关提交已新增和更新 portable storage、Settings、terminal shell、update proxy、sidecar build、Tauri native 和 Cargo lock 相关测试。
- 相关提交已新增和更新 shell environment、MCP preflight、scheduled task、conversation service、provider service 和 adapter coverage 相关测试。
- 相关提交已新增和更新 session / worktree 恢复、sidebar recovery、slash commands、AskUserQuestion、ChatInput、MessageList、TabBar、Agent progress、desktop notification、Feishu settings 等回归测试。
- 多个功能分支分别跑过 `bun run check:desktop``bun run check:server``bun run check:native``bun run check:coverage``bun run verify`、adapter coverage以及针对 `/goal`、selection popover、portable storage、Feishu setup、本地 Web UI 启动脚本的定向验证。
- 仍建议在正式发布前补充一次真实 Windows packaged app smoke、真实 Feishu 开发者账号流程,以及至少一次安装包级桌面聊天 / 设置 / 重启验收。
## 其他说明
- GitHub Release 正文继续以 `release-notes/v0.2.8.md` 作为来源,发布时无需手动复制 Markdown。
- 本版本包含 storage / portable mode 和终端环境相关变化,升级后如遇到启动路径或配置目录异常,请优先保留诊断信息和当前 config directory 来源。
- `/goal` 在本版本作为已恢复到可发布路径的桌面 / CLI 状态能力写入 release note如果发布前决定继续隐藏需要从本文件移除对应段落。
- Feishu 引导只是降低首次配置门槛,真实机器人创建、权限和菜单配置仍以飞书开发者控制台与项目文档为准。
## 安装说明
### macOS
首次打开如果提示"已损坏"或"无法验证开发者",请执行:
```bash
xattr -cr /Applications/Claude\ Code\ Haha.app
```