前言¶
DeepSeek Harness (DSH) 採用“一切皆插件”的架構。默認情況下,如果未選擇工作區,會話輸入框會被內核判定爲不可用(inert)。dsh-temp-session 插件通過引入“工作區可選化”和“免工作區臨時會話”的概念,打破了這一限制。它允許用戶在沒有固定工作區上下文的情況下啓動會話,每個臨時會話獨佔一個獨立的目錄,重啓後空白會話會自然消失。
核心功能¶
該插件主要包含以下能力:
- 工作區可選化:在 Hero 工作區入口顯示“選擇工作區(可選)”。點擊按鈕進入選擇菜單,點擊按鈕其他區域仍可正常選擇工作區。
- 免工作區臨時會話:未選定工作區時,點擊側邊欄“新建會話”將創建臨時會話。
- 獨立目錄會話:臨時會話獨佔目錄
$DSH_HOME/tmp-sessions/session-<uuid>(默認即~/.dsh/tmp-sessions/…)。會話的 cwd、沙盒寫邊界、側邊欄歸組(Ungrouped)均基於該目錄。 - 內核客戶端補丁:對內核客戶端進行補丁處理,移除
workspaces.phase === "ready"的條件限制,使無工作區會話的輸入框保持可用狀態。 - 屏蔽桌面客戶端功能:屏蔽桌面客戶端(dsh-tauri >= 0.15.9)自帶的“未分組”新建會話功能,防止衝突。
安裝與啓用¶
安裝該插件需要將依賴寫入配置文件,並重啓 Harness 進程。
- 安裝插件:
使用官方安裝命令,插件會被寫入~/.dsh/profiles/web/package.json的依賴與dsh.profile.bundles。
dsh plugin --profile web add dsh-temp-session
-
配置清單:
確保~/.dsh/profiles/web/package.json中的dsh.profile.bundles包含該插件名稱。 -
生效:
修改配置後必須重啓 Harness 進程才能生效。桌面版需退出並重新打開 App,Web 界面需重啓內核。
用法說明¶
安裝並重啓後,體驗與原生行爲有所區別:
-
工作區入口交互:
- 未選定工作區:Hero 工作區入口顯示“選擇工作區(可選)”。
- 已選定工作區:鼠標懸停在按鈕上時,箭頭自動變爲 ×,點擊 × 取消選擇;點擊按鈕其他區域仍打開工作區選擇菜單。
-
新建會話:
- 在側邊欄點擊通用“新建會話”按鈕(未指定工作區時),默認創建臨時會話。
- 工作區行內的
+仍創建該工作區的會話,保持原行爲不變。
-
臨時會話目錄:
臨時會話位於$DSH_HOME/tmp-sessions/session-<uuid>。重啓 Harness 後,未發送消息的空白臨時會話會自動消失。
兼容性與注意事項¶
- 版本兼容:僅兼容 dsh 版本
0.1.2-rc.x~0.1.7-rc.1。升級到 0.1.7-rc.1 後需要重啓進程以應用依賴變更。 - 桌面客戶端限制:桌面客戶端(dsh-tauri >= 0.15.9)自帶的“未分組”新建會話功能會被本插件屏蔽,側邊欄和分組行的
+會改走本插件邏輯。 - 沙盒邊界:臨時會話的
workspace-write寫邊界爲該會話的獨立目錄。讀取邊界不設限(dsh 默認行爲),隔離主要依靠目錄隔離實現。
總結¶
dsh-temp-session 插件通過內核補丁和目錄隔離機制,爲 DSH 用戶提供了更靈活的會話管理方式。它在不破壞現有工作區邏輯的前提下,支持在無工作區上下文下進行臨時開發。相關源碼與文檔可參考其 GitHub 倉庫或生態目錄。