DSH 生態以插件化爲核心,直接安裝插件存在風險:加載器重複可能導致崩潰,工具名衝突會導致功能失效,版本不匹配可能破壞運行環境,且安裝後需手動重啓。dsh-safe-install 將“裝插件”這一操作封裝爲標準流程:先做四重安全檢查,確認無衝突後打快照,執行安裝,最後自動重啓 DSH。
插件簡介¶
dsh-safe-install 是由 goodaiaiai 維護的自動化工具。它集成在 DSH 進程中,通過自動化流程規避安裝風險。其核心價值在於將手動排查和操作轉化爲可複用的指令,確保插件環境的穩定。
核心功能¶
該插件主要包含以下能力:
- 四重安全檢查:在安裝前並行執行,涵蓋版本兼容性、patch 衝突、工具名衝突及供應鏈安全。
- 阻斷機制:根據檢查結果返回
block或warn。block會直接拒絕安裝並說明原因;warn僅提示風險但不阻斷。 - 快照與回退:安裝前自動調用
dsh-undo-savepoint創建快照,若安裝失敗或配置錯誤,可隨時回退。 - 自動重啓:安裝完成後自動重啓 DSH 進程,確保新插件立即生效。
- 狀態追蹤:記錄最近的檢查、安裝和重啓狀態,重啓後仍可查詢。
安裝¶
通過官方命令行安裝:
dsh plugin --profile web add github:goodaiaiai/dsh-safe-install#master
安裝後需重啓 DSH 生效。
典型用法¶
插件註冊了三個工具,可在對話中直接調用。
- 安全檢查
僅執行四重安全檢查,不進行實際安裝。
safe_install_check { pkg: "dsh-startup-guard" }
- 安全安裝
執行檢查、安裝並自動重啓(默認restart: true)。
safe_install { pkg: "dsh-better-sidebar", source: "github:omdsh-dev/DSH-better-sidebar" }
- 狀態查詢
查詢上次的檢查、安裝和重啓狀態。
safe_install_status
四重安全檢查機制¶
檢查分爲四個維度,判定標準如下:
- 版本兼容:檢查插件
peerDependencies中@deepseek-ai/*的版本要求(minor, patch, rc)是否 ≤ 當前 DSH 版本。 - Patch 衝突:檢查
cordis.patch.yml中的insert id是否與核心保留 ID(如storage)或已裝插件重複。 - 工具名衝突:檢查插件註冊的工具名是否與已裝插件或內置工具重複。
- 供應鏈:檢查 npm 包是否已發佈、維護是否活躍(<30天)以及許可證是否清晰。
注意:未提供
source參數時,無法完整執行 ②③ 檢查,僅返回warn。建議總是提供 GitHub 源。
注意事項與限制¶
- 網絡與權限:插件運行在 DSH 進程中。
dsh plugin add在workspace-write沙箱下可能因權限問題報EPERM,需danger-full-access。網絡請求內置NODE_TLS_REJECT_UNAUTHORIZED=0(用於解決本地 CA 鏈不完整問題)並包含重試邏輯(2次)。 - 檢查依賴:②③ 檢查依賴 GitHub 源,npm 包在未下載時無法讀取其 patch 和源碼內容。
- 清單刷新:工具名清單爲內置快照 + 啓動時掃描,新裝插件後需重啓以刷新清單。
- 運行時依賴:本插件僅檢查安裝時的版本和衝突,不覆蓋
dsh-client-ui-slots等核心模塊的運行時依賴完整性(建議配合dsh-startup-guard)。
插件通過自動化流程降低了 DSH 插件管理的複雜度與風險。如需回滾誤操作的安裝,可使用 dsh-undo-savepoint。