程序员阿江(Relakkes) 7a5f813601 Prepare the desktop 0.2.0 milestone for release
This release marks the desktop app's shift from a thin CLI wrapper toward a fuller local Coding Agent workspace. It carries the reviewed v0.2.0 release notes, bumps desktop package metadata, and refreshes Cargo.lock from the pinned Tauri stack before publishing the tag-driven GitHub Actions release.

Constraint: GitHub Release body is sourced from release-notes/v0.2.0.md in the tagged commit
Constraint: Desktop releases are built remotely from the pushed v0.2.0 tag
Rejected: Publish as v0.1.10 | the release consolidates several desktop workflow and quality-gate milestones, so v0.2.0 better communicates the scope
Confidence: high
Scope-risk: narrow
Directive: Keep the v0.2.0 tag on this commit unless the release notes or version metadata are changed together
Tested: bun run scripts/release.ts 0.2.0 --dry
Tested: bun run quality:gate --mode release --allow-live --provider-model codingplan:main:codingplan-main --provider-model minimax:main:minimax-main (18 passed, 0 failed, 0 skipped)
2026-05-02 18:11:20 +08:00

79 lines
9.1 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.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:pr``bun run quality:gate --mode baseline``bun 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
首次打开如果提示“已损坏”或“无法验证开发者”,请执行:
```bash
xattr -cr /Applications/Claude\ Code\ Haha.app
```