From 183c8bbffdc8ba6d4abf9e87c9158c65b46acdba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Wed, 1 Jul 2026 20:43:26 +0800 Subject: [PATCH] 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 --- desktop/package.json | 2 +- release-notes/v0.4.4.md | 133 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 release-notes/v0.4.4.md diff --git a/desktop/package.json b/desktop/package.json index 90a2a9c9..936a7307 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "claude-code-desktop", "private": true, - "version": "0.4.3", + "version": "0.4.4", "description": "Desktop coding agent workbench for Claude Code Haha.", "homepage": "https://github.com/NanmiCoder/cc-haha", "author": { diff --git a/release-notes/v0.4.4.md b/release-notes/v0.4.4.md new file mode 100644 index 00000000..8ca631f8 --- /dev/null +++ b/release-notes/v0.4.4.md @@ -0,0 +1,133 @@ +# 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 drawer;Goal 自动续跑会插入可见分隔标记,避免多个 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 server;loopback provider target 会绕过系统代理和 Bun proxy fetch options;provider 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。 +- #901:Goal 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 `。 +- 建议发布前额外 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 Silicon(M 系列) | `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`。