dsh-updater:DeepSeek Harness (DSH) 增量更新与回滚插件

前言

DeepSeek Harness (DSH) 是一个智能体开发工作流工具。传统更新方式通常涉及全量 npm install,这会重建整个包仓库,容易在内存受限环境(如 Docker)中触发 OOM。dsh-updater 旨在解决这一更新效率与稳定性问题。

什么是 dsh-updater

dsh-updater 是一个社区插件,由 Takinggg 维护,采用 MIT 协议。它不 fork DSH 或执行 git pull,而是通过增量下载 npm tarballs 来更新。

核心功能

该插件提供以下能力:
1. 一键更新:在 DSH 界面中直接触发更新。
2. 增量更新:复用现有引擎(node_modules),仅下载发生变化的 @deepseek-ai/* 包。
3. 保留第三方依赖:当版本匹配时,保留第三方依赖(如 commander、koffi)。
4. 备份与回滚:更新前自动备份引擎,并在更新失败时自动回滚。

安装与启用

安装该插件需要先克隆仓库,然后使用绝对路径添加。不要使用 github:owner/repo 这种非固定引用方式。

  1. 克隆插件仓库:
    git clone https://github.com/Takinggg/dsh-updater.git
  1. 添加插件到 DSH(使用绝对路径):
    dsh plugin --profile web add /absolute/path/to/dsh-updater
  1. 启用后,在 DSH 界面中打开 Settings → Updates 面板即可进行操作。

典型用法

在 DSH 的设置面板中,可以查看更新进度和结果。插件支持通过环境变量控制部分行为:
* DSH_UPDATE_MODE:覆盖显示设置。
* DSH_UPDATE_RESTART:控制进程退出行为(强制重启或保持运行)。
* DSH_HOME:设置备份、缓存和暂存目录的根路径(默认为 ~/.dsh)。

适用场景与注意事项

  • 适用场景:需要在 Docker 容器、nvm 全局安装、Windows %APPDATA%\npm 或其他可写位置运行 DSH 的环境。
  • 安全与限制:
    • 这是一个社区插件,非 DeepSeek 官方软件。
    • 插件不会运行 sudo 或 curl | bash。
    • 目标版本必须是 npm registry 中发布的 next 或 latest dist-tag。
    • 插件会校验 tarball 路径防止目录遍历攻击。
    • 如果验证失败,会自动从 engine-bak 恢复。

总结

dsh-updater 通过增量更新和自动回滚机制,解决了 DSH 在特定环境下全量安装导致内存溢出的问题。对于需要频繁更新或部署在资源受限环境的用户,该插件提供了一个可行的维护方案。

插件目录页
GitHub 仓库

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

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

小夜