自动禁用加载失败的插件并生成诊断报告
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add hollowfyh/dsh-plugin-doctor该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 9 处,展示前 9 条)
- 读取本地文件lib/index.js:62
if (!existsSync(dir)) mkdirSync(dir, { recursive: true }) - 写入本地文件lib/index.js:62
if (!existsSync(dir)) mkdirSync(dir, { recursive: true }) - 写入本地文件lib/index.js:68
writeFileSync(temp, `${JSON.stringify(value, null, 2)}\n`, 'utf8') - 写入本地文件lib/index.js:69
renameSync(temp, file) - 写入本地文件lib/index.js:73
appendFileSync(file, `${JSON.stringify(incident)}\n`, 'utf8') - 读取本地文件lib/index.js:162
if (!existsSync(file)) return undefined - 读取本地文件lib/index.js:164
if (!existsSync(backupDir)) mkdirSync(backupDir, { recursive: true }) - 写入本地文件lib/index.js:164
if (!existsSync(backupDir)) mkdirSync(backupDir, { recursive: true }) - 写入本地文件lib/index.js:167
copyFileSync(file, target)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的自愈插件诊断工具:检测失败的插件记录,自动禁用并备份补丁,通过 /doctor 输出诊断信息。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-doctor
插件体检与自动修复。某个插件行在加载时发生冲突(apply 抛错、服务重复注册、依赖缺失等),DSH 会把它标记为 failed 并让它停摆,但整个宿主继续运行。本插件周期扫描 Loader 树:
- 发现 failed 行时,调用官方 pluginManager.setPluginEnabled(id, false) 持久化禁用该行(写入 profile 的 cordis.patch.yml 并触发热重组),让其余插件照常工作;
- 每次修复写入 $DSH_HOME/plugin-doctor/incidents.jsonl,整份报告写入 report.json;
- 注册 /doctor 斜杠命令,随时手动体检。
展开完整文档(README 剩余 1 节)
dsh-plugin-doctor
插件体检与自动修复。某个插件行在加载时发生冲突(apply 抛错、服务重复注册、依赖缺失等),DSH 会把它标记为 failed 并让它停摆,但整个宿主继续运行。本插件周期扫描 Loader 树:
- 发现 failed 行时,调用官方 pluginManager.setPluginEnabled(id, false) 持久化禁用该行(写入 profile 的 cordis.patch.yml 并触发热重组),让其余插件照常工作;
- 每次修复写入 $DSH_HOME/plugin-doctor/incidents.jsonl,整份报告写入 report.json;
- 注册 /doctor 斜杠命令,随时手动体检。
配置(profile 的 cordis.patch.yml 里给本行加 config)
- id: plugin-doctor
name: 'dsh-plugin-doctor'
config:
autoFix: true # 默认 true:自动禁用加载失败的行 scanDelayMs: 3000 # 启动后延迟首次扫描的毫秒数 watchIntervalMs: 12000 # 运行期扫描间隔(0 = 只在启动时扫描一次) maxFixesPerBoot: 3 # 单次启动最多自动修复的行数
安全边界
- 只禁用,不卸载、不改 package.json 依赖;
- 不处理自身、dsh-plugin-manager 与插件清单模块,以及只读行(readOnlyReason);
- 修复数量有上限;临时冲突(HMR transactions cannot be nested)自动重试,最多 6 次;
- 被修复的行在「插件」页仍可手动重新启用;修复记录完整可查。
报告格式
report.json 每次扫描重写:
{
"at": "…", "total": 199, "active": 174,
"failed": [{ "entryId": "…", "moduleName": "…", "readOnlyReason": null }],
"dormant": [],
"fixed": [{ "entryId": "…", "result": { "application": "applied", "changed": true } }],
"skipped": [{ "entryId": "…", "reason": "…" }],
"errors": []
}
dormant = 启用但没有任何存活 fiber 的行(常见于模块导入失败),仅报告、不自动处理。
测试
- node test/smoke.mjs:假上下文下的 4 个场景(正常禁用 / 临时冲突重试 / autoFix 关闭 / 修复上限)。
- test/broken-plugin.mjs:故意在 apply 抛错的测试插件,可通过 patch 的 insert 行临时装载,验证端到端自动修复(实测通过:失败行被禁用并写入 disabled: true)。
实现细节
- 失败检测:优先 pluginManager.listPlugins()(带 readOnlyReason 与 fiberPhase),拿不到时直读 ctx.loader.entries() 并按 fiber.state 映射阶段。
- 修复:pluginManager.setPluginEnabled(entryId, false) —— 官方开关 API,写入 profile 的 cordis.patch.yml 并触发 HMR 重组。
- HMR 上下文坑:本插件若在一次热重组中被挂载,apply 里创建的定时器会继承那次事务的 AsyncLocalStorage 上下文,runExclusive 会以 "HMR transactions cannot be nested" 拒绝修复。因此修复调用包在 hmr.executing.exit(callback) 里(临时清空事务上下文);拿不到该字段时回退直接调用。此路径已在桌面实例实测通过。
局限
- 只看宿主侧 Loader 行;浏览器端模块加载失败、slot 层 UI 重叠不在本插件范围内。
- 若失败发生在宿主启动的极早期(Loader 树本身起不来),本插件同样无法启动——需要人工介入。
- 导入失败(模块不存在)通常不产生 failed fiber,只在 dormant 里出现;被 dormant 记录的模块需要人工检查模块名/依赖。
目录
lib/index.js 宿主侧插件实现 cordis.patch.yml 本 bundle 的插入行 test/smoke.mjs 假上下文冒烟测试 test/broken-plugin.mjs 端到端故障注入插件预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hollowfyh/dsh-plugin-doctor
自动禁用加载失败的插件并生成诊断报告
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目