chenw2759-wq/dsh-plugin-healthcheck ↗★ 1
dsh-plugin-healthcheck
DSH 插件健康检查:设置面板内的「插件检测」向导 — L0 静态检查(files 白名单/依赖声明/高危副本/依赖可解析/Windows 命令/lockfile 一致性)+ L1 配置组合检查 + L2 隔离试跑(子进程 boot 全树),发现即自动回滚(写 home patch 前弹确认),复杂问题打包预制提示词交给 agent 修复。铁律:只修改插件代码与配置层,严禁修改 harness 源码。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:chenw2759-wq/dsh-plugin-healthcheck说明文档
阅读完整 README ↗dsh-plugin-healthcheck
DSH 插件健康检查 —— 装完新插件后不重启后端即可验证插件是否会导致事故。 纯静态检查 + 配置组合 + 隔离试跑 + 木马扫描,发现即修复(自动修复 / 自动回滚 / 预制提示词)。
#dsh-plugin · DeepSeek Harness (DSH) · TypeScript · turtle-ui
它解决什么问题
DSH 的 dsh plugin add 只负责把插件装进 profile(薄 pnpm 转发器),装完不做任何验证——
问题要等下次后端启动才暴露。常见事故:
| 事故 | 根因 | 本插件拦截方式 |
|---|---|---|
启动报 ERR_MODULE_NOT_FOUND(缺哈希 chunk) | files 白名单漏掉代码分割产物 | C1 files 完整性 |
后端启动报缺 zod / schemastery | 插件登记成 link: 依赖,绕过了 profile 的 node_modules | C2 依赖声明审计 |
agent 报 Cannot read properties of undefined (reading 'prepare') | file: 依赖装出 harness 核心包副本 → 模块双实例 → Symbol 身份错位 | C3 高危副本检测 |
dsh-skin CLI not found(Windows) | 命令不在注册表 PATH / execFile 只认 .exe | C5 Windows 命令 |
改了 link:→file: 不生效 | pnpm 不重解析 lockfile | C6 lockfile 一致性 |
| 被禁用的插件长期残留在依赖里 | 禁用是压制症状而非修复 | C7 禁用插件识别 |
| 供应链投毒 / 恶意代码 | 发布包内注入恶意逻辑 | C8 木马扫描(纯静态隔离) |
启动报 loader fibers failed(cannot get property "fs" without inject) | 插件未构建(lib 缺失)或 cordis 用法错误(ctx.plugin() 后同步取服务) | L2 隔离试跑在重启前抓到 |
实战案例(真实事故)
案例 A:未构建的插件导致后端启动崩溃
dsh-ssh-workspace(SSH 远程工作区)登记进了 profile(file: 依赖 + bundle),但它的
lib/ 从未构建 —— 源码在、构建产物缺。重启后端时报:
Error: dsh: plugin tree failed to load: loader fibers failed
Error: failed to apply loader entry ssh-workspace-fs (@deepseek-ai/dsh-ssh-workspace/fs):
cannot get property "fs" without inject
根因链:ctx.plugin(SandboxedFileSystem) 是异步的,随后立即同步取 拿不到
服务(隔离作用域的 key 对不上)→ 。