Repository navigation
Releases: qinyre/dsh-plugin-capabilities
Release list
v0.4.1
修复内容
MCP 配置变更改为在线生效(官方机制)
此前「模型与能力 → MCP」中的每一次新增、修改、停用、删除、导入或市场安装,都会提示「重启 dsh 后生效」。该重启并非官方机制:官方插件管理器通过 app-boot 的 reconcileProfilePatches 对补丁层变更执行在线重组(带 hmr 服务的宿主在文件写入后自动重组);而桌面端的重启由应用托盘菜单承担,官方 dshDesktop 桥并未提供任何重启接口——本插件客户端此前调用的重启桥方法在官方桥面上并不存在,桌面端的「重启服务」按钮实际是无效操作。
本版本将 MCP 变更接入官方在线重组链路:
- 每次变更写入补丁层后,即以运行时锚定的 app-boot 执行与官方一致的
reconcileProfilePatches; - 重组成功时返回
applied: true,界面显示「已生效,无需重启」,变更即时进入运行中的会话; - 宿主缺少该能力时(0.1.x 等旧运行时)保持原有「需重启」提示,独立 dsh web 的自重启通道不变;
- 桌面端不再调用不存在的重启接口:需重启时仅按官方方式提示使用托盘菜单「重启服务」,页首的重启按钮仅保留在独立运行模式。
已通过真实宿主端到端验证:新增、停用、删除均在线生效,无需任何重启。
其他
- 桌面桥类型声明修正为官方实际暴露的表面(此前声明了并不存在的接口成员)。
v0.4.0
新功能
- 扫描来源扩容:本机其他 agent 的技能目录自动纳入扫描——新增 Gemini CLI、Cursor、GitHub Copilot、Windsurf、OpenCode、Trae(含 CN)、Roo Code、Qoder(含 CN)、CodeBuddy、WorkBuddy、OpenClaw(含旧目录)与 CC Switch,目录存在才扫,零拷贝、原地同步;技能嵌在 marketplace 之类的子目录时,插件会定位嵌套技能文件夹并挂载其父目录,marketplace 式布局不再漏扫;「技能」页来源标签按 agent 名标注,可按来源筛选。
- 项目级技能:「技能」页新增工作区下拉(读取 dsh 已登记的工作区),选定后列表针对该工作区——项目里的
.dsh/skills与.agents/skills进入目录(「项目」标签),可查看、开关,.dsh/skills里的技能还能就地编辑;未提供工作区服务的旧宿主自动隐藏下拉,行为不变。 - 技能导入:新增「导入技能」,支持文件夹(单技能或集合,含散装
.md)、单个.md文件与 ZIP 压缩包(≤32 MiB,自动穿透 GitHub 式包装目录);目的地可选用户目录或某个工作区的.dsh/skills;同名冲突可跳过或覆盖,逐条结果当场列出。导入按 frontmattername落盘(缺省按文件夹/文件名归一为 kebab-case),装完即被目录发现。
安全与健壮性
- ZIP 导入解包前逐条校验条目名(拒绝绝对路径、
..、Windows 保留设备名),解包在插件状态目录内的暂存区完成并必定清理;含符号链接的技能来源拒绝导入。 - 引用不存在的工作区返回明确错误,绝不静默回落全局目录。
说明
- 新增依赖
fflate(构建时内联进产物)。 - 已在 dsh 0.2.0-rc.2 与 0.2.1-alpha.3 两个运行时上完成安装、工作区枚举、项目技能开关与三种导入路径的实机验证;128 项测试全绿。
- 已知边界:新建技能仍只写入用户目录(工作区写入请走「导入技能」);新装 agent 的目录在下一次重启后纳入扫描。
v0.3.15
适配
- 适配 dsh 0.2 线运行时的插件兼容性审计:将内置的
@deepseek-ai/dsh-skill-filesystem依赖范围由^0.1.1-rc.1提升至^0.2.0-rc.1(安装时解析至 0.2.0-rc.2)。此前该依赖在 0.2.x 运行时上因 peer 依赖不满足而被启动审计停用,并伴随三条启动告警;更新后即解析至 0.2 线,dsh 0.2.0-rc.2 下的启动日志不再出现相关告警。 - 插件功能、页面与路由无任何变化。已在 dsh 0.2.0-rc.2 与 0.2.1-alpha.3 两个运行时上完成安装、挂载与路由验证。
说明
- dsh 0.2.1-alpha 线运行时下,该依赖行仍会因上游 peer 精确钉版而被停用(仅表现为启动告警,技能与 MCP 功能不受影响);待桌面端实际滚动至 0.2.1 线后,将随下个版本再次调整依赖范围。
dsh-plugin-capabilities 0.3.14
本版本修复桌面端 profile 寻址错误的问题,与 dsh-plugin-install 0.4.3 同源。
桌面宿主从不把 --profile 放进命令行参数,插件据此回退的默认 profile 是 web:在桌面端,profile 作用域的 MCP 读取与写入会落在 web profile 上。现改为从模块自身的物理安装位置识别激活的 profile——pnpm 安装的包必然解析到 <home>/profiles/<名称>/node_modules 之下——显式 cordis 配置仍然最优先;经 file: 安装的开发检出位于任何 profile 之外,继续沿用原有的命令行回退。
v0.3.13
v0.3.13
修复官方桌面端中写操作全部失败的问题(issue #4)
- 官方 DeepSeek Harness Desktop 壳将页面请求转发给本地 Host 时会删除
Origin头,此前的同源栅栏因此把桌面端内所有保存、停用、删除、导入、重启等写操作一律拒绝(403 untrusted origin),GET 请求不受影响。 - 现在,无
Origin的请求仅在同时满足以下全部条件时放行:Host 为回环字面量、连接对端为回环、无任何代理转发痕迹头、无跨站Sec-Fetch-Site标记。浏览器发起的 POST 始终携带Origin,跨站页面、Origin: null沙箱与 DNS 重绑定请求依旧被拒。 /restart的信任判定同步放宽:桌面端转发而来的重启请求现在能到达路由,并得到由桌面壳接管重启的应答,而不是 403。- 同源栅栏的判定与拒绝矩阵已补入单元测试。
v0.3.12
v0.3.11
修复 dsh 0.1.5 及以上运行时(含 0.1.7-rc.2)中「技能与 MCP」分区打开后内容区一片空白的问题,并使新版本在旧运行时上同样可用。
根因与修复
宿主客户端组件库 @deepseek-ai/dsh-client-ui-primitives 自 0.1.5 起将全部图标导出从像素尺寸后缀(如 IconRefreshOutline14、IconSkillOutline16)更名为描边规格后缀(Regular/Medium)。插件的客户端产物经宿主 ModuleLoader 的 CJS require 解析该包,缺失的命名导出在 CJS 语义下是 undefined 而非导入失败——于是插件照常激活、设置分区照常注册,直到渲染第一个图标时调用 undefined 抛错,整个分区子树被卸载:导航项还在、内容区空白、控制台无任何输出。服务端路由一切正常,这也是此前路由级探针未能发现它的原因。
本版为图标引入双命名适配层:按运行宿主实际提供的命名代际择一取用(0.1.2 代的 14/16 后缀或 0.1.5+ 的 Regular/Medium),两者都取不到时降级为空渲染而非抛错——今后再有图标更名,最坏也只是少一个图标,不会再白屏整个分区。
验证
- 在 dsh 0.1.7-rc.2 上以真实浏览器驱动设置页验证:技能(15 项清单、开关、来源过滤)、MCP、市场三个标签页完整渲染;全部内容完整渲染、控制台零错误;
- 类型检查与全量单元测试通过(capabilities 82 项)。
v0.3.10
v0.3.9
技能与 MCP 管理插件的首次 GitHub Release,与 npm 上的 dsh-plugin-capabilities@0.3.9 同步。
近期版本的主要变更:
0.3.9 「MCP」页每行新增连通性检查:stdio 服务器在 PATH 中确认命令真实存在(纯文件系统查找,不启动进程),streamable-http 服务器以短超时 GET 探测,任何 HTTP 状态均视为可达(MCP 端点对普通 GET 回 405 属正常)。行支持一键复制到另一层补丁文件,换层不必删除重配。「从其他 Agent 导入」的来源在 Claude Code 与 Codex 之外新增 Cursor(/.cursor/mcp.json)与 Gemini CLI(/.gemini/settings.json),Gemini 的 httpUrl 映射为 streamable-http,SSE 条目跳过。
0.3.8 「MCP」页合并展示全局层与 profile 层:全局层(DSH_HOME/cordis.patch.yml)对本机所有 profile 生效,dsh 组合补丁时排在 profile 层之后,两层出现同名 id 时以全局为准并加以标注。添加、市场安装与导入均可选择写入层,编辑、停用、移除落在该行所在的层。全局文件存在语法错误时,页面单独报出文件路径与出错行列,不影响 profile 行的展示。
0.3.7 cordis.patch.yml 存在语法错误时,页面直接给出文件完整路径与出错行列,并且不写入任何内容;此前保存时只会抛出内部的 "Document with errors cannot be stringified",无从定位。
安装:npm 包名 dsh-plugin-capabilities;DSH Desktop 用户随桌面版本预装,或经插件市场更新。