dsh-sync:DSH 跨設備同步插件

前言

DeepSeek Harness(DSH)插件化架構下,會話、附件、配置和工程散落在多臺設備上,手動遷移或依賴雲服務都存在隱私與權限風險。本文介紹 vxdeus/dsh-sync,一個支持自建私有 Git 或 SFTP 倉庫的同步插件,解決跨設備狀態一致性、安全恢復和插件升級問題。

這是什麼

dsh-sync 是一個 DSH 插件,由維護者 vxdeus 開發,歸類爲「記憶」類。它通過使用者自己的私有 HTTPS Git 倉庫或 SFTP 服務器同步會話、附件、配置及選定工程,支持在線安全範圍應用、離線恢復及經確認的插件升級。

核心功能

  • 私有存儲同步:支持私有 HTTPS Git(以 Gitee 爲示例後端)和 SFTP 服務器,數據不出自有權訪問的倉庫或服務器。
  • 安全範圍應用:在線模式只應用宿主允許的安全範圍,冷歷史通過原生接口導入;已加載、分叉、格式不支持的會話及忙碌工程保留。
  • 離線恢復:生成離線恢復計劃,不覆蓋現有會話或工程,需本地 Node.js 24+ 運行。
  • 插件升級:快照攜帶插件精確版本與升級說明,目標設備下載後僅檢測差異,用戶確認後才交給宿主插件管理器安裝。
  • 隱私保護:發佈包不含作者的同步倉庫、服務器連接信息、賬號、密鑰、令牌、會話、附件或工程數據;配置文件只留在本機,不上傳到同步快照。

安裝與啓用

  1. 確保運行時 Node.js 24 或更高版本,SFTP 需本機可用 OpenSSH ssh / sftp。
  2. 在 DSH 插件管理器中安裝 GitHub Release 的 dsh-sync.tgz 或帶版本號安裝包,並覈對同一 Release 的 SHA256SUMS。
  3. 完全退出並重新打開 DSH,再刷新原有網頁(僅刷新網頁不能保證更新宿主插件的模塊緩存)。
  4. 在 DSH 中進入入口:設置 → 跨機同步,或側邊欄底部的同步。

典型用法

配置私有 HTTPS Git

編輯 dsh-sync.json(位置:DSH_HOME/dsh-sync.json,未設置 DSH_HOME 時爲 ~/.dsh/dsh-sync.json):

{
  "backend": "gitee",
  "repoUrl": "https://git.example.invalid/your-account/private-sync.git",
  "branch": "dsh-sync",
  "username": "your-account",
  "token": "",
  "privateRepoConfirmed": false,
  "profiles": ["desktop"],
  "includeAttachments": true,
  "maxExtraBytes": 209715200,
  "extras": []
}
  • gitee 是保留的 Git 後端配置名,界面也沿用 Gitee 標籤。
  • 令牌可設置在環境變量 DSH_SYNC_TOKEN 或配置的 token 字段。
  • 親自確認數據倉庫爲私有後纔將 privateRepoConfirmed 改爲 true;這是本機確認聲明,插件不會自動查詢或更改遠端可見性。
  • 不得將本項目的公開源碼倉庫作爲個人同步目標;插件會拒絕此目標。

配置 SFTP 服務器

{
  "backend": "sftp",
  "sftp.host": "your-server.example.com",
  "sftp.port": 22,
  "sftp.username": "your-authorized-user",
  "sftp.remoteRoot": "/data/my-sync",
  "sftp.privateKeyPath": "/path/to/private/key",
  "sftp.hostKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI..."
}
  • 不提供託管服務器、共享賬號、預置主機公鑰或私鑰;每臺設備自行生成/保管密鑰。
  • sftp.hostKey 需通過可信獨立渠道覈對完整服務器公鑰,不要關閉主機身份校驗。
  • 密鑰需可用於非交互式 OpenSSH 認證;賬戶、密鑰和目錄訪問權限由使用者管理。

日常同步流程

源設備上傳

  1. 檢查狀態與同步範圍;工程/額外文件須手動添加自定義映射(例如邏輯名 my-project)。
  2. 執行本地預演:掃描並暫存本機數據;已配置 Git 時可能創建本地提交,不是隻讀檢查,但不推送或訪問遠端。
  3. 明確確認後上傳;僅當顯示遠端回讀/哈希覈驗成功時,才視爲備份成功。
  4. 同一時刻只在一臺設備編輯;不是實時雙向同步,也不自動合併兩臺設備的分叉歷史。

目標設備下載與恢復

  1. 安裝兼容版本插件,並配置自己的倉庫憑據或 SFTP 授權;各設備按相同邏輯名映射工程。
  2. 默認在線模式只應用宿主允許的安全範圍:冷歷史通過原生接口導入;已加載、分叉、格式不支持的會話及忙碌工程保留,運行時配置等推遲應用。
  3. 僅下載/離線恢復只產生暫存計劃,不覆蓋現有會話或工程;檢查結果後完全退出 DSH,再運行該結果給出的恢復命令。
  4. 恢復覈對源哈希及下載時的目標基線,覆蓋前驗證備份;衝突時停止,不自動改權限;內容相同的只讀附件保持原樣。
  5. 恢復中失敗會嘗試回滾,仍可能出現需人工處理的不完整回滾;請保留日誌和備份;本插件不替代獨立備份。
  6. 下載尚未完整應用時會阻止後續上傳,避免用舊本機快照覆蓋遠端;不要輕易勾選覆蓋未應用遠端內容。

跨設備插件升級

快照可攜帶已安裝插件的精確版本、支持的本地安裝包和升級說明。目標設備下載後僅檢測差異;用戶選中具體插件並再次確認後才交給宿主插件管理器安裝。模型調用另需本次插件管理授權。不自動批准依賴構建腳本,不自動降級,不自動重啓;若返回待重啓,由使用者手動重啓。安裝後重新下載恢復計劃,以免使用安裝前的舊基線。

適用場景與注意

適合需要多設備同步 DSH 會話、配置和工程,且希望完全掌控存儲位置與權限的開發者。插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證(MIT)。注意同步範圍不包含 node_modules、模型/OAuth 登錄憑據、integrations、IM 聊天存儲、運行時、緩存、同步配置、私鑰和令牌;插件包按白名單另行歸檔。

短結尾

dsh-sync 在「記憶」分類下提供可控的跨設備同步方案,數據存儲完全由使用者自行配置,適合需要多機協作的 DSH 用戶。

目錄頁 | GitHub

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

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

小夜