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>
74 lines
4.8 KiB
Markdown
74 lines
4.8 KiB
Markdown
# 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/options` API 端点,敏感值返回 `********`。
|
||
|
||
### 聊天内图片渲染
|
||
|
||
- 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。
|