前言¶
DeepSeek Harness(DSH)側邊欄在「按工作區」視圖裏,工作區順序和每個工作區下可見對話條數,往往跟不上「最近在用哪個項目」的實際節奏;同時掛多家模型時,全局 HTTPS_PROXY 要麼讓國內 Provider 也繞代理,要麼海外 Provider 完全出不去。社區插件 dsh-workspace-sort(維護者 LostAbaddon,GitHub:LostAbaddon/dsh-workspace-sort)在一個包裏提供兩組能力:側邊欄按最新對話排序、可配置摺疊條數、按工作區記憶模型,以及 Host 側按 Provider 決定是否走代理。下面按安裝、設置與典型用法說明。
這是什麼¶
dsh-workspace-sort 是 DSH 的 bundle 插件(dsh.bundle.patch),同時改客戶端 UI 與 Host 網絡路徑。當前 package 版本爲 1.1.0,許可證 MIT,Node >=20。分類上屬於客戶端注入(並含 Host 代理補丁);尚未發佈到 npm,安裝需用 GitHub 地址或(Web 端)本機目錄路徑。
核心功能¶
側邊欄¶
在「按工作區」和「按工作區樹」兩種分組下:
- 工作區按其中最新一條普通對話的更新時間降序排列;無此類對話時用工作區創建時間。時間戳相同則保持原相對順序。「單列表」模式不干預,仍用 DSH 自帶排序。
- 每個工作區收攏時顯示的空閒對話條數可在設置裏改,默認 5(1~100)。正在運行、新會話佔位、等待回答的對話始終顯示,不計入配額。
- 收攏時若還有未列出的對話,列表下方會出現「還有 N 條對話」;展開後變爲「收攏」。工作區標題本身摺疊時,一行對話都不顯示,該提示也不顯示。
- 可選:每個工作區獨立記住模型與思考深度,點該工作區「新會話」時套用該工作區上次選擇(從未記錄則不干預,仍用全局默認)。
- 每條用戶自己發的消息,時間與複製按鈕之間增加「修改」:編輯 Markdown 原文後確認,會停掉當前回覆、分岔新會話、發送改寫內容、切到新會話並歸檔原會話(非刪除;歸檔可逆,數據仍在
~/.dsh/sessions/...)。
三個側邊欄相關開關在 設置 → 通用 → 工作區對話排序(在「繁忙時的發送行爲」與「性能與用量」之間),存於瀏覽器 localStorage(dsh.workspace-sort.v1);工作區順序寫入 Host,同一 profile 內各客戶端共享。
代理路由¶
在進程 globalThis.fetch 上按目標主機名決定走代理還是直連:例如 Gemini、OpenRouter、Agnes 等可勾選走代理,DeepSeek、Kimi、MiniMax、GLM 等保持直連;deepseek、deepseek-official、ollama、lmstudio 永不走代理。代理地址與規則在 設置 → 代理路由 配置,保存即生效、無需重啓;配置落盤 $DSH_HOME/workspace-sort/proxy-config.json。
安裝與啓用¶
DSH 插件安裝支持 npm 包名、GitHub 倉庫地址、本機目錄路徑。本倉庫尚未發佈 npm,以 GitHub 或路徑爲準。插件以當前 DSH 進程權限運行,安裝前建議自行查看倉庫源碼與 MIT 許可證。
桌面端(Electron)¶
側邊欄「插件」→「添加插件」,在「包名或地址」填寫:
github:LostAbaddon/dsh-workspace-sort
安裝完成後按提示重啓應用。dsh plugin --profile desktop ... 會被拒絕,desktop profile 由 Electron 獨佔管理。
Web 端(dsh web)¶
dsh plugin --profile web add github:LostAbaddon/dsh-workspace-sort
生效需重啓 dsh web。卸載時使用與安裝相同的來源:
dsh plugin --profile web remove github:LostAbaddon/dsh-workspace-sort
從 GitHub 安裝若出現 ERR_PNPM_GIT_RESOLVE_FAILED,多爲 HTTPS 訪問 GitHub 失敗;可按 pnpm 提示配置 git 傳輸改寫,或改用本機絕對路徑作爲安裝來源(與 README 說明一致)。
典型用法¶
調整排序與摺疊¶
- 安裝並重啓後打開 設置 → 通用 → 工作區對話排序。
- 按需改「每個工作區顯示 N 條對話」、開關「工作區按最新對話排序」、開關「獨立記住模型與思考深度」。
- 若需固定手動拖動的工作區順序,關閉「工作區按最新對話排序」(否則下次重排會按時間戳還原)。
修改歷史輸入¶
- 在已加載的消息上點鉛筆「修改」,在編輯框改內容,
Cmd/Ctrl+Enter提交。 - 確認框會說明該輸入之後將移除幾條對話;確認後自動分岔、發送並歸檔原會話。
- 若消息未加載到當前窗口、是會話首條、或 15 秒內無法停掉當前回覆等,操作會被拒絕並在編輯框顯示原因。
配置代理¶
- 打開 設置 → 代理路由,填寫代理地址(如
http://127.0.0.1:7890),勾選需要走代理的 Provider,必要時追加額外主機規則。 - 可用「測試代理」做一次本地
CONNECT握手檢查。 - 關閉總開關則全部直連,配置仍保留。
適用場景與注意¶
- 適合:多工作區並行、希望「最近聊過的項目」排在側邊欄上方;需要國內模型直連、海外模型走本地代理並存;希望按工作區固定默認模型而非全局一條。
- 注意:開啓「獨立記住模型與思考深度」時,DSH 的
selectModel可能順帶更新全局默認模型,插件不會寫回全局設置(README 已說明副作用)。手動排好的工作區順序在開啓按時間排序時會被覆蓋。修改輸入依賴分岔與歸檔,失敗時會清理半成品會話。 - 社區目錄頁與 GitHub 由維護者與社區託管,與 DeepSeek / 幻方無官方從屬關係;星標與目錄元數據以各站點當時顯示爲準。
結尾¶
dsh-workspace-sort 把側邊欄的排序、摺疊、分工作區模型偏好和歷史輸入修正,與 Host 側按 Provider 的代理路由收在一個插件裏,配置多在設置頁完成。進一步瞭解與 issue:
- 目錄頁:https://www.skillhub.cn/plugins/LostAbaddon/dsh-workspace-sort
- 倉庫:https://github.com/LostAbaddon/dsh-workspace-sort