@michengai/dsh-skills-manager 1.2.34 → 1.3.0
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 +34 -0
- package/CHANGELOG.zh-CN.md +34 -0
- package/README.en.md +2 -2
- package/README.md +2 -2
- package/README.zh-CN.md +2 -2
- package/lib/client.js +31 -7
- package/lib/core.js +31 -4
- package/lib/index.js +20 -0
- package/lib/repositories.js +356 -262
- package/lib/repository-git.js +64 -80
- package/lib/repository-updates.js +65 -5
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.0] - 2026-11-08
|
|
4
|
+
|
|
5
|
+
### New Features
|
|
6
|
+
|
|
7
|
+
- **Bulk operations for skill repositories**: select several entries and install, check for updates, update, restore the previous version, or uninstall in one run. A preflight shows what will run and what will be skipped, and each item reports success, failure, skip, or not run.
|
|
8
|
+
- **The batch scope is spelled out in the header**: items hidden by filters stay selected, and the header says so before you run anything.
|
|
9
|
+
|
|
10
|
+
### Behavior Changes
|
|
11
|
+
|
|
12
|
+
- **Reinstalling after a permanent delete no longer creates duplicate records**: the same skill used to come back as two source records, which then failed with "install record is ambiguous, choose a location"; there is now always exactly one.
|
|
13
|
+
- **A failed permanent delete keeps both the backup and the source record**: if writing provenance or removing the files fails, the trash entry stays and its source record is kept, so you can still restore or retry instead of being left with missing files and a stale record.
|
|
14
|
+
- **A state file that already exceeds 16 MiB can still shrink by deleting trash entries**: the write was rejected before, which made the size limit a dead end.
|
|
15
|
+
- **An interrupted uninstall recovers on its own**: if a single uninstall fails midway, reopening the repository page confirms the files and restores the source record instead of leaving a dangling trash entry.
|
|
16
|
+
- **Batch runs no longer show a possibly wrong progress percentage**: the current phase is shown instead, so concurrent windows cannot interfere. The internal `POST /repositories/progress` endpoint was removed with it, so any external script calling it now gets a 404.
|
|
17
|
+
- **A failed batch uninstall no longer certifies an edited copy as installed**: when files change during the move, that copy now shows as untracked (conflicting) and is claimed again automatically once the files match the install record, so both entry points agree about the same failure.
|
|
18
|
+
- **Clearing the repository list also clears the selection**: removing the last repository no longer leaves a stale selected count or a persisted selection that comes back later.
|
|
19
|
+
- **"Retry failed items" says so when nothing is left to retry**: it no longer does nothing silently when the state changed.
|
|
20
|
+
- **Select-all uses a short label**: long repository names no longer push the header out. Checkboxes now use host controls, so keyboard and screen-reader behavior matches the rest of DSH.
|
|
21
|
+
|
|
22
|
+
[中文](CHANGELOG.zh-CN.md)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [1.2.35] - 2026-11-06
|
|
26
|
+
|
|
27
|
+
### Behavior Changes
|
|
28
|
+
|
|
29
|
+
- **Skill repositories are fetched on demand, and size limits apply while downloading**:
|
|
30
|
+
- every repository source now downloads only the skill directories, so README images and other unrelated assets no longer count; this requires Git on the machine, and adding a repository asks you to install Git when it is missing;
|
|
31
|
+
- size limits take effect during the transfer: free disk space is checked first, and an oversized repository stops immediately with the real limit and the actual size instead of failing after the download;
|
|
32
|
+
- installing reuses the already scanned checkout, so nothing is downloaded twice;
|
|
33
|
+
- upgrade note: the first install from a repository added before this version shows "repository cache missing or expired, refresh the repository and retry" — one refresh migrates it.
|
|
34
|
+
|
|
35
|
+
[中文文档](CHANGELOG.zh-CN.md)
|
|
36
|
+
|
|
3
37
|
## [1.2.34] - 2026-11-06
|
|
4
38
|
|
|
5
39
|
### Improvements
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## [1.3.0] - 2026-11-08
|
|
4
|
+
|
|
5
|
+
### 新功能
|
|
6
|
+
|
|
7
|
+
- **技能仓库支持批量操作**:在多选后一次性安装、检查更新、更新、恢复上一版或卸载,执行前先预检哪些项可做、哪些会被跳过,执行后逐项给出成功、失败、跳过和未执行的结果。
|
|
8
|
+
- **批量操作的实际范围写在标题上**:被筛选隐藏的项目仍计入已选,操作前会明确提示,避免以为只处理了可见项。
|
|
9
|
+
|
|
10
|
+
### 行为变更
|
|
11
|
+
|
|
12
|
+
- **永久删除回收站条目后重新安装不再产生重复记录**:此前同一技能删除后再装回,可能出现两条来源记录,并提示「安装记录不唯一,请明确选择安装位置」;现在始终只有一条。
|
|
13
|
+
- **永久删除失败时会保留备份和来源记录**:删除回收站条目如果在写入来源状态或删除文件时失败,条目仍留在回收站、来源记录也不会丢,可以继续恢复或重试,不会出现「文件没了、记录还在」。
|
|
14
|
+
- **来源状态超过 16 MiB 时仍能通过删除回收站条目收缩**:以前状态达到上限后连删除都会被拒绝,现在删除这类记录的写入被单独放行。
|
|
15
|
+
- **卸载中断后能自行恢复**:单条卸载如果中途失败,重新打开仓库页会按文件内容确认后恢复来源记录,不再留下悬空的回收站记录。
|
|
16
|
+
- **批量执行时不再显示可能错乱的进度百分比**:改为显示当前阶段,避免多个窗口互相干扰。配套移除了插件内部的 `POST /repositories/progress` 接口,若有外部脚本调用该接口会得到 404。
|
|
17
|
+
- **批量卸载失败后不再把改过的副本当作「已安装」**:如果移动过程中文件被改动,该副本会显示为未跟踪(冲突),等磁盘内容重新与安装记录一致后自动恢复认领,不再让两个入口对同一次失败给出不同结论。
|
|
18
|
+
- **仓库被清空时勾选一并清空**:删掉最后一个仓库后,残留的已选计数和会话里保存的选择不再复现。
|
|
19
|
+
- **「重试失败项」没有可重试项时会给出提示**:状态已变化时不再静默无反应。
|
|
20
|
+
- **全选使用短标签**:仓库名较长时不再把标题行挤出去。复选框改用宿主控件,键盘与读屏行为与 DSH 其他界面一致。
|
|
21
|
+
|
|
22
|
+
[English](CHANGELOG.md)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [1.2.35] - 2026-11-06
|
|
26
|
+
|
|
27
|
+
### 行为变更
|
|
28
|
+
|
|
29
|
+
- **技能仓库统一按需检出,体积限制不再事后才报**:
|
|
30
|
+
- 所有仓库来源都只下载技能目录,仓库首页配图等无关内容不参与下载;这需要本机已安装 Git,未安装时添加仓库会直接提示安装;
|
|
31
|
+
- 体积上限在下载过程中生效:开始前先检查磁盘剩余空间,超出上限立即停止并给出实际上限与实际体积,不再等下载结束才失败;
|
|
32
|
+
- 已扫描的仓库在安装时直接复用本地检出结果,不再重复下载;
|
|
33
|
+
- 升级提示:旧仓库首次安装会提示「仓库缓存缺失或已失效,请刷新该仓库后重试」,点一次刷新即可完成迁移。
|
|
34
|
+
|
|
35
|
+
[English](CHANGELOG.md)
|
|
36
|
+
|
|
3
37
|
## [1.2.34] - 2026-11-06
|
|
4
38
|
|
|
5
39
|
### 体验优化
|
package/README.en.md
CHANGED
|
@@ -73,7 +73,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
|
|
|
73
73
|
|
|
74
74
|
Restart DSH, refresh the page, and open **Settings → Skills**. To update, select **Check for updates** or run the installation command again.
|
|
75
75
|
|
|
76
|
-
- Plugin `1.
|
|
76
|
+
- Plugin `1.3.0` 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`, `0.2.1-rc.4`, `0.2.1-rc.5`, `0.2.2-rc.1`.
|
|
77
77
|
- 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` RC releases 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`.
|
|
78
78
|
- **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`).
|
|
79
79
|
|
|
@@ -159,7 +159,7 @@ The DeepSeek Harness loader enforces strict identifier policies:
|
|
|
159
159
|
|
|
160
160
|
- The header **Check for updates** updates the plugin itself; repository **Refresh** checks subscribed skill contents without replacing local files.
|
|
161
161
|
- Repository installation can target user DSH skills, Shared Agent (`~/.agents/skills`, overridable via `DSH_AGENTS_HOME`), or `<project>/.dsh/skills` for registered workspaces. Unsafe paths and external agent roots (Codex, Claude) are locked against writes.
|
|
162
|
-
-
|
|
162
|
+
- All repository sources are fetched through Git on demand: only directories containing `SKILL.md` are downloaded, so README images and other unrelated assets are skipped (a subdirectory narrows the scope further). Without a usable local Git, repositories cannot be added and the plugin asks you to install Git.
|
|
163
163
|
- Local edits are detected and require explicit confirmation before overwriting; backup history is preserved for rollback.
|
|
164
164
|
|
|
165
165
|
## Supported Agent directories
|
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
|
|
|
73
73
|
|
|
74
74
|
安装后重启 DSH 并刷新页面,打开「设置 → 技能」即可使用。更新时可点击「检查更新」,或重新执行安装命令。
|
|
75
75
|
|
|
76
|
-
- `1.
|
|
76
|
+
- `1.3.0` 已验证兼容 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`、`0.2.1-rc.4`、`0.2.1-rc.5`、`0.2.2-rc.1`。
|
|
77
77
|
- 宿主支持范围:DeepSeek Harness `0.2.x` 全系列(`>=0.2.0-rc.1 <0.3.0-0`),自动支持后续全部 0.2.x RC 版本,同代宿主升级无需重复等待发版。早期版本与 `0.3.0` 代际破坏性更新由版本门拦截。仍在使用 `0.1.x` 的,请安装插件 `1.1.23`,不要装 `@latest`。
|
|
78
78
|
- **反向代理部署**:支持将 DSH 部署在带路径前缀的反向代理后面(如 `/app/dsh/`),插件 API 统一自动按页面基址(`document.baseURI`)相对解析。
|
|
79
79
|
|
|
@@ -159,7 +159,7 @@ DeepSeek Harness 宿主加载机制对技能标识符遵循规范命名约束:
|
|
|
159
159
|
|
|
160
160
|
- 顶栏「检查更新」用于更新技能管理器插件自身;仓库区「刷新」仅检查技能仓库内容更新,不自动覆盖本地。
|
|
161
161
|
- 仓库安装可以写入用户目录下的 DSH skills 或公共 Agent(`~/.agents/skills`,可用 `DSH_AGENTS_HOME` 覆盖),也可以写入已登记工作区的 `<项目根>/.dsh/skills`。选择器显示实际配置路径,并禁用不安全路径;缺少的目录仅在确认安装后创建。不能安装到 Codex、Claude 等其他 Agent 目录。
|
|
162
|
-
-
|
|
162
|
+
- 所有仓库来源统一走 Git 按需检出:只下载包含 `SKILL.md` 的技能目录,仓库首页配图等无关内容不参与下载(指定子目录可进一步缩小范围);本机没有可用 Git 时无法添加仓库,会直接提示先安装 Git。
|
|
163
163
|
- 更新前检测本地修改,覆盖必须明确确认;历史备份不自动清理,可随时恢复上一版。
|
|
164
164
|
|
|
165
165
|
## 支持的 Agent 目录
|
package/README.zh-CN.md
CHANGED
|
@@ -73,7 +73,7 @@ dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=htt
|
|
|
73
73
|
|
|
74
74
|
安装后重启 DSH 并刷新页面,打开「设置 → 技能」即可使用。更新时可点击「检查更新」,或重新执行安装命令。
|
|
75
75
|
|
|
76
|
-
- `1.
|
|
76
|
+
- `1.3.0` 已验证兼容 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`、`0.2.1-rc.4`、`0.2.1-rc.5`、`0.2.2-rc.1`。
|
|
77
77
|
- 宿主支持范围:DeepSeek Harness `0.2.x` 全系列(`>=0.2.0-rc.1 <0.3.0-0`),自动支持后续全部 0.2.x RC 版本,同代宿主升级无需重复等待发版。早期版本与 `0.3.0` 代际破坏性更新由版本门拦截。仍在使用 `0.1.x` 的,请安装插件 `1.1.23`,不要装 `@latest`。
|
|
78
78
|
- **反向代理部署**:支持将 DSH 部署在带路径前缀的反向代理后面(如 `/app/dsh/`),插件 API 统一自动按页面基址(`document.baseURI`)相对解析。
|
|
79
79
|
|
|
@@ -159,7 +159,7 @@ DeepSeek Harness 宿主加载机制对技能标识符遵循规范命名约束:
|
|
|
159
159
|
|
|
160
160
|
- 顶栏「检查更新」用于更新技能管理器插件自身;仓库区「刷新」仅检查技能仓库内容更新,不自动覆盖本地。
|
|
161
161
|
- 仓库安装可以写入用户目录下的 DSH skills 或公共 Agent(`~/.agents/skills`,可用 `DSH_AGENTS_HOME` 覆盖),也可以写入已登记工作区的 `<项目根>/.dsh/skills`。选择器显示实际配置路径,并禁用不安全路径;缺少的目录仅在确认安装后创建。不能安装到 Codex、Claude 等其他 Agent 目录。
|
|
162
|
-
-
|
|
162
|
+
- 所有仓库来源统一走 Git 按需检出:只下载包含 `SKILL.md` 的技能目录,仓库首页配图等无关内容不参与下载(指定子目录可进一步缩小范围);本机没有可用 Git 时无法添加仓库,会直接提示先安装 Git。
|
|
163
163
|
- 更新前检测本地修改,覆盖必须明确确认;历史备份不自动清理,可随时恢复上一版。
|
|
164
164
|
|
|
165
165
|
## 支持的 Agent 目录
|