DeepSeek Harness (DSH) 采用插件化架构,但在迁移环境或更换设备时,开发者常面临本地插件(如 link: 或 file: 源)和系统级辅助脚本丢失的问题。zhengjy01/dsh-backup-migrator 插件旨在解决这一痛点,它通过 GitHub 仓库实现 DSH 插件环境的完整备份与迁移,机制类似于 VSCode 的设置同步。
核心功能¶
该插件主要提供以下能力:
- 一键备份与恢复:支持通过单一命令扫描环境、打包插件和配置文件,并提交到 Git 仓库;同样支持一键从仓库拉取并还原。
- Git 历史回溯:备份内容以 Git 仓库形式存储,支持查看历史记录并进行任意时间点的回滚。
- 内置调度器:提供自动备份功能,无需配置外部
launchd任务,支持自动补齐因睡眠或关闭而错过的备份窗口。 - 本地插件处理:能够自动检测并打包
link:和file:类型的本地插件为tarball,确保新机器上能正确还原。 - 系统级脚本同步:除插件外,还负责备份
~/.dsh/scripts下的脚本以及对应的launchd定时任务(plist 文件),防止因缺少脚本导致定时任务失效。
安装与启用¶
在使用前,请确保你的 DeepSeek Harness 版本满足要求(>= 0.1.5-rc.1,兼容 0.2.0-rc.2)。
- 执行以下命令安装插件:
dsh plugin --profile web add github:zhengjy01/dsh-backup-migrator
*安装后请重启 `dsh web` 进程以加载插件。*
配置与使用¶
初始化配置¶
使用前需完成一次性的配置设置,指定备份仓库地址和本地目录。
- 在 GitHub 上创建一个空仓库(如果包含敏感配置,建议设为私有)。
- 执行配置命令并填入信息:
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(此文件不会被备份)。