diff --git a/desktop/package.json b/desktop/package.json index 6b6e57a5..4a8a3ba5 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "claude-code-desktop", "private": true, - "version": "0.4.7", + "version": "0.4.8", "description": "Desktop coding agent workbench for Claude Code Haha.", "homepage": "https://github.com/NanmiCoder/cc-haha", "author": { diff --git a/docs/desktop/10-release-auto-update.md b/docs/desktop/10-release-auto-update.md index c1a71d70..d2e0dcf0 100644 --- a/docs/desktop/10-release-auto-update.md +++ b/docs/desktop/10-release-auto-update.md @@ -48,15 +48,15 @@ WINDOWS_CERTIFICATE_PASSWORD 4. 确认只出现标准下载来源确认,不出现无法验证开发者、文件损坏或 unidentified developer。 5. 再把后续 `v0.4.4` 作为自动更新验证目标。 -## v0.4.7 自动更新验证 +## v0.4.8 自动更新验证 -发布 `v0.4.7` 时至少验证一条真实更新链路: +发布 `v0.4.8` 时至少验证一条真实更新链路: -1. 安装 GitHub Release 中的 `v0.4.6` 正式包。 -2. 发布 `v0.4.7` tag,让 `Release Desktop` workflow 完整通过。 -3. 打开 `v0.4.6` 应用,等待启动后自动检查,或进入 Settings 手动检查更新。 -4. 确认应用提示 `v0.4.7`,下载完成后点击安装并重启。 -5. 重启后确认 About/Settings 中版本为 `0.4.7`。 +1. 安装 GitHub Release 中的 `v0.4.7` 正式包。 +2. 发布 `v0.4.8` tag,让 `Release Desktop` workflow 完整通过。 +3. 打开 `v0.4.7` 应用,等待启动后自动检查,或进入 Settings 手动检查更新。 +4. 确认应用提示 `v0.4.8`,下载完成后点击安装并重启。 +5. 重启后确认 About/Settings 中版本为 `0.4.8`,并检查 Windows 上原有服务商、会话、Skills、记忆和自定义数据目录仍然可用。 平台重点: @@ -69,9 +69,9 @@ WINDOWS_CERTIFICATE_PASSWORD 发版前至少运行: ```bash -bun run scripts/release.ts 0.4.7 --dry +bun run scripts/release.ts 0.4.8 --dry bun test scripts/pr/release-workflow.test.ts scripts/release-update-metadata.test.ts scripts/quality-gate/package-smoke/index.test.ts bun run check:policy ``` -正式调用 `bun run scripts/release.ts 0.4.7` 前,先确认对应 `release-notes/v0.4.7.md` 已经存在。 +正式调用 `bun run scripts/release.ts 0.4.8` 前,先确认对应 `release-notes/v0.4.8.md` 已经存在。 diff --git a/docs/desktop/index.md b/docs/desktop/index.md index b7182b33..63171468 100644 --- a/docs/desktop/index.md +++ b/docs/desktop/index.md @@ -42,7 +42,7 @@ ### [Electron 发布与自动更新](./10-release-auto-update.md) -维护者发版 runbook:Developer ID 签名、GitHub Release metadata、`v0.4.6 -> v0.4.7` 自动更新验证路径。 +维护者发版 runbook:Developer ID 签名、GitHub Release metadata、`v0.4.7 -> v0.4.8` 自动更新验证路径。 ### [Electron 迁移交互式验收清单](/desktop/electron-migration-qa-checklist.html) diff --git a/release-notes/v0.4.8.md b/release-notes/v0.4.8.md new file mode 100644 index 00000000..c4906e0d --- /dev/null +++ b/release-notes/v0.4.8.md @@ -0,0 +1,106 @@ +# Claude Code Haha v0.4.8 + +这是 `v0.4.7` 之后的桌面工作流、Provider 兼容性和安全加固版本,重点新增 Grok 官方 OAuth、Claude Code Auto 权限模式、内联 Diff 评审、对话导航和推理强度滑杆,同时修复 Windows 升级后数据目录丢失、断线重连后持续“思考”、受限端口启动失败和权限操作被遮挡等问题。 + +相比 `v0.4.7`,本版本让代码审阅、长对话定位和模型推理强度调整更直接;Windows 安装器会在升级前识别并保护旧安装目录中的用户数据,诊断与 Doctor 流程也补齐了脱敏、并发写入、损坏日志和安全修复边界。本地服务、H5 访问和远程预览进一步隔离,减少跨来源请求和预览页面获得桌面权限的风险。 + +## Highlights + +- **Grok 官方登录**:新增 xAI Grok 官方 OAuth 登录、token 刷新、动态模型目录和会话运行支持,内置 Grok 4.5 与 Composer 2.5 fallback,可直接在桌面端完成登录、选模和退出。 +- **Claude Code Auto 模式**:权限选择器新增 Auto 模式,启用前会明确提示风险;运行时会审查工具调用和提示词注入,自动执行其认为安全的操作并阻止高风险操作。 +- **内联 Diff 评审**:工作台新增完整 Diff 审阅界面,支持语法高亮、旧/新行定位、单行或连续行评论,并把评论和代码引用带回聊天输入框。 +- **对话与推理控制升级**:长对话新增右侧导航目录;模型推理强度改为可拖动、可键盘操作的滑杆,并根据当前 Provider / 模型保留可用档位和会话选择。 +- **Windows 升级数据保护**:NSIS 安装器会在卸载旧版本前识别、校验并恢复安装目录中的历史数据,避免服务商、会话、Skills、记忆或自定义数据目录随升级被移除。 +- **桌面安全边界收紧**:本地服务请求加入独立访问凭证,H5 / 反向代理流量与桌面可信流量分开判定;远程预览使用隔离 session,并默认拒绝摄像头、麦克风、通知等权限。 + +## Fixes + +- 修复 WebSocket 重连后遗留的 thinking 状态可能继续显示“已思考”并消耗 token 的问题 (#1002)。 +- 修复 Markdown 预览或其他浮层可能遮挡权限操作按钮的问题,审批入口会保持可见 (#932)。 +- 修复 Windows 等平台随机分配到浏览器受限端口后,桌面端或 H5 无法连接本地服务的问题 (#961)。 +- 修复 Windows 升级可能删除安装目录内历史配置和会话数据的问题;恢复流程会校验来源、用户身份和复制结果,遇到歧义时停止安装而不是猜测迁移;没有旧目录数据的默认模式重装不会再被恢复保护误拦截 (#959, #973, #1000)。 +- 修复 Auto 模式切换需要等待数秒、从跳过权限切换时可能触发额外重启,以及首次确认状态未正确保留的问题 (#978)。 +- 修复 Diff 审阅中语法高亮、文件状态、行选择、折叠后选择失效和代码引用卡片丢失等问题,并让高亮效果更接近 Codex (#1004)。 +- 修复长对话导航与输入框、消息内容和工作台面板之间的对齐、遮挡及窄窗口布局问题 (#782)。 +- 修复推理强度弹层过大、选择未随会话恢复、切换模型后档位不匹配等问题 (#1007)。 +- 修复诊断日志在并发写入、分段轮转或出现损坏记录时统计不准确、导出不稳定的问题;诊断包和 Issue 报告会尽力脱敏并限制内容范围。 +- 修复 Doctor / runtime recovery 可能越过安全 UI 状态边界的问题;聊天历史、模型配置、Skills、MCP、IM 和 OAuth 等用户数据保持只读保护。 +- 修复远程或带代理痕迹的请求可能被误判为本地可信请求,以及远程预览页面可能继承桌面 session 权限的问题。 + +## Features and Improvements + +- 新增 Grok 官方 Provider 设置页、浏览器 OAuth 回调与轮询、凭证安全存储、自动刷新、模型能力信息和 Provider 运行环境注入。 +- Auto 模式贯通 CLI、桌面端、会话创建、WebSocket 恢复、权限分类器和持久化设置;活跃 turn 期间继续禁止切换权限,避免运行状态与界面选择不一致。 +- 对话导航会从用户消息生成可扫描目录,支持快速跳转,并在靠近导航区域时提供更清楚的交互反馈。 +- 工作台改为更紧凑的文件 / Diff 审阅布局,支持变更文件筛选、预览标签、文件状态、代码选择和评审评论引用。 +- 推理强度滑杆支持鼠标拖动、点击选择、方向键、Home / End 和无障碍状态,并按不同模型暴露 low / medium / high 等实际支持档位。 +- 诊断页新增更完整的保留策略、损坏记录提示、事件 ID、脱敏 Issue 报告、导出包和安全 UI 状态修复反馈。 +- 合并社区安全加固 PR #1015,并继续补强 adapter、REST、WebSocket、Electron IPC 和 updater 的本地访问隔离测试。 +- 发布 workflow 新增 Windows 历史数据恢复脚本自检,以及编译后安装器的全新安装 / 默认模式重装 smoke,确保安装包在发布前覆盖关键升级保护路径。 + +## Issue 对照 + +- #782:新增长对话导航目录,并优化聊天区与输入框布局。 +- #932:让权限操作在预览和浮层场景下保持可见。 +- #959 / #973 / #1000:保护并恢复 Windows 旧安装目录中的用户数据。 +- #961:避开浏览器会阻止访问的本地服务端口。 +- #978:新增 Claude Code Auto 权限模式,并修复切换和确认流程。 +- #1002:清理断线重连后遗留的 thinking 状态。 +- #1004:新增并完善内联 Diff 评论与工作台审阅流程。 +- #1007:新增推理强度滑杆,并恢复每个会话的实际选择。 + +## Notes + +- GitHub Release 正文继续以 `release-notes/v0.4.8.md` 作为来源。 +- 桌面端发布版本号来源是 `desktop/package.json`;root `package.json` 仍保留本地开发用的 `999.0.0-local`。发布时需确保 `desktop/package.json`、Git tag `v0.4.8` 和 `release-notes/v0.4.8.md` 三者严格对齐。 +- 正式发布时,`Release Desktop` workflow 会校验 tag 与 `desktop/package.json` 版本一致,并加载 `release-notes/v0.4.8.md`。 +- 自动更新依赖 GitHub Release 中完整的安装包、blockmap 和标准 updater metadata:`latest-mac.yml`、`latest.yml`、`latest-linux.yml`、`latest-linux-arm64.yml`。 +- macOS 正式公开发布需要签名和公证 secrets;缺失时只能保留 draft/测试产物。Windows 签名不是发布阻塞项,但未签名安装包会触发 SmartScreen 提示。 +- H5 或反向代理访问仍需显式开启并配置 Token / CORS;桌面内置预览不会把本地访问凭证发送给非本地服务来源。 +- 发布前建议至少跑 `bun run scripts/release.ts 0.4.8 --dry` 和 `bun run check:impact`;正式 tag 前再运行 `bun run verify`,并执行一条 `v0.4.7 -> v0.4.8` 的真实自动更新 smoke,重点确认 Windows 用户数据完整保留。 + +## 安装 + +到本页面底部的 Assets 里,按系统和 CPU 架构下载对应文件: + +| 平台 | 文件 | +|------|------| +| macOS Apple Silicon(M 系列) | `Claude-Code-Haha-0.4.8-mac-arm64.dmg` | +| macOS Intel | `Claude-Code-Haha-0.4.8-mac-x64.dmg` | +| Windows x64 | `Claude-Code-Haha-0.4.8-win-x64.exe` | +| Windows ARM64 | `Claude-Code-Haha-0.4.8-win-arm64.exe` | +| Linux x64 | `Claude-Code-Haha-0.4.8-linux-x86_64.AppImage` 或 `Claude-Code-Haha-0.4.8-linux-amd64.deb` | +| Linux ARM64 | `Claude-Code-Haha-0.4.8-linux-arm64.AppImage` 或 `Claude-Code-Haha-0.4.8-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.8-linux-x86_64.AppImage +./Claude-Code-Haha-0.4.8-linux-x86_64.AppImage +``` + +deb: + +```bash +sudo apt install ./Claude-Code-Haha-0.4.8-linux-amd64.deb +``` + +ARM64 机器把文件名换成 `...-linux-arm64.AppImage` / `...-linux-arm64.deb`。