dsh-session-workspace:在 DSH 中遷移會話

前言

DeepSeek Harness (DSH) 的核心架構是「一切皆插件」。在多工作區管理場景下,經常需要將已有的會話遷移到另一個已註冊的工作區。DSH 原生不支持直接遷移會話,這通常意味着需要重新開始對話或手動複製文件。dsh-session-workspace 插件通過在會話側邊欄增加「Move to another workspace」選項,解決了這一痛點。

這是什麼

這是一個由 Unintendedz 維護的 DSH 插件。它允許在 DSH Web 進程中,將已存在的 DeepSeek Harness 會話移動到另一個已註冊的工作區。移動過程中,會話 ID 保持不變,對話歷史(JSONL 生成文件)也被完整保留。

核心功能

該插件提供以下功能:
* 會話遷移:將現有會話移動到另一個工作區,不改變會話 ID 和對話歷史。
* 環境切換:更新會話持久化的當前工作目錄 (cwd)。
* 生成文件移動:移動當前的 JSONL 生成文件。
* 索引刷新:更新 DSH 的工作區索引。
* 賬戶更新:更新工作區關聯的賬戶信息。
* 安全機制:
* 僅冷會話可移動。
* 使用原生寫租約排除其他 DSH 寫入器。
* 遷移前檢查源版本。
* 工作區更新失敗時回滾至原始狀態。
* 永不覆蓋目標位置已存在的工件。

安裝與啓用

安裝前請確保 DeepSeek Harness 版本爲 0.1.5-rc.1。安裝完成後需重啓 DSH Web 進程。

dsh plugin --profile web add github:Unintendedz/dsh-session-workspace#v0.2.0

典型用法

  1. 切換到其他會話,確保目標會話不再處於活躍或運行狀態。
  2. 打開目標會話的側邊欄菜單。
  3. 選擇 Move to another workspace。
  4. 選擇目標工作區並確認。

適用場景與注意

  • 會話狀態:只有冷會話(未打開或未運行)可以移動。如果會話處於活躍狀態,需切換到其他會話,待其關閉後再試。
  • 目標工作區:目標必須是在 DSH 中已註冊的工作區。
  • 持久化後端:該插件要求會話使用默認的 per-session JSONL 持久化後端(.jsonl.zstd 或 .jsonl)。它拒絕共享 SQLite 會話持久化,因爲無法安全地重新安置獨立工件。
  • 文件衝突:目標工作區中已存在的工件永遠不會被覆蓋。
  • 版本兼容:
    • 插件 0.2.0 需要 DSH 0.1.5-rc.1。
    • 插件 0.1.1 可與 DSH 0.1.1-rc.2 配合使用。
  • Node.js 環境:需要 Node.js 環境,且該環境需支持 DSH 使用的 Zstandard API(DSH 支持的運行時通常已包含)。
  • 備份位置:每次遷移都會在 <DSH_HOME>/session-workspace-backups/<uuid>/ 下保留原始生成的持久化副本。

短結尾

該插件通過在會話側邊欄提供直觀的遷移選項,簡化了 DSH 多工作區的會話管理流程。對於需要在工作區間流轉歷史會話的開發者,它提供了安全、低風險的遷移能力。插件源碼與文檔可在此查看:Unintendedz/dsh-session-workspace。

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

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

小夜