dsh-backup-migrator: DeepSeek Harness 插件环境的一键备份与迁移

DeepSeek Harness (DSH) 采用插件化架构,但在迁移环境或更换设备时,开发者常面临本地插件(如 link: 或 file: 源)和系统级辅助脚本丢失的问题。zhengjy01/dsh-backup-migrator 插件旨在解决这一痛点,它通过 GitHub 仓库实现 DSH 插件环境的完整备份与迁移,机制类似于 VSCode 的设置同步。

核心功能

该插件主要提供以下能力:

  1. 一键备份与恢复:支持通过单一命令扫描环境、打包插件和配置文件,并提交到 Git 仓库;同样支持一键从仓库拉取并还原。
  2. Git 历史回溯:备份内容以 Git 仓库形式存储,支持查看历史记录并进行任意时间点的回滚。
  3. 内置调度器:提供自动备份功能,无需配置外部 launchd 任务,支持自动补齐因睡眠或关闭而错过的备份窗口。
  4. 本地插件处理:能够自动检测并打包 link: 和 file: 类型的本地插件为 tarball,确保新机器上能正确还原。
  5. 系统级脚本同步:除插件外,还负责备份 ~/.dsh/scripts 下的脚本以及对应的 launchd 定时任务(plist 文件),防止因缺少脚本导致定时任务失效。

安装与启用

在使用前,请确保你的 DeepSeek Harness 版本满足要求(>= 0.1.5-rc.1,兼容 0.2.0-rc.2)。

  1. 执行以下命令安装插件:
    dsh plugin --profile web add github:zhengjy01/dsh-backup-migrator
*安装后请重启 `dsh web` 进程以加载插件。*

配置与使用

初始化配置

使用前需完成一次性的配置设置,指定备份仓库地址和本地目录。

  1. 在 GitHub 上创建一个空仓库(如果包含敏感配置,建议设为私有)。
  2. 执行配置命令并填入信息:
    dshbackup_config backupDir: ~/Documents/DSH-Backup
    dshbackup_config repoUrl: git@github.com:username/dsh-backup.git

核心操作命令

插件提供了一组命令用于管理备份流程:

  • dshbackup_backup:扫描当前环境,构建清单、打包本地插件、处理辅助脚本,执行 git commit 并推送。
  • dshbackup_restore:拉取/克隆备份仓库,重新安装所有插件,还原配置文件及脚本。
  • dshbackup_verify:在备份或还原前进行预检,检查源可达性、Git 远程仓库状态、密钥及辅助文件是否存在。
  • dshbackup_list:查看备份历史(Git Log)及最新清单摘要。
  • dshbackup_config:查看或修改配置项,或在不带参数时报告调度器状态。

自动调度配置

插件内置调度器,支持在指定间隔自动执行备份。配置如下:

dshbackup_config autoBackup: true                 # 开启自动备份
dshbackup_config backupIntervalMinutes: 1440      # 备份间隔,默认为 1440 分钟(每日)
dshbackup_config backupRetryMinutes: 30           # 失败重试间隔,默认 30 分钟
dshbackup_config autoBackupPush: false            # 是否自动推送,默认 false(仅本地提交)

注意:调度器会在下次启动或唤醒时自动补齐错过的备份窗口。

HTTP 接口

插件提供了一个仅限本地的 HTTP 接口,供外部工具或验证脚本调用:

  • GET /api/dsh-backup-migrator/probe:存活探针,返回插件状态。
  • GET /api/dsh-backup-migrator/status:只读状态接口,返回当前配置及备份摘要。

适用场景与注意

  • 环境迁移:当你需要将当前的 DSH 开发环境完整迁移到新机器时,此插件是最佳选择。
  • 版本回滚:如果插件配置发生冲突或数据损坏,可以利用 Git 历史快速回退到之前的状态。
  • 安全性:如果配置中启用了 includeSecrets,备份仓库必须设为私有,否则敏感信息将暴露在公开代码库中。
  • 文件权限:配置文件存储在 ~/.dsh/dsh-backup-migrator.json,运行时状态存储在 ~/.dsh/dsh-backup-migrator-state.json(此文件不会被备份)。
羽毛球分组比赛记分
小程序二维码

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

小夜