Skip to content

Releases: NanmiCoder/cc-haha

Claude Code Haha v0.2.8

18 May 20:27

Choose a tag to compare

Claude Code Haha v0.2.8

这是一个围绕 /goal 目标管理新功能、Portable / Windows 桌面体验、运行时环境一致性、会话恢复和聊天交互稳定性 的版本。

相比 v0.2.7,本次最重要的变化是正式新增 /goal 目标管理能力:用户可以在 CLI、桌面端或 WebUI 中创建目标,运行中的目标会在桌面端保持可见,完成结果会进入对话历史并在刷新或恢复会话后继续保留。除此之外,本次也把一批此前散落在 worktree 或远端 main 里的修复正式收拢到主线:Windows 终端和 portable storage 变得可配置、可理解;桌面从 Finder / Dock 启动时能获得更接近真实终端的环境;会话、worktree、侧边栏恢复更可靠;同时补齐了自定义 slash command、未发送草稿、AskUserQuestion、多 agent 进度与结果展示、批量关闭运行中 tab、飞书引导和 provider 模型映射等日常使用问题。

Highlight

  • 新增 /goal 目标管理/goal 现在作为正式功能提供目标创建、运行中目标展示和完成结果留痕;完成态通过 Stop hook 持久化到 transcript,桌面端把运行中的 goal 放在紧凑 header,已完成 goal 回到聊天历史里展示。
  • 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、侧边栏项目恢复和后台任务状态都补上了更明确的恢复路径。
  • 聊天输入与 Agent 展示更干净:自定义 slash command 不再被 live update 覆盖;未发送草稿跨标签保留;多问题 AskUserQuestion 不串答案;选区添加至对话更贴近真实选区;Agent 背景进度回到 Agent 卡片内展示,完成结果优先展示可读报告,不再暴露原始 transport JSON。
  • 集成和配置入口更友好:飞书未配置状态直接展示创建入口和必要步骤;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 目标管理入口,支持创建目标、跟踪当前目标状态,并把完成结果作为对话历史的一部分保留下来。
  • 桌面 /goal UI 将运行中的目标显示在紧凑 header strip,完成目标进入 conversation flow,避免目标状态占用过多聊天空间。
  • /goal 完成态通过 Stop hook 和 local command transcript 持久化,CLI、headless、桌面历史和 WebUI 能看到同一个完成结果。
  • 新增本地 Web UI 启动脚本,自动避开被占用端口,并把实际 backend URL 传给 Vite 前端。
  • Agent / subagent 结果展示会保留终端侧 Markdown 报告;没有报告时,structured fallback 和 text-wrapped JSON 也会格式化成可读结果。
  • 飞书设置未配置状态加入 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 仍在运行时,桌面状态把后台工作隐藏的问题。
  • 修复 /goal 完成结果在刷新或恢复会话后不可见,以及运行中 / 已完成 goal 在桌面 UI 中重复占位的问题。
  • 修复 worktree startup 的一次性状态文案泄漏到后续 Thinking / execution bubble 的问题。
  • 修复 Agent tool 调用期间 local_agent / remote_agent 后台事件被渲染成独立 transcript 卡片,导致重复展示和内部类型外露的问题。
  • 修复 Agent 完成报告被 raw tool_result 覆盖,以及 structured fallback / text-wrapped JSON 在预览和结果弹窗里显示成原始 JSON 的问题。
  • 修复 Agent 分组结果标签格式化在严格 TypeScript 构建下的类型安全问题。
  • 修复批量关闭 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 相关测试。
  • 相关提交已新增和更新 /goal state、Stop hook、headless 命令、CLI transcript、desktop ActiveSession 和 WebSocket memory event 相关测试。
  • 相关提交已新增和更新 shell environment、MCP preflight、scheduled task、conversation service、provider service 和 adapter coverage 相关测试。
  • 相关提交已新增和更新 session / worktree 恢复、sidebar recovery、slash commands、AskUserQuestion、ChatInput、MessageList、TabBar、Agent progress、Agent result formatting、desktop notification、Feishu settings 等回归测试。
  • 多个功能分支分别跑过 bun run check:desktopbun run check:serverbun run check:nativebun run check:coveragebun run verify、adapter coverage,以及真实 /tmp /goal CLI run、WebUI screenshot verification、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 使用和 transcript 恢复验收。
  • Feishu 引导只是降低首次配置门槛,真实机器人创建、权限和菜单配置仍以飞书开发者控制台与项目文档为准。

安装说明

macOS

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.7

16 May 16:15

Choose a tag to compare

Claude Code Haha v0.2.7

这是一个围绕 Project Memory、项目化会话侧边栏、插件热刷新、聊天输入与桌面稳定性 的版本。

相比 v0.2.6,本次把桌面端从“能看到更多能力”继续推进到“能持续使用这些能力”:Memory 变成项目树式资源面板;侧边栏按项目组织会话并持久保存偏好;插件启停、Skills 和 slash command 列表可以热刷新;聊天输入支持拖拽附件和更可读的数学公式渲染;同时补上了一批影响日常使用的滚动、复制、附件、缩放、启动诊断和 IM 完成状态问题。

Highlight

  • Project Memory 变成项目树:Settings 里的 Memory 从分散列表升级为项目优先的文件树,支持真实路径恢复、项目搜索、Markdown 预览跳转,并让聊天中的 memory activity 使用统一的紧凑视觉语言。
  • 项目化会话侧边栏:桌面侧边栏现在按 project root 组织会话,worktree 会话归并到源项目下,项目排序、隐藏、置顶等偏好在桌面和 H5 之间持久同步。
  • 插件和 Skills 热刷新:桌面启停插件后,当前会话、空会话和 /api/skills 能更快看到插件提供的 slash commands / skills,不再需要重启聊天或桌面应用。
  • 聊天输入和阅读体验升级:桌面 composer 支持拖拽附件,Markdown 渲染支持常见数学公式,长聊天和公式密集内容的滚动与渲染成本也进一步降低。
  • 桌面基础体验打磨:新增 Settings UI Zoom 滑杆并和快捷键统一;默认纯白主题;修复复制反馈、空会话布局、tab bar 拥挤、H5 滚动、附件大 payload 和启动白屏诊断。
  • IM 流式卡片更可靠:飞书 / 钉钉卡片更新加上完成兜底,避免流式文本已经刷完但卡片仍停在输入中或阻塞 completion。

