程序员阿江(Relakkes) 47e41d68e3 Prepare the desktop 0.2.1 release
This records the user-facing 0.2.1 release notes and aligns the desktop package, Tauri config, Cargo manifest, and lockfile package version so the tag-triggered release workflow can publish the intended build.

Constraint: GitHub Release body is sourced from release-notes/v0.2.1.md in the tagged commit
Constraint: Keep provider and OpenAI login details weak in the release narrative because this release is centered on IM, notifications, context usage, and desktop stability
Rejected: Run scripts/release.ts directly | it creates a generic commit message and tag before review of the release narrative
Confidence: high
Scope-risk: narrow
Directive: Do not tag v0.2.1 from a commit that lacks release-notes/v0.2.1.md or mismatched desktop version files
Tested: bun run scripts/release.ts 0.2.1 --dry
Tested: cargo check
Tested: git diff --check
Not-tested: Live release gate with real provider credentials in this commit step
2026-05-05 22:47:37 +08:00

71 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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