@michengai/dsh-skills-manager 0.1.44 → 0.1.46

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
@@ -4,6 +4,17 @@
4
4
 
5
5
  The five most recent published versions are listed below.
6
6
 
7
+ ## 0.1.46 - 2026-09-10
8
+
9
+ - Upgrade official development dependencies to `0.1.5-rc.1` and explicitly support Host versions `0.1.0-rc.8`, `0.1.1-rc.2`, `0.1.2-rc.1`, and `0.1.5-rc.1`; remove the retired `dsh-client-runtime` peer and client loading metadata to avoid pulling in the legacy runtime.
10
+ - Add real-Host compatibility tests across all four versions for Agent-scoped skill reads, enable/disable policy refresh, and source-file preservation; retain existing skill management and source policies.
11
+
12
+ ## 0.1.45 - 2026-09-09
13
+
14
+ - Stop scanning resources inside ordinary skill bundles and skip `node_modules`, while retaining nested discovery beside a root skill. Hide overlapping project Agent roots so they cannot bypass user disable policies.
15
+ - Read-only user and project Agent sources now discover nested skills and follow external directory symlinks and Windows junctions by default, including linked roots. Discovery has cycle, depth, and entry limits.
16
+ - Keep list, detail, provider, and local enable/disable policies consistent across differently named aliases. Writable DSH roots and import/delete safeguards remain unchanged.
17
+
7
18
  ## 0.1.44 - 2026-09-09
8
19
 
9
20
  - Unified settings headings, descriptions, and action layouts; maintenance controls no longer squeeze titles or versions. The layout adapts to native DSH settings without Codex UI.
@@ -15,102 +26,3 @@ The five most recent published versions are listed below.
15
26
  ## 0.1.42 - 2026-09-07
16
27
 
17
28
  - Fixed the release-contract check so valid package version updates no longer block verification and npm publishing.