主要更新

  • Project Memory 新增服务端 API、桌面 store、Settings 页面、聊天 memory activity 卡片,以及 /memory / /context 导航入口。
  • Memory 项目路径会优先从当前 cwd、session 元数据和真实文件系统恢复,减少中文路径、空格路径和 legacy memory-only 项目显示成短横线或乱码。
  • Memory 设置页改为项目树式导航,移除手动创建 memory 文件和误加的 project actions,让页面专注于浏览、搜索、编辑和预览已有 memory。
  • 桌面侧边栏按项目 root 分组,避免 worktree 会话散落成多个路径;项目排序、隐藏、置顶和组织偏好持久化到 cc-haha 自有配置,并兼容 H5。
  • 新增 Open Project 入口,支持从当前 session workDir 打开 Finder / 已检测到的本机 IDE,并使用本机应用图标;打包态图标 URL 也会正确走 desktop sidecar。
  • General Settings 新增 UI Zoom 控制,并和 Command +Command -Command 0 快捷键共用一套缩放状态。
  • DeepSeek 等 provider 的 thinking 行为改为服从全局 Thinking 设置,并修复 reasoning-before-text 流式事件导致桌面状态显示空档的问题。
  • 插件启停会刷新服务器和活跃 CLI 的 settings / plugin cache,让新会话 slash commands、空会话 skills 和当前会话插件命令保持一致。
  • 桌面附件选择在 Tauri 环境下改为发送本地路径,避免多文件或大文件被内联为 data URL 导致 WebSocket / renderer payload 暴涨。
  • 桌面 composer 支持从系统拖拽文件添加附件,并复用现有 path-only 附件管线,避免为拖拽单独引入大 payload 路径。
  • Markdown 渲染支持常见 LaTeX 数学公式,并针对公式密集的长聊天降低 KaTeX 渲染和 DOM 成本。

问题修复

  • 修复桌面 confirm / alert 权限缺失导致 Superpowers 计划确认或浏览器确认流程卡住的问题。
  • 修复外部 IM、定时任务或其他入口创建的新会话需要重启桌面才可见的问题。
  • 修复聊天选中片段复用时可能被当成文件附件处理的问题。
  • 修复拖拽附件支持后 composer 的 slash / @ 文件弹层被裁剪的问题。
  • 修复 restored chat 自动跳到最新、H5 点击最新消息暴露空白、发送新消息后 transcript 不滚到新 turn 等滚动问题。
  • 修复混合 Markdown、数学公式、代码块、工具输出的长聊天被固定高度虚拟列表撑出空白区域的问题。
  • 修复长桌面会话切换时渲染成本过高的问题,同时避免隐藏会话断开正在运行的 CLI。
  • 修复直接调用 navigator.clipboard 导致部分桌面复制入口成功与否不一致的问题,并为 H5 URL、QR link、workspace path 等复制动作补充 toast 反馈。
  • 修复 Settings 写入和插件状态写入共用 ~/.claude/settings.json 时,旧缓存可能把桌面偏好覆盖回去的问题。
  • 修复 Settings 中 Skills、Plugins、MCP 资源发现和运行时不一致的问题,包括 linked skills、插件 skills 和合并来源 MCP。
  • 修复打包态 Open Project 图标被 CSP 或相对 URL 阻止加载的问题,并避免 macOS stale command shim 让已卸载 IDE 继续显示。
  • 修复 Activity、Memory activity、Goal UI、Zoom slider 在白色 / 深色主题下对比度和视觉风格不一致的问题。
  • 修复启动阶段 React 还没挂载就失败时只剩白屏的问题,现在 HTML 层 watchdog 会显示可复制的诊断信息。
  • 修复 legacy provider 配置迁移时缺乏 cc-haha 专属落点的问题;迁移会导入到 ~/.claude/cc-haha,不会删除原始共享配置。
  • 修复插件 marketplace / cache 清理路径过宽的问题,避免自动删除 managed cache 目录外的用户路径。
  • 修复飞书 / 钉钉流式卡片更新超时、文本已 flush 但最终状态未结束的问题。
  • 修复模型输出里的常见数学公式只能看到 LaTeX 原文的问题,并避免公式密集内容导致聊天渲染成本过高。

验证

  • 相关提交已新增和更新 Project Memory API、Memory Settings、memory event WebSocket、Markdown preview、路径恢复和主题 token 测试。
  • 相关提交已新增和更新 Sidebar 项目分组、desktop UI preferences、Open Project、Settings zoom、plugin hot reload、Skills / Plugins / MCP 发现测试。
  • 相关提交已新增和更新 H5 滚动、copy fallback、附件 path-only、拖拽附件、Markdown 数学公式、startup diagnostics、provider thinking、settings cache、IM card completion 等回归测试。
  • 多个功能分支分别通过过 bun run check:desktopbun run check:serverbun run check:nativebun run check:adaptersbun run check:coveragebun run verify、desktop build,以及针对 Memory、Goal、Zoom、Sidebar、Open Project、H5 滚动和 IM 的浏览器或业务 smoke。

其他说明

  • GitHub Release 正文继续以 release-notes/v0.2.7.md 作为来源,发布时无需手动复制 Markdown。
  • 本版本包含较多桌面状态和本地持久化迁移:升级后如遇到启动异常,请优先保留诊断页内容反馈,不要删除 ~/.claude~/.claude/cc-haha
  • IM 流式卡片修复需要飞书 / 钉钉真实环境才能完整复核;没有对应环境时可先以桌面和 adapter 测试结果作为基础信号。

安装说明

macOS

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.6

13 May 03:36

Choose a tag to compare

Claude Code Haha v0.2.6

这是一个围绕 H5 手机访问安全恢复、桌面会话管理、文件提及搜索和桌面体验细节 的版本。

