前言¶
在 DSH 的插件化用法里,单个 Profile 可以挂载多个能力,但第三方插件的来源、更新和回滚仍然需要明确控制。DSH STORE 是运行在 DeepSeek Harness(DSH)设置页中的第三方插件商城与安全生命周期管理器,由 AI-Scarlett 维护。它不开发独立桌面端,不修改 DSH 源码,也不替换 @deepseek-ai/* 官方包。
这是什么¶
DSH STORE 的包名/Bundle 名称是 dsh-safe-plugin-manager。它把插件发现、固定来源安装和生命周期管理放在 DSH 设置页内完成,而不是把安装动作拆到独立桌面端或手工脚本里。
已核实能力包括:
- 从 GitHub 在线目录读取插件;网络失败时回退到随包发布的已知快照。
- 候选发现库与可信安装库物理隔离;候选条目必须经过固定 Commit 审核后晋级。
- 支持按名称、包名、分类或 GitHub 仓库搜索。
- 支持 22 个分类筛选、推荐置顶和“只看推荐”筛选。
- 目录安装目标固定到 40 位 Git Commit,不接受 npm-only、任意下载地址或浮动分支。
核心功能¶
固定来源安装¶
DSH STORE 不要求用户信任一个浮动分支或任意下载地址。目录中的安装目标固定到 40 位 Git Commit,安装命令直接指向该 Commit。这样安装入口和来源版本是同一个对象,避免分支继续变化后安装结果漂移。
生命周期保护¶
从商城发起的安装、更新、迁移、停用、启用和卸载,会进入一次性计划、精确确认、Profile 前置哈希、备份、健康检查和失败回滚流程。这个流程的目标不是“能装上”,而是把每个包操作变成可确认、可回滚的动作。
Guardian 重启验收¶
DSH STORE 提供独立 macOS launchd Guardian,用于心跳、Boot ID、重启和运行验收。包操作完成后,商城会标记“待重启”;只有 Guardian 心跳正常时,才生成一次性的 RESTART DSH <profile> 计划。
旧版更新修复¶
已核实资料提到旧版更新安全修复入口会使用官方 DSH CLI 与 --ignore-scripts,必要时仅 --allow-build。这比放开整个 Profile 的脚本权限更保守,也更接近“只修必要项”的做法。
Catalog 分层与兼容¶
Catalog 分层兼容包括:2 MiB 兼容桥/主索引,512 KiB 单详情上限,失败关闭。目录读取失败或完整性不一致时,不会继续混用不可信数据。
安装前准备¶
首次安装发生在管理器尚未运行时,因此还没有计划确认、自动备份、健康检查和失败回滚保护。运行安装命令前,需要先手动备份目标 Profile 的以下文件(文件存在时):
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
cordis.patch.yml
下面以 web Profile 为例。如果目标 Profile 名称不同,请在命令中替换 web。
安装命令¶
使用固定 GitHub Commit 安装:
dsh plugin --profile web add 'git+https://github.com/AI-Scarlett/DSH-Store.git#0bc733064bfc8ff16f6e8144188a7ac563092e12'
不要把 Commit 换成 main 等浮动分支,也不要绕过 DSH CLI 直接运行 pnpm 或手工编辑 Profile。命令失败时,保留完整错误和安装前备份,不要连续重复执行。
启用与验收¶
经过上面的步骤后,建议按下面顺序验收:
- 运行以下命令,确认配置可以成功合成:
dsh --profile web --dump-config
- 在商城中用独立计划安装随包提供的 DSH Guardian。Guardian 是独立 macOS launchd Guardian,用于心跳、Boot ID、重启和运行验收。
- 包操作完成后,等待商城标记“待重启”。只有 Guardian 心跳正常时,才生成一次性的
RESTART DSH <profile>计划。 - 启用 Guardian 后,不要手工运行
pnpm dsh web或dsh web,否则第二个实例可能以EADDRINUSE退出。 - 如果异常,在 GitHub Issues 提交原始错误;不要提交凭据、完整 Profile 文件或环境变量。
典型用法¶
搜索与筛选¶
在商城中可以用名称、包名、分类或 GitHub 仓库搜索。分类筛选、推荐置顶和“只看推荐”适合先缩小候选范围,再查看具体插件的来源和状态。
固定 Commit 安装¶
安装时使用目录固定的 40 位 Git Commit。已核实示例为:
dsh plugin --profile web add 'git+https://github.com/AI-Scarlett/DSH-Store.git#0bc733064bfc8ff16f6e8144188a7ac563092e12'
包操作与回滚¶
安装、更新、迁移、停用、启用和卸载都从商城发起。操作会进入一次性计划、精确确认、Profile 前置哈希、备份、健康检查和失败回滚流程。真实生产 Profile 的完整“安装—重启—停用—启用—更新—卸载—回滚”闭环仍是独立验收项,不能由测试结果替代。
适用场景与注意¶
适合以下使用方式:
- 需要把第三方 DSH 插件集中在一个设置页入口内管理。
- 希望插件来源固定到明确 Commit,而不是浮动分支。
- 希望安装、更新、停用、启用和卸载有确认、备份、健康检查和失败回滚。
- 希望在重启后由 Guardian 做心跳、Boot ID 和运行验收。
需要注意:
- DSH STORE 是第三方插件商城,不是 DSH 官方应用商店。
- 第三方插件会随当前 DSH 进程/Profile 的可用权限运行;使用前应检查源码、许可证和实际运行权限。
- 已核实资料未提供许可证;星标数也未确认。
- 首次安装前必须手动备份目标 Profile 文件,因为此时管理器保护尚未生效。
- 不要把 Commit 换成浮动分支,也不要绕过 DSH CLI 直接操作 Profile。
- 命令失败时不要连续重复执行,先保留完整错误和安装前备份。
链接¶
- GitHub 仓库:https://github.com/AI-Scarlett/DSH-Store
- 目录页:已核实资料未提供固定 URL;目录来源以 GitHub 仓库和不可变 Commit 为准。