dsh-plugin-updater:DeepSeek Harness 插件安全一鍵更新器

前言

DeepSeek Harness (dsh) 的插件依賴關係通過 pnpm 管理併疊加到 dsh.profile.bundles 中。直接使用 pnpm up --latest 或手動操作,容易出現 profile 處於半成品狀態、版本鎖定被破壞、層列表未更新或組合校驗失敗等問題,導致 dsh 重啓後無法啓動。

dsh-plugin-updater 針對這些痛點設計,提供了一套從備份、鎖定風格保持、對賬到雙重校驗、真實啓動驗證的完整流程,確保插件更新或卸載後環境依然可用。

是什麼

dsh-plugin-updater 是 DeepSeek Harness (dsh) 的插件更新與卸載工具。它由 dp419936514 維護,核心價值在於通過“備份 -> 校驗 -> 啓動驗證 -> 失敗回滾”的管線,安全地管理第三方插件依賴。

核心功能

  • 插件清單:顯示插件名字、當前版本、可升級版本,並標記已鎖定、已棄用、本地依賴。支持按 pnpm outdated 刷新清單。
  • 兩種更新模式:支持升級到最新版,或在原版本約束內升級。跨大版本時會在頁面上提示。
  • 一鍵操作:在設置頁勾選插件,二次確認後執行。支持實時進度和逐項報告“舊 -> 新”的變更。
  • 逐項卸載:每個插件行一個“卸載”按鈕。流程包括:備份 -> pnpm remove -> bundles 對賬 -> 組合校驗 + 臨時端口啓動驗證。失敗時自動回滾。
  • 回滾機制:操作失敗自動還原;也可以在設置頁裏手動回滾最近 10 份歷史備份。
  • 智能重啓:自動檢測 dsh 的啓動方式(systemd 用戶服務或前臺/後臺進程),使用對應的命令或分離進程拉起新進程,確保舊進程退出後再加載新版本。
  • 操作歷史:每次更新、卸載、回滾的結果記錄在 <profile>/.dsh-plugin-updater/history.l 中。

安裝與啓用

在 web profile 中安裝:

dsh plugin --profile web add github:dp419936514/dsh-plugin-updater

重啓 dsh web 後,設置頁會出現“插件更新”分區。卸載該插件自身需使用命令行:

dsh plugin --profile web remove dsh-plugin-updater

典型用法

設置頁操作

  1. 打開“插件更新”分區,勾選要更新的插件(精確鎖定的默認不勾)。
  2. 選擇更新模式,點擊“一鍵更新所選”。
  3. 成功後點擊“重啓 dsh”生效。

命令行操作

  • 檢查清單:node bin/dpu.mjs check
  • 更新所有:node bin/dpu.mjs update --yes
  • 更新指定插件:node bin/dpu.mjs update --targets dsh-cost-meter --yes
  • 卸載指定插件:node bin/dpu.mjs uninstall --targets dsh-cost-meter --yes
  • 回滾:node bin/dpu.mjs rollback
  • 重啓服務:node bin/dpu.mjs restart --yes

注意事項

  • 範圍限制:只管理 profile 的第三方依賴,不升級 dsh 本體,不修改 agent preset、會話和憑據,也不替你裝新插件。
  • 手動更新:更新是“更新你勾選的那些”,不會自動追新。
  • 內置包保護:內置 @deepseek-ai/* 的更新歸 dsh 自己,也不在卸載範圍。
  • 安全性:比直接 pnpm up --latest 更安全,多了備份、鎖定、bundles 對賬、雙重校驗和失敗回滾。
  • 斷電恢復:更新或卸載中途斷電、被殺,可用備份目錄 + node bin/dpu.mjs rollback 命令還原。
  • 卸載驗證:卸載後會重新對賬 dsh.profile.bundles,斷言沒有殘留的無依賴層。

結尾

dsh-plugin-updater 通過一套標準化的操作流程,填補了直接使用包管理器更新插件帶來的安全空白。對於需要頻繁調整插件生態的開發者,它能有效降低環境損壞風險。更多細節可參考 GitHub 倉庫。

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

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

小夜