前言¶
在 DeepSeek Harness(DSH)裏用 Workspace Tree 分組側邊欄時,默認順序往往是同一 Workspace 下先列出嵌套子 Workspace,再列出該 Workspace 自己的 Sessions。日常開發時,更常點開的是當前 Workspace 下的 Session,而不是先掃一遍子目錄。dsh-workspace-sessions-first 只調整 Web 界面上這一塊的視覺順序:每個 Workspace 分組內,先顯示其 Sessions,再顯示嵌套的 Workspace 文件夾。不改數據、不改分組邏輯,適合已經在用 DSH Web GUI 的開發者。
這是什麼¶
dsh-workspace-sessions-first 是 DSH 的客戶端類插件,由 mkpoli 維護,當前版本 0.1.0(見倉庫 package.json)。它解決的問題很單一:在啓用 Group by → Workspace Tree 時,讓側邊欄 Workspace Tree 中每個 Workspace 的 Sessions 排在嵌套 Workspace 文件夾之前。
社區目錄頁:skillhub.cn/plugins/mkpoli/dsh-workspace-sessions-first。源碼與說明:github.com/mkpoli/dsh-workspace-sessions-first。
核心功能¶
README 用示意圖對比了調整前後的樹形順序:
before after
▾ project ▾ project
├ workspace A ├ Session 1
├ workspace B ├ Session 2
├ Session 1 ├ workspace A
└ Session 2 └ workspace B
實現方式如下:
- Web 服務端在渲染
index.html時注入一段<style>。 - 繪製階段把每個 group section 當作縱向 flex 容器,把子文件夾塊排到該組最後。
- 不修改任何數據;分組、展開狀態、拖拽目標、行菜單、懸停卡片以及 flat 分組模式仍沿用瀏覽器原有行爲。
適用範圍(README Scope):
- 僅作用於 Web GUI(由 Web 服務端渲染
index.html)。 - 排序發生在 paint time,DOM 仍保持原始順序,因此鍵盤焦點與屏幕閱讀器仍會先訪問子文件夾,再訪問該 Workspace 的 Sessions。
- 樣式針對瀏覽器中的
groupSection類及其role="group"子文件夾塊編寫,並在 DSH 0.2.1-rc.5、0.2.2-rc.1 上對照過;上游 DOM 或類名變化時可能需要跟進插件更新。
安裝與啓用¶
下面介紹在 web profile 下安裝插件的官方命令(來自倉庫 README):
dsh plugin --profile web add github:mkpoli/dsh-workspace-sessions-first
安裝後需要:
- 重啓 DSH 宿主進程。
- 刷新頁面。
- 打開 View options → Group by → Workspace Tree,才能看到上述順序。
插件以當前 dsh 進程權限運行;安裝前建議閱讀倉庫源碼與 MIT 許可證(package.json 中 engines.node 爲 >=20)。
典型用法¶
沒有單獨的配置文件或 CLI 子命令。典型流程就是:裝好 web profile 插件 → 重啓並刷新 → 側邊欄切換到 Workspace Tree 分組。若你平時用 flat 或其他 Group by 模式,本插件不會改變那些模式下的列表順序。
適用場景與注意¶
適合誰
- 在 DSH Web 界面裏用 Workspace 嵌套組織項目,且希望在 Tree 視圖裏先看到當前層的 Sessions 的開發者。
需要注意
- 純視覺重排:無障礙遍歷順序與 DOM 順序未變,若你依賴 Tab 順序或讀屏,行爲與「看起來」的順序可能不一致。
- 綁定特定 DSH 前端結構;大版本升級 DSH 後若側邊欄 DOM 變化,應確認插件是否仍生效。
- DSH 生態遵循「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-workspace-sessions-first 用最小侵入的方式,在 Workspace Tree 分組下把 Sessions 提到子 Workspace 之前,方便在 Web 側邊欄裏更快進入當前 Workspace 的對話。需要安裝說明與實現細節時,可直接查閱 GitHub 倉庫 與 SkillHub 目錄頁。