dsh-install-review:DSH 插件装前审查

前言

DeepSeek Harness(DSH)采用「一切皆插件」的架构:模型调用、界面、工具链往往都通过 Cordis 插件挂进 profile。社区目录(如 skillhub.cn)方便发现插件,但收录不等于能力扫描或安全背书;生态里常见的路径是「先安装、出问题再整 profile 回滚」。对经常换插件、改 patch 的开发者来说,缺的是装前可读的检查报告、可逐项批准的变更方案,以及备份与装后核验。

下面介绍维护者 GIN0076 的工作流插件 dsh-install-review(Pre-install Review · 插件装前审查):在点击安装之前,对目标包做只读审查,由你批准改动计划、自动备份后再安装并核验。

这是什么

dsh-install-review 的定位是:DSH 插件安装前的审查闸门——审计、批准变更方案、备份,再执行安装。

  • 维护者:GIN0076
  • 分类:工作流
  • 许可证:MIT(package.json 与 README 一致)
  • 当前包版本:1.3.0(@local/dsh-install-review)
  • 适配:DeepSeek Harness 0.2.0-rc.2(README 标注的实测版本)
  • 运行时依赖:0;不改宿主源码(README 徽章:host source changes 0)

插件本身通过 dsh.bundle(patch)、dsh.client(web 界面)接入;它不修改第三方插件源码,只动来源、版本、构建批准、profile 配置四类属于你自己的配置。

核心功能

13~14 项只读检查

输入包标识后,面板在数秒内生成审查报告。检查项全部只读,主要包括:

方向 内容
本机 DSH 版本与 profile(路径自动打码,便于分享截图)
官方 inspect pluginManager.inspect 下的 dsh.bundle / dsh.client / dsh.tool / dsh.page / dsh.configForm
兼容与清单 peer 解析(含 includePrerelease);名录、仓库、星标、30 天下载量(不把仓库星标冒充包星标)
安装与冲突 已装/未装;loader id 是否与现有行撞车(重复 id 可能导致宿主启动崩溃)
patch 与槽口 override 行目标是否存在、是否被其他插件双重改写;槽口与本机目录对照(打包桌面版读 app.asar 内编译目录,跑不起来则警告而非默许放行)
风险信号 安装期脚本(prepare / postinstall 等);终端类描述;engines.dsh 与 dsh.engines.dsh 两种写法;描述中改宿主核心的措辞;清单上的 10 类能力与红线句(中译,未标注则如实写「上游未标注能力」)

README 强调:清单未标注能力不等于安全;出现 阻断(block) 时,默认正确动作是不要继续安装。

闭环:审查 → 方案 → 批准 → 改 → 装 → 核验

  1. 审查:输入 npm 包名、owner/repo、github:owner/repo 或 GitHub 链接,生成报告。
  2. 方案:仅列出可执行改动,勾选才会执行;标题旁有「全选 / 全不选」。典型项包括:固定或更新版本、在 peer 不兼容且你确认风险后授予这一对版本的豁免、换下载源、启用包声明但未启用的 loader 行、批准 pnpm 拦截的构建脚本、经 configEditor 写 profile 配置(模板由包 patch 默认值与现有配置合并预填)、git 来源切换为 npm 固定包等。
  3. 你的建议:在「你的建议」中写修改意图 →「复制报告给我复核」→ 将会话返回的修订 JSON 粘贴到「导入修订」(目标不匹配会拒收;导入不能代替你勾选「接受风险」)。
  4. 执行:先备份 package.json、cordis.patch.yml、pnpm-workspace.yaml、cordis.yml(有豁免记录时含 compatibility.json),再应用批准项并安装。
  5. 核验:除安装状态与 loader id 外,还检查 patch 行是否激活、bundle 是否选中、浏览器半是否进入客户端模块图,并给出可读结论(例如需重启 dsh)。

内置中文清单快照(README 称 4377 条)支持服务端搜索、分类与排序,便于从目录挑包再审查。

红灯后的处理(有处方 vs 硬阻断)

  • peer 不兼容:面板可引导通过官方通道为「包@版本 + 当前 DSH 版本」授予精确版本豁免,需本人勾选风险确认;豁免可撤销,换版本或升级 DSH 后失效。
  • engines.dsh 不符:仍为阻断,但报告说明宿主安装路径主要核对 peerDependencies,并提供「确认仍安装」或改用满足范围的版本等选项。
  • 硬阻断:读不到 manifest、缺少 dsh.bundle、loader id 撞车等,报告会明确建议不要安装。

边界说明

这是装前体检,回答「能不能装、会碰什么配置与能力面」,不能替代对来源与源码的人工判断。插件以当前 dsh 进程权限运行;安装任何插件前仍应自行查看仓库、许可证与维护者信息。

安装与启用

Web profile 下,README 给出的安装命令为:

dsh plugin --profile web add github:GIN0076/dsh-install-review

说明:

  • 要求 DeepSeek Harness 0.2.0-rc.2 与 web profile 或桌面版。
  • 零运行时依赖、无构建步骤、无 postinstall。
  • 仅执行 add 会把仓库放进 node_modules,不会自动挂载界面;还需把 @local/dsh-install-review 加入 profile 的 dsh.profile.bundles,并在 cordis.patch.yml 加入对应 insert 行。
  • 完成后重启 dsh web,再硬刷新(Ctrl+Shift+R)→ 设置 → 插件装前审查。

桌面版(打包 App):设置 → 插件 → 添加插件,填本地目录路径(或通过插件管理工具的 install_bundle 指向目录)。正式打包版无浏览器式硬刷新;客户端半改动常可热更新,Host 半可按 README 的 remove_bundle + install_bundle 换代流程重载。不想走 git 时,可将仓库拷到本地后用 install_bundle 并做同样的 profile 两处配置。

卸载:设置 → 插件 → 移除,或 remove_bundle。卸载不删除执行前备份;默认目录为 profile 下的 install-review-backup(可在行 config 的 backupDir 调整)。

典型用法

  1. 打开 插件装前审查 面板。
  2. 在审查框输入目标,例如某 npm 包名、GIN0076/某仓库 或 github:GIN0076/dsh-install-review。
  3. 阅读报告中的阻断、警告与能力/红线翻译;必要时在清单页搜索同一插件的收录信息。
  4. 在变更方案中只勾选你接受的项;若 peer 红灯且你仍要安装,先勾选「我已阅读并接受风险」再启用豁免类项。
  5. 执行安装,查看装后核验结论;若 pnpm 拦截构建脚本,使用面板内「批准 <包名> 的构建脚本并重试」。
  6. 若希望 AI 帮你改勾选与参数:填写「你的建议」→ 复制报告到会话 → 导入返回的修订 JSON。

适用场景与注意

适合:需要从社区目录或 GitHub 频繁试装插件、希望统一做 peer/loader/patch 检查;希望在改 profile 前有备份与可审批的变更清单;希望在装后确认 bundle 与 patch 行真的生效。

注意:

  • 社区目录(如 skillhub.cn 插件页)与 DeepSeek / 幻方无官方从属关系,星标与下载量为快照数据,以页面与审查报告抓取时为准。
  • 全绿不保证无害;自动化检查不能替代你对插件来源的信任判断。
  • 安装与启用步骤涉及 profile 与 patch 编辑,操作前确认当前 profile 已纳入版本管理或另有备份习惯。

链接

羽毛球分组比赛记分
小程序二维码

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

小夜