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(此文件不會被備份)。