dsh-session-workspace:每個新對話自動獲得獨立工作區

前言

在 DeepSeek Harness(DSH)桌面版裏,默認情況下所有對話共用同一個工作目錄(default-workspace)。你在 A 對話裏生成的文件、腳本輸出和下載附件,換到 B 對話仍然可見、可改;對話一多,目錄裏的東西也容易互相干擾。如果你希望「一次對話一份文件空間」,又不想每次手動建文件夾、改路徑,可以裝社區插件 dsh-session-workspace:新建對話時由 DSH 自動分配獨立文件夾和沙箱根,跨對話互不可見,並在輸入框旁提供運行時開關。

下面介紹這個插件的定位、能力、安裝步驟和日常使用方式。事實以維護者 stevenwang15 在 GitHub 倉庫公開的 README 與 package.json 爲準;當前版本 0.2.0,許可證 MIT,依賴 Node 22+(engines 寫明 >=22.19.0)。插件在 SkillHub 目錄中歸類爲 admin-security。

這是什麼

dsh-session-workspace 是 DSH 的本地插件包,一句話:One conversation, one workspace——每個新對話自動創建並進入獨立工作區(獨立目錄 + 獨立沙箱根),實現跨對話文件隔離;輸入框工具欄最左側還提供「獨立工作區 / 共用工作區」膠囊開關。

維護者:stevenwang15。源碼與說明:https://github.com/stevenwang15/dsh-session-workspace;社區目錄頁:https://www.skillhub.cn/plugins/stevenwang15/dsh-session-workspace(與 DeepSeek / 幻方無官方從屬關係,屬社區插件生態)。

它解決什麼問題

裝插件前 裝插件後
新對話文件放哪 全部擠在同一個文件夾 每個對話一個獨立文件夾
A 對話的文件,B 對話能否看到 能 不能
是否需要你手動操作 —— 否,照常點「新建對話」

裝好之後,點側邊欄 新建對話(New Session) 時,側邊欄會多出一行以創建時間命名的工作區(例如 2026-11-06 20:15);該對話讀寫的文件落在類似 文稿/deepseek-harness/session-workspaces/20261106-201533-a1b2/ 的路徑下(macOS 上可在訪達中打開父目錄查看所有對話文件夾):

open ~/Documents/deepseek-harness/session-workspaces

再點一次新建對話,又會得到全新的工作區和文件夾;全程不用手動建目錄、不用選路徑、不用改設置。

核心功能

自動隔離的工作區與沙箱

DSH 裏「工作區」對應一個目錄:會話創建時記錄的 cwd 同時是沙箱根(只能寫該目錄)和側邊欄分組依據。插件在 Host 側包裝 ctx.sessionController.create:新對話來臨時先獨佔創建目錄、註冊成 Workspace,再帶着該 Workspace 創建會話。顯式指定 cwd、複用空白會話(sessionId)、或在手動添加的項目工作區裏新建時,仍保持原生行爲;創建失敗會回退到原生行爲,不阻塞新建對話。

輸入框旁的運行時開關

打開任意對話後,輸入框工具欄最左邊有一個小膠囊:

  • 亮起 獨立工作區:之後新建的對話會自動建獨立文件夾(默認);
  • 點一下變爲灰色 共用工作區:下一次新建對話暫不隔離,仍使用當前所選文件夾;
  • 再點一下恢復。重啓 DSH 後開關會回到默認,不會持久改掉你的習慣設置。

注意:某個對話的文件夾在創建那一刻就固定了,開關隻影響之後新建的對話,不會把當前對話「搬家」。

可選高級配置

在 ~/.dsh/profiles/desktop/cordis.patch.yml 末尾可追加(普通用戶可跳過):

- id: session-workspace
  config:
    enabled: true          # false = 完全停用插件
    mode: managed          # managed = 手動加的項目不隔離;all = 所有新對話都隔離
    baseDir: /Users/你/Documents/deepseek-harness/session-workspaces
設置 默認 說明
enabled true 總開關
mode managed managed 只隔離默認工作區與插件自建工作區;all 則新建對話一律隔離
baseDir 默認工作區旁的 session-workspaces 各對話子目錄的父路徑

安裝與啓用

插件以當前 DSH 進程權限運行,安裝前建議瀏覽倉庫源碼與 LICENSE(MIT),確認符合你的安全策略。

第 1 步:在終端安裝插件

dsh plugin --profile desktop add github:stevenwang15/dsh-session-workspace

需要 Node 22+。若上述命令報錯,可從 Release 下載 dsh-session-workspace-0.2.0.tgz,再執行:

dsh plugin --profile desktop add file:下載文件的絕對路徑

第 2 步:寫入 desktop profile 的 bundles

打開 ~/.dsh/profiles/desktop/package.json,在 dsh → profile → bundles 數組中加入 "dsh-session-workspace",例如:

"bundles": [
  "@deepseek-ai/dsh-base",
  "@deepseek-ai/dsh-web-app",
  "dsh-session-workspace"
]

(保留數組裏原本就有的其它條目。)

第 3 步:徹底重啓 DSH

菜單欄 DeepSeek Harness → 退出(或窗口激活時 Cmd+Q),確認活動監視器裏沒有 DeepSeek Harness 進程後,再重新打開。僅關窗口再從 Dock 打開不算重啓,插件可能不會生效。

怎麼確認裝好了

  1. 打開任意對話,輸入框工具欄左側應能看到 獨立工作區 膠囊;
  2. 點「新建對話」,側邊欄應多出一個新工作區;
  3. 查看 ~/Documents/deepseek-harness/session-workspaces/,應出現帶時間戳的新文件夾。

若看不到膠囊:先確認徹底退出再打開;再 Cmd+R / F5 刷新頁面;並覈對 bundles 是否包含 "dsh-session-workspace"。

若點了新建對話卻沒有新文件夾,可能是複用了空白對話、開關切到了 共用工作區,或你在手動添加的項目工作區裏新建(默認尊重你的選擇、不強制隔離)。

升級、卸載與磁盤

升級時,重複安裝同一路徑不會覆蓋舊版本。維護者建議先刪再裝並徹底重啓:

dsh plugin --profile desktop remove dsh-session-workspace
dsh plugin --profile desktop add github:stevenwang15/dsh-session-workspace

卸載示例:

./scripts/uninstall-local.sh desktop

也可從 bundles 移除條目後再 remove。已創建的工作區文件夾會保留;刪除側邊欄工作區行不會刪除磁盤上的文件夾與聊天記錄。插件不會自動清理舊文件夾,不用的目錄可自行刪除。

兼容性與適用場景

README 寫明在 DSH 0.2.2-rc.1(當前桌面版)上完整測試通過。隔離依賴 DSH 公開服務;若未來版本移除輸入框插槽,膠囊可能不顯示,但隔離邏輯仍可按 Host 側行爲工作。

適合:在同一臺機器上開很多對話、希望文件與沙箱按會話分開的 DSH 桌面用戶。不適合指望「裝完就自動清磁盤」的場景——目錄增長與普通文件夾一樣,需自行管理。

結尾

dsh-session-workspace 把 DSH 默認的「共用一張桌子」改成「每個新對話一張自己的桌子」,安裝後照常點新建對話即可,必要時用輸入框旁開關臨時回到共用工作區。目錄與源碼:

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

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

小夜