前言¶
DeepSeek Harness (DSH) 的設計理念傾向於模塊化,開發者有時需要在不建立完整 Workspace 的情況下進行臨時對話。在 DSH 0.2.0-rc.2 版本中,沒有已註冊 Workspace 的空白會話會禁用原生的編輯器 UI,導致 Agent 預設、附件上傳等功能無法使用。
dsh-projectless-session 插件解決了這一問題。它通過創建一個臨時的 Workspace 註冊,讓原生 UI 能夠正常工作,並在首次對話後清理註冊,從而實現無工作區會話的功能。
插件簡介¶
這是一個由 jarvisluk 維護的客戶端插件,旨在 DeepSeek Harness 中提供“無工作區會話”能力。每個會話都會獲得一個按日期整理的獨立工作目錄。
核心功能¶
- 創建無工作區會話:在 Workspace 選擇器中增加該選項,無需預先配置文件或環境。
- 按日期組織獨立工作目錄:會話文件默認存儲在
~/Documents/DSH/YYYY-MM-DD/session-HH-mm-ss-random/,避免衝突。 - 複用 DSH 原生新會話 UI:在會話打開時,完整保留 Agent 預設、命令、附件、訪問模式及發送按鈕。
- 支持中英文雙語:界面文案跟隨 DSH 的 Language 設置自動切換。
- 保留會話可恢復性:首條消息後僅刪除 Workspace 註冊,Session、日誌和目錄保留在“未分組”區域。
- 自動清理未使用的空白會話:未發送消息的空白會話會被歸檔和清理。
安裝與啓用¶
使用官方 CLI 安裝插件:
dsh plugin --profile web add github:jarvisluk/dsh-projectless-session
安裝完成後,必須重啓 dsh web 進程才能生效。若需卸載,可執行:
dsh plugin --profile web remove dsh-projectless-session
典型用法¶
會話目錄結構¶
插件會自動爲每個會話創建獨立的根目錄,默認路徑如下:
~/Documents/DSH/YYYY-MM-DD/session-HH-mm-ss-random/
自定義根目錄¶
如需修改存儲位置,可在 Web profile 的 cordis.patch.yml 中配置:
- id: dsh-projectless-session
config:
root: /absolute/path/to/DSH
工作原理¶
插件利用 DSH 的 Cordis Host/Client 擴展接口,在會話生命週期內模擬一個臨時 Workspace:
- 創建目錄:Host 通過共享
/api通道上已認證的 DSH Connection 接口創建目錄。 - 註冊臨時 Workspace:客戶端將該目錄註冊爲臨時 Workspace。
- 啓動原生 UI:DSH 在臨時 Workspace 中創建並打開 Session,此時原生的空白會話編輯器完全可用。
- 首次消息後清理:DSH 接受首條消息並報告
blank === false後,插件僅刪除 Workspace 註冊,不刪除實際目錄和歷史。 - 會話歸檔:Session 進入內置的“未分組”區域,重啓 DSH 後仍可恢復。
- 清理廢棄會話:如果會話從未被使用(用戶切換走、DSH 退出或啓動時發現殘留),插件會註銷 Workspace 並刪除空目錄。
適用場景與注意¶
- 依賴環境:依賴 DeepSeek Harness
0.2.0-rc.2和 Node.js22.19或更高版本。 - 運行權限:插件以當前
dsh web進程的權限運行,建議安裝前檢查源碼與許可證。 - 僅限本地:當前功能主要面向本地 Web/Desktop profile。
總結¶
dsh-projectless-session 通過巧妙的生命週期管理,在保留 DSH 原生 UI 優勢的同時,實現了輕量級的無工作區會話功能。對於需要頻繁創建臨時對話的開發者,這提供了一個兼顧便捷性與數據管理的解決方案。