DeepSeek Harness 鎖定版本更新插件 dsh-lockstep

前言

在 DeepSeek Harness(DSH)的生態中,默認的更新行爲傾向於“浮動”。例如,使用 dsh plugin --profile web update 實際上執行的是 pnpm update,這會將依賴更新到最新版本。社區現有的其他更新器(如 dsh-update-checker、dsh-safe-updater 等)也大多會將 profile 指向最新版本。

這種默認行爲在 DSH 處於 RC 階段,或者插件運行在具備進程權限的環境下時存在風險。dsh-lockstep 解決的問題是:“保持 N 臺機器處於相同的已審覈 pin 上,並注意到世界已經發生了變化”。

這是什麼

dsh-lockstep 是一個基於 pin 的更新工具,隸屬於 DSH 插件生態。由 da-beda 維護。它的核心邏輯是:對比已審覈的 lockfile 與 npm registry 和 GitHub 上的狀態,規劃 pin bump,然後停止。它不會將任何依賴“浮動”到最新版本。

核心功能

該插件提供以下核心能力:

  • 檢查 lockfile drift:對比當前鎖定的版本與遠程倉庫(npm 或 GitHub)的最新狀態。
  • 規劃 pin bump:當有更新時,生成具體的 bump 計劃。
  • 永不浮動:嚴格執行鎖定策略,不會自動更新到最新版本。

安裝與啓用

可以通過兩種方式安裝該插件。

作爲 CLI 工具(無需 DSH):

npx -y github:da-beda/dsh-lockstep#v0.1.1 check --lock plugins.lock.json

作爲 DSH 插件(註冊 lockstep_check / lockstep_plan 工具):

dsh plugin --profile tui add github:da-beda/dsh-lockstep#v0.1.1
dsh plugin --profile web add github:da-beda/dsh-lockstep#v0.1.1

典型用法

使用 dsh-lockstep 的標準工作流是先檢查,再規劃,最後應用變更。

  1. 檢查狀態
    dsh-lockstep check
    # 或者指定 lockfile
    dsh-lockstep check --lock plugins.lock.json
  1. 查看變更計劃
    dsh-lockstep plan
  1. 應用變更並寫入
    需要顯式傳遞 --write 參數。apply 命令在未傳遞 --write 時會拒絕執行寫入操作。
    dsh-lockstep apply --write

完整的操作鏈路是:
check → plan → review → apply --write → commit → 在每臺機器上運行 install.sh。

適用場景與注意

  • 適用場景:需要嚴格控制多臺機器依賴版本一致性的環境,特別是 DSH 處於 RC 版本或插件涉及系統權限時。
  • 安全機制:
    • 插件僅與 npm registry 和 GitHub 通信,不執行 package install scripts。
    • 寫入 lockfile 並不等同於安裝代碼,這只是一個配置文件的更新。
  • 錯誤處理:
    • apply 命令在未使用 --write 時會拒絕寫入。
    • 如果遇到 GitHub API 速率限制,請設置環境變量 GITHUB_TOKEN 或 GH_TOKEN。
  • 生態背景:DSH 的核心理念是“一切皆插件”。社區目錄(catalog)是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

鏈接

  • 插件目錄:https://www.skillhub.cn/plugins/da-beda/dsh-lockstep
  • 源碼地址:https://github.com/da-beda/dsh-lockstep
羽毛球分组比赛记分
小程序二维码

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

小夜