前言¶
在 DeepSeek Harness 生態中,通過插件擴展功能是常見操作。但在安裝第三方插件時,經常出現依賴衝突、配置樹結構不兼容或啓動失敗的情況。dsh-plugin-precheck 插件旨在解決這一痛點。它不改變原環境,而是通過隔離試裝和啓動驗證,在安裝前攔截潛在問題,確保系統穩定性。
核心能力¶
插件在 Web GUI 的「設置 → Plugins」中新增「安裝預檢」標籤頁。輸入 npm 包名後,系統會依次執行以下檢查:
- 解析並鎖定版本:使用
pnpm view獲取包信息並鎖定版本號。 - 基礎兼容性檢查:比對 peerDependencies、Node engines、bundle 清單。如果信息缺失,顯示「無法確認」而不是放行。
- 組合配置檢查:將新插件的
cordis.patch.yml與當前配置樹(通過dsh --dump-config獲取)比對。檢測 ID 重複(確定錯誤)或補丁目標不存在/被多個插件覆蓋(疑似風險)。 - 隔離試裝與啓動:在臨時的
DSH_HOME中複製 profile 文本文件,執行pnpm add鎖定版本。隨後通過--dump-config進行靜態校驗,使用--port 0 --no-open試啓動。系統會等待就緒行和 401 探針,超時時間設定爲 180 秒。隔離環境不含憑據、不掛載定時任務、不觸碰正式環境。
只有當上述檢查全部通過時,才允許正式安裝。
安裝與啓用¶
使用官方命令安裝該插件:
dsh plugin --profile web add dsh-plugin-precheck
安裝完成後重啓 DSH Web 服務即可使用。
工作原理與攔截¶
該插件覆蓋了本頁面的檢查安裝,以及當攔截開啓時,本瀏覽器標籤頁中 dsh-market 的安裝/更新點擊操作。
針對市場插件的攔截邏輯在瀏覽器層實現。dshmarket 的路由是 exact 註冊,且沒有預安裝鉤子。插件通過攔截 window.fetch 識別 POST /dsh-market/install、/dsh-market/update 等請求。攔截後,系統將請求映射爲安裝來源(安裝:URL → 註冊表條目 → npm 包名;更新:包名 → 市場目標版本),運行完整預檢(含隔離試啓動)。通過後才放行原始請求;阻止或取消則返回合成 400 錯誤。用戶可在「安裝預檢」標籤頁隨時停用此功能。
範圍與限制¶
需要注意的是,本插件不覆蓋命令行 dsh plugin add 操作,也不影響其他瀏覽器標籤頁。
此外,檢查通過並不等同於插件永久穩定,也不代表通過了安全審計。如果市場插件未來改變端點或傳輸方式,攔截機制可能會失效(探測不到即不啓用,不會誤攔)。
短結尾¶
dsh-plugin-precheck 通過隔離試裝和瀏覽器層攔截,爲開發者提供了一個安全的插件安裝環境,減少了因兼容性問題導致的配置回滾。該插件由 BaqiF2 維護,開源協議爲 MIT。