DeepSeek Harness (DSH) 插件:dsh-temp-session

前言

DeepSeek Harness (DSH) 採用“一切皆插件”的架構。默認情況下,如果未選擇工作區,會話輸入框會被內核判定爲不可用(inert)。dsh-temp-session 插件通過引入“工作區可選化”和“免工作區臨時會話”的概念,打破了這一限制。它允許用戶在沒有固定工作區上下文的情況下啓動會話,每個臨時會話獨佔一個獨立的目錄,重啓後空白會話會自然消失。

核心功能

該插件主要包含以下能力:

  1. 工作區可選化:在 Hero 工作區入口顯示“選擇工作區(可選)”。點擊按鈕進入選擇菜單,點擊按鈕其他區域仍可正常選擇工作區。
  2. 免工作區臨時會話:未選定工作區時,點擊側邊欄“新建會話”將創建臨時會話。
  3. 獨立目錄會話:臨時會話獨佔目錄 $DSH_HOME/tmp-sessions/session-<uuid>(默認即 ~/.dsh/tmp-sessions/…)。會話的 cwd、沙盒寫邊界、側邊欄歸組(Ungrouped)均基於該目錄。
  4. 內核客戶端補丁:對內核客戶端進行補丁處理,移除 workspaces.phase === "ready" 的條件限制,使無工作區會話的輸入框保持可用狀態。
  5. 屏蔽桌面客戶端功能:屏蔽桌面客戶端(dsh-tauri >= 0.15.9)自帶的“未分組”新建會話功能,防止衝突。

安裝與啓用

安裝該插件需要將依賴寫入配置文件,並重啓 Harness 進程。

  1. 安裝插件:
    使用官方安裝命令,插件會被寫入 ~/.dsh/profiles/web/package.json 的依賴與 dsh.profile.bundles。
    dsh plugin --profile web add dsh-temp-session
  1. 配置清單:
    確保 ~/.dsh/profiles/web/package.json 中的 dsh.profile.bundles 包含該插件名稱。

  2. 生效:
    修改配置後必須重啓 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 倉庫或生態目錄。

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

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

小夜