DeepSeek Harness (DSH) 採用插件化架構,這意味着通過插件擴展功能非常方便,但也帶來了配置變更和升級可能破壞現有環境的隱患。dsh-safe-launch 是一個專注於管理安全啓動的插件,它通過記錄上次成功的配置、在隔離環境中進行更新試運行以及嚴格檢查插件兼容性,來保障 DSH 實例的穩定性。
插件定位¶
dsh-safe-launch 是 DSH 的管理安全類插件,由 dHR-P 維護。它的核心價值在於爲 DSH 提供一個“安全網”:在執行任何可能影響運行環境的操作(如核心升級或安裝新插件)之前,先在隔離環境中驗證,只有驗證通過才應用到當前實例。
核心功能¶
該插件提供了以下五個主要能力:
- 成功啓動配置:基於
~/.dsh/safe-launch/last-good.json記錄上次成功的配置。在配置變更前,插件會自動進行備份。 - 核心更新試運行:在安裝新版 DSH 核心時,先將其裝入獨立的
runtime/<版本>目錄,利用隔離的 HOME 和隨機端口啓動測試。只有測試通過,纔會寫入新配置;失敗則自動丟棄候選版本。 - 插件兼容性檢查安裝:安裝任何新插件前,插件會複製一份 profile 到臨時目錄,在隔離環境安裝插件,並用當前成功配置在新端口啓動測試。通過後纔會通過官方命令
dsh plugin add裝入真實的 profile;失敗則僅提示,不影響當前實例。 - 插件更新迴歸:批量更新插件時,先備份清單,更新後進行迴歸測試,通過則提交,失敗則回滾。
- 安全重啓:使用分離式的 helper 進程接管“停舊-起新-驗活”流程,父進程無需自盡。
安裝與啓用¶
安裝該插件非常直接,使用 DSH 的插件管理命令即可:
dsh plugin --profile web add github:dHR-P/dsh-safe-launch
安裝完成後,必須重啓 DSH 以完成初始化。插件會自動從當前運行的實例引導出“成功啓動配置”,無需額外步驟。重啓後,插件會處於 pending 引導狀態,此時它提供自動巡檢、升級提示和兼容性安裝功能。
典型用法¶
1. Web 配置面板¶
插件提供了一個自包含的網頁管理面板,地址爲:
http://127.0.0.1:3080/dsh-safe-launch/panel
在該面板中,你可以管理安全啓動狀態、查看插件版本與兼容性、檢查清單漂移情況,以及進行重啓或回滾操作。
2. 授權接管桌面啓動器¶
默認情況下,插件僅作爲增強組件運行。如果需要接管桌面快捷方式,以便通過桌面圖標安全啓動 DSH,需要用戶明確同意。可以通過調用 API 完成:
curl -s http://127.0.0.1:3080/dsh-safe-launch/setup/desktop-launcher -d '{}'
若拒絕接管,則保持純插件模式,調用以下命令:
curl -s http://127.0.0.1:3080/dsh-safe-launch/setup/dismiss-onboarding -d '{}'
3. 插件兼容性安裝¶
在安裝新插件前,建議使用插件的 API 進行檢查。例如,安裝一個來自 GitHub 的插件:
curl -s http://127.0.0.1:3080/dsh-safe-launch/install-plugin \
-d '{"source":"github:someone/some-dsh-plugin"}'
該接口會返回一個任務 ID,隨後可以通過 /job 接口輪詢任務狀態與日誌,確認安裝是否成功。
4. 啓動參數自適應¶
插件支持自動適配不同版本的 DSH CLI 形狀(例如 --profile web 與 web 參數位置的區別)。插件會通過 process.argv 捕獲當前啓動參數,將其模板化存入配置,確保重啓和試運行時使用正確的參數格式。
適用場景與依賴¶
- 適用場景:需要頻繁安裝新插件或升級 DSH 核心的開發者;希望保障 DSH 實例不因誤操作而崩潰的環境。
- 運行環境:依賴 Windows 操作系統、pnpm 必須在系統 PATH 中、Node.js 版本需 ≥ 20。
- 兼容性:支持任何版本的 DSH。插件採用
default-open兼容策略,任何 dsh 版本均可安裝,且不會影響宿主啓動。 - 構建要求:本包無構建腳本(無 prepare/postinstall),不會被 pnpm allowBuilds 攔截。
總結¶
dsh-safe-launch 通過將高風險操作(更新、安裝)前置到隔離環境進行驗證,解決了 DSH 插件化管理中的穩定性隱患。它不僅是配置的備份工具,更是操作流程的安全守門員。通過其提供的 API 和 Web 面板,開發者可以放心地探索和擴展 DSH 的功能。