程序员阿江(Relakkes) 2d58d11fb1 release: prepare v0.4.9
2026-07-16 18:50:35 +08:00

105 lines
8.8 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.9
这是 `v0.4.8` 之后的本地数据、搜索与网络兼容性版本,重点新增 SQLite 本地索引、未展开工作区文件搜索、跨平台内置 ripgrep 和本地附件打开操作,同时修复 OpenAI 兼容 Provider 的本地代理鉴权、系统代理动态路由、H5 触屏交互和文件预览连续行评论等问题。
相比 `v0.4.8`本版本会把会话、活动统计、定时任务运行记录、Trace 和可搜索内容投影到可重建的本地数据库中,以减少重复扫描大量文件的开销。原始 JSON / JSONL 文件仍是权威数据源;索引损坏或不可用时会回退到文件读取,并可在「设置 → 诊断」中安全重建。
## Highlights
- **SQLite 本地索引**:会话列表、全局搜索、活动统计、定时任务运行记录和 Trace 使用可重建的本地投影加速读取,启动后会持续对齐源文件,并在索引不可用时保留文件回退路径。
- **完整工作区文件搜索**:文件面板可以直接搜索尚未展开或加载的目录,不再需要先手动展开目录树;搜索结果支持继续预览和加入聊天上下文。
- **内置跨平台 ripgrep**:桌面安装包为 macOS、Windows 和 Linux 的 x64 / ARM64 架构准备对应 ripgrep不再要求用户另行安装 `rg` 才能使用相关搜索能力。
- **动态系统代理路由**:桌面端 AI 会话、OAuth、Provider 请求和适配器会按目标地址使用当前系统代理规则兼容直连、HTTP(S) 与 SOCKS 路由,并避免把过期的启动时代理结果固定到整个运行周期。
- **附件与文件评审改进**:聊天中的本地附件可以直接使用系统默认应用或“打开方式”菜单打开;文件预览支持按住 Shift 选择连续行并把整段评论带回聊天。
- **H5 触屏体验优化**:手机端会常驻显示消息操作,放大输入区关键按钮,并优化侧边栏、模型选择器、安全区和软键盘视口下的布局。
## Fixes
- 修复升级到 `v0.4.8`OpenAI 兼容的本地 API / vLLM Provider 可能因桌面代理鉴权环境未正确传递而持续返回 HTTP 401 的问题 (#1025)。
- 修复工作区文件必须先展开目录后才能被搜索到的问题;服务端现在直接搜索真实工作区,并对缺失、越界和过大结果提供明确状态 (#1023)。
- 修复打包版桌面端缺少 ripgrep 时文件与会话搜索不可用的问题,并把二进制、许可证和发布产物校验纳入离线构建流程 (#923)。
- 修复系统代理只在启动时按单一地址解析导致代理规则变化或不同目标需要不同路由时模型连接、OAuth 与 Provider 请求失败的问题 (#953)。
- 修复 H5 手机端 fork、复制等消息操作依赖 hover 才能显示,以及输入按钮偏小、侧边栏拥挤和软键盘遮挡内容的问题 (#1020)。
- 修复文件预览只能评论单行的问题;现在可用 Shift 连续选择同一侧的多行,并保留准确的行号、引用与输入框焦点 (#1004)。
- 修复全局搜索快速输入或使用中文输入法时,旧请求可能覆盖新结果、加载状态残留或方向键落到无效结果的问题。
- 修复本地索引建立期间或个别来源损坏时会话、定时任务、团队、Trace 和活动统计可能短暂缺失的问题;相关读取会等待投影、自动恢复或回退到源文件。
- 修复桌面端重启后,历史会话仍在源目录但列表未能稳定恢复的问题,并补充索引状态、降级原因和重建入口 (#1016)。
## Features and Improvements
- 新增 `cc-haha/db/index-v1.sqlite` 派生数据库,覆盖会话元数据与内容、活动统计、定时任务运行记录、团队会话和 Trace支持增量追加、文件重写识别、删除同步、迁移和损坏恢复。
- 诊断页新增本地索引状态面板,可查看构建状态、已索引来源、降级来源、数据库 / WAL 大小、最后更新时间和错误代码,并可确认后重建索引。
- 全局搜索改为使用内容索引并支持取消过期请求、中文输入法组合态和每个会话的匹配预览;索引构建或降级时仍保留文件搜索能力。
- 工作区文件搜索使用打包内的 ripgrep支持跨平台可执行文件准备、离线许可证 staging、sidecar 打包和发布产物 smoke 校验。
- 聊天中的本地附件增加直接打开与“打开方式”下拉菜单,可复用已配置的外部编辑器或系统默认应用;文件被移动或删除时会给出失败提示。
- H5 针对触屏设备增加更稳定的视口高度、底部安全区和软键盘状态处理,避免把桌面触屏设备误判为手机布局。
- 系统代理桥接会按每个目标地址解析 Electron 代理规则,并在桌面服务停止或重启时清理连接;对不可安全重放的模型 POST 请求不会跨代理规则重复发送。
- 本地索引增加一致性、奇偶校验、迁移、恢复和性能验收测试;索引数据库始终被视为可丢弃的派生数据,不取代用户的源会话与设置文件。
## Issue 对照
- #923:在桌面安装包中内置跨平台 ripgrep并补齐离线许可证与产物校验。
- #953:让 AI 会话和 Provider 请求动态遵循系统代理规则。
- #1004:支持在文件预览中用 Shift 选择连续行并添加评论。
- #1016:新增可恢复的本地会话索引、文件回退和诊断重建能力。
- #1020:让 H5 手机端消息操作常驻可用,并改善触屏输入布局。
- #1023:无需预先展开目录即可搜索完整工作区文件。
- #1025:恢复 OpenAI 兼容 Provider 在桌面本地代理链路中的鉴权。
## Notes
- GitHub Release 正文继续以 `release-notes/v0.4.9.md` 作为来源。
- 桌面端发布版本号来源是 `desktop/package.json`root `package.json` 仍保留本地开发用的 `999.0.0-local`。发布时需确保 `desktop/package.json`、Git tag `v0.4.9``release-notes/v0.4.9.md` 三者严格对齐。
- 正式发布时,`Release Desktop` workflow 会校验 tag 与 `desktop/package.json` 版本一致,并加载 `release-notes/v0.4.9.md`
- 自动更新依赖 GitHub Release 中完整的安装包、blockmap 和标准 updater metadata`latest-mac.yml``latest.yml``latest-linux.yml``latest-linux-arm64.yml`
- macOS 正式公开发布需要签名和公证 secrets缺失时只能保留 draft/测试产物。Windows 签名不是发布阻塞项,但未签名安装包会触发 SmartScreen 提示。
- 本地索引仅保存可重建的派生数据。重建或删除索引不会删除原始对话、设置、Skills、记忆、定时任务或 Trace 源文件;索引降级时仍可使用文件回退。
- 桌面安装包已内置 ripgrep。CLI 或源码开发环境仍可使用系统 `rg`,但正式桌面搜索不再依赖用户手动安装。
- 发布前建议至少运行 `bun run scripts/release.ts 0.4.9 --dry``bun run check:impact`;正式 tag 前再运行 `bun run verify`,并执行一条 `v0.4.8 -> v0.4.9` 的真实自动更新 smoke重点确认历史会话恢复、索引重建、完整工作区搜索、系统代理和本地附件打开。
## 安装
到本页面底部的 Assets 里,按系统和 CPU 架构下载对应文件:
| 平台 | 文件 |
|------|------|
| macOS Apple SiliconM 系列) | `Claude-Code-Haha-0.4.9-mac-arm64.dmg` |
| macOS Intel | `Claude-Code-Haha-0.4.9-mac-x64.dmg` |
| Windows x64 | `Claude-Code-Haha-0.4.9-win-x64.exe` |
| Windows ARM64 | `Claude-Code-Haha-0.4.9-win-arm64.exe` |
| Linux x64 | `Claude-Code-Haha-0.4.9-linux-x86_64.AppImage``Claude-Code-Haha-0.4.9-linux-amd64.deb` |
| Linux ARM64 | `Claude-Code-Haha-0.4.9-linux-arm64.AppImage``Claude-Code-Haha-0.4.9-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.9-linux-x86_64.AppImage
./Claude-Code-Haha-0.4.9-linux-x86_64.AppImage
```
deb
```bash
sudo apt install ./Claude-Code-Haha-0.4.9-linux-amd64.deb
```
ARM64 机器把文件名换成 `...-linux-arm64.AppImage` / `...-linux-arm64.deb`