相比 v0.2.5 的临时放行,本次重新把 H5/LAN 访问收回到显式开启和 token 配对模型里,同时把入口移到独立设置页,方便手机扫码使用。桌面侧补上了批量删除会话、纯白主题、@ 文件搜索一致性,以及一些聊天输入和展示问题的修复。

Highlight

  • H5 安全访问恢复:H5/LAN 访问重新要求本地显式开启,通过 QR 链接携带一次性显示的 token,远程 API、proxy 和 WebSocket 不再裸露。
  • H5 入口更清晰:Settings 新增独立 H5 Access 页面,支持启用确认、生成 QR、复制访问 URL,并更新 README 展示真实手机端体验。
  • 会话批量管理:桌面侧边栏新增批量管理模式,支持全选、分组选择、Shift 范围选择和删除已选会话。
  • @ 文件搜索对齐 CLI:桌面文件提及改为 git-first 搜索,遵守项目 ignore 规则,减少 node_modules、构建产物等噪声。
  • 桌面体验打磨:新增纯白主题,刷新品牌图标,修复长 URL 撑破聊天布局和多 tab 草稿串台。

主要更新

  • H5 访问策略区分本地可信请求、内部 SDK 请求和远程浏览器请求;H5 关闭时远程能力接口默认失败,开启后远程能力接口必须使用 H5 token。
  • H5 控制面保持本地桌面专属,远程浏览器不能自己开启或修改 H5 访问配置。
  • 浏览器启动会校验 /health 响应形状,避免把 Vite SPA fallback 误当成后端可用。
  • Settings 将 H5 Access 从 General 中独立出来,并补齐 token 生成、QR、复制 URL、错误提示和 public URL 配置。
  • 侧边栏批量管理保留明确的“删除已选”路径,移除容易误解的按天数快捷清理,并改善连续选中行的视觉区分。
  • @ 文件提及搜索使用 tracked files、untracked files with exclude-standard,以及非 git 目录下的 ripgrep fallback;目录候选也从这些结果中推导。
  • 文件提及菜单的路径显示和插入行为进一步对齐 CLI,减少只显示文件名导致的歧义。
  • 纯白主题覆盖更多桌面表面,避免 warm classic 颜色残留到中性白色工作区。
  • 桌面和文档资源刷新为新 logo,并修复 app icon 在桌面里出现双层背景的问题。

问题修复

  • 修复长 URL 或长 Markdown 链接把用户消息气泡撑出聊天列的问题。
  • 修复多个会话 tab 之间未发送草稿和附件状态互相泄漏的问题。
  • 修复 OpenAI-compatible Responses API 缺失或返回不同 usage 字段时,usage 转换不够兼容的问题。
  • 修复 H5 远程来源、CORS、SDK 路由和本地 loopback 调用之间边界不清导致的访问误判。
  • 修复 H5 启动失败时后续 API 报 JSON parse 之类不直观错误的问题。

验证

  • 已新增和更新 H5 access policy、auth、CORS、Settings、desktop runtime 相关回归测试。
  • 已新增和更新 session batch delete、sidebar batch mode、ChatInput、UserMessage、FileSearchMenu、filesystem API 和 OpenAI-compatible usage fallback 相关测试。
  • 相关提交已分别跑过 bun run check:serverbun run check:desktopbun run check:coveragebun run verify、桌面 build、docs build,以及针对 H5、批量管理、草稿隔离和图标显示的浏览器 smoke。

其他说明

  • GitHub Release 正文继续以 release-notes/v0.2.6.md 作为来源,发布时无需手动复制 Markdown。
  • H5 是给个人或可信团队使用的浏览器访问入口,不是公开多租户登录系统;请只在可信网络和可信来源下开启,并妥善保存生成的 token。

安装说明

macOS

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.5

11 May 10:09

Choose a tag to compare

Claude Code Haha v0.2.5

这是一个紧急修复版本,用于临时放行 H5 访问,避免 token 鉴权继续影响聊天使用。

Highlight

  • 临时关闭 H5 token 鉴权:H5/LAN 访问默认不再要求 Authorization header,避免升级后因 token 状态不一致导致聊天或启动失败。

问题修复

  • 服务端不再因为绑定 0.0.0.0 自动开启鉴权;只有显式传入 --auth-requiredSERVER_AUTH_REQUIRED=1 时才要求鉴权。
  • 浏览器 H5 启动不再主动读取或校验 H5 token,远程 URL 也会按开放访问路径连接。
  • 设置页先隐藏 H5 启用开关、token 预览/重新生成、允许来源配置,只保留公开 URL 配置和复制入口。
  • CORS 在 H5 token 鉴权暂停期间放行浏览器来源,避免跨来源请求继续卡在预检阶段。

验证

  • 已新增和更新服务端回归测试,覆盖 REST、WebSocket、CORS 默认无 token 可访问,以及显式鉴权 opt-in 仍然有效。
  • 已更新桌面 H5 启动和设置页测试,覆盖远程 H5 URL 不再要求 token,以及设置页不再展示 token 控件。
  • 已通过 bun run check:serverbun run check:desktop

安装说明

macOS

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.4

11 May 05:56

Choose a tag to compare

Claude Code Haha v0.2.4

这是一个紧急修复版本,用于解决 v0.2.3 升级后部分桌面用户启动失败的问题。

Highlight

  • 修复桌面启动失败:修复 v0.2.3 H5/LAN 访问改动引入的本地服务鉴权回归,避免桌面端启动时卡在 Missing Authorization header

问题修复

  • 修复桌面 sidecar 绑定局域网地址后,Tauri 桌面 WebView 访问本机 127.0.0.1 控制 API 被误判为远程 H5 请求的问题。
  • 保留 H5 远程访问的 token 和 CORS 边界:只有 Tauri WebView 控制本机 loopback sidecar 时可以免 H5 token,LAN 或公网 H5 访问仍然需要正确授权。

验证

  • 已新增服务端回归测试,覆盖 Tauri WebView origin 启动访问本机 sidecar 不再触发 H5 token 要求。
  • 已确认 H5 token、CORS、WebSocket 鉴权相关服务端测试仍然通过。

