🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

启动救援台 SaiSenBox/dsh-boot-guard

DeepSeek 客户端v1.1.2
SaiSenBox80 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

插件崩溃致页面打不开时,找出故障插件并临时跳过

32.8/100
综合分
3
GitHub 星标
282
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/SaiSenBox/dsh-boot-guard.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-boot-guard @ 1.1.2
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 16:43:21

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 13 处,展示前 12 条)
  • 读取本地文件
    lib/index.js:193
    const before = await stat(filename, { bigint: true });
  • 读取本地文件
    lib/index.js:194
    const text = await readFile(filename, "utf8");
  • 读取本地文件
    lib/index.js:195
    const after = await stat(filename, { bigint: true });
  • 写入本地文件
    lib/index.js:214
    await writeFile(temporary, content, { encoding: "utf8", flag: "wx" });
  • 删除本地文件
    lib/index.js:219
    await unlink(temporary);
  • 写入本地文件
    lib/index.js:222
    await rename(temporary, filename);
  • 删除本地文件
    lib/index.js:225
    try { await unlink(temporary); } catch (_) {}
  • 读取本地文件
    lib/index.js:411
    const pkg = JSON.parse(readFileSync(join(candidate, "package.json"), "utf8"));
  • 读取本地文件
    lib/index.js:470
    const active = parseLocalePreference(await readFile(settingsPath, "utf8"));
  • 读取本地文件
    lib/index.js:540
    text = await readFile(patchPath, "utf8");
  • 发起网络请求
    lib/client.js:228
    return fetch("/boot-guard" + path, Object.assign({ credentials: "same-origin" }, options || {}))
  • 写入剪贴板
    lib/client.js:549
    if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(report).then(done, fallback);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 找出故障插件
  • 临时跳过故障插件

DeepSeek Harness 的救援控制台,不依赖加载器,插件损坏导致 Web UI 起不来时用它。

README

由 DeepSeek 最新模型翻译生成
dsh-boot-guard 简体中文 · English Check MIT License 插件把插件管理页面一起弄崩了,接下来怎么办? dsh-boot-guard 是给 DeepSeek Harness Web UI 准备的一道小保险。正常情况下它安安静静地待着;只有插件加载失败、页面只剩下 Failed to load plugins 时,它才会出现,帮你找出可疑插件、临时跳过,然后把工作区救回来。 Boot Guard 启动恢复中心 _上图是只读自检模式,只展示界面和诊断结果,不会真的改配置。_ 为什么写它 起因其实有点尴尬:我在给 DSH 调一个界面插件,刷新之后,整个 Web UI 直接起不来了。 问题插件本来应该去插件管理页里关掉,可插件管理页也属于 Web UI。结果就像把车钥匙锁在车里——明明知道是哪儿出了问题,却没有入口修它。 Boot Guard 就是为这个死循环写的。它不依赖正常的客户端插件加载链,而是由 host 直接把一段很小的救援脚本放进失败页面。其他插件没能加载时,它仍然有机会工作。
展开完整文档(README 剩余 1 节)
dsh-boot-guard

简体中文 · English

Check
MIT License

插件把插件管理页面一起弄崩了,接下来怎么办?

dsh-boot-guard 是给 DeepSeek Harness Web UI 准备的一道小保险。正常情况下它安安静静地待着;只有插件加载失败、页面只剩下 Failed to load plugins 时,它才会出现,帮你找出可疑插件、临时跳过,然后把工作区救回来。

Boot Guard 启动恢复中心

_上图是只读自检模式,只展示界面和诊断结果,不会真的改配置。_

为什么写它

起因其实有点尴尬:我在给 DSH 调一个界面插件,刷新之后,整个 Web UI 直接起不来了。

问题插件本来应该去插件管理页里关掉,可插件管理页也属于 Web UI。结果就像把车钥匙锁在车里——明明知道是哪儿出了问题,却没有入口修它。

Boot Guard 就是为这个死循环写的。它不依赖正常的客户端插件加载链,而是由 host 直接把一段很小的救援脚本放进失败页面。其他插件没能加载时,它仍然有机会工作。

它能做什么

