dsh-safe-install:DSH 插件安全安裝全流程自動化

DSH 生態以插件化爲核心,直接安裝插件存在風險:加載器重複可能導致崩潰,工具名衝突會導致功能失效,版本不匹配可能破壞運行環境,且安裝後需手動重啓。dsh-safe-install 將“裝插件”這一操作封裝爲標準流程:先做四重安全檢查,確認無衝突後打快照,執行安裝,最後自動重啓 DSH。

插件簡介

dsh-safe-install 是由 goodaiaiai 維護的自動化工具。它集成在 DSH 進程中,通過自動化流程規避安裝風險。其核心價值在於將手動排查和操作轉化爲可複用的指令,確保插件環境的穩定。

核心功能

該插件主要包含以下能力:

  1. 四重安全檢查:在安裝前並行執行,涵蓋版本兼容性、patch 衝突、工具名衝突及供應鏈安全。
  2. 阻斷機制:根據檢查結果返回 block 或 warn。block 會直接拒絕安裝並說明原因;warn 僅提示風險但不阻斷。
  3. 快照與回退:安裝前自動調用 dsh-undo-savepoint 創建快照,若安裝失敗或配置錯誤,可隨時回退。
  4. 自動重啓:安裝完成後自動重啓 DSH 進程,確保新插件立即生效。
  5. 狀態追蹤:記錄最近的檢查、安裝和重啓狀態,重啓後仍可查詢。

安裝

通過官方命令行安裝:

dsh plugin --profile web add github:goodaiaiai/dsh-safe-install#master

安裝後需重啓 DSH 生效。

典型用法

插件註冊了三個工具,可在對話中直接調用。

  1. 安全檢查
    僅執行四重安全檢查,不進行實際安裝。
    safe_install_check { pkg: "dsh-startup-guard" }
  1. 安全安裝
    執行檢查、安裝並自動重啓(默認 restart: true)。
    safe_install { pkg: "dsh-better-sidebar", source: "github:omdsh-dev/DSH-better-sidebar" }
  1. 狀態查詢
    查詢上次的檢查、安裝和重啓狀態。
    safe_install_status

四重安全檢查機制

檢查分爲四個維度,判定標準如下:

  1. 版本兼容:檢查插件 peerDependencies 中 @deepseek-ai/* 的版本要求(minor, patch, rc)是否 ≤ 當前 DSH 版本。
  2. Patch 衝突:檢查 cordis.patch.yml 中的 insert id 是否與核心保留 ID(如 storage)或已裝插件重複。
  3. 工具名衝突:檢查插件註冊的工具名是否與已裝插件或內置工具重複。
  4. 供應鏈:檢查 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。

羽毛球分组比赛记分
小程序二维码

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

小夜