dsh-workspace-sync:把工作區、會話與定時任務同步到你自己的雲端目錄

前言

在 DeepSeek Harness(DSH)里長期開發時,工作區列表、各工作區的會話記錄,以及 schedule 定時任務往往都落在本機。換電腦、重裝系統或在家與公司兩臺機器之間切換時,如果沒有統一的「狀態出口」,只能手工拷貝目錄或指望網盤誤同步到錯誤路徑。

DSH 的 DeepSeek 賬號登錄主要承擔身份、餘額與推理鑑權;官方並未向第三方開放可存可取的用戶數據雲空間(Files API 亦不能用於拉取這類數據)。因此「登錄即自動同步」在客戶端側無法實現。社區插件 dsh-workspace-sync(維護者 ColdRainLab,分類:記憶)的做法是:把需要延續的工作狀態同步到你自己指定、且可被網盤客戶端同步的文件夾,新機器安裝同一插件並指向同一目錄,拉取後即可接上原來的工作區與會話。

下面按定位、功能、安裝、用法、數據佈局與限制說明該插件。

這是什麼

dsh-workspace-sync 是 DSH 桌面端插件(engines.dsh 要求 >=0.2.1-rc.2 <0.3.0),當前包版本 0.1.2,許可證 MIT。

一句話:把工作區元數據、會話日誌(session.v4.jsonl.zstd)與自動化任務同步到用戶自管的「雲端目錄」(首版爲文件夾後端,可指向 OneDrive、堅果雲等同步盤路徑),支持雙向同步或僅上傳/僅恢復。

核心功能

同步範圍與模式

  • 雙向同步:本地上傳 → 與遠端合併 → 從遠端拉取;也可只做「上傳到雲端」或「從雲端恢復」。
  • 同步內容:工作區(路徑、標題、會話分組)、會話日誌、schedule 任務行(含運行記錄)。
  • 自動同步:啓動約 15 秒後跑一次,並可按間隔每 N 分鐘重複(可在面板關閉或改間隔)。

本地豁免(不同步)

與 dsh-workspace-vault 配合時,下列內容不上傳,雲端已有也不會寫回本地:

  • 隱藏空間:路徑在 <DSH_HOME>/hidden-space 下的工作區。
  • 加密工作區:workspace-vault/state.json 中 hiddenWorkspaceIds、encryptedWorkspaceIds 記錄的工作區。

判定依賴本機 ~/.dsh/workspace-vault/state.json(缺失、損壞或字段類型錯誤時按「無排除」處理,只記告警,不中斷同步)。hidden-space 路徑前綴規則不依賴該狀態文件。

衝突與後端

  • 同一會話在兩臺機器都有修改時,較新者勝;舊版本備份在雲端 conflicts/,避免靜默丟數據。
  • 首版後端爲文件夾:指向任意被網盤同步的目錄;lib/backends/ 已爲 WebDAV 等預留擴展位。
  • 面板:側欄底部「☁ 雲同步」→ 配置目錄、查看狀態、手動同步、查看衝突與錯誤。與垃圾箱插件(dsh-session-delete)在 footer 合併爲一行顯示。

安裝與啓用

資料中的安裝示例來自作者本機 link: 開發路徑與打包分發路徑;一般用戶若從 SkillHub / 發行包獲取插件,應按所獲渠道的安裝說明操作。README 給出的桌面版命令如下(路徑需按你的 DSH 安裝位置與插件目錄替換)。

開發 / 本機 link 安裝示例:

& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "link:C:/Users/ROG-STRIX/Documents/deepseek-harness/DSH新增功能/dsh-workspace-sync"

穩定版 tgz 示例路徑(作者環境):

C:\Users\ROG-STRIX\.dsh\plugin-archives\dsh-workspace-sync\v0.1.0\dsh-workspace-sync-0.1.0.tgz

卸載:

& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-workspace-sync

安裝前建議閱讀倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限讀寫本地數據與你所配置的雲端目錄,僅安裝你信任的版本。

啓用後可通過宿主接口檢查健康狀態,例如 GET /api/workspace-sync/health 返回 { ok, version, dshVersion }(資料中驗證版本爲 0.1.0 與宿主一致場景)。

典型用法

  1. 點擊側欄底部「☁ 雲同步」。
  2. 在「雲端目錄」填寫會被網盤同步的文件夾,例如:
    - OneDrive:C:\Users\<你>\OneDrive\DSH-Sync
    - 堅果雲:C:\Users\<你>\Nutstore\我的堅果雲\DSH-Sync
    - 本地試跑:C:\Users\<你>\Documents\DSH-Sync
  3. 點「保存」,再點「立即雙向同步」。
  4. 在另一臺電腦:安裝同一插件 → 將「雲端目錄」指向同一路徑(網盤同步後的等價路徑)→ 使用「從雲端恢復」。工作區、會話與任務會出現;若本地工作區路徑不存在,插件會建空目錄,但項目業務文件仍需你用 git 或網盤自行同步項目目錄。

命名空間:登錄 DeepSeek 賬號時按賬號 id 派生(acct-<hash16>),未登錄則爲 default。

數據放在哪裏

項 位置
插件配置、設備 id、同步狀態 <DSH_HOME>/workspace-sync/(默認 ~/.dsh/workspace-sync/)
vault 排除依據 <DSH_HOME>/workspace-vault/state.json
隱藏空間工作區 <DSH_HOME>/hidden-space/
面板默認雲端目錄 ~/Documents/DSH-Sync(可在面板修改)
雲端佈局 <雲端目錄>/<命名空間>/manifest.json、objects/、devices/、conflicts/

objects/ 以內容尋址存放會話原文件;manifest.json 爲工作區、任務與會話哈希的權威清單。寫入採用臨時文件再 rename,減少網盤同步到半文件的風險。

主要 HTTP 接口(JSON,失敗時 { ok:false, error:{ code, message } })包括:/api/workspace-sync/config、/status、/diff、POST /sync(mode: two-way | push | pull)、/log 等,完整表見倉庫 README。

適用場景與注意

適合誰

  • 多臺 Windows(資料驗證環境爲 DSH 0.2.1-rc.3)之間延續 DSH 工作區與會話。
  • 已有 OneDrive、堅果雲等「同步文件夾」、希望數據在自己網盤而非第三方不可控存儲的用戶。

使用前需知曉的限制(v0.1 文檔所列)

  1. 刪除操作(垃圾桶、永久刪除、取消歸檔/置頂)不跨設備傳播;同步側重並集與較新者勝。
  2. 工作區絕對路徑宜在多機保持一致;目錄內業務代碼不由此插件同步。
  3. 同會話併發編輯不合並事件流,僅保留較新副本,舊版在 conflicts/。
  4. 不同步附件/圖片、其它插件與全局設置。
  5. 首版雲端爲明文 JSON / zstd,請使用可信網盤;後續可能加入口令加密。
  6. 單會話文件大於 64 MiB 會跳過並記錄。
  7. 雲端 objects/ 只增不刪,長期使用需自行清理或等待後續 GC 策略。
  8. 隱藏空間/加密工作區排除後,雲端舊 objects/ 不會自動刪除。

DSH 生態以「一切皆插件」爲理念;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文介紹的是社區維護的 ColdRainLab/dsh-workspace-sync。

結尾

若你的痛點是「換機器後 DSH 裏的工作區列表、聊天會話和定時任務要對齊」,而不是同步整個項目倉庫,dsh-workspace-sync 提供了一條可復現路徑:自管雲端目錄 + 面板內雙向或單向同步,並對 vault 隱藏/加密工作區做本地優先的排除。

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

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

小夜