- 从加载错误里找出疑似故障插件,并自动选中
- 默认只看用户插件,也可以搜索名称或 loader 条目 ID
- 临时跳过一个或一批插件,刷新后立即重新尝试启动
- 单独恢复某个插件,或二次确认后恢复全部救援跳过项
- 明确区分“Boot Guard 临时跳过”和“配置原本就禁用”
- 复制一份简短诊断,方便贴到 Issue 里一起排查
- 界面提供中文和英文,并跟随 DSH 设置里的语言选项
- 提供暗色、亮色和窄屏适配的只读自检页

它不会删除插件,也不会碰插件的数据。所谓“跳过”,只是向当前 DSH profile 的 cordis.patch.yml 写入一个带 Boot Guard 标记的 disabled: true 数组项;写入前会识别空文件、[] 和已有数组,恢复时也只会删除自己写入的块。

安装

需要先安装并运行 DeepSeek Harness。

从 GitHub 安装

dsh plugin --profile web add github:SaiSenBox/dsh-boot-guard

安装完成后重启 dsh web。

从 npm 安装

如果这个包已经发布到 npm,可以直接用:

dsh plugin --profile web add dsh-boot-guard

本地开发安装(Windows)

git clone https://github.com/SaiSenBox/dsh-boot-guard.git
cd dsh-boot-guard
powershell -ExecutionPolicy Bypass -File .\install.ps1

本地安装器会把依赖放在 DSH profile 同盘目录,避开 Windows 上跨盘 file: 依赖可能产生的坏 junction。

怎么用

1. 当页面出现 Failed to load plugins,恢复中心会自动挂在错误信息下方。
2. 先看“疑似故障”是否找对了;没找对就搜索并勾选其他插件。
3. 点击“跳过所选并刷新”。页面会重新加载,不需要重启整个 DSH 进程。
4. 修好插件后,在“救援已跳过”里逐个恢复,或者使用“恢复已跳过”。

恢复全部需要点两次,主要是防手滑。单次最多处理 64 个条目,通常远远够用;真的遇到大面积故障时,可以分批操作。

先做一次自检

不必真的弄坏插件来测试它。启动 DSH Web 后打开:

- 暗色:http://127.0.0.1:3080/boot-guard/preview
- 亮色:http://127.0.0.1:3080/boot-guard/preview?theme=light
- 健康检查:http://127.0.0.1:3080/boot-guard/health

自检页是只读的。搜索、筛选和勾选都能试,最终操作不会写入配置。

安全边界

这个插件会修改本地配置,所以边界写得比较死:

- 写接口只接受同源 POST + JSON 请求,并且默认只允许本机回环连接
- 校验请求体大小、条目数量和 ID 格式
- Boot Guard 不能把自己设为跳过
- 找不到明确声明了 dsh.profile 的 profile 时自动进入只读模式,不会猜测当前目录
- 写入前确认配置是顶层 YAML 数组;空文件与 [] 会安全归一化,其他结构直接拒绝
- 配置修改串行执行,通过同目录临时文件原子替换,并在提交前检查外部改动后重新计算
- 恢复只认 Boot Guard 自己的标记,不会顺手清理用户配置
- 不做遥测,也不会把错误信息发到外部服务

如果确实需要从非回环地址直接执行恢复操作,可以在启动 DSH 前显式设置 DSH_BOOT_GUARD_ALLOW_REMOTE_MUTATION=1。这会放宽 Boot Guard 的本机限制;没有额外认证保护时不建议开启。

兼容性

当前版本在 DSH 0.1.0-rc.6、Node.js 24.5.0 和 Windows 上完成验证。项目遵循 DSH 官方 Node.js 要求:^22.19.0 || >=24.0.0。

DSH 目前仍是 developer preview,插件接口可能继续变化。如果新版本把救援入口弄坏了,欢迎带上 DSH 版本和“复制诊断”的内容提 Issue。

开发

npm run check
npm test
npm run pack:check

这个项目故意不引入客户端运行时依赖。救援工具最重要的能力,是在其他东西都没有正常起来时,自己还能起来。

License

MIT © 2026 SaiSenBox
预览分享卡片长什么样 ↓SaiSenBox/dsh-boot-guard
分享 · DeepSeek Harness Hub
SaiSenBox/dsh-boot-guard

插件崩溃致页面打不开时,找出故障插件并临时跳过

回到顶部