Skip to content

Releases

v0.3.1

Choose a tag to compare

@dotdance dotdance released this 22 Oct 03:43

0.3.1 声明修正版

本版只改兼容性声明,不改插件行为:engines.dsh 从没有上界的 >=0.2.0-rc.2 改成 ^0.2.0-rc.2 || ^0.2.1-0,5 个 @deepseek-ai/dsh-* peer 与 2 个 @deepseek-ai/dsh-* dependency 同步到同一区间。源码与界面没有变化。

修正一:补上上界

旧区间 >=0.2.0-rc.2 没有上界,DSH 连 1.0.0 都判为兼容。本插件的职责是限制工具:若未来的大版本改了 tools.restrict 的语义,插件会「照常加载但限制没生效」——这比直接被禁用更危险。新区间盘掉 0.3.0、0.3.0-alpha.* 与 1.0.0。

修正二:0.2.0-rc.2 上的放宽从来没有生效

engines.dsh 这个判定机制是 DSH 0.2.1-alpha.4 才引入的。更早的宿主(包括 0.2.0-rc.2)根本不读 engines.dsh,只看 peerDependencies;而之前的 peer 区间是 ^0.2.1-alpha.2,在 0.2.0-rc.2 上不满足 —— 插件会被判为不兼容并被禁用。

所以「支持 0.2.0-rc.2」这条放宽,在真正能用到它的宿主上其实一次都没生效。现在 engines.dsh 与 peer 使用同一区间,两条判定路径结论一致。

为什么区间写成这样

^0.2.0-rc.2 || ^0.2.1-0 不够直观,但它是唯一能同时满足两个消费者的写法:

消费者 判定语义
DSH(evaluatePluginCompatibility) semver.satisfies(range, { includePrerelease: true })
npm / pnpm 默认模式:预发布版本只有在同一 主.次.修 三元组也带预发布号时才匹配

更直观的 >=0.2.0-rc.2 <0.3.0-0 在 npm 模式下会拒掉 0.2.1-alpha.* 与 0.2.1-rc.*(实测:pnpm install --frozen-lockfile 直接报错),在 DSH 模式下却放行。^0.2.1-0 里的 -0 把 0.2.1 三元组的预发布纳入匹配,两个模式的结论由此一致。

验证

  • 用 DSH 0.2.1-rc.2 的官方 evaluatePluginCompatibility 跑本 manifest:0.2.0-rc.1、0.3.0-alpha.1、0.3.0、1.0.0 均不兼容;0.2.0-rc.2 起至 0.2.2 全部兼容。
  • pnpm install --frozen-lockfile 通过,pnpm peers check 无问题。
  • pnpm run typecheck / build / test(19 个文件、300 个测试)全过。

升级提示

  • 已在 DSH 0.2.1.x 上的用户:无感知,照常安装即可。
  • 想留在 0.2.0-rc.2 的用户:现在会被判为兼容,但本插件没有在 0.2.0-rc.2 实机上跑过(只在 0.2.1-alpha.2 与 0.2.1-rc.2 上验证过 API 与装配)。若装配后界面异常,请提 issue,并可用 dsh plugin add @dotdance/dsh-skill-scope@0.3.0 回退。

v0.3.0

Choose a tag to compare

@dotdance dotdance released this 21 Oct 08:18

0.3.0 正式版

0.3.0 把 0.2.1 之后的三轮预发布收拢成一个正式版:0.3.0-alpha.1 引入工作区层的新语义,alpha.2 修复了桌面上全局面板看不到用户级 Skill 的问题,alpha.3 修复了 Windows 上的分组与来源显示。latest 标签从 0.2.1 移到本版本,普通安装会直接升到 0.3.0。

破坏性变更:工作区层改为逐项三态

旧语义是「全局是硬上限」:全局关掉的项,工作区不能打开。新语义下全局层只是默认值:

.dsh-scope.json 里的值 含义
键不存在 跟随全局
true 明令打开
false 明令关闭
  • 旧格式(只有 disabled 黑名单)仍可读入,不会报错;下次在面板里改动时,文件会按新格式重新写出,黑名单条目会明显减少。
  • 用 ^0.2.1 升级到本版本的用户会感受到这个语义变化,请在升级说明里留意。

新增:@deepseek-ai 官方 Skill 默认不列

官方基础设施 Skill(office 系列与 diagnose-windows-sandbox-acl 等)默认不出现在清单里,但模型仍然可以调用它们——隐藏只影响清单与开关视图。要显示它们,打开清单视图条右端的「显示官方 Skill」开关;显示后与普通行一样可以逐项关闭。

