程序员阿江(Relakkes) 183c8bbffd release: v0.4.4
Tested: bun run scripts/release.ts 0.4.4 --dry
Tested: bun run verify (artifacts/quality-runs/2026-07-01T12-34-24-275Z/report.md)
Confidence: high
Scope-risk: broad
2026-07-01 20:43:26 +08:00

134 lines
10 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.4.4
这是 `v0.4.3` 之后的稳定性和桌面体验补丁版本重点修复后台任务、Goal 续跑、预热启动、provider/proxy、Trace、设置隐私、浏览器预览和 Windows 窗口行为中的真实使用问题。
相比 `v0.4.3`,本版本让后台 Agent 任务在前台回答结束后仍可见,减少任务通知回灌到模型或桌面 transcript 的噪音;同时修复 session 预热竞争、历史会话误预热、CLI-only provider proxy、loopback proxy、MCP secret 展示、Trace 删除和 provider 预设更新等问题。
## Highlights
- **后台任务和 Goal 续跑更可靠**:后台任务在前台 turn 完成后继续显示,并进入更清晰的 background task drawerGoal 自动续跑会插入可见分隔标记,避免多个 assistant turn 混在一起task-notification-only follow-up 不再污染桌面 transcript。
- **启动、预热和会话刷新更稳**:修复 `prewarm_session``user_message` 几乎同时到达时 idle timer 杀掉活跃 CLI 的竞争查看历史会话不会触发预热Electron sidecar 会等 `/health` 真正可用后再继续session list summary 加缓存,降低大历史列表刷新超时概率。
- **Provider/proxy 链路更兼容**CLI-only OpenAI-compatible provider 会启动轻量 standalone provider proxy不再依赖固定 localhost serverloopback provider target 会绕过系统代理和 Bun proxy fetch optionsprovider connectivity check 覆盖 IPv4/IPv6 loopback直连 provider trace 会正确记录脱敏 headers。
- **桌面工作流细节补齐**Settings tab、provider 表单保存、空会话 composer draft、active turn 计时、cache token usage、长标题 tooltip、手动刷新按钮、浏览器预览导航和 preview-agent edit bubble 都更稳定。
- **设置和诊断更安全**MCP 设置页会遮蔽敏感 command args、env 和 headers同时保存时保留原始值MCP server name 支持 Unicode 字母和数字Trace 列表新增本地 trace session 删除,并明确不会删除聊天历史。
## Fixes
- 修复 session 预热 idle timer 在 CLI 启动盲窗内杀掉活跃用户 turn导致桌面一直卡在“执行中”的问题 (#865)。
- 修复查看历史 transcript 时误触发 CLI prewarm只加载历史不再启动新 CLI (#880)。
- 修复首次 onboarding 期间启动前预检 Anthropic/OAuth endpoint导致未登录或未发起模型请求前就访问外部服务的问题 (#859)。
- 修复停止或中断后可能出现 `API Error: Stream ended without receiving any events` 的处理路径。
- 修复 scheduled task 超时、scheduled subprocess 权限参数、title generation auth、并行 tool card settlement 的一组问题 (#809, #846, #847, #854, #889)。
- 修复 provider 表单保存中的取消/重复提交竞态、Settings tab 返回后丢失,以及切换项目时空会话 composer draft 丢失 (#810, #811, #871)。
- 修复同一 session 打开新的 native browser preview target 时 WebContentsView 停留在旧文件,以及 preview-agent edit bubble 在低位置选区时超出视口的问题 (#819, #879)。
- 修复 active turn duration 计时丢失、完成后轻量 duration 行显示不稳定,以及 queued follow-up 与完成状态行位置冲突的问题 (#813, #853)。
- 修复 CLI-only OpenAI-compatible desktop provider 依赖固定本地 server proxy 的问题,并修复代理环境下 loopback provider target/connectivity check 被错误走代理的问题 (#845, #896)。
- 修复后台 sync Agent 工具活动没有走统一 parent-tagged 事件、incomplete tool-use stream 缺少 fallback以及结构化本地 Agent terminal notification 回灌模型的问题 (#870, #884, #886)。
- 修复 EnterPlanMode 暴露模型内部指令、ExitPlanMode rejected tool card 显示空计划卡,以及 Windows frameless 窗口首次显示后拖拽命中区不刷新的问题 (#869, #874)。
- 修复桌面 session 列表手动刷新可能被后台 pending fetch 长时间禁用或显示 spinner 的问题 (#893)。
- 修复粘贴图片 FileReader 延迟回调在发送或切换 session 后重新污染输入框的问题 (#827)。
- 修复 Electron sidecar 只等 TCP accept、不等 HTTP `/health` ok 就继续启动的问题 (#857)。
- 修复 OpenAI-compatible sampling params 默认透传过多,以及 GLM-5.2 context metadata 缺失的问题 (#860)。
- 修复长 sidebar title 没有完整 tooltip 的问题 (#885)。
- 修复 MCP server name 只能使用 ASCII 名称的问题,现在支持 Unicode 字母和数字,同时继续拒绝空格和分隔符。
- 修复 MCP 设置页可见 UI/input 中泄露敏感 args、env 和 headers 的问题。
- 修复 direct provider trace 从 `Request` input 传入 headers 时没有持久化脱敏 headers 的问题 (#836)。
- 修复 live session header 没有计入 cache read/write tokens 的问题 (#842)。
- 修复 Goal hook evaluator 抛错时被当作非阻塞 hook error导致 goal loop 提前停下的问题。
- 修复 Goal hook 的 `preventContinuation``blockingError` 分开返回时被误判为普通停止,导致 goal 中途停止的问题 (#895)。
- 修复 Goal continuation turn 在 session history 和桌面恢复中没有明确视觉分隔的问题 (#901)。
- 修复国内 provider 预设、model context window 和 thinking capability 声明落后的问题。
## Features and Improvements
- Trace 列表新增删除入口,支持幂等删除本地 trace JSONL并清理 trace read cache确认弹窗会说明聊天历史不会被删除 (#868)。
- 背景任务展示升级为官方风格 background task drawer前台完成后仍保留任务进度恢复后的 Agent 不会因为清理旧完成项而消失。
- Goal 自动续跑新增 `Goal continuing` 本地命令分隔标记,并贯穿 server events、session history 和 desktop history restore。
- Provider settings JSON 导入支持 cc-switch 风格模型配置:从 `ANTHROPIC_MODEL` 或 Sonnet fallback 推导 main model`*_MODEL_NAME` 作为显示标签处理。
- Provider 预设更新国内模型和 context window 声明,补齐相关 runtime/env、thinking 和 conversation-service 测试覆盖。
- Session list summary 按 JSONL 文件 mtime/size 缓存,降低大历史目录下 `/api/sessions?limit=400` 的重复扫描成本 (#894)。
## Issue 对照
- #809 / #846:修复 scheduled task timeout 配置和调度启动行为。
- #810:修复 provider 表单保存过程中的取消和重复提交问题。
- #811:修复 Settings tab 返回后丢失当前页签。
- #813 / #853:修复 active turn duration 和完成状态展示。
- #819 / #879:修复 native browser preview 导航和 preview-agent edit bubble 位置。
- #827:修复发送后延迟粘贴图片回到 composer。
- #836:修复 OpenAI proxy/direct provider trace request headers 记录。
- #842:修复 live session cache token usage 展示。
- #845:修复 CLI-only OpenAI-compatible provider proxy。
- #847:修复 scheduled task subprocess 权限参数。
- #854:修复 title generation auth strategy。
- #857:修复 Electron sidecar readiness 判断。
- #859:修复 onboarding 前 Anthropic/OAuth preflight。
- #860:修复 OpenAI-compatible sampling params 和 GLM-5.2 context metadata。
- #865:修复 prewarm idle timer 与 user message 竞争。
- #868:新增 Trace session 删除。
- #869:优化 plan mode 桌面展示,并隐藏空 rejected plan preview。
- #870 / #884 / #886:修复后台 Agent continuation、stream fallback 和任务通知回灌。
- #871:修复空会话 composer draft 在项目切换后丢失。
- #874:修复 Windows frameless 窗口拖拽命中区。
- #880:修复查看历史会话误预热。
- #885:修复长 session title 缺少完整 tooltip。
- #889:修复 unresolved parallel tool card settlement。
- #893:修复 session list 手动刷新按钮卡住。
- #894:缓存 session list summaries降低刷新超时风险。
- #895:修复 Goal 中途停止。
- #896:修复 loopback provider proxy bypass 和 provider connectivity check。
- #901Goal continuation turn 增加桌面可见分隔。
## Notes
- GitHub Release 正文继续以 `release-notes/v0.4.4.md` 作为来源。
- 桌面端发布版本号来源是 `desktop/package.json`root `package.json` 仍保留本地开发用的 `999.0.0-local`。发布时需确保 `desktop/package.json`、Git tag `v0.4.4``release-notes/v0.4.4.md` 三者严格对齐。
- 本版本覆盖 desktop、server、provider/runtime、agent-loop 和 native 多个表面;发布前建议至少跑 `bun run scripts/release.ts 0.4.4 --dry``bun run verify`,并在有真实 provider 配额时跑 `bun run quality:gate --mode release --allow-live --provider-model <provider:model[:label]>`
- 建议发布前额外 smoke后台 Agent task drawer、Goal 自动续跑、task notification 输出抑制、历史会话打开、空会话切项目、provider connectivity check、loopback provider、Trace 删除、MCP secrets redaction、native browser preview、Windows frameless 拖拽、macOS 签名 DMG 首次打开和自动更新 metadata。
- 如果需要先验证全平台签名/公证产物,可以手动触发 `Release Desktop` workflow 并保持 `draft=true`;正式发布仍以 `v0.4.4` tag 对应提交和 GitHub Actions 产物为准。
## 安装
到本页面底部的 Assets 里,按系统和 CPU 架构下载对应文件:
| 平台 | 文件 |
|------|------|
| macOS Apple SiliconM 系列) | `Claude-Code-Haha-0.4.4-mac-arm64.dmg` |
| macOS Intel | `Claude-Code-Haha-0.4.4-mac-x64.dmg` |
| Windows x64 | `Claude-Code-Haha-0.4.4-win-x64.exe` |
| Linux x64 | `Claude-Code-Haha-0.4.4-linux-x86_64.AppImage``Claude-Code-Haha-0.4.4-linux-amd64.deb` |
| Linux ARM64 | `Claude-Code-Haha-0.4.4-linux-arm64.AppImage``Claude-Code-Haha-0.4.4-linux-arm64.deb` |
### macOS
双击 DMG 把应用拖入「应用程序」。如果 macOS 签名和公证验证通过,首次打开应直接走正常 Gatekeeper 流程。
如果仍提示"已损坏"或"无法验证开发者",说明当前产物可能仍是 unsigned fallback 或本地 quarantine 状态未清理,可在终端执行:
```bash
xattr -cr /Applications/Claude\ Code\ Haha.app
```
也可以在「系统设置 → 隐私与安全性」里点"仍要打开"。
### Windows
双击 `.exe` 安装。SmartScreen 提示时点「更多信息」→「仍要运行」。
### Linux
AppImage
```bash
chmod +x Claude-Code-Haha-0.4.4-linux-x86_64.AppImage
./Claude-Code-Haha-0.4.4-linux-x86_64.AppImage
```
deb
```bash
sudo apt install ./Claude-Code-Haha-0.4.4-linux-amd64.deb
```
ARM64 机器把文件名换成 `...-linux-arm64.AppImage` / `...-linux-arm64.deb`