前言¶
在 DeepSeek Harness(dsh)里装插件、改配置、升级版本,出问题时往往要对着日志和目录猜:是某条插件没加载,还是上次更新在 bundle 里留了「声明了但没跑起来」的行,抑或是磁盘上还有 *.parked、_tmp_* 之类残留。自己翻 remote.pluginManager 的状态和 profile 目录,步骤多、也容易漏。下面介绍社区插件 @ragnoryok1/dsh-plugin-doctor:在 Web 设置里加一块「诊断」页,汇总插件侧可见问题并给出处理提示;另有一条本地磁盘扫描脚本,专门查更新失败常留下的文件痕迹。维护者为 Ragnoryok1,SkillHub 分类为 admin-security;包为 MIT 许可,与 DeepSeek 无官方从属关系。
这是什么¶
@ragnoryok1/dsh-plugin-doctor 面向 Web profile 的 DeepSeek Harness:在 设置 → 内置插件 中注册 「诊断」 标签页,列出当前 harness 已知的插件状态,并按类别说明「哪里不对、建议怎么看」。它不自动修复,也不把数据发到网外;展示内容来自 harness 支持的 Remote 服务(remote.pluginManager),响应按 { ok, value } 信封解析,不读取其他包的内部文件,以便 harness 升级后仍可用。
README 元信息列出的兼容 harness 版本包括 v0.2.1-alpha.1、v0.2.0-rc.2、v0.1.7-rc.2、v0.1.7-rc.1;安装前请对照你本机 dsh 版本与 npm 上的 peer 依赖说明。
诊断面板检查什么¶
面板把条目分成几类;只有错误类才算「问题」,参考类(例如故意关掉的插件)会展示,但不会把健康 profile 标成「坏了」。
| 分区 | 含义 |
|---|---|
| 未加载 | 插件启动时报错,界面会显示插件自己的错误信息。 |
| 已声明但未启动 | Bundle 里声明了行,但没有对应 live 条目,常见于更新失败留下的痕迹。 |
| 无法在界面管理 | 有条目但在这里不能开关;会说明原因(如 management-required、unaddressable 等)。 |
| 已关闭 | 用户主动禁用。 |
| 版本警告 | 非致命,升级前值得阅读。 |
每个分区给 一条 汇总提示,而不是每行重复同一段话。无论有没有问题,面板都会报告 检查了多少插件,避免「没问题」和「其实没查到任何东西」看起来一样。
磁盘扫描:更新残留与启动日志¶
浏览器里的面板 看不到文件系统。作者另提供 bin/doctor-scan.mjs,在 profile 目录侧查找手工排查里反复出现的残留:
在插件源码目录或已安装包中可执行:
node bin/doctor-scan.mjs
若单独安装了该 npm 包,也可:
npx dsh-doctor
脚本会关注例如:*.parked(更新时绕过 blocked rename 的 parked 副本)、_tmp_*(失败安装残留,常与 EPERM 有关)、失效的 file: 引用(指向已不存在的路径,安装阶段可能 ENOENT),以及 logs/startup-*.log 里 launcher 记录的未激活插件(含包名、错误、等待中的服务数)。README 说明这些残留 目前不会 出现在 Web 诊断页里——要在 UI 展示需要额外的 remote 服务与 harness 生成器配合,属于后续工作。
安装与打开诊断页¶
安装命令(来自 README,勿自行改写成 github:owner/repo 形式):
dsh plugin --profile web add @ragnoryok1/dsh-plugin-doctor
安装完成后,在 harness Web 界面进入 设置 → 内置插件 → 诊断 即可查看面板。
典型用法¶
- 日常巡检:升级或批量增删插件后打开诊断页,看是否出现「未加载」「已声明但未启动」或版本警告,并按分区提示处理(插件本身不代你修复)。
- 更新仍失败时:在主机上对 profile 运行
node bin/doctor-scan.mjs或npx dsh-doctor,对照*.parked、_tmp_*与 startup 日志,再决定是否清理目录或修正file:引用。 - 验证行为(维护者文档):仓库
fixtures/canary/提供故意在apply()中失败的 canary 插件;安装 canary 时期望面板报告 1 个问题(「已声明但未启动」等);移除后应显示全部加载且兼容。复现步骤见该目录下 README。
界面文案支持 ru、zh、en(见 src/client/locales.ts)。
适用场景与注意¶
- 适合:经常在 Web profile 里试社区插件、需要一眼看清加载失败与 bundle 不一致、或怀疑磁盘上有更新垃圾的 DSH 使用者与插件作者。
- 不适合当作:自动修复工具或远程监控;它只报告本地状态。
- 安全与权限:插件随当前
dsh进程与用户权限运行;磁盘扫描会读 profile 下的目录与日志。安装前建议浏览 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。 - 与官方关系:DeepSeek Harness 生态强调「一切皆插件」;SkillHub 目录页 为社区索引,不是 DeepSeek 官方应用商店。
结尾¶
dsh-plugin-doctor 把插件管理器里分散的状态收成一块诊断视图,并用独立脚本补上文件系统侧的更新残留检查;两者都不越权读其他包内部,也不外发数据。需要时可从 SkillHub 进入说明页,或直接查看 GitHub:https://github.com/Ragnoryok1/dsh-plugin-doctor。