diff --git a/desktop/package.json b/desktop/package.json index 41eca206..e73135d3 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "claude-code-desktop", "private": true, - "version": "0.2.0", + "version": "0.2.1", "type": "module", "scripts": { "dev": "vite", diff --git a/desktop/src-tauri/Cargo.lock b/desktop/src-tauri/Cargo.lock index 9efbfb10..e4ba4009 100644 --- a/desktop/src-tauri/Cargo.lock +++ b/desktop/src-tauri/Cargo.lock @@ -473,7 +473,7 @@ dependencies = [ [[package]] name = "claude-code-desktop" -version = "0.2.0" +version = "0.2.1" dependencies = [ "anyhow", "portable-pty", diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index 8e624e53..96e0dcd7 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "claude-code-desktop" -version = "0.2.0" +version = "0.2.1" edition = "2021" [lib] diff --git a/desktop/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json index 8b656379..1ca4c267 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.2.0", + "version": "0.2.1", "identifier": "com.claude-code-haha.desktop", "build": { "frontendDist": "../dist", diff --git a/release-notes/v0.2.1.md b/release-notes/v0.2.1.md new file mode 100644 index 00000000..3471edb8 --- /dev/null +++ b/release-notes/v0.2.1.md @@ -0,0 +1,70 @@ +# 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 + +首次打开如果提示“已损坏”或“无法验证开发者”,请执行: + +```bash +xattr -cr /Applications/Claude\ Code\ Haha.app +```