dsh-boot-guard:DSH Web UI 啓動失敗時的獨立救援控制檯

前言

DeepSeek Harness(DSH)允許通過插件擴展 Web UI。插件把本地工作區的能力拆開,但也帶來一個現實問題:某個插件加載失敗時,Web UI 可能直接起不來,插件管理頁也無法打開。

dsh-boot-guard 是爲這個場景準備的 loader-independent rescue console。它不依賴正常客戶端插件加載鏈;當頁面只剩 Failed to load plugins 時,由 host 提供救援入口,用來找疑似故障插件、臨時跳過、刷新重試。

DSH 的插件目錄是社區站點,不是官方應用商店。下面介紹 SaiSenBox/dsh-boot-guard 的功能、安裝、用法和安全邊界。

這是什麼

dsh-boot-guard 是一個 DSH Web UI 救援插件。它不刪除插件,也不碰插件的數據;所謂“跳過”,只是向當前 DSH profile 的 cordis.patch.yml 寫入一個帶 Boot Guard 標記的 disabled: true 數組項。恢復時,它也只會處理自己寫入的標記。

版本與許可信息如下:

  • 包名:dsh-boot-guard
  • 倉庫:https://github.com/SaiSenBox/dsh-boot-guard
  • 維護者:SaiSenBox
  • 版本:1.1.2
  • 許可證:MIT © 2026 SaiSenBox
  • peerDependencies@deepseek-ai/cordis ^4.0.1
  • Node.js:^22.19.0 || >=24.0.0
  • 驗證環境:DSH 0.1.0-rc.6、Node.js 24.5.0、Windows

核心功能

  • 從加載錯誤裏找出疑似故障插件,並自動選中
  • 默認只看用戶插件,也可以搜索名稱或 loader 條目 ID
  • 臨時跳過一個或一批插件,刷新後立即重新嘗試啓動
  • 單獨恢復某個插件,或在二次確認後恢復全部救援跳過項
  • 明確區分“Boot Guard 臨時跳過”和“配置原本就禁用”
  • 複製一份簡短診斷,方便貼到 Issue 裏一起排查
  • 界面提供中文和英文,並跟隨 DSH 設置裏的語言選項
  • 提供暗色、亮色和窄屏適配的只讀自檢頁

安裝與啓用

先安裝並運行 DeepSeek Harness。從 GitHub 安裝:

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

這條命令把插件添加到 web profile。安裝完成後重啓 dsh web

dsh web

README 還給出 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。

典型用法

先做一次只讀自檢。啓動 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

自檢頁只展示界面和診斷結果,不會真的改配置。搜索、篩選和勾選都能試,但最終操作不會寫入配置。

當插件真正導致啓動失敗時,按下面步驟處理:

1、頁面出現 Failed to load plugins,恢復中心會自動掛在錯誤信息下方。

2、先看“疑似故障”是否找對了;沒找對就搜索名稱或 loader 條目 ID,並勾選其他插件。

3、點擊“跳過所選並刷新”。頁面會重新加載,不需要重啓整個 DSH 進程。

4、修好插件後,在“救援已跳過”裏逐個恢復,或者使用“恢復已跳過”。

恢復全部需要點兩次,主要是防手滑。單次最多處理 64 個條目;如果一次需要處理更多插件,可以分批跳過和恢復。

安全邊界

這個插件會修改本地配置,所以邊界寫得比較死:

  • 寫接口只接受同源 POST + JSON 請求,並且默認只允許本機迴環連接
  • 校驗請求體大小、條目數量和 ID 格式
  • Boot Guard 不能把自己設爲跳過
  • 找不到明確聲明瞭 dsh.profile 的 profile 時自動進入只讀模式,不會猜測當前目錄
  • 寫入前確認配置是頂層 YAML 數組;空文件與 [] 會安全歸一化,其他結構直接拒絕
  • 配置修改串行執行,通過同目錄臨時文件原子替換,並在提交前檢查外部改動後重新計算
  • 恢復只認 Boot Guard 自己的標記,不會順手清理用戶配置
  • 不做遙測,也不會把錯誤信息發到外部服務

如果確實需要從非迴環地址執行恢復操作,可以在啓動 DSH 前顯式設置:

DSH_BOOT_GUARD_ALLOW_REMOTE_MUTATION=1

這會放寬 Boot Guard 的本機限制;沒有額外認證保護時不建議開啓。

適用場景與注意

  • 適合本地 DSH 插件開發、調試和排障,尤其是在插件管理頁無法打開時提供一個緊急入口。
  • 該插件會運行在當前 DSH 進程內,並能修改當前 DSH profile 的本地配置。安裝前應先檢查源碼、許可證和倉庫信息。
  • DSH 目前仍是 developer preview,插件接口可能繼續變化。當前版本在 DSH 0.1.0-rc.6、Node.js 24.5.0 和 Windows 上完成驗證,並遵循 Node.js ^22.19.0 || >=24.0.0
  • 如果新版本導致救援入口異常,可以帶上 DSH 版本和“複製診斷”的內容提 Issue。

鏈接

  • GitHub 倉庫:https://github.com/SaiSenBox/dsh-boot-guard
  • 目錄頁地址:https://www.skillhub.cn/plugins/SaiSenBox/dsh-boot-guard
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