From f2ede6c4df9bf80e157c5396bada3ebb17aa2b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=A0=E7=9A=84=E5=A7=93=E5=90=8D?= Date: Thu, 11 Jun 2026 20:55:46 +0800 Subject: [PATCH] release: v0.5.10 --- desktop/package.json | 2 +- release-notes/v0.5.10.md | 44 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 release-notes/v0.5.10.md diff --git a/desktop/package.json b/desktop/package.json index 5055b94b..bcbb82bb 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,7 +1,7 @@ { "name": "claude-code-desktop", "private": true, - "version": "0.5.9", + "version": "0.5.10", "description": "Desktop coding agent workbench for Claude Code Haha.", "homepage": "https://github.com/706412584/cc-haha", "author": { diff --git a/release-notes/v0.5.10.md b/release-notes/v0.5.10.md new file mode 100644 index 00000000..ba87aaba --- /dev/null +++ b/release-notes/v0.5.10.md @@ -0,0 +1,44 @@ +# v0.5.10 + +> 本版本聚焦"新会话从上一个会话继续"体验,补全 v0.5.9 接续功能的最后一公里;同时引入插件依赖自动检测 + 一键安装,以及一批桌面端 UX / 可访问性改进。 + +## 新功能 + +- **会话接续:深度模式 toggle**(#13)。新建会话欢迎页"最近活动"卡片新增"深度"开关:打开后,下次点击"从这里继续"会把 verbatim 对话尾部从默认 ~4k tokens 拉到 ~12.5k tokens(60 轮 / 每轮 800 字 / 50k 总额),让新会话 AI 能看到完整的"最近 debug 转折"。开关状态持久化到 `localStorage`,选了一次不用每次重选。 + - 服务端零额外 LLM 成本:复用已缓存的 LLM 摘要 `main` / `recent`,只重新切片 verbatim 尾部。 + - 默认模式不变(还是 v0.5.10 的 24/600/16k),深度模式硬编码不受 env override 影响,UX 可预期。 +- **会话接续:默认 verbatim 尾部翻倍**(#12)。`SessionSummary.recentRaw` 的默认尺寸从 v0.5.9 的 12 轮 / 400 字 / 8000 字符总额提升到 **24 轮 / 600 字 / 16000 字符总额**(≈ 4k tokens),覆盖一整个 debug 转折的前因后果。env override 上限同步从 50/30k 拉到 80/50k。 + - 用户反馈:v0.5.9 的尾部只覆盖 ~6 个 user-AI 对,接续后 AI 经常不知道"刚才到底卡在哪",新尺寸覆盖 ~12 对,实测够用。 +- **插件依赖自动检测 + 弹窗**(#8)。开启 MCP 插件时,服务端用 `where` / `command -v` 探测每个 stdio server 声明的 host 命令是否在 PATH,缺啥直接弹"缺少依赖"模态,带文档链接、可复制安装命令、affected servers 列表。检测纯只读,不 spawn 工具本体;结果 60s 缓存避免一次开 7 个 server 触发 7 次重复探测。 + - 配套 schema 扩展(`McpStdioServerConfigSchema.prerequisites`)、`prerequisitesService`、`GET /api/plugins/prerequisites`、`PluginPrerequisitesModal`。 +- **一键安装缺失依赖**(#9)。`PluginPrerequisitesModal` 底部新增"一键安装(N)"按钮:打开终端 tab → 等待终端就绪 → 按 150ms 间隔逐条注入每行依赖的首选安装命令(winget / scoop / brew / apt / dnf 看平台)。Watched automation 而非静默执行,用户全程能看到、能 Ctrl-C 打断。 +- **逆向插件依赖声明**(#10)。`reverse-engineering` 插件的 7 个 stdio server(ghidra / radare2 / gdb / lldb / jadx / apktool / frida)全部声明 `prerequisites[]`,弹窗去重后呈现 5 个独立行:`uvx` / `npx` / `radare2` / `gdb` / `java`,各自带 win32 / darwin / linux 的安装命令。 +- **桌面 UX Phase 1 + Sidebar 重构**(#11)。 + - **可访问性**:`MessageList` 加 `role="log"` + `aria-live="polite"`,`StreamingIndicator` 加 `role="status"`,`TabBar` 滚动按钮加 `aria-label`,浏览器地址栏 / 浏览面板硬编码中文字符串改走 i18n。 + - **新共享组件**:`Skeleton`(text / rect / circle 三种变体,带 `role="status"` + `aria-label="Loading"`)和 `Tooltip`(DOM 实现,支持快捷键提示槽)。 + - **侧边栏骨架占位**:`Sidebar` 初始拉取阶段不再显示 "Loading..." 文本,改用 6 行 skeleton 网格;`TraceListSkeleton` 也迁移到共享组件。 + - **Sidebar 重构**:`Sidebar.tsx` 从 1979 行精简到 ~1150 行,抽出 `sidebarUtils.ts`(项目分组 / localStorage 持久化 / 偏好 / 路径处理 / 时间格式化)和 `sidebarComponents.tsx`(图标 / `NavItem` / `ProjectHeaderMenu` / `SessionRowMeta` 等)。纯结构拆分,行为不变。 + +## 改进 + +- **i18n 完整覆盖**。本版本所有新增 UI 字符串(深度接续 toggle、依赖弹窗、Skeleton / Tooltip 提示等)在 5 个语种(en / zh / zh-TW / jp / kr)同步落地。 + +## 范围 + +- 接续:`src/server/services/sessionSummaryService.ts`(默认尺寸三常量 + 深度模式三常量 + `rebuildRecentRawForHandoff` + `readTurnsFromTranscript` 抽离)、`src/server/ws/{events,handler}.ts`(`set_handoff_summary` 加 `deep?: boolean`)、`desktop/src/components/welcome/RecentActivityCard.tsx`(toggle pill + localStorage)、`desktop/src/pages/{EmptySession,ActiveSession}.tsx`(透传 `deep`)、`desktop/src/types/chat.ts`、5 个 i18n locales。 +- 插件依赖检测:`src/server/services/prerequisitesService.ts` + `pluginService.ts`、`src/server/api/plugins.ts`、`src/services/mcp/types.ts`(schema 扩展)、`desktop/src/components/plugins/PluginPrerequisitesModal.tsx`、`desktop/src/components/plugins/PluginList.tsx`、`desktop/src/api/plugins.ts`、`desktop/src/types/plugin.ts`、`desktop/src/lib/terminalCommandInjection.ts`(一键安装注入)、5 个 i18n locales。 +- 逆向插件:`plugins/reverse-engineering/mcp/servers.json`(7 个 server 加 `prerequisites[]`)、`plugins/reverse-engineering/.claude-plugin/plugin.json`(0.4.2 → 0.4.3)、`plugins/reverse-engineering/README.md`。 +- 桌面 UX:`desktop/src/components/{shared/Skeleton,shared/Tooltip,chat/MessageList,chat/StreamingIndicator,layout/TabBar,browser/BrowserAddressBar,browser/BrowserSurface,layout/Sidebar,layout/sidebarComponents,layout/sidebarUtils}.tsx?`、`desktop/src/pages/TraceList.tsx`、5 个 i18n locales。 + +## 验证 + +- 服务端 `bun test src/server/services/sessionSummaryService.test.ts`:11 passed(含 PR #12 / #13 三条尺寸 lock 测试)✅ +- 桌面端 `bun run lint`(`tsc --noEmit`)✅ +- 桌面端 `bun run test --run src/components/shared/Skeleton.test.tsx src/components/shared/Tooltip.test.tsx`:14/14 passed ✅ +- 桌面端全套测试:172 / 174 文件通过(剩下 2 个失败的 `electron/services/{sidecarManager,terminal}.test.ts` 是 main 上预存在的 Windows 路径 / 可执行位 infra 问题,与本版本无关)✅ +- 插件依赖检测:`McpJsonConfigSchema().safeParse` 对逆向插件的 7 个 server 全部通过 ✅ + +## 升级注意 + +- **零破坏**。本版本所有新字段(`McpStdioServerConfig.prerequisites`、`SessionSummary.recentRaw`、`set_handoff_summary.deep`)都是可选的,旧的 v0.5.9 缓存 / 配置 / WS 消息全部继续生效。 +- **新功能默认行为**。深度接续 toggle 默认关闭(走 v0.5.10 的 24/600/16k 默认尺寸),用户主动开启才会切到 60/800/50k。