Claude Code Haha v0.2.2
这是一个以 仓库工作流、Worktree 隔离、macOS 通知稳定性和桌面运行时健壮性为主的版本。
相比 v0.2.1,本次最大的变化是把桌面端的「仓库感知」能力真正落地:从仓库上下文启动控制栏、Worktree 隔离启动,到桌面会话与 CLI worktree 的身份对齐,桌面端现在可以更安全、更准确地在多分支和多 worktree 场景下发起和标识会话。与此同时,macOS 通知调度、provider 运行时隔离、定时任务和 Computer Use 的稳定性问题也得到了集中修复。
Highlight
- 桌面仓库工作流成型:启动上下文控制栏统一展示仓库、分支/worktree 选择,配套 worktree 隔离保护避免多分支并发操作产生冲突。
- Worktree 会话身份对齐:桌面会话 badge 现在优先从原生 worktree 身份读取,再从 CLI transcript 状态恢复,保证会话与对应代码分支的关联更准确。
- macOS 通知架构稳定:通知调用从 invoke 线程迁移到 main queue,构建产物签名身份保持稳定,彻底消除 macOS 通知随机失效的问题。
- Provider 运行时更安全:Bearer provider 不再继承本地 API Key 环境变量,桌面端每个会话独立维护 provider runtime,避免多会话互相污染。
- Computer Use 和定时任务能力补强:Computer Use 开关状态更稳定,定时任务现在通过桌面 sidecar 正确路由,并支持独立 provider runtime 配置。
主要更新
- 新增桌面端仓库启动上下文控制栏:空白聊天 tab 展示仓库路径、分支/worktree 选择器,以及一键启动按钮,让用户在发送首轮消息前就能明确指定工作上下文。
- 桌面分支启动现在通过 worktree 隔离保护,避免在同一工作目录下并发启动不同分支会话时产生冲突。
- 桌面会话与 CLI worktree 身份对齐:会话 badge 优先从原生 worktree 信息读取,CLI 初始化完成前从 transcript 状态恢复,保证跨重启的 badge 一致性。
- 内置 workflow agent 从内部实验状态对外开放,用户可以直接使用工作流编排能力。
- 新增 Computer Use 可选项:用户可以在设置中选择退出内置 Computer Use bundle,按需管理 desktop automation 依赖。
- 桌面通知新增会话路由能力:权限请求、任务通知和长任务回复现在可以精确导航到对应的目标会话,而不是打开通用入口。
- 定时任务现在支持独立指定 provider runtime,任务执行时不再强制依赖全局 provider 设置。
- 质量门禁补强:PR 质量验证流程具备自执行能力,gate 结果可观测、可归档,提升 release 前的可信度。
问题修复
- 修复 Bearer provider 会继承本地
ANTHROPIC_API_KEY等环境变量的问题;Bearer 类型 provider 现在严格使用自身配置的 token,不再意外透传本机 key。 - 修复桌面 provider runtime 在多会话场景下共享导致互相污染的问题;每个会话现在维护独立的 provider runtime 实例。
- 修复 macOS 通知调用在非主线程执行导致随机失效的问题;通知调用现在通过 main queue 调度,dispatch 不再阻塞 invoke 线程。
- 修复 macOS 构建产物签名身份在多次打包后不稳定,导致通知权限偶发失效的问题。
- 修复桌面端 Computer Use 开关在任务 modal 中状态不稳定(展开/收起后可能意外重置)的问题。
- 修复配置变更触发的 CLI 重启不再被误判为用户新消息轮次。
- 修复桌面启动时显式选择的 runtime 在某些路径下被覆盖丢失的问题;用户手动选择的 runtime 现在在整个会话周期内保持稳定。
- 修复定时任务未通过桌面 sidecar 路由,导致在某些配置下无法正确执行的问题。
- 修复仓库启动上下文控制栏 UI 细节:launch chips 布局更紧凑,控制栏不再因内容过长溢出单行,空会话也能正确展示控制栏。
- 修复桌面 session tab 标题在会话运行期间不同步更新的问题。
- 修复本地开发构建下桌面 UI 状态与实际 CLI 状态不一致,导致调试困难的问题。
- 修复 IM 聊天在对应桌面会话已被删除后仍尝试复用,导致 IM 消息无响应的问题;IM 通道现在会检测会话有效性并重建绑定。
- 修复桌面应用启动时可能同时运行多个实例的问题;现在会强制单实例,新启动会激活已有窗口。
- 修复升级过程中因旧 persistence 状态残留导致崩溃的问题,并补充了安全的 Doctor 恢复路径供升级失败时使用。
- 修复自动生成的会话标题偶发格式异常(含多余引号或非预期字符)的问题。
- 修复终端 tab 在启动失败时错误信息未能保持可见的问题。
- 修复新激活的桌面 tab 在某些情况下未能滚动到可见区域的问题。
- 修复将普通文件夹路径误判为"仓库异常警告"的问题,路径识别逻辑更严格。
- 修复桌面 session 流式输出状态在多会话切换时未被隔离,导致 loading 状态串台的问题。
- 修复 task modal 中 model selector 被容器裁剪导致下拉列表不完整显示的问题。
- 修复自定义 provider 的 thinking 参数设置在会话重载后被重置的问题。
- 修复 local proxy 在处理真实 provider 响应时 tool call 解析异常的问题。
测试
- 新增桌面仓库启动就绪态的等待逻辑测试,确保 worktree launch 在 CLI 准备好之前不会误报成功。
- 质量门禁结果现在写入结构化 artifact,方便 CI 和维护者追溯 gate 执行历史。
其他说明
- worktree 启动模式现在可以在 UI 中直接切换,不再需要手动修改配置。
- GitHub Release 正文继续以
release-notes/v0.2.2.md作为来源,发布时无需再手动复制 Markdown。 - Bearer provider auth token 隔离修复属于安全改进,升级后本地 API Key 不会再意外被转发给第三方 provider endpoint。
- 如果升级后遇到应用无法启动或持续白屏,可以尝试删除
~/.claude/cc-haha/目录后重启(注意:这会清除本地 Provider 配置,聊天记录和项目文件不受影响);如果问题由 localStorage 导致,可以在 DevTools Console 执行localStorage.clear()后刷新。
安装说明
macOS
首次打开如果提示"已损坏"或"无法验证开发者",请执行:
:::bash
xattr -cr /Applications/Claude\ Code\ Haha.app