DSH STORE:DeepSeek Harness 插件商城与安全生命周期管理器

前言

在 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。命令失败时,保留完整错误和安装前备份,不要连续重复执行。

启用与验收

经过上面的步骤后,建议按下面顺序验收:

  1. 运行以下命令,确认配置可以成功合成:
   dsh --profile web --dump-config
  1. 在商城中用独立计划安装随包提供的 DSH Guardian。Guardian 是独立 macOS launchd Guardian,用于心跳、Boot ID、重启和运行验收。
  2. 包操作完成后,等待商城标记“待重启”。只有 Guardian 心跳正常时,才生成一次性的 RESTART DSH <profile> 计划。
  3. 启用 Guardian 后,不要手工运行 pnpm dsh webdsh web,否则第二个实例可能以 EADDRINUSE 退出。
  4. 如果异常,在 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 为准。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