dsh-workspace-plus:側欄「+」命名建工作區,並支持會話遷移與工作區記憶

前言

DeepSeek Harness(DSH)把工作區綁定在本地目錄上:側欄點「工作區」旁的 +,默認會彈出文件夾選擇器,你要先選好路徑再註冊工作區。若你按「數學 / 開發 / 硬件」這類分類管理多個工作區,每次建區都要在文件樹裏點一遍,節奏會被打斷。會話一旦落在某個工作區的目錄下,原生流程也不會提供「改歸屬」的接口——想歸到新分類,通常只能在新工作區重新開對話。

dsh-workspace-plus(GitHub:ColdRainLab/dsh-workspace-plus)是 ColdRainLab 維護的客戶端插件:把 + 換成「新建工作區」命名框,由宿主自動建同名文件夾並註冊工作區;另外在會話菜單裏提供「移動到工作區…」,以及設置裏的「工作區記憶」與模型工具 workspace_memory。下面按安裝、用法與限制說明。

這是什麼

插件全名 dsh-workspace-plus,當前資料中的版本爲 0.3.2,許可證 MIT,要求 engines.dsh >=0.2.1-rc.2(在 0.2.1-rc.3 上做過驗證)。它不改 DSH「工作區必須綁定目錄」的規則,只是把「選目錄」收成「起名字 + 自動建目錄」;並在此基礎上擴展會話遷移與按工作區的上下文續接能力。

社區目錄頁:https://www.skillhub.cn/plugins/ColdRainLab/dsh-workspace-plus
源碼與完整說明:https://github.com/ColdRainLab/dsh-workspace-plus

核心功能

命名新建工作區

側欄「工作區」右側 +,或快捷鍵 Ctrl+Alt+O(Ctrl+O 也可觸發),彈出「新建工作區」對話框,不再出現原生文件夾選擇器。

  1. 輸入名稱(作分類名,例如「數學」「開發」);父目錄可改,默認等於最早創建的工作區的父目錄(與現有工作區做鄰居);尚無工作區時回退到 <DSH_HOME>/workspaces。
  2. 對話框實時顯示「將創建:<父目錄>\<名稱>」。
  3. 點「創建」:宿主建同名文件夾(已存在則複用且不覆蓋內容;若已有工作區指向該目錄則報錯),再經 DSH 原生接口註冊工作區並打開新會話。

名稱會作爲文件夾名:不能包含 <>:"/\|?*,不能以句點結尾,不能是 Windows 保留名,最長 80 字符。

移動會話到其他工作區

任意會話行尾 「…」 菜單多出一項 「移動到工作區…」。

  1. 選擇除當前工作區外的目標(列表含會話數)。
  2. 成功後:目標工作區出現同標題、完整歷史的新會話並自動打開;原會話歸檔(可在「已歸檔」篩選中找回或取消歸檔)。
  3. 若會話正在運行,移動前會先 stopActivity,避免靜默卡住。

語義是克隆 + 歸檔原會話:新會話有新 ID;0.3.2 起會在克隆前改寫日誌裏 session-log-deepseek/delivery-accepted 的 data.sessionId,避免 DSH v4 報「歷史加載失敗」。更早版本已移動出來的會話需按 README「說明與限制」手動改標記後重新壓縮。

工作區記憶

設置 → 工作區記憶 爲每個工作區提供開關,寫入 <DSH_HOME>/workspace-plus/workspace-memory.json。

開啓後:當本會話上下文達上限、DSH 觸發自動壓縮(compaction/summary)且本輪結束(turn/end)時,宿主排隊續接記錄;瀏覽器輪詢後在同一工作區打開新會話,輸入框預填續接提示(含舊標題、上限說明、壓縮摘要節選),由你確認後發送。

新會話中可使用模型工具 workspace_memory(僅在本工作區開關開啓時):

  • action=list:列出本工作區最近會話;
  • action=search + query:全文檢索本工作區歷史;
  • action=read + session_id:讀取指定會話最近內容。

工具校驗調用者所在工作區,跨工作區拒絕;關閉開關後不再自動續接,工具對該工作區返回「未開啓」。宿主側路由與事件監聽更新後需重啓 DSH;瀏覽器側可走 HMR。

安裝與啓用

README 中的安裝示例(路徑需按本機 dsh.cmd 與已下載的 .tgz 調整):

& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:/Users/ROG-STRIX/.dsh/plugin-archives/dsh-workspace-plus/v0.3.2/dsh-workspace-plus-0.3.2.tgz"

卸載:

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

安裝後宿主熱加載,刷新頁面(Ctrl+R)後客戶端行爲生效;卸載即恢復原生文件夾選擇器。

插件以當前 DSH 進程權限訪問本地文件系統與會話日誌,安裝前請閱讀源碼與 MIT 許可證,確認路徑與路由只綁定本機迴環(README 實現要點中說明服務端不聯網、不執行外部命令)。

典型用法

按分類快速鋪工作區

  1. Ctrl+Alt+O → 名稱填「開發」→ 創建。
  2. 重複爲「數學」「硬件」等建鄰居目錄下的工作區,側欄即按名稱分區。

把長對話歸到另一個工作區

  1. 在原工作區會話 … → 移動到工作區… → 選中目標 → 移動。
  2. 在新工作區打開的是帶完整歷史的副本;原會話在歸檔中保留。

長上下文項目開啓記憶

  1. 在設置裏對該項目工作區打開「工作區記憶」。
  2. 上下文觸頂壓縮且本輪結束後,按提示在新會話續聊;需要回顧時用 workspace_memory 的 list / search / read。

空白草稿(未寫過第一輪)沒有持久化日誌,移動會提示「無法讀取會話」——先在原工作區聊一輪或新建會話後再移動。

適用場景與注意

適合需要多工作區、按名稱建目錄、偶爾整段遷移會話、或在單工作區內做壓縮後續接與歷史檢索的 DSH 用戶。不適合指望「原地改會話目錄」:已有會話的 cwd 不會因插件而改變,只能新建或移動(克隆)。

移動後少數按會話 ID 記錄的附屬數據(變更摘要、present 等)不會複製,首次打開可能缺個別側欄徽標或出現相關 API 404/500,不影響繼續對話。workspace_memory 的 search 依賴宿主 sessionQuery.searchSessions,缺能力時 list/read 仍可用、search 會報錯。

DSH 生態主張「一切皆插件」;SkillHub 等社區目錄與 DeepSeek / 幻方無官方從屬關係,本插件亦如此。

結尾

dsh-workspace-plus 把側欄 + 收成命名建區,並補上「移動到工作區…」與可選的工作區記憶,在仍遵守「工作區綁定目錄」的前提下,減少選文件夾和手動分揀的成本。

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

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

小夜