安装说明

macOS

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.3

10 May 15:10

Choose a tag to compare

Claude Code Haha v0.2.3

这是一个以 H5 手机访问、桌面用量统计、回复语言控制和 Computer Use 配置稳定性为主的版本。

相比 v0.2.2,本次最大的变化是把桌面端的 H5 浏览器访问从实验方案推进到可配置、可认证、可在手机上使用的完整链路:用户可以在桌面设置里开启 H5、管理访问 token 和允许的来源,并通过局域网或反向代理在手机浏览器里使用聊天界面。同时,桌面端新增了本地 token 用量活动视图,General 设置里可以直接配置回复语言,Computer Use 也补齐了自定义 Python 解释器和虚拟环境重建能力。

这个版本的“问题修复”只聚焦已经发布版本中用户可能实际遇到的问题,例如 Windows / conda 环境下 Computer Use Python 识别失败、聊天滚动和右键菜单交互异常、生成标题带内部标记、上下文用量超过 100%、定时任务启动入口不稳定,以及第三方 provider 缺失 usage 字段导致的兼容性问题。H5 相关的 token、CORS、移动端布局和局域网访问收口属于本次新功能成型过程,放在功能说明里统一表达。

Highlight

  • H5 手机浏览器访问成型:桌面设置新增 H5 开关、一次性 token、来源白名单和访问 URL,支持局域网手机访问,也支持反向代理场景。
  • 手机端聊天体验重做:H5 在手机宽度下切换为聊天优先布局,侧边栏变成抽屉,模型、权限、项目和 worktree 选择器改用移动端底部面板。
  • 远程访问安全边界补强:H5 REST、WebSocket、CORS 和健康检查统一走 H5-aware auth,远程 token 不会泄漏到本地浏览器会话。
  • Token 用量活动视图:Settings 新增本地 Claude Code CLI transcript 用量统计,可以查看最近会话、消息、工具、模型 token 和每日活动。
  • 回复语言可视化配置:General 设置新增回复语言选择器,直接写入 ~/.claude/settings.json 的 CLI language 配置。
  • Computer Use Python 更可控:用户可以指定自定义 Python 解释器,解决 Windows / conda 等环境下自动识别失败的问题,并在切换解释器后可靠重建对应虚拟环境。

主要更新

  • 新增 H5 访问控制面:用户可以在桌面 General 设置里开启 H5、生成 / 复制 token、配置允许来源,并获取浏览器访问地址。
  • 远程 H5 访问接入服务端认证和 CORS:API、proxy、WebSocket、health 响应和预检请求统一识别 H5 token 与来源限制,避免直接暴露桌面 API。
  • 打包后的桌面 sidecar 支持绑定局域网地址,同时桌面控制 URL 仍保留在 loopback,手机可以通过同一 Wi-Fi 访问 H5 页面。
  • 浏览器启动流程新增 H5 凭据入口:非本地 backend 需要输入 H5 token,本地 Tauri 和 localhost 开发路径保持原有行为;远程 token 不会跟随后续本地浏览器会话。
  • H5 手机布局切换为聊天优先:移动端隐藏 desktop-only 工作区和终端面板,侧边栏默认收起,composer 和选择器使用更适合触控的布局,并压缩顶部信息区给聊天内容留出更多空间。
  • 新增共享 MobileBottomSheet 交互,用于手机端模型、权限、项目、分支和 worktree 等选择器,避免桌面 popover 在窄屏上不可用。
  • H5 局域网访问会优先使用当前自动检测到的 LAN URL,避免打包应用重启或端口变化后继续展示旧地址;显式配置的公网反向代理地址仍会保留。
  • 手机 H5 的空会话 composer 和 workspace diff 展示做了窄屏适配,生成代码 diff 时可以横向滚动查看长行,不会把代码强行压进手机宽度。
  • 新增桌面 Token usage / Activity 页面,从本地 CLI transcript 汇总 session、message、tool、model token、subagent token 和每日活动数据。
  • General 设置新增回复语言选择器,支持预设语言写入 CLI language 配置,让后续会话默认按指定语言回复。
  • Computer Use 设置新增自定义 Python interpreter 路径,后端环境检查和 venv 创建会优先使用用户指定的解释器,并用 marker 文件记录 venv 对应的解释器,避免 conda / pyenv / venv 包装路径判断不准。
  • 定时任务结果摘要改用共享 Markdown 渲染器展示,链接、列表、加粗、代码等格式不再以原始 Markdown 文本显示。
  • README 首页改为突出桌面应用作为主要入口,更新桌面工作流、Token usage、H5 access 和 worktree 变更截图,同时保留源码启动说明。

