@michengai/dsh-skills-manager 1.2.19 → 1.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.21 - 2026-10-28
4
+
5
+ - Fix Windows transient directory rename locks: Reuse `renameWithRetry` across atomic skill copy, upload staging, skill creation, and repository updates to automatically retry on transient `EPERM`/`EBUSY` locks caused by background filesystem indexers or antivirus scanners, preventing spurious "Import failed" errors.
6
+
7
+ ## 1.2.20 - 2026-10-26
8
+
9
+ - Support registering custom skill sources: Allow adding skill folders for third-party agents outside the built-in list as read-only external sources, persisted to the `customSources` section in `roots.json` with full support for grouping, categories, and toggles (Issue #67, PR #68).
10
+ - Scan product directories for skill candidates: Add automatic detection of sub-profile skill folders up to two levels down, reporting skill counts, conflicts, and registration states for one-click batch registration (PR #68).
11
+ - Refine custom source form UX: Place the display name field before the folder path field; retain the settings modal and smoothly fallback to remaining sources when unregistering a custom source, keeping scan candidates up to date.
12
+ - Modal action layout polish: Add visual separation and ample margin between form actions and the global footer buttons, preventing misclicks and visual grouping ambiguity.
13
+
3
14
  ## 1.2.19 - 2026-10-25
4
15
 
5
16
  - Configurable external skill source folders: External read-only agent sources (Codex, Claude Code, Cursor, CC Switch, Google Antigravity, etc.) can now be pointed at custom folders directly from the UI, persisted to `~/.dsh/skills-manager/roots.json` taking precedence over environment variables with immediate effect (PR #66).
@@ -2,6 +2,17 @@
2
2
 
3
3
  [English](CHANGELOG.md)
4
4
 
5
+ ## 1.2.21 - 2026-10-28
6
+
7
+ - 修复 Windows 下技能导入与更新的瞬时文件锁冲突:在原子复制替换、解压暂存包装、新建技能及仓库更新回滚等路径中全面复用 `renameWithRetry` 重试机制,有效规避 Windows Defender 与系统索引器在瞬时扫描时导致的 `EPERM`/`EBUSY` 抛错,彻底消除界面偶发或高发的「导入失败」报错。
8
+
9
+ ## 1.2.20 - 2026-10-26
10
+
11
+ - 支持登记非标 Agent 技能目录(自定义来源):清单外的第三方 Agent 可直接登记为只读外部来源,配置持久化至 `~/.dsh/skills-manager/roots.json` 的 `customSources` 段,支持与内置来源同等的分组、分类与启停能力(Issue #67、PR #68)。
12
+ - 产品总目录扫描与候选识别:支持输入 Agent 产品总目录向下自动探测 2 层内含 `SKILL.md` 的技能目录,按「产品 / 子目录」列出候选、统计技能数并标记重叠与登记状态,确认后一键批量登记(PR #68)。
13
+ - 优化自定义来源交互体验:调整表单顺序为先显示名后技能目录;点击「移除登记」后不再关闭弹窗,平滑切换至剩余可用来源并同步刷新候选状态。
14
+ - 优化弹窗底栏视觉间距与分割:为表单弹窗底部全局操作栏(取消/保存)增加上边距与分割线,彻底消除局部操作按钮与全局按钮紧贴造成的误触与视觉混淆。
15
+
5
16
  ## 1.2.19 - 2026-10-25
6
17
 
7
18
  - 支持自定义外部技能来源目录:外部只读 Agent 来源(Codex、Claude Code、Cursor、CC Switch、Google Antigravity 等)支持在面板中自定义读取路径,配置保存至 `~/.dsh/skills-manager/roots.json`,优先级高于环境变量且即时生效(PR #66)。
package/README.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  > DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
21
21
 
22
- This README describes **1.2.19**. Released changes are in the [changelog](CHANGELOG.md).
22
+ This README describes **1.2.21**. Released changes are in the [changelog](CHANGELOG.md).
23
23
 
24
24
  ## Features
25
25
 
@@ -74,7 +74,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
74
74
 
75
75
  Restart DSH, refresh the page, and open **Settings → Skills**. To update, select **Check for updates** or run the installation command again.
76
76
 
77
- - Plugin `1.2.19` is tested with DeepSeek Harness `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1`, `0.2.1-rc.2`, `0.2.1-rc.3`.
77
+ - Plugin `1.2.21` is tested with DeepSeek Harness `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1`, `0.2.1-rc.2`, `0.2.1-rc.3`.
78
78
  - Host compatibility: Full DeepSeek Harness `0.2.x` line (`>=0.2.0-rc.1 <0.3.0-0`), forwards-compatible with subsequent `0.2.x` releases, alphas, and RCs without requiring routine plugin version bumps. Legacy versions and breaking changes in the `0.3.0` generation are rejected by the version gate. If you still use a `0.1.x` host, install plugin `1.1.23` instead of `@latest`.
79
79
  - **Reverse proxy deployment**: Supports hosting DSH behind prefix-stripping reverse proxies (e.g. `/app/dsh/`). API and update endpoints resolve against the page base URI (`document.baseURI`).
80
80
 
@@ -187,6 +187,14 @@ The DeepSeek Harness loader enforces strict identifier policies:
187
187
  Ordinary project-root `<project>/skills` directories are not scanned, so repository release resources are not exposed as Agent skills. OpenClaw / Clawdbot support is limited to the user-level sources above. Qoder CN CLI project skills use `<project>/.qoder/skills` and appear as Qoder. Qoder CN IDE uses the Lingma directories. Missing external source directories are not shown.
188
188
  External agent sources (CC Switch, Codex, Claude Code and others) can be pointed at another folder from the source row; the change takes effect immediately. Overrides are stored in `~/.dsh/skills-manager/roots.json` and take precedence over `DSH_<AGENT>_HOME`; editing that file by hand requires restarting DSH. DSH and Shared Agent are the host's scan paths and are not offered here — use `DSH_HOME` / `DSH_AGENTS_HOME` to relocate them. The folder must already exist and must not overlap another source; when a custom folder disappears, the source stays listed so you can restore the default.
189
189
 
190
+ ### Custom sources (agents outside the list)
191
+
192
+ An agent that is not in the table above does not need to wait for a release: open **Source folders**, choose **Add source** and point it at the agent's skills folder. Custom sources behave like built-in external sources — read-only, nothing moved or modified — and support grouping, drag-and-drop organisation, and source-level plus category-level toggles. The display name defaults to the folder name and can be overridden.
193
+
194
+ When an agent keeps a separate skills folder per sub-profile (multiple accounts or workspaces), point at the **product folder** and choose **Scan subfolders**: the plugin looks two levels down for every `skills` folder containing `SKILL.md` and lists them as candidates named `product / subfolder`, each with its skill count, so you can register them in one go. Scanning only produces candidates and never registers anything by itself; candidates overlapping an existing source are flagged and cannot be added.
195
+
196
+ Registrations live in the `customSources` section of `roots.json`, alongside the folder overrides. Removing a registration only deletes that record — the skill files on disk are left untouched. Up to 32 custom sources are supported.
197
+
190
198
  ## DSH product ecosystem
191
199
 
192
200
  For a desktop workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). Existing [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) installations can add plugins as needed by following each project's README. Below are 11 first-party plugins; consult the corresponding desktop release notes and bundled catalog for what that version includes.
package/README.zh-CN.md CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  > DSH Skills Manager 是社区维护的 DeepSeek Harness(DSH)插件,并非 DeepSeek AI 官方产品。
21
21
 
22
- 本文描述 **1.2.19**。已发布变更见[更新日志](CHANGELOG.zh-CN.md)。
22
+ 本文描述 **1.2.21**。已发布变更见[更新日志](CHANGELOG.zh-CN.md)。
23
23
 
24
24
  ## 功能概览
25
25
 
@@ -74,7 +74,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
74
74
 
75
75
  安装后重启 DSH 并刷新页面,打开「设置 → 技能」即可使用。更新时可点击「检查更新」,或重新执行安装命令。
76
76
 
77
- - `1.2.19` 已验证兼容 DeepSeek Harness `0.2.0-rc.1`、`0.2.0-rc.2`、`0.2.1-rc.1`、`0.2.1-rc.2`、`0.2.1-rc.3`。
77
+ - `1.2.21` 已验证兼容 DeepSeek Harness `0.2.0-rc.1`、`0.2.0-rc.2`、`0.2.1-rc.1`、`0.2.1-rc.2`、`0.2.1-rc.3`。
78
78
  - 宿主支持范围:DeepSeek Harness `0.2.x` 全系列(`>=0.2.0-rc.1 <0.3.0-0`),自动支持后续日常小版本、alpha 与 RC,同代宿主升级无需重复等待发版。早期版本与 `0.3.0` 代际破坏性更新由版本门拦截。仍在使用 `0.1.x` 的,请安装插件 `1.1.23`,不要装 `@latest`。
79
79
  - **反向代理部署**:支持将 DSH 部署在带路径前缀的反向代理后面(如 `/app/dsh/`),插件 API 统一自动按页面基址(`document.baseURI`)相对解析。
80
80
 
@@ -187,6 +187,14 @@ DeepSeek Harness 宿主加载机制对技能标识符遵循规范命名约束:
187
187
  不扫描普通项目根目录的 `<project>/skills`,避免把仓库的发布资源当作 Agent 技能。OpenClaw / Clawdbot 仅保留上表中的用户级来源。Qoder CN CLI 的项目技能在 `<project>/.qoder/skills`,显示为 Qoder。Qoder CN IDE 使用 Lingma 目录。不存在的外部来源目录不会显示。
188
188
  外部 Agent 来源(CC Switch、Codex、Claude Code 等)可以在来源行直接改读哪个目录,保存后立即生效。覆盖保存在 `~/.dsh/skills-manager/roots.json`,优先级高于 `DSH_<AGENT>_HOME`;手工编辑该文件需重启 DSH。DSH 与公共 Agent 是宿主的扫描路径,不在此处开放,需要整体搬迁时请改 `DSH_HOME` / `DSH_AGENTS_HOME`。目录必须已存在,且不能与其它来源重叠;自定义目录失效时来源会保留在列表里,方便改回默认。
189
189
 
190
+ ### 自定义来源(清单外的 Agent)
191
+
192
+ 表里没有的 Agent 不必等插件发版:打开「来源目录…」,点「添加来源」,填它的技能目录即可。自定义来源与外部只读来源同构——只扫描不写入、不改动第三方文件,支持分组、拖拽归类、来源级与分类级启停;显示名默认取目录名,也可以自己填。
193
+
194
+ 如果一个 Agent 用多个子 profile(多账号、多工作区)各自维护一套技能,**填产品总目录再点「扫描子目录」**:插件会向下找两层内所有含 `SKILL.md` 的 `skills` 目录,列成候选,每条显示为「产品名 / 子目录名」并标注技能数量,确认后一次登记。扫描只产生候选,不会自动登记;与已有来源重叠的候选会被标出并禁止登记。
195
+
196
+ 登记信息写在 `roots.json` 的 `customSources` 段,与目录覆盖共用同一个文件。移除登记只删除这条记录,磁盘上的技能文件保持原样。上限 32 个自定义来源。
197
+
190
198
  ## DSH 产品生态
191
199
 
192
200
  想使用桌面工作台,可下载 [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases);已有 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 环境,可按各项目 README 按需安装。以下列出 11 个自研插件;桌面端实际随附范围以对应版本的发行说明和内置清单为准。
@@ -0,0 +1,29 @@
1
+ <svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="dsh_svg_skill_book" x1="4" y1="10" x2="32" y2="30" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#7C3AED"/>
5
+ <stop offset="1" stop-color="#A855F7"/>
6
+ </linearGradient>
7
+ <linearGradient id="dsh_svg_skill_star" x1="14" y1="4" x2="22" y2="16" gradientUnits="userSpaceOnUse">
8
+ <stop stop-color="#FBBF24"/>
9
+ <stop offset="1" stop-color="#F59E0B"/>
10
+ </linearGradient>
11
+ </defs>
12
+ <!-- Open Skill Book (Left & Right Pages) -->
13
+ <!-- Left Page -->
14
+ <path d="M18 20C13 18.5 8 19 5 21V28.5C8 26.5 13 26 18 27.5V20Z" fill="url(#dsh_svg_skill_book)" stroke="#6D28D9" stroke-width="1.4" stroke-linejoin="round"/>
15
+ <!-- Right Page -->
16
+ <path d="M18 20C23 18.5 28 19 31 21V28.5C28 26.5 23 26 18 27.5V20Z" fill="url(#dsh_svg_skill_book)" stroke="#6D28D9" stroke-width="1.4" stroke-linejoin="round"/>
17
+ <!-- Book Spine / Middle Fold -->
18
+ <line x1="18" y1="20" x2="18" y2="28" stroke="#FFFFFF" stroke-width="1.8" stroke-linecap="round"/>
19
+
20
+ <!-- Code / Skill Glyphs on Book Pages -->
21
+ <line x1="8" y1="23.5" x2="14" y2="22.5" stroke="#DDD6FE" stroke-width="1.4" stroke-linecap="round"/>
22
+ <line x1="22" y1="22.5" x2="28" y2="23.5" stroke="#DDD6FE" stroke-width="1.4" stroke-linecap="round"/>
23
+
24
+ <!-- Ascending Radiant Skill Star (Talent / Power Mastery) -->
25
+ <path d="M18 5L19.8 10L25 11.8L19.8 13.6L18 19L16.2 13.6L11 11.8L16.2 10L18 5Z" fill="url(#dsh_svg_skill_star)" stroke="#FFFFFF" stroke-width="1.2"/>
26
+ <!-- Power Sparkles on Sides -->
27
+ <circle cx="8" cy="12" r="1.4" fill="#FBBF24"/>
28
+ <circle cx="28" cy="12" r="1.4" fill="#FBBF24"/>
29
+ </svg>