18
-
19
- ## 0.1.41 - 2026-09-07
20
-
21
- - Added independent in-product update checks with automatic updates when a verified DSH update service is available and a profile-specific manual fallback otherwise.
22
- - Removed the update-button dependency on `react-dom/client` so the client can load on Hosts that do not register that module id.
23
-
24
- ## 0.1.40 - 2026-09-05
25
-
26
- - 修复禁用的外部同名技能遮蔽已启用 DSH 技能的问题,统一管理页与运行时的赢家选择。
27
- - 冲突时为用户和项目级原生赢家提供作用域候选,保留禁用阻断、工作区隔离及来源文件不变性。
28
- - 显式声明作用域注册表回归所需的开发依赖,确保 CI 干净安装可执行完整检查。
29
-
30
- ## 0.1.38 - 2026-09-03
31
-
32
- - Added Cursor as a read-only, locally toggleable Skill source at `%USERPROFILE%\.cursor\skills`, with `DSH_CURSOR_HOME` override and state-file migration.
33
-
34
- ## 0.1.36 - 2026-09-03
35
-
36
- - Separated maintained runtime source under `src` from generated `lib` package artifacts, with a reproducible Host and AMD-client build.
37
- - Made artifact publication atomic: failed builds preserve the previous `lib` output, and release verification rejects stale or untracked generated files.
38
- - Removed source maps from generated and published artifacts to avoid duplicating complete source files in the npm package.
39
- - Added a pull-request and main-branch verification workflow that runs the complete release gate before merge.
40
-
41
- ## 0.1.35 - 2026-09-03
42
-
43
- - Aligned Settings header actions with the archive plugin: a GitHub project link and an Issues feedback link, with matching icons, accessible labels, responsive layout, and localized copy.
44
- - Updated the DSH compatibility contract to `>=0.1.0-rc.5 <0.2.0`, added the runtime injection peers used by the plugin, and tested development against DSH `0.1.2-alpha.5`.
45
- - Allowed the publish workflow to install the intentionally pinned DSH alpha dependencies without pnpm's release-age policy blocking the release validation.
46
-
47
- Published package: [`@michengai/dsh-skills-manager@0.1.35`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.35).
48
-
49
- ## 0.1.34 — 2026-09-02
50
-
51
- - Made direct Skill entries the canonical owner when the same real bundle is also exposed through Agent distribution links. The canonical provider candidate inherits the strongest distribution rank, so disabling CC Switch cannot fall back to a linked public-Agent copy.
52
- - Required discovered real bundle and document paths for both user and project Provider candidates, revalidated both paths at load time, and aligned policy toggles with real-document reads.
53
- - Scanned user roots concurrently and reused one resolved set of trusted read-only roots per scan without caching external filesystem state across requests.
54
- - Preserved a per-Skill disable while its current distribution entry changes ownership to a canonical source. A canonical source's explicit policy still takes precedence over inherited distribution-link policies.
55
- - Made detail visibility reproduce the same user-root deduplication as state snapshots from the requested entry's physical owner, avoiding unrelated Skill document reads; entry resolution, detail reads, and Provider reads fail closed when files disappear during a filesystem race.
56
-
57
- Published package: [`@michengai/dsh-skills-manager@0.1.34`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.34).
58
-
59
- ## 0.1.33 — 2026-09-02
60
-
61
- - Added an enabled-by-default, read-only `CC Switch` source at `~\.cc-switch\skills` with source-wide and per-Skill local policy toggles. Legacy state files gain the new source without failing closed.
62
- - Allowed top-level linked Skill bundles in user-level read-only sources only when they target a direct child of another known read-only Skills root. Provider loading revalidates the real target and deduplicates CC Switch deployments by real path.
63
- - Kept writable DSH roots, project sources, linked roots, hidden or invalid targets, arbitrary external targets, and import symlinks rejected.
64
-
65
- Published package: [`@michengai/dsh-skills-manager@0.1.33`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.33).
66
-
67
- ## 0.1.32 — 2026-08-31
68
-
69
- - Unified every per-Skill enable/disable action—user DSH, shared Agents, Codex, Claude, Gemini, OpenCode, project DSH, and project Agents—under manager-local tri-state policy; toggles never rewrite a source Skill file.
70
- - Added explicit enable overrides for source-disabled or invalid invocation fields, enforced by user DSH rank 399 and project rank 99/199 policy candidates; legacy state files migrate without losing existing disabled entries.
71
- - Replaced ambiguous **Loaded/Discovered** UI and API counters with **Enabled/Disabled** invocation-policy terminology; this no longer implies that a Skill body has already been fetched into a Session.
72
- - Expanded i18n contract tests to cover every literal client key, every host error/warning/diagnostic code, placeholder parity, and removal of legacy loading terminology in both languages.
73
-
74
- ## 0.1.31 — 2026-08-30
75
-
76
- - Added project Skill discovery for active Session workspaces, covering project-root `.dsh/skills` and `.agents/skills` with stable workspace-specific identities and official rank order.
77
- - Kept project files under DSH's scoped filesystem provider instead of registering a duplicate provider or reusing user-global toggle state.
78
- - Labeled project entries as discovered rather than loaded, exposed workspace-specific rank/path evidence and a manual Refresh action, and warned when an active workspace is not readable from the host.
79
- - Added regression coverage for nearest-git-root resolution, duplicate Session workspaces, same-name priority within one project, same-name isolation across projects, live modification/removal, stale source identities, and linked bundles outside the project skill root.
80
- - Added Settings creation and recoverable Trash deletion for active project `.dsh/skills`, reusing the global whole-bundle rollback/publish flow while keeping project `.agents/skills` read-only.
81
- - Trash now records the original user or project source, displays it in Settings, and restores project entries only after resolving the same opaque root from a currently active Session workspace.
82
- - Added enable/disable controls for project `.dsh/skills`; they update the Skill's invocation-policy fields while leaving Session-scoped catalog ownership with DSH's official provider.
83
- - Fixed project Trash and restore failing with `EXDEV` when the project and `$DSH_HOME` are on different volumes by using a guarded copy-then-hide fallback.
84
- - Hid empty project roots from the main source list while preserving them as Create Skill destinations, and removed the unsupported project source-wide toggle without affecting per-Skill enable/disable.
85
- - Fixed writable project discovery falling back to a non-Git Session cwd and potentially aliasing user-level Skill roots; project sources now require a real `.git` ancestor and are hidden and rejected when they overlap any user Skill root.
86
- - Stopped list and detail scans from following linked Skill roots, including project `.dsh`/`.agents` containers and Windows reparse points, while retaining the existing linked-bundle containment guard.
87
-
88
- Published package: [`@michengai/dsh-skills-manager@0.1.31`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.31).
89
-
90
- ## 0.1.30 — 2026-08-28
91
-
92
- - Fixed reverse-proxy domains and LAN IPs already trusted by DSH Web through `--trusted-host` still being rejected by Skills Manager's own loopback-only Host fence.
93
- - Reused `webRuntime.trustedHosts` with DSH-compatible authority semantics: port-less entries match any port, explicit ports match exactly, and unknown Hosts, non-canonical authorities, foreign Origins, and explicit cross-site requests remain blocked.
94
- - Added isolated real-DSH startup verification and regression coverage for domains, LAN IPs, ports, Origins, cross-site requests, and mutation markers.
95
-
96
- Published package: [`@michengai/dsh-skills-manager@0.1.30`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.30).
97
-
98
- ## 0.1.29 — 2026-08-28
99
-
100
- - Restored the standard DSH README header navigation: the Changelog link now sits between the language switch and the Apache-2.0 license link.
101
-
102
- Published package: [`@michengai/dsh-skills-manager@0.1.29`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.29).
103
-
104
- ## 0.1.28 — 2026-08-28
105
-
106
- - Moved the release-history entry point to the top of the README so package updates are immediately discoverable.
107
-
108
- Published package: [`@michengai/dsh-skills-manager@0.1.28`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.28).
109
-
110
- ## 0.1.27 — 2026-08-27
111
-
112
- - Expanded browser upload limits to 32 MiB for ZIP archives and individual files, 64 MiB decoded total, and 1,000 entries, with a matching 88 MiB Base64 JSON request ceiling.
113
- - Kept upload feedback visible inside the import dialog instead of rendering errors behind the active modal, and cleared stale selections and messages when reopening or closing it.
114
- - Verified the reporter-provided cross-platform fnOS `trim-cli` Skill archive through the complete isolated import path.
115
-
116
- Published package: [`@michengai/dsh-skills-manager@0.1.27`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.27).
@@ -4,6 +4,17 @@
4
4
 