问题修复

  • 修复 Windows / conda 等环境下 Computer Use 自动 Python 发现不可靠的问题(对应 issue #331);用户现在可以在设置中手动指定 Python 路径。
  • 修复切换 Computer Use 自定义 Python 后仍复用旧 venv 状态的问题;现在会记录实际选择的解释器路径,并在解释器变化时重建依赖环境。
  • 修复会话 tab 切换或阅读历史时滚动位置丢失的问题;现在会保留每个 session 的滚动上下文,并在暂停自动跟随时显示跳到底部按钮。
  • 修复流式输出时 jump to latest 按钮因程序滚动事件短暂闪烁的问题。
  • 修复右键点击侧边栏会话项时上下文菜单不出现的问题,折叠侧边栏下也能正确打开菜单。
  • 修复 generated session title 可能包含内部 XML / slash-command 元数据的问题;桌面显示和服务端生成路径共用标题清理逻辑。
  • 修复上下文 token 用量在某些大窗口模型下超过 100% 的显示问题;当前上下文总量会按模型 context window clamp。
  • 修复 AskUserQuestion 没有尊重 CLI multiSelect 标记的问题;只有显式 multi-select 的问题才允许多选,并会把响应发回产生 prompt 的 session。
  • 修复自定义 provider 或 Anthropic-compatible fallback 响应缺失 usage 字段时 transcript、side query 或成本统计报错的问题。
  • 修复创建、编辑或删除 custom agent 后 /agents 和 TUI agent wizard 仍读取缓存旧定义的问题。
  • 修复 scheduled task 子进程可能继承陈旧 CLAUDE_CODE_ENTRYPOINT 的问题;默认任务启动入口现在稳定走 SDK CLI。
  • 修复继续已 materialized 的 worktree 会话时重复显示 worktree startup 状态、并重复传入 worktree 创建参数的问题。
  • 修复 project context chip 在紧凑模式下左对齐的问题。

文档与测试

  • 新增 docs/desktop/06-h5-access.md,说明 H5 的 opt-in 设置、token 使用、CORS 来源、局域网访问和反向代理建议。
  • 新增 H5 访问设计与实施计划文档,记录 opt-in 浏览器访问的安全边界和实现拆分。
  • 更新中英文 README,让新用户优先看到桌面端下载、核心工作流和最新截图。
  • 新增 H5 access service、auth、API、CORS、browser bootstrap、mobile layout、settings store、Computer Use Python、Activity stats、session title、AskUserQuestion、MessageList、TaskRunsPanel 等回归测试。
  • 桌面 Token usage 变更跑过 bun run check:desktopbun run check:server;H5 mobile 变更跑过桌面 lint、build、服务端 H5 auth 测试、局域网 URL smoke 和手机 viewport smoke;Computer Use Python 变更跑过后端与桌面设置相关测试。

其他说明

  • GitHub Release 正文继续以 release-notes/v0.2.3.md 作为来源,发布时无需再手动复制 Markdown。
  • H5 是显式开启的个人 / 团队浏览器访问能力,不是公开多租户认证系统;请只配置可信来源,并妥善保管生成的 token。
  • 发布 workflow 去掉了 tag 发布时的 release preflight quality gate;发版前仍应在维护者机器上按需运行本地 bun run verify 或 release gate。
  • 如果通过手机访问 H5,请优先使用同一局域网地址;反向代理部署时需要保留 WebSocket upgrade 和路径前缀。

安装说明

macOS

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.2

08 May 16:52

Choose a tag to compare

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

首次打开如果提示"已损坏"或"无法验证开发者",请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.1

05 May 14:52

Choose a tag to compare

Claude Code Haha v0.2.1

这是一个以 IM 接入、桌面通知、上下文统计和桌面运行稳定性为主的版本。

相比 v0.2.0,本次最大的变化是把桌面端的外部协作链路做实:微信和钉钉成为一等 IM 通道,移动端权限审批更顺手,IM adapter sidecar 更稳定;同时桌面系统通知、诊断导出、上下文用量和终端工作目录也做了集中补强。

这个版本也修复了一批 release 前人工测试中最容易踩到的问题:微信回复不可见、钉钉解绑不清凭据、IM 权限审批在手机上难操作、Telegram sidecar 残留导致收不到消息、桌面 context 用量在回复后下降、空会话显示误导性 loading、macOS 通知权限看似成功但没有真实系统通知等。

Highlight

  • IM 接入进入可用阶段:微信和钉钉成为一等 IM 通道,飞书、Telegram、微信、钉钉的配对、权限审批和默认项目行为进一步统一。
  • IM sidecar 更稳定:各 IM 平台独立 sidecar 运行,并在启动前清理 stale adapter,降低 Telegram 长轮询被旧进程抢占的问题。
  • 桌面通知更可信:macOS 通知改为原生 UserNotifications 桥接,权限、测试通知和前台展示都能被真实验证。
  • 上下文用量更接近真实会话:/context、桌面 composer 和离线 transcript fallback 统一统计口径,避免回复后用量反而下降。
  • 诊断与启动错误更可排查:CLI 启动失败、runtime 退出和桌面 API 错误会保留更有用的脱敏上下文。

主要更新

  • 新增微信 IM adapter:支持扫码绑定、配对码、文本消息、图片 / 文件候选提取、回复发送、typing 状态和权限审批。
  • 新增钉钉 IM adapter:支持 Stream 接入、扫码注册、AI Card 流式输出、权限卡片模板,以及没有模板时的文本授权 fallback。
  • IM 接入设置页补齐飞书、微信、钉钉、Telegram 四个平台的配置入口、配对管理、默认项目和中英文文案。
  • IM 权限审批对移动端更友好:单个待审批请求可以用短回复完成 allow / always / deny,多请求并发时仍保留 requestId 防歧义。
  • 每个 IM 平台现在以独立 sidecar 进程运行,避免 Telegram、飞书、微信、钉钉共享进程时互相影响 SDK loop 或长轮询消费。
  • 桌面端新增系统通知能力:权限请求、定时任务完成和长任务最终回复都可以触发桌面通知,并复用去重和冷却逻辑。
  • 桌面端 composer 新增更准确的上下文用量显示,支持活跃 CLI inspection、空会话初始状态、断开会话的 transcript fallback 和模型窗口变化。
  • 终端页和会话内终端会优先在用户当前工作目录打开,提升为独立终端 tab 后仍保留 cwd。
  • 诊断页可以查看最近错误、复制错误摘要、打开日志目录、清理日志,并导出脱敏诊断包。

问题修复

  • 修复钉钉机器人解绑后 Client ID / Secret 仍残留的问题;现在通过显式 unbind endpoint 清理凭据,不再依赖会丢失 undefined 字段的通用配置合并。
  • 修复微信 agent 回复不可见的问题:发送消息和 typing API 现在会校验 iLink 业务 ret code,失败时会重试或把队列错误反馈到会话。
  • 修复微信长任务期间 typing 状态过早消失的问题,长工具执行期间会持续维护 typing,并在完成或失败后取消。
  • 修复钉钉权限请求后最终答案可能更新到旧 AI Card 上方的问题;权限请求现在会结束当前流式卡片,审批后新建卡片展示结果。
  • 修复 Telegram 等 IM adapter 因旧 sidecar 残留或多平台共享进程导致长轮询被抢占的问题;桌面端会清理 stale sidecar,并把每个 IM 平台拆成独立 sidecar 进程。
  • 修复 IM adapter credential 文件权限和配对文件写入安全问题,配置目录和凭据文件会尽量使用 owner-only 权限。
  • 修复空桌面会话 context snapshot 全为 0 时显示成 0% 的误导状态。
  • 修复桌面 context 用量在 assistant 回复完成后下降的问题;统计会把最新输出 token 纳入下一轮上下文,并用本地估算作为下限。
  • 修复断开会话的 transcript fallback 与 live /context 统计口径不一致的问题,现在复用同一套当前上下文 token 总量逻辑。
  • 修复 prewarm CLI 还没连上 SDK socket 时就发送 context inspection,导致 composer spinner 或首次 context 请求超时的问题。
  • 修复空会话误报 “CLI session is not running” 的问题,未发送首轮消息时会保持更明确的待计算状态。
  • 修复会话删除失败后可能污染后续 chat startup 的问题,删除文件失败会回滚删除标记,避免旧会话存在但无法继续启动。
  • 修复 desktop rewind resume 的稳定性问题,rewind 前会等待 CLI 退出并排空输出,空 transcript 占位会话仍保留 canonical workDir。
  • 修复桌面权限 prompt 在切换权限模式后可能不可见的问题,权限模式变更会重启 CLI 并保持 prompt 可见。
  • 修复 macOS 通知插件权限状态不可信的问题;macOS 现在通过原生 UserNotifications 获取授权、展示前台通知并发送测试通知。
  • 修复底层 auth env 策略不一致和 secret 误展示问题,避免 Settings JSON 编辑时误保存占位符。
  • 修复 /context 对不同模型上下文窗口显示不准确的问题,补齐内置模型窗口解析。

文档与测试

  • 更新微信和钉钉 IM 文档,补充扫码绑定、配对码、默认项目、命令发现和移动端权限审批说明,并加入对应截图。
  • docs/im 总览补齐四个平台的配置入口和安全模型说明。
  • 新增和扩展 context 统计、IM permission、WeChat typing、DingTalk stream state、desktop notifications、adapter config redaction 等回归测试。
  • 本地 PR 质量门禁覆盖 desktop、server、adapters、native 和 docs;真实微信、钉钉、飞书、Telegram 等 IM 平台仍建议维护者在发布前用真实账号做 smoke test。

其他说明

  • GitHub Release 正文继续以 release-notes/v0.2.1.md 作为来源,发布时无需再手动复制 Markdown。
  • PR 质量门禁默认不会调用真实模型;微信 / 钉钉 / 飞书 / Telegram 端到端消息仍需要维护者显式验证。
  • macOS 通知现在默认更保守,用户需要在设置中开启桌面通知,并完成系统授权后才会收到权限请求、任务完成或长任务回复通知。

安装说明

macOS

首次打开如果提示“已损坏”或“无法验证开发者”,请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.2.0

02 May 10:15

Choose a tag to compare

Claude Code Haha v0.2.0

这是一个阶段性版本,重点把最近几个 release 中围绕桌面端 Coding Agent 工作流的能力整合到一起:从 Slash Command、终端标签页、Provider 配置,到工作区文件管理、变更审查、回滚、诊断导出和发布质量门禁,桌面端已经从“能跑 CLI”进一步变成一个更完整的本地 Agent 工作台。

相比 v0.1.9,本次新增的重点是质量门禁和诊断体系:项目现在有 PR、baseline、release 三层质量 gate,可以用真实 provider/model baseline 和桌面端 browser smoke 验证核心 Agent 链路;桌面端也新增了可导出的脱敏诊断包,方便用户在启动失败、provider 错误和运行时异常时提供有效排查信息。同时,本版本继续修复大历史会话卡顿、自定义标题被覆盖、DeepSeek 关闭 thinking 后请求失败、暗色 inspector 亮色面板,以及 Windows 下历史工作区变更丢失等问题。

Highlight

  • 桌面端工作台能力成型:/status/cost/context 可视化 inspector、终端标签页、工作区文件面板、文件预览、聊天上下文文件 chip 和当前轮次变更卡片已经串成完整工作流。
  • 文件变更审查和回滚更可靠:桌面端可以查看本轮和本会话产生的文件变更,在 Git 和非 Git 目录里展示 diff,并通过 checkpoint rewind 回滚到对应用户消息。
  • 第三方 Provider 兼容性明显增强:Provider 配置、Kimi coding endpoint、DeepSeek disabled thinking、WebSearch fallback、旧会话 provider 回退和 thinking 参数一致性都做了集中补强。
  • 桌面端问题排查能力升级:启动失败、运行时退出、WebSocket 异常和 provider 测试失败会进入统一诊断日志,用户可以在设置页复制摘要或导出脱敏诊断包。
  • 发布质量体系落地:新增 PR 影响分析、改动范围 gate、真实模型 baseline、桌面端 browser smoke 和 release gate,让版本发布不只依赖单元测试。

主要更新

  • 新增 PR 质量门禁:根据改动文件自动识别 desktop、server、adapters、docs、release、cli-core 等影响范围,并触发对应检查任务。
  • 新增 PR 影响报告:本地可以运行 bun run check:impact 查看改动区域、建议检查命令、缺失测试信号和高风险路径提示。
  • 新增 PR triage workflow:自动为 PR 添加区域标签,生成风险摘要,并对 CLI core 改动要求 allow-cli-core-change 维护者确认。
  • 新增统一质量门禁命令:bun run quality:prbun run quality:gate --mode baselinebun run quality:gate --mode release 会输出结构化报告到 artifacts/quality-runs/
  • 新增真实模型 baseline:维护者可以用本机 provider/model selector 跑 fixture 任务,验证 agent 的搜索、编辑、失败恢复、跨模块修改和产物生成能力。
  • 新增桌面端 browser smoke baseline:质量门禁可以启动本地 server 和 Vite 桌面端,在真实浏览器里创建会话、选择 provider/model、发送任务,并用文件 diff 和测试结果判断是否通过。
  • 新增 bun run quality:providers:列出本机可用 provider/model selector,避免 release gate 依赖某台机器上的 provider UUID。
  • 新增桌面端诊断设置页:可以查看最近事件、打开日志目录、复制错误摘要、清理日志,并导出诊断包。
  • 新增服务端诊断存储:CLI 启动失败、运行时退出、WebSocket 用户消息失败、provider 测试失败等错误会写入结构化诊断事件。
  • 诊断导出会进行敏感信息清理:不会导出聊天内容、文件内容、完整环境变量、API Key、Bearer token、Cookie 或 OAuth token。
  • README、CONTRIBUTING 和中英文文档新增贡献与质量门禁说明,方便贡献者按项目要求运行本地检查和 live baseline。
  • AGENTS.md 补充质量门禁执行规则,后续 Coding Agent 在声明 PR 或 release ready 前需要运行对应 gate,或明确说明阻塞原因。

最近版本能力整合

  • 桌面端 Slash Command 面板已经支持 /status/cost/context 等会话检查能力,并补齐 /help/clear/compact/plugin 等本地命令处理。
  • 终端能力已经升级为桌面端标签页工作流,可以在桌面端内打开和保留多个终端页签。
  • Provider 设置页补齐 API Key 入口、密钥显示/隐藏、本地 provider 引导,以及接口AI、胜算云、LM Studio、Ollama 等预设配置入口。
  • 右侧工作区文件面板支持浏览项目目录、预览文本和本地图片、查看新增/修改/删除文件,以及把文件或局部内容作为上下文加入聊天。
  • 开始页选择项目目录后会立即创建草稿会话,让文件管理、变更视图、运行时选择和终端工具栏在首轮提问前就可用。
  • 历史会话重载时会把转录里的 @文件路径 恢复成附件 chip,避免用户消息正文里直接露出很长的绝对路径。
  • WebSearch 设置支持自动、Tavily、Brave、Claude 原生和关闭模式,并能在第三方模型不支持原生 server tool 时回退到 Tavily / Brave。
  • 桌面端关闭主窗口后会继续在托盘后台运行,本地 server 和 adapter sidecar 不会因为普通关闭窗口而被直接停止。
  • 桌面端会记住主窗口大小、位置和最大化状态,重启后自动恢复,并在外接显示器变化时避免恢复到屏幕外。

问题修复

  • 修复 DeepSeek / Anthropic 兼容端点在关闭 thinking 时仍携带 effort 参数,导致上游返回 400 的问题;显式 disabled thinking 请求现在不会再发送 effort。
  • 修复第三方 Anthropic 兼容 Provider 在主会话、side query 和 AI 标题生成中 thinking 参数不一致的问题,减少模型能力不匹配导致的请求失败。
  • 修复第三方 Provider 下 WebSearch 可能因为 web_search_20250305 schema、代理层能力或非 Claude 模型名不兼容而不可用的问题。
  • 修复桌面端 /status/cost/context inspector 在暗色模式下仍显示亮色面板的问题,相关面板和 MCP switch 已切换到主题 token。
  • 修复大历史会话导致侧边栏卡顿的问题:会话列表会先按文件修改时间分页,再读取当前页 JSONL,避免一次性解析全部历史会话。
  • 修复自动标题可能覆盖用户自定义会话标题的问题;已有自定义标题时,后续 AI 标题刷新会被跳过。
  • 修复已删除的草稿会话可能被 prewarm 启动流程重新创建的问题,删除会话时会同时停止并标记对应运行时。
  • 修复 CLI 启动或运行时异常退出时错误信息过少的问题,现在会捕获经过脱敏的 stdout、stderr 和 SDK 错误摘要用于 UI 与诊断日志。
  • 修复 Windows 路径大小写和盘符处理导致工作区文件相对路径识别不稳定的问题。
  • 修复历史会话中的工作区变更丢失问题:工作区面板会合并会话工具记录和 file-history checkpoint 快照,即使当前 Git 状态已经变化,也能展示历史轮次产生的变更。
  • 修复非 Git 目录或 Git 状态为空时无法查看会话历史变更的问题,文件变更和 diff 会从会话记录与 file-history 备份中恢复。
  • 修复历史记录里的 task notification 消息可能污染聊天流的问题,恢复会话时会隐藏内部通知消息,并保留 agent 任务完成、失败或停止状态。
  • 修复会话侧边栏初次加载时直接显示“无会话”的闪烁问题,现在会先显示加载状态。
  • 修复旧桌面会话在 provider 配置变更后仍携带过期 provider id,导致 CLI 启动失败或会话不可用的问题;现在会在启动前校验并回退到有效配置。
  • 修复桌面端 rewind 可能因为隐藏消息或可见索引错位而回退到错误 turn 的问题,现在会优先按用户消息 ID 精确定位并校验原始内容。

其他说明

  • .github/pull_request_template.md 新增 PR 摘要、验证和风险确认项,并默认要求 @dosubot 从改动范围、缺失测试、文档影响、桌面启动风险和 CLI core 影响角度 review。
  • .gitignore 新增 artifacts/quality-runs/,避免本地质量门禁报告进入提交范围。
  • 移除已经被跟踪的 docs/superpowers/ 本地计划和规格文件;这些属于本地执行产物,不再随产品代码提交。
  • PR 质量门禁默认不调用真实模型或 live provider;真实模型 baseline 仍然保留在维护者显式运行的本地或受控 release gate 中。
  • Release gate 默认会继续执行后续 provider 和 desktop smoke lane,即使某个 live baseline 失败,也会输出完整 pass/fail/skipped 汇总,方便判断整个矩阵覆盖情况。
  • WebSearch fallback 目前需要用户自行配置 Tavily 或 Brave Search API Key;未配置 fallback key 时,非 Claude 模型不会强行暴露不可用的原生 WebSearch。
  • GitHub Release 正文继续以 release-notes/v0.2.0.md 作为来源,发布时无需再手动复制 Markdown。

安装说明

macOS

首次打开如果提示“已损坏”或“无法验证开发者”,请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app

Claude Code Haha v0.1.9

01 May 14:30

Choose a tag to compare

Claude Code Haha v0.1.9

这是一个以桌面端右侧工作区文件管理、文件变更审查与回滚、第三方 Provider 兼容性为主的版本。

相比 v0.1.8,这次最大的变化是桌面端会话右侧新增工作区文件面板。用户可以在桌面端里浏览当前项目文件、预览内容、查看本轮和本会话产生的文件变更,并把文件作为上下文加入聊天。这个版本也补强了开始页项目选择、checkpoint 回滚、非 Git 目录 diff、第三方模型 thinking / WebSearch 兼容,以及桌面窗口关闭到后台、窗口位置恢复等体验。

主要更新

  • 新增桌面端右侧工作区文件面板:会话中可以直接浏览当前项目目录,查看文件树,预览文本文件和本地图片。
  • 支持查看会话产生的文件变更:可以在右侧面板里查看新增、修改、删除文件,以及对应 diff;即使工作目录不是 Git 仓库,也能基于会话记录展示变更。
  • 开始页选择项目目录后会立即创建草稿会话,让文件管理、变更视图、运行时选择和终端工具栏在首轮提问前就可用。
  • 新增当前轮次变更卡片:每轮回复完成后,聊天流里会展示本轮改动,用户可以先审查变更,再决定是否回滚。
  • 文件回滚收敛到 checkpoint rewind:当前轮次变更卡片可以触发文件恢复,并且回滚目标按对应用户消息定位,减少多轮会话里回错位置的风险。
  • 支持从工作区文件面板把文件或局部内容加入聊天:界面里显示可读的文件 chip,真正发送给 CLI 的内容保持原生 @文件路径 引用。
  • 历史会话重载时会把转录里的 @文件路径 恢复成附件 chip,避免用户消息正文里直接露出很长的绝对路径。
  • 新增桌面端 WebSearch 配置:可以在设置页选择自动、Tavily、Brave、Claude 原生或关闭模式,并配置 Tavily / Brave Search API Key。
  • WebSearch 增加统一能力解析和 fallback 后端:Claude 模型名优先走 Anthropic 原生 WebSearch,第三方模型或不支持原生 server tool 的代理可以回退到 Tavily / Brave。
  • 新增桌面端思考模式开关:新会话可以显式关闭 thinking,适配 DeepSeek、Kimi、GLM 等 Anthropic 兼容端点的非思考模式请求。
  • 桌面端关闭主窗口后会继续在托盘后台运行,本地 server 和 adapter sidecar 不会因为普通关闭窗口而被直接停止;托盘菜单支持重新显示窗口或真正退出应用。
  • 桌面端会记住主窗口大小、位置和最大化状态,重启后自动恢复,并在外接显示器变化时避免恢复到屏幕外。

问题修复

  • 修复右侧工作区面板在没有变更文件时默认显示空状态的问题,现在会优先展示文件树,让用户仍然可以浏览项目。
  • 修复工作区文件预览边界问题:图片不会被文本大小限制误伤,大文本会返回有上限的预览内容,二进制文件保持明确不可预览状态。
  • 修复聊天变更卡片和右侧面板 diff 渲染不一致的问题,统一代码预览表面,并改善暗色主题下的可读性。
  • 修复工作区变更和会话 checkpoint 混用导致的脆弱状态:右侧面板继续表示项目工作区状态,聊天里的轮次卡片继续表示会话 checkpoint 状态。
  • 修复部分会话里本轮变更卡片丢失的问题:当可见用户消息 ID 和持久化转录 ID 不一致,或缺少 SDK file-history snapshot 时,会回退到稳定的用户消息序号和转录工具调用提取变更。
  • 修复多轮会话回滚语义不稳定的问题,补齐 stale current-turn card、目标消息定位和暗色主题 workspace token 的回归覆盖。
  • 移除旧的消息 hover rewind 入口,文件回滚统一收敛到当前轮次变更卡片,避免两个相近撤销入口同时存在。
  • 修复第三方 Provider 下 WebSearch 可能因为 web_search_20250305 schema、代理层能力或非 Claude 模型名不兼容而不可用的问题。
  • 修复 WebSearch 设置页在中文窄屏或暗色模式下保存按钮被说明文字挤压换行的问题。
  • 修复第三方 Anthropic 兼容 Provider 在主会话、side query 和 AI 标题生成中 thinking 参数不一致的问题,减少模型能力不匹配导致的请求失败。
  • 修复旧桌面会话在 provider 配置变更后仍携带过期 provider id,导致 CLI 启动失败或会话不可用的问题;现在会在启动前校验并回退到有效配置。
  • 修复聊天记录或流式输出里只包含空白字符的 assistant 消息仍渲染成空气泡的问题。
  • 修复桌面端启动失败时缺少可见诊断的问题,会在错误信息中带上非敏感的 provider、model 和启动上下文,方便定位用户侧问题。
  • 修复 Windows / macOS 桌面端关闭窗口即退出应用的问题,后台任务和本地服务生命周期现在由原生 Tauri 层统一管理。
  • 修复桌面窗口重启后丢失尺寸和位置的问题,同时跳过过小或不可见的旧窗口状态。
  • 修复 macOS Dock 图标视觉尺寸偏小的问题,并重新生成 Tauri 图标资源,让打包产物中的图标和源文件保持一致。

其他说明

  • GitHub Issue 模板改为更偏桌面端的问题收集方式,会优先询问操作系统、桌面端版本、安装来源、provider/model/base URL、复现步骤、配置截图和完整日志。
  • README 和英文 README 底部新增 GitHub Star History 区块,方便用户查看项目增长趋势并支持项目。
  • .gitignore 补充 .codex-logs/,避免本地 Codex 运行日志进入提交范围。
  • WebSearch fallback 目前需要用户自行配置 Tavily 或 Brave Search API Key;未配置 fallback key 时,非 Claude 模型不会强行暴露不可用的原生 WebSearch。
  • GitHub Release 正文继续以 release-notes/v0.1.9.md 作为来源,发布时无需再手动复制 Markdown。

安装说明

macOS

首次打开如果提示“已损坏”或“无法验证开发者”,请执行:

xattr -cr /Applications/Claude\ Code\ Haha.app