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(此文件不會被備份)。
羽毛球分组比赛记分
小程序二维码

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

小夜