mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-31 16:33:34 +08:00
5.9 KiB
5.9 KiB
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 可预期。
- 服务端零额外 LLM 成本:复用已缓存的 LLM 摘要
- 会话接续:默认 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。
- 配套 schema 扩展(
- 一键安装缺失依赖(#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。