READMESource: main@7837cf9e
DSH Crash Guard (防崩卫士)
English | 中文
为 DeepSeek Harness (DSH) 打造的启动防白屏与崩溃隔离守护插件。效仿 Minecraft 模组中 Not Enough Crashes 的容错设计,在第三方插件产物存在语法损坏或未激活时,自动热摘除故障插件并放行正常界面加载,避免触发整窗崩溃白屏。
核心功能
- 双层崩溃防护
- Node 宿主预检:在服务端启动时对前端插件 bundle 执行基于文件指纹 (
rev) 的 V8 经典脚本语法与 Lazy-CJS 契约预检,提前从ClientModuleRegistry剥离损坏产物并自动重建干净的启动图谱。 - Web 引导拦截:在浏览器端官方
IZ()严格审计前动态介入,通过loader.remove()无损摘除未成功激活的前端条目并清理残留样式,杜绝N entries did not activate导致的 Electron 白屏崩溃弹窗。
- Node 宿主预检:在服务端启动时对前端插件 bundle 执行基于文件指纹 (
- 指纹绑定静默隔离 (Revision-bound Quarantine)
- 支持按插件当前代码指纹 (
rev) 执行静默隔离,将隔离记录保存在独立的.dsh-market/crash-guard-quarantine.json中,完全不改动用户的正式配置文件 (package.json、state.json与cordis.patch.yml)。 - 插件代码未变时,下次启动自动静默跳过并不再弹窗打扰;一旦在本地修改了插件代码或在插件市场更新了插件(指纹改变),自动解除隔离并恢复尝试加载。
- 支持按插件当前代码指纹 (
- 轻量级顶栏可视化救援面板
- 深度跟随 DSH 系统语义色彩变量 (
--dsw-alias-*),明暗主题无缝自适应。 - 最小化胶囊紧凑嵌在 Windows 40px 标题栏右侧最小化按钮左方空白拖拽带内 (
right: 150px),平时不遮挡工具栏、聊天区或右侧终端分栏;点击即可向下展开故障分类、上游阻断源 (blockedBy) 与详细报错堆栈。
- 深度跟随 DSH 系统语义色彩变量 (
安装方法
方式一:通过 DSH 命令行安装
dsh plugin add dsh-crash-guard
方式二:在 Profile 中手动引入
在当前 Profile 的 package.json (通常位于 ~/.dsh/profiles/desktop/package.json) 中声明依赖并加入 bundle:
{
"dependencies": {
"dsh-crash-guard": "^1.0.0"
},
"dsh": {
"profile": {
"bundles": [
"dsh-crash-guard"
]
}
}
}
工作机制
[DSH 启动]
│
├── Node 宿主阶段:
│ 1. 读取 crash-guard-quarantine.json 检查版本指纹,已隔离且未更新的代码直接跳过
│ 2. 执行 vm.Script 经典语法预编译校验与 Lazy-CJS 结构核对
│ 3. 发现语法损坏的第三方插件,将其从 clientModules.table 剔除并 compose() 重建图谱
│
└── Web 前端阶段:
1. index.html <head> 注入引导拦截器,包装 __ModuleLoader__.create
2. modules.entries.start 完成后、官方 IZ() 审计前执行拓扑剪枝 (pruneInactiveEntries)
3. 摘除未激活的故障条目 (state !== 2),记录 blockedBy 上游依赖源
4. 挂载 shell.overlay 顶栏救援胶囊与诊断面板
许可证
本项目基于 MIT 许可证 开源。
No comments yet. Be the first to write one.