mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-08-01 16:43:37 +08:00
Combine main's Workspace LSP release notes with image-gen plugin feature notes. Keep main's editor-lsp-foundation content and add new sections for image-gen MCP plugin, desktop plugin config, and inline image rendering. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4.8 KiB
4.8 KiB
v0.5.12
本版本聚焦 Workspace LSP 的产品链路收尾:桌面工作区编辑器会把打开、修改、保存事件同步给 Workspace LSP 服务,并通过标准
textDocument/publishDiagnostics接收语言服务器诊断。自定义 LSP 服务器配置现在可以从桌面设置持久化进入工作区 LSP 流程,并且在扩展名重叠时优先于内置预设。同时新增 image-gen MCP 插件,支持多 provider 图像生成 + 自动 fallback;桌面端新增插件可视化配置和聊天内图片渲染。
新功能
Workspace LSP 自动诊断链
- 工作区编辑器在文件
open/change/save时调用 session LSP sync API,服务端启动匹配的语言服务器并发送 LSP 文档同步通知。 - 诊断只来自语言服务器的
textDocument/publishDiagnostics通知,桌面按文件 URI 缓存并展示错误、警告、信息和提示级别诊断。 - LSP 状态接口返回当前文件匹配到的 server name、command、ready / starting / unavailable 状态和启动错误,保留工作区路径校验,拒绝越界路径。
自定义 LSP 支持
- 支持用户提供自定义 LSP
path或裸command,并使用独立args: string[]传参;不接受 shell 字符串拼接,Windows 含空格的绝对路径可作为path使用。 - 自定义
extensionToLanguage映射会覆盖重叠扩展名的内置预设。例如用户为.ts配置自定义 server 时,.ts会路由到自定义 server,而.tsx/.js/.jsx仍可继续使用 TypeScript 预设。 - 桌面设置 store 新增
workspaceLsp持久化字段,Workspace Panel 的 LSP state / diagnostics / sync 请求会自动带上该配置并触发必要的重启。
image-gen MCP 插件
- 新增多 provider 图像生成 MCP 插件,支持 Agnes、GPT-image-2、DALL-E、Gemini image、Flux、Stable Diffusion 等 OpenAI 兼容 API。
- 3 个可配置 provider 槽位,按优先级顺序调用,失败自动 fallback。
- 每个 provider 内部支持完整参数 → 精简参数兼容重试(借鉴 spriteflow)。
- 内置模型能力数据库,agent 可查询每个模型支持的尺寸、编辑、透明背景等能力。
- SSRF 防护:阻止内网地址、file://、ftp:// 等危险 URL。
桌面端插件配置
- 新增 PluginConfigModal 组件,支持可视化配置插件 userConfig 选项。
- PluginDetail 详情页新增 Configure 按钮(当插件有 userConfig 时显示)。
- 新增
GET/POST /api/plugins/optionsAPI 端点,敏感值返回********。
聊天内图片渲染
- Tool result 中的 MCP image content block(
{ type: 'image', data, mimeType })现在在聊天 UI 中渲染为内联图片。 - 支持 MCP image block 和 OpenAI-style image_url block 两种格式。
修复
- 修复自定义 LSP server 被内置 preset 抢占同扩展名的问题。
- 修复桌面设置中的自定义 LSP 配置未进入 Workspace LSP 产品链路的问题。
- 修复 image-gen 插件 IPv6 SSRF 防护绕过(
[::1]vs::1)。
范围说明
- 本版本没有实现语言服务器安装器,也不打包
typescript-language-server/pyright/rust-analyzer。 - 本版本没有手写 rust-analyzer 或 TypeScript 诊断;诊断来源仍是语言服务器发布的
publishDiagnostics。 - Settings UI 的完整表单仍可后续补齐;当前交付的是可持久化的设置/API/store hook 与 Workspace LSP 流程接线。
- image-gen 插件为独立 MCP server,不影响现有 CLI 或桌面功能。
验证
- 服务端 Workspace LSP 单元测试覆盖:路径越界保护、自定义绝对路径与 args 数组、自定义
.ts覆盖 TypeScript 预设、publishDiagnostics缓存映射、open/change/save 同步。 - 桌面 store 单元测试覆盖:自定义 LSP 设置持久化与规范化、Workspace Panel 向 LSP state / diagnostics / sync 请求注入持久化配置、空配置不注入。
- image-gen MCP server 验证:初始化、tools/list、list_providers 能力信息、prompt 空校验、n 参数 clamp、edit 能力检查、SSRF 防护(IPv4 私有地址 + IPv6)。
- 桌面 TypeScript 编译通过。
editor-lsp-foundation 全景
v0.5.11 + v0.5.12 联合闭合 .kiro/specs/editor-lsp-foundation/ 的 47 task:
| Phase | 内容 | PR | Release |
|---|---|---|---|
| Phase 1 | 默认 'all' 视图 | #23 | v0.5.11 |
| Phase 2 | CodeMirror 编辑器 + 原子保存 + 冲突 banner | #24 | v0.5.11 |
| Phase 3 | LspManager + LspStatusIndicator | #26 | v0.5.11 |
| Phase 4 | agent 编辑桥 | #29 | v0.5.12 |
| Phase 5 | Solo lspErrorCount 信号 | #27 | v0.5.11 |
| 收尾 | release notes + spec 关闭 | (本 PR) | v0.5.12 |
剩余的"WorkspaceEditor 接入 WorkspacePanel header"与"production LspClientFactory 包 typescript-language-server"是 spec 范围外的下一阶段工作——前 5 phase 把所有底座组件铺好,集成到 panel 是单独的小 PR。