5
5
  以下记录最近发布的五个版本。
6
6
 
7
+ ## 0.1.46 - 2026-09-10
8
+
9
+ - 官方开发依赖升级至 `0.1.5-rc.1`,peer 精确兼容 `0.1.0-rc.8`、`0.1.1-rc.2`、`0.1.2-rc.1`、`0.1.5-rc.1`;移除已退役的 `dsh-client-runtime` peer 与客户端加载声明,避免引入旧运行时。
10
+ - 新增四版本真实宿主兼容测试,覆盖 Agent 作用域技能读取、启停权限刷新与源文件保护;技能管理与来源策略保持原有行为。
11
+
12
+ ## 0.1.45 - 2026-09-09
13
+
14
+ - 修复 bundle 内部资源耗尽扫描预算的问题:普通 bundle 作为叶子并跳过 `node_modules`,根技能仍允许嵌套发现。重叠的项目 Agent 来源现在隐藏,防止绕过用户停用策略。
15
+ - 用户级只读来源和项目 Agent 来源默认递归发现技能,支持外部目录软链接、Windows junction 和技能根链接;扫描具备循环、深度和数量限制。
16
+ - 列表、详情、Provider 与本地启停策略统一处理不同名称的分发入口;可写 DSH 和导入、删除防护保持不变。
17
+
7
18
  ## 0.1.44 - 2026-09-09