修复

  1. 桌面上全局面板看不到用户级 Skill(issue #1 的主症状)。stock dsh-web-app 关闭了宿主 skill-filesystem 行、改由每个 preset 各自挂一份,于是用户根($DSH_HOME/skills、$AGENTS_HOME/skills)落进 preset 层,而全局面板只读 GLOBAL 层。本插件自带的 bundle patch 现在重新打开宿主那一行:
    - id: skill-filesystem
      name: "@deepseek-ai/dsh-skill-filesystem"
      disabled: false
    如果你在自己的 profile patch 里显式把这一行设成 disabled: true,profile 的 patch 在 bundle 之后生效,可以覆盖本默认值。
  2. Windows 上磁盘 Skill 被归入「运行时注入」、来源空白。分组函数按 / 切分路径,而 Windows 的 path 是反斜杠形态,切不开就得到空分组名,前端兜底成本地化文案「运行时注入」。现在在分组入口统一把反斜杠归一化,路径的大小写、盘符与 UNC 前导 // 保持不变。

已知代价与限制

  • 目录会被扫描两遍:宿主与 preset 各持一个 provider,watcher 与清单失效次数相应翻倍。这是修复全局面板所付出的代价。
  • Windows 修复未经真机验证:手边没有 Windows 环境,只跑了反斜杠路径的模拟用例;issue #1 仍在等对方的真机回归。如有不一致,请在该 issue 反馈。

校验

pnpm run check(typecheck + build + 测试):19 个测试文件、300 项测试全部通过。

安装

# 普通安装(取 latest,即本版本)
dsh plugin --profile web add @dotdance/dsh-skill-scope

# 桌面端
dsh plugin --profile desktop add @dotdance/dsh-skill-scope@0.3.0

锁定旧行为可装 @dotdance/dsh-skill-scope@0.2.1;若想留在预发布线,@alpha 仍指向 0.3.0-alpha.3。

v0.3.0-alpha.3

v0.3.0-alpha.3 Pre-release
Pre-release

Choose a tag to compare

@dotdance dotdance released this 21 Oct 07:22

v0.3.0-alpha.3(预发布)

请勿用于生产。 要装正式版仍然用 @latest。

本版新增「官方 Skill 默认隐藏」的显示开关,并修复 Windows 上的 Skill 来源分组。

官方 Skill 默认不列

@deepseek-ai 官方包自带的 Skill(cordis-* 预设、office-* 等)不再出现在面板清单里。模型仍然可以自动调用它们。

要看、要关这些行时,打开视图条右端的「显示官方 Skill」开关:这些行回到清单,与普通行一样可以逐项关闭。

这个开关是单机级的(存在 $DSH_HOME/skill-scope/global.json)。全局面板与工程面板都展示它,两个面板永远读到同一个值;在工程面板里打开,同样对所有工程生效。

Windows 路径分组修复

宿生在 Windows 上给出的 Skill path 是反斜杠原生形态。此前本插件按 / 切分,结果所有磁盘 Skill 落进同一个空 key 分组,来源一栏显示为空白。现在在入口处统一转成 / 再切分(与 DSH 前端 sessionFileAddress 同一口径),因此「来源」里的路径与 DSH 自身的显示一致。

校验

pnpm run check(typecheck + build + 300 项测试)全部通过。

安装

dsh plugin --profile web add @dotdance/dsh-skill-scope@0.3.0-alpha.3

v0.3.0-alpha.2

v0.3.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@dotdance dotdance released this 21 Oct 03:58

本版本让插件在 bundle patch 层启用宿主的 skill-filesystem 行,使 profile 里的 customSkillDirs 生效。

v0.3.0-alpha.1(预发布)

Pre-release

Choose a tag to compare

@dotdance dotdance released this 20 Oct 10:19

v0.3.0-alpha.1(预发布)

工作区层语义变更后的第一个预发布版本。请勿用于生产,要装正式版仍然用 @latest(0.2.1)。

破坏性变更:全局层不再是硬上限

旧行为:工作区只能在全局黑名单上「再关一批」。全局关掉的项,工作区里看不到,也打不开。

新行为:工作区逐项保存「明令开 / 明令关」,没有记录的项跟随全局。因此工作区可以打开全局关着的项,也可以关掉全局开着的项。全局层从「上限」降级为「默认值」。

.dsh-scope.json 的新格式:

{ "workspace": { "skills": { "某个技能": false }, "mcps": { "某个MCP": true } } }

三类语义由「键在不在」区分:

  • 键不存在 = 跟随全局(全局变了它跟着变)
  • true = 明令开
  • false = 明令关

旧格式 {"default": {"skills": [...]}} 仍然可读,并在下一次保存时改写为新格式。改写会删除与全局当前状态一致的条目,因此文件可能明显瘦身(设计文档记录的一个真实工程为 72 条降到 9 条)。这是预期行为,不是丢数据。

面板

  • 工作区弹层不再过滤掉「全局已关」的项,直接列出与全局层相同的清单
  • 与全局当前状态不同的行标红(只看差异,不看开关方向)
  • 新增第四个视图按钮「与全局不同」

其他

  • 精简重构:src/** 6295 → 6124 行,CapabilityPanel.tsx 657 → 238 行,拆出 panel-model.ts(纯函数)与 panel-state.ts(React hook),测试文件零改动
  • 发布流水线修正:npm 11 起预发布版本必须显式带 --tag,否则发布直接报错。本版发布到 alpha 标签

安装

dsh plugin --profile web add @dotdance/dsh-skill-scope@0.3.0-alpha.1

Release v0.2.1

Choose a tag to compare

@dotdance dotdance released this 17 Oct 11:47

0.2.1

自动化发布

  • 新增 GitHub Release → npm 自动发布流水线(.github/workflows/publish.yml)
  • 采用 npm Trusted Publishing (OIDC),无需长期 NPM_TOKEN
  • 发布前自动校验 tag 与 package.json 版本一致

变更

  • client 端与构建配置调整
  • 补充测试覆盖(bundle 相关用例)

Release v0.1.0

Choose a tag to compare

@dotdance dotdance released this 16 Oct 03:36

Initial release of dsh-skill-scope: Skill and MCP control panel for DSH (global + project scope toggles).