前言¶
DeepSeek Harness(DSH)的配置與插件都落在 profile 裏。一次 apply() 拋錯、命令重複註冊、或構造期讀了尚未落地的文件,宿主可能在插件加載階段就退出——此時救援類插件自己也進不了啓動流程。社區裏已有 dsh-fix、dsh-plugin-ops、各類備份與回滾插件,各自側重診斷、靜態規則或清單快照;dsh-rescue-guard 把「命令名衝突的啓動前預檢」「崩潰日誌六類歸類」和「不依賴 DSH 的獨立 CLI」收在同一套工作流裏,維護者 1250589385(raysnows)在 README 中寫明設計來自本機 21 份真實崩潰日誌的反推。
這是什麼¶
dsh-rescue-guard 歸類爲工作流插件,當前包版本 0.3.1,許可證 MIT。它解決兩類問題:DSH 已無法啓動時,用 Node 內置模塊實現的 dsh-rescue 做診斷、安全模式、快照回滾與禁用可疑 bundle;DSH 仍正常時,在啓動前做啓發式靜態預檢,並在面板裏查看崩潰歷史、安全模式與快照。README 強調:若崩潰發生在插件加載階段,本插件作爲 bundle 同樣可能加載失敗,因此獨立 CLI 是核心能力,而不是可選附屬。
兩半分工¶
| 組件 | 何時工作 | 作用 |
|---|---|---|
獨立 CLI dsh-rescue |
DSH 起不來 | 不依賴 DSH:診斷、預檢、安全模式、快照、禁用/啓用 bundle |
| 啓動前預檢 | DSH 正常 | 提前發現命令名衝突、缺失文件、可能遮蔽根路由的註冊等 |
| 面板 UI | DSH 正常 | 診斷信息、安全模式、快照管理;底部提供可複製的救援命令 |
維護者在日誌統計表中列出本機樣本:21 份崩潰裏 12 份崩在插件加載中(含 ENOENT 讀缺失文件 8 次、command "rules" is already registered 2 次、1 entry did not activate 2 次等),其餘涉及啓動握手或運行期進程退出——這解釋了爲何必須保留脫離宿主的 CLI。
獨立 CLI 與子命令¶
CLI 入口在插件包目錄的 bin/dsh-rescue.cmd(Windows 可雙擊;會探測本機 Node 或 DSH 自帶運行時)。子命令與全局選項以 README 爲準:
dsh-rescue diagnose 看崩潰原因 + 預檢 + 建議(建議先跑)
dsh-rescue crashes [--limit N] 只列歸類後的崩潰歷史
dsh-rescue scan 只跑啓動前靜態預檢
dsh-rescue safe-mode status|on|off 安全模式
dsh-rescue snapshot create|list|restore <id>
dsh-rescue disable <bundle> 把某個 bundle 移出啓動列表
dsh-rescue enable <bundle> 加回啓動列表
--profile <dir> 配置目錄(默認 ~/.dsh/profiles/desktop)
--home <dir> DSH_HOME
--json 以 JSON 輸出
典型救援順序:先 diagnose,再 safe-mode on 後嘗試啓動 DSH;若仍失敗,按診斷中的 web_auth 等建議處理;若要定位具體插件,可用 enable 逐個加回。
啓動前預檢與安全模式¶
預檢對應 README 所列真實事故類型:命令名衝突(例如多個插件註冊同一命令導致 apply() 中斷)、構造期 readFileSync 目標文件缺失、以及 prefix 掛在 / 可能影響桌面端握手。文檔明確:預檢是靜態啓發式,命中值得查,未命中不代表沒問題;UI 與 CLI 都會提示這一點。0.3.x 起 scan 還檢測對宿主私有事件 internal/* 的訂閱,用於升級宿主前掃一眼兼容性風險。
安全模式佈防後,下次啓動只加載 @deepseek-ai/* 官方 bundle,第三方暫時移出;啓動成功後自動還原。約束包括:不改動官方 bundle、改寫清單前自動快照、原子寫、冪等。插件不自動刪除任何東西,只做禁用(可還原)。
快照、指紋與崩潰守護¶
每次啓動會保留清單級快照(package.json / pnpm-workspace.yaml / rules.yaml),默認路徑爲 <profile>/.rescue/snapshots/,保留最近 10 份。清單損壞時可:
dsh-rescue snapshot list
dsh-rescue snapshot restore 2026-11-07T13-35-29.164Z
啓動指紋寫在 boot.json 的 fingerprint / lastGood:成功啓動時記錄宿主與各插件解析版本,失敗時與上次成功對比並寫入日誌與面板。
面板可安裝崩潰守護:事件驅動監聽崩潰日誌目錄(非輪詢爲主),防抖後生成 <profile>/.rescue/last-crash-report.txt,含錯誤原文、歷史歸類、預檢摘要與可執行建議。README 稱平時零佔用,主路徑依賴操作系統目錄變更通知。
崩潰診斷在 0.3.0 起會解析棧裏第一個非 @deepseek-ai/* 的第三方幀,縮小嫌疑 bundle 範圍,但文檔要求人工確認鏈式調用場景,棧幀不是最終判決書。
與生態裏其它插件的關係¶
README 對照表說明:dsh-plugin-ops 強於依賴、peer、版本兼容等靜態規則,但不查命令註冊衝突;本插件與之互補。與 dsh-fix 在獨立 CLI 救啓動上有重疊,差別在於命令衝突預檢與六類崩潰歸類。快照類插件側重通用備份,本插件快照服務於救援與清單回滾。若你 primarily 需要依賴漂移類檢查,文檔建議優先考慮 dsh-plugin-ops;若痛點是啓動崩潰、命令衝突與 profile 自救,本插件更對口。
安裝與啓用¶
官方安裝命令:
dsh plugin add dsh-rescue-guard
安裝後需要重啓 DSH,路由與面板纔會生效;README 寫明裝完不重啓時 /dsh-rescue/*.json 可能 404,屬預期行爲。package.json 要求 Node >=20。包內自帶回歸測試:
node test/regression.mjs
期望 24 項全部通過。
適用場景與注意¶
適合:本地 desktop profile 插件較多、曾多次啓動失敗、需要在不啓動 DSH 的情況下禁用 bundle 或回滾清單的開發者。
務必注意:
- 插件以當前 DSH 進程權限讀寫 profile;安裝前應查看 GitHub 倉庫 源碼與 MIT 許可證。
- 不能在「插件加載期即崩潰」的場景下靠本 bundle 自救——只能用
dsh-rescueCLI。 - 不做法制意義上的安全審計;修不了
renderer exited: killed等應用層進程問題。 - 命令衝突掃描以
package.json聲明爲準,物理殘留在node_modules但已從聲明移除時可能漏報。 - 社區目錄 SkillHub 插件頁 與 GitHub 由社區維護,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-rescue-guard 把獨立救援 CLI、清單快照、安全模式與啓動前預檢(尤其命令名衝突)放在一條工作流裏,並附帶可選的崩潰守護與面板運維入口。星標與版本以倉庫當前信息爲準;進一步瞭解可訪問 SkillHub 目錄頁 與 GitHub:1250589385/dsh-rescue-guard。