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
羽毛球分组比赛记分
小程序二维码

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

小夜