前言¶
DeepSeek Harness(DSH)插件化架構下,會話、附件、配置和工程散落在多臺設備上,手動遷移或依賴雲服務都存在隱私與權限風險。本文介紹 vxdeus/dsh-sync,一個支持自建私有 Git 或 SFTP 倉庫的同步插件,解決跨設備狀態一致性、安全恢復和插件升級問題。
這是什麼¶
dsh-sync 是一個 DSH 插件,由維護者 vxdeus 開發,歸類爲「記憶」類。它通過使用者自己的私有 HTTPS Git 倉庫或 SFTP 服務器同步會話、附件、配置及選定工程,支持在線安全範圍應用、離線恢復及經確認的插件升級。
核心功能¶
- 私有存儲同步:支持私有 HTTPS Git(以 Gitee 爲示例後端)和 SFTP 服務器,數據不出自有權訪問的倉庫或服務器。
- 安全範圍應用:在線模式只應用宿主允許的安全範圍,冷歷史通過原生接口導入;已加載、分叉、格式不支持的會話及忙碌工程保留。
- 離線恢復:生成離線恢復計劃,不覆蓋現有會話或工程,需本地 Node.js 24+ 運行。
- 插件升級:快照攜帶插件精確版本與升級說明,目標設備下載後僅檢測差異,用戶確認後才交給宿主插件管理器安裝。
- 隱私保護:發佈包不含作者的同步倉庫、服務器連接信息、賬號、密鑰、令牌、會話、附件或工程數據;配置文件只留在本機,不上傳到同步快照。
安裝與啓用¶
- 確保運行時 Node.js 24 或更高版本,SFTP 需本機可用 OpenSSH
ssh/sftp。 - 在 DSH 插件管理器中安裝 GitHub Release 的
dsh-sync.tgz或帶版本號安裝包,並覈對同一 Release 的SHA256SUMS。 - 完全退出並重新打開 DSH,再刷新原有網頁(僅刷新網頁不能保證更新宿主插件的模塊緩存)。
- 在 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 認證;賬戶、密鑰和目錄訪問權限由使用者管理。
日常同步流程¶
源設備上傳¶
- 檢查狀態與同步範圍;工程/額外文件須手動添加自定義映射(例如邏輯名
my-project)。 - 執行本地預演:掃描並暫存本機數據;已配置 Git 時可能創建本地提交,不是隻讀檢查,但不推送或訪問遠端。
- 明確確認後上傳;僅當顯示遠端回讀/哈希覈驗成功時,才視爲備份成功。
- 同一時刻只在一臺設備編輯;不是實時雙向同步,也不自動合併兩臺設備的分叉歷史。
目標設備下載與恢復¶
- 安裝兼容版本插件,並配置自己的倉庫憑據或 SFTP 授權;各設備按相同邏輯名映射工程。
- 默認在線模式只應用宿主允許的安全範圍:冷歷史通過原生接口導入;已加載、分叉、格式不支持的會話及忙碌工程保留,運行時配置等推遲應用。
- 僅下載/離線恢復只產生暫存計劃,不覆蓋現有會話或工程;檢查結果後完全退出 DSH,再運行該結果給出的恢復命令。
- 恢復覈對源哈希及下載時的目標基線,覆蓋前驗證備份;衝突時停止,不自動改權限;內容相同的只讀附件保持原樣。
- 恢復中失敗會嘗試回滾,仍可能出現需人工處理的不完整回滾;請保留日誌和備份;本插件不替代獨立備份。
- 下載尚未完整應用時會阻止後續上傳,避免用舊本機快照覆蓋遠端;不要輕易勾選覆蓋未應用遠端內容。
跨設備插件升級¶
快照可攜帶已安裝插件的精確版本、支持的本地安裝包和升級說明。目標設備下載後僅檢測差異;用戶選中具體插件並再次確認後才交給宿主插件管理器安裝。模型調用另需本次插件管理授權。不自動批准依賴構建腳本,不自動降級,不自動重啓;若返回待重啓,由使用者手動重啓。安裝後重新下載恢復計劃,以免使用安裝前的舊基線。
適用場景與注意¶
適合需要多設備同步 DSH 會話、配置和工程,且希望完全掌控存儲位置與權限的開發者。插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證(MIT)。注意同步範圍不包含 node_modules、模型/OAuth 登錄憑據、integrations、IM 聊天存儲、運行時、緩存、同步配置、私鑰和令牌;插件包按白名單另行歸檔。
短結尾¶
dsh-sync 在「記憶」分類下提供可控的跨設備同步方案,數據存儲完全由使用者自行配置,適合需要多機協作的 DSH 用戶。