8
19
 
9
20
  - 统一设置页标题、说明与操作布局,标题及版本不再被维护按钮挤压;适配原生 DSH 设置内容区,无需安装 Codex UI。
@@ -15,102 +26,3 @@
15
26
  ## 0.1.42 - 2026-09-07
16
27
 
17
28
  - 修复发布契约校验,合法的包版本升级不再阻断验证和 npm 发布。
18
-
19
- ## 0.1.41 - 2026-09-07
20
-
21
- - 新增独立的插件内检查更新能力:仅在已验证的 DSH 更新服务可用时自动更新,其余环境提供与 Profile 对应的手工更新命令。
22
- - 更新按钮图标不再依赖 `react-dom/client`,避免宿主未注册该模块 id 时客户端无法加载。
23
-
24
- ## 0.1.40 - 2026-09-05
25
-
26
- - 修复禁用的外部同名技能遮蔽已启用 DSH 技能的问题,统一管理页与运行时的赢家选择。
27
- - 冲突时为用户和项目级原生赢家提供作用域候选,保留禁用阻断、工作区隔离及来源文件不变性。
28
- - 显式声明作用域注册表回归所需的开发依赖,确保 CI 干净安装可执行完整检查。
29
-
30
- ## 0.1.38 - 2026-09-03
31
-
32
- - 新增 Cursor 用户级只读技能来源,默认读取 `%USERPROFILE%\.cursor\skills`,支持 `DSH_CURSOR_HOME` 覆盖,并兼容迁移既有状态文件。
33
-
34
- ## 0.1.36 - 2026-09-03
35
-
36
- - 将可维护运行源码统一迁移到 `src`,`lib` 改为可复现生成的 Host 与 AMD 客户端发布产物。
37
- - 构建产物改为原子发布:构建失败时保留旧 `lib`,发布校验拒绝过期或未跟踪的生成文件。
38
- - 不再生成或发布 source map,避免 npm 包重复携带完整源码。
39
- - 新增 PR 与主分支验证工作流,在合入前执行完整发布门禁。
40
-
41
- ## 0.1.35 - 2026-09-03
42
-
43
- - 设置页标题操作与归档插件统一:新增 GitHub 项目链接和 Issues 问题反馈链接,图标、无障碍标签、响应式布局及中英文文案保持一致。
44
- - DSH 兼容范围统一为 `>=0.1.0-rc.5 <0.2.0`,补齐插件运行时使用的注入 peer,并以 DSH `0.1.2-alpha.5` 作为开发测试版本。
45
- - 发布工作流安装有意固定的 DSH alpha 依赖时,显式关闭 pnpm 最小发布时间策略,避免发布校验被该策略阻断。
46
-
47
- 发布包:[`@michengai/dsh-skills-manager@0.1.35`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.35)。
48
-
49
- ## 0.1.34 — 2026-09-02
50
-
51
- - 同一真实 Skill 同时存在直接条目和 Agent 分发链接时,改为由直接条目归属;规范候选继承所有分发入口中的最强 rank,停用 CC Switch 后不会回流到公共 Agent 链接副本。
52
- - 用户级与项目级 Provider 候选必须携带扫描时发现的真实 bundle 和文档路径,加载时同时复验;启停读取也统一使用真实文档路径。
53
- - 用户根改为并发扫描,并在单次扫描内复用已解析的受信只读根;不跨请求缓存外部文件系统状态。
54
- - 当前分发条目归属迁移到规范来源时,保留原来源的逐 Skill 停用;规范来源自身的显式策略优先于继承的分发链接策略。
55
- - 详情接口按被请求条目的物理所有者复现状态快照的用户根去重结果,避免读取无关 Skill 文档;文件在扫描后消失时,条目解析、详情读取和 Provider 读取均失败关闭。
56
-
57
- 发布包:[`@michengai/dsh-skills-manager@0.1.34`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.34)。
58
-
59
- ## 0.1.33 — 2026-09-02
60
-
61
- - 新增默认开启的只读 `CC Switch` 来源,固定读取 `~\.cc-switch\skills`,支持来源级与逐 Skill 本地启停;旧状态文件自动补齐新来源,不会因缺少新键失败关闭。
62
- - 用户级只读来源支持指向已知只读 Skills 根直接子目录的顶层技能链接;Provider 在加载时复验真实目标,并按真实路径去重 CC Switch 分发到 Codex、Claude 等目录的副本。
63
- - 可写 DSH、项目来源、技能根链接、隐藏或非法目标以及任意根外目标继续拒绝,导入符号链接边界不变。
64
-
65
- 发布包:[`@michengai/dsh-skills-manager@0.1.33`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.33)。
66
-
67
- ## 0.1.32 — 2026-08-31
68
-
69
- - 将用户 DSH、公共 Agent、Codex、Claude、Gemini、OpenCode、项目 DSH 与项目 Agent 的逐 Skill 启停全部统一为 manager 本地三态策略;启停不再改写任何来源 Skill 文件。
70
- - 新增对来源原本停用或调用字段非法 Skill 的显式启用覆盖,通过用户 DSH rank 399、项目 rank 99/199 策略候选执行;旧版状态文件可无损迁移已有停用项。
71
- - 将容易误解的“已加载/已发现”界面与 API 统计统一为“已启用/已停用”调用策略语义,不再暗示 Skill 正文已经进入某个 Session。
72
- - 扩展 i18n 契约测试,覆盖所有客户端字面量 key、宿主错误/警告/诊断代码、占位符一致性及中英文旧加载术语清理。
73
-
74
- ## 0.1.31 — 2026-08-30
75
-
76
- - 新增活动 Session 工作区的项目 Skill 发现,覆盖项目根 `.dsh/skills` 与 `.agents/skills`,使用稳定的 workspace 专属身份并遵循官方优先级。
77
- - 项目文件继续由 DSH 作用域 filesystem provider 管理,不重复注册 provider,也不复用用户级全局启停状态。
78
- - 项目条目标记为“已发现”而不是“已加载”,展示 workspace 专属优先级/路径证据和手动刷新入口,并在宿主无法读取活动工作区时给出警告。
79
- - 补充最近 Git 根、Session 工作区去重、单项目同名优先级、跨项目同名隔离、实时修改/删除、过期来源身份以及项目 Skill 根外链接目录等回归测试。
80
- - 新增活动项目 `.dsh/skills` 的设置页创建与可恢复回收站删除,复用全局 Skill 的完整目录回滚/发布流程,同时保持项目 `.agents/skills` 只读。
81
- - 回收站现在记录并展示原用户级或项目级来源;项目条目仅在当前活动 Session 可重新解析出同一不透明根身份时恢复。
82
- - 新增项目 `.dsh/skills` 启停控件:只改写 Skill 自身调用策略字段,Session 作用域目录加载仍由 DSH 官方 provider 负责。
83
- - 修复项目与 `$DSH_HOME` 位于不同磁盘时,移入回收站和恢复因 `EXDEV` 失败的问题,新增受保护的“复制后原子隐藏”降级流程。
84
- - 主来源列表不再显示空项目根,但“创建技能”仍可选择它们;同时移除不受支持的项目来源总开关,不影响逐 Skill 启停。
85
- - 修复可写项目发现会回落到无 Git 的 Session cwd、进而可能与用户级技能根重合的问题;项目来源现在必须找到真实 `.git` 祖先,与任一用户技能根重叠时直接隐藏并拒绝写入。
86
- - 列表和详情不再跟随技能根本身的链接,包括项目 `.dsh`/`.agents` 容器及 Windows reparse point,同时保留既有的 bundle 子链接边界检查。
87
-
88
- 发布包:[`@michengai/dsh-skills-manager@0.1.31`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.31)。
89
-
90
- ## 0.1.30 — 2026-08-28
91
-
92
- - 修复 DSH Web 已通过 `--trusted-host` 信任的反向代理域名或局域网 IP,仍被 Skills Manager 自身 loopback-only Host 校验拒绝的问题。
93
- - 复用 `webRuntime.trustedHosts`,按 DSH 的 authority 语义支持无端口任意端口匹配和带端口精确匹配,同时继续拒绝未知 Host、非规范 authority、异源 Origin 与显式 cross-site 请求。
94
- - 补充真实 DSH 隔离启动验证以及域名、LAN IP、端口、Origin、跨站请求和写接口标记的回归测试。
95
-
96
- 发布包:[`@michengai/dsh-skills-manager@0.1.30`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.30)。
97
-
98
- ## 0.1.29 — 2026-08-28
99
-
100
- - 恢复 DSH 系列 README 的标准头部导航:更新日志入口位于语言切换与 Apache-2.0 许可证链接之间。
101
-
102
- 发布包:[`@michengai/dsh-skills-manager@0.1.29`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.29)。
103
-
104
- ## 0.1.28 — 2026-08-28
105
-
106
- - 将 README 中的更新日志入口前移到页面顶部,打开项目即可看到发布历史。
107
-
108
- 发布包:[`@michengai/dsh-skills-manager@0.1.28`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.28)。
109
-
110
- ## 0.1.27 — 2026-08-27
111
-
112
- - 将浏览器上传限制提高到 ZIP 32 MiB、单文件 32 MiB、解压后总量 64 MiB 和 1000 个条目,并同步把 Base64 JSON 请求体上限提高到 88 MiB。
113
- - 上传反馈改为显示在导入弹窗内部,不再被当前弹窗遮挡;重新打开或关闭弹窗时会清理过期的选择和提示。
114
- - 使用反馈者提供的跨平台 fnOS `trim-cli` Skill 压缩包完成隔离环境全链路导入验证。
115
-
116
- 发布包:[`@michengai/dsh-skills-manager@0.1.27`](https://www.npmjs.com/package/@michengai/dsh-skills-manager/v/0.1.27)。
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  <div align="center">
6
6
 
7
- # DSH Skills Manager
7
+ # DSH Skills Manager
8
8
 
9
9
  **Load and safely manage skills from DSH and common local Agents**
10
10
 
@@ -19,7 +19,6 @@
19
19
 
20
20
  > DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
21
21
 
22
-
23
22
  ## Features
24
23
 
25
24
  Bring skills from your computer and projects into one DSH management page. Find skills, read their contents, control availability, and create or import your own.
@@ -64,7 +63,8 @@ For a ready-to-use workbench, download [DSH Codex Desktop](https://github.com/Mi
64
63
 
65
64
  - A working DeepSeek Harness Web installation with `dsh` available in PowerShell.
66
65
  - Examples use the `web` profile; replace it with the target profile.
67
- - Source installation and development require Node.js 20+. npm installation does not require running `npm install` in an arbitrary directory.
66
+ - Plugin `0.1.46` is tested with DeepSeek Harness `0.1.0-rc.8`, `0.1.1-rc.2`, `0.1.2-rc.1`, and `0.1.5-rc.1`. Development dependencies remain pinned to `0.1.5-rc.1`; other Host versions are not implicitly supported.
67
+ - Source installation and development require Node.js `^22.19.0 || >=24.0.0`. npm installation does not require running `npm install` in an arbitrary directory.
68
68
 
69
69
  ## Installation
70
70
 
@@ -132,7 +132,8 @@ Escape closes only the frontmost upload or confirmation dialog and leaves Settin
132
132
  - Trash falls back to copy-then-hide when a project and `$DSH_HOME` are on different volumes; restore uses the same guarded cross-volume path in reverse.
133
133
  - Project Trash entries retain their original opaque source identity. Restore is allowed only while that original project is still represented by an active Session workspace; the client cannot nominate a replacement path.
134
134
  - Project writes reject linked `.dsh` or `.dsh/skills` directories so a repository cannot redirect creation, deletion, or restore outside its own project root.
135
- - User-level read-only sources accept top-level linked Skill bundles only when the real target is an ordinary direct child of another known read-only Skills root. The same real Skill is displayed and loaded once according to source rank; writable DSH roots, project roots, linked roots, and arbitrary external targets remain rejected.
135
+ - User-level read-only and project Agent sources recursively discover `SKILL.md` by default. Skill directories, roots, and parent directories may link to external locations through symlinks or Windows junctions without an opt-in or allowlist. Real-path deduplication and manager-local toggles preserve read-only sources. Skill-file symlinks are ignored, cycles terminate, and scans have depth and size limits. Writable DSH roots, imports, and deletion retain their existing boundaries.
136
+ - Directories containing `SKILL.md` are bundle leaves; their resources and `node_modules` are not traversed. A root-level `SKILL.md` can still coexist with nested skills. Project Agent roots that overlap user skill roots by real path are hidden to preserve user disable policies.
136
137
  - Rows and summaries say **Enabled/Disabled**, not **Loaded**: these labels describe invocation policy, while full Skill bodies are loaded on demand by DSH. Use Refresh after IDE, Git, or shell changes; the official provider remains responsible for project catalog watching and invalidation.
137
138
  - Empty project roots stay out of the main source list to reduce noise, but remain selectable in Create Skill so the first project Skill can still be created. Project DSH supports per-Skill toggles only, not a source-wide switch.
138
139
  - Replacements copy to a temporary sibling path first and keep the original until that succeeds.
package/README.zh-CN.md CHANGED
@@ -64,7 +64,8 @@ DSH 本地技能移入回收站前需要确认;永久删除前仍可恢复:
64
64
 
65
65
  - 已可正常运行 DeepSeek Harness Web,且可在 PowerShell 中使用 `dsh`。
66
66
  - 以下示例使用 `web` profile;请替换为实际目标 profile。
67
- - 从源码安装或二次开发需要 Node.js 20+;仅从 npm 安装无需在任意目录执行 `npm install`。
67
+ - `0.1.46` 已验证兼容 DeepSeek Harness `0.1.0-rc.8`、`0.1.1-rc.2`、`0.1.2-rc.1`、`0.1.5-rc.1`;开发依赖固定使用 `0.1.5-rc.1`,不自动声明支持其他版本。
68
+ - 从源码安装或二次开发需要 Node.js `^22.19.0 || >=24.0.0`;仅从 npm 安装无需在任意目录执行 `npm install`。
68
69
 
69
70
  ## 安装
70
71
 
@@ -132,7 +133,8 @@ dsh --profile web --dump-config
132
133
  - 当项目与 `$DSH_HOME` 位于不同磁盘时,回收站会降级为“复制后在源盘原子隐藏”;恢复使用反向的同一安全流程。
133
134
  - 项目回收站条目保存原始不透明来源身份。仅当原项目仍由活动 Session 工作区提供时才允许恢复;客户端不能指定替代路径。
134
135
  - 项目写入会拒绝链接形式的 `.dsh` 或 `.dsh/skills` 目录,避免仓库把创建、删除或恢复重定向到项目根之外。
135
- - 用户级只读来源允许顶层技能目录链接,但真实目标必须是另一个已知只读 Skills 根的普通直接子目录;同一真实技能按来源优先级只展示和加载一次。可写 DSH、项目来源、技能根链接和任意外部目标仍被拒绝。
136
+ - 用户级只读来源与项目 Agent 来源默认递归发现 `SKILL.md`,允许技能目录、技能根及其父目录通过软链接或 Windows junction 指向外部目录,无需开关或目录白名单;按真实路径去重,启停只写 manager 状态。忽略 `SKILL.md` 文件链接,限制扫描深度和数量并终止循环;可写 DSH 与导入、删除仍保留原有边界。
137
+ - 普通技能目录发现 `SKILL.md` 后作为 bundle 叶子,不再扫描内部资源,并跳过 `node_modules`;扫描根自身的 `SKILL.md` 仍可与嵌套技能并存。项目 Agent 根与用户技能根真实路径重叠时隐藏,避免绕过用户停用策略。
136
138
  - 列表和摘要统一使用“已启用/已停用”,不再使用“已加载”:这里描述的是调用策略,完整 Skill 正文仍由 DSH 按需加载。IDE、Git 或 shell 改动后可点击“刷新”;项目 catalog 的 watcher 与 invalidation 仍由官方 provider 负责。
137
139
  - 没有 Skill 的项目根不会出现在主来源列表中,但仍保留在“创建技能”的目标选择中,确保可以创建第一个项目 Skill。项目 DSH 只提供逐 Skill 启停,不提供整个项目来源总开关。
138
140
  - 覆盖前先复制到同目录临时路径;复制成功前不会改动现有技能。
package/lib/client.js CHANGED
@@ -438,6 +438,7 @@
438
438
  "result.deleted": "\u5DF2\u6C38\u4E45\u5220\u9664\uFF1A{name}",
439
439
  "result.updated": "\u72B6\u6001\u5DF2\u66F4\u65B0\u3002",
440
440
  "error.action": "\u64CD\u4F5C\u5931\u8D25\uFF1A{error}",
441
+ "warning.scan.truncated": "\u6280\u80FD\u76EE\u5F55\u8F83\u5927\u6216\u5D4C\u5957\u8FC7\u6DF1\uFF0C\u90E8\u5206\u6280\u80FD\u672A\u663E\u793A\uFF1A{path}",
441
442
  "warning.state.invalid": "\u6280\u80FD\u7BA1\u7406\u5668\u72B6\u6001\u6587\u4EF6\u4E0D\u53EF\u8BFB\uFF1B\u6240\u6709\u6280\u80FD\u5DF2\u5B89\u5168\u505C\u7528\uFF0C\u4FEE\u590D\u6587\u4EF6\u524D\u4E0D\u4F1A\u8986\u76D6\u72B6\u6001\uFF1A{path}",
442
443
  "warning.backupUncleaned": "\u65E7\u7248\u672C\u5907\u4EFD\u672A\u6E05\u7406\uFF1A{path}\uFF08{error}\uFF09",
443
444
  "warning.project.unavailable": "\u65E0\u6CD5\u4ECE\u5BBF\u4E3B\u8BFB\u53D6\u6D3B\u52A8\u5DE5\u4F5C\u533A\uFF0C\u9879\u76EE\u6280\u80FD\u672A\u663E\u793A\uFF1A{path}",
@@ -617,6 +618,7 @@
617
618
  "result.deleted": "Permanently deleted: {name}",
618
619
  "result.updated": "Status updated.",
619
620
  "error.action": "Action failed: {error}",
621
+ "warning.scan.truncated": "Some skills were not shown because the directory is too large or deeply nested: {path}",
620
622
  "warning.state.invalid": "The manager state file could not be read; all skills are disabled and state writes are blocked until it is repaired: {path}",
621
623
  "warning.backupUncleaned": "Old version backup was not cleaned up: {path} ({error})",
622
624
  "warning.project.unavailable": "The active workspace could not be read from the host, so its project skills are hidden: {path}",