# 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 ```