前言¶
在 DSH 裏同時開多個 workspace 時,側邊欄只維護一份 Host 工作區順序,默認只能靠拖拽調整。哪個會話正在跑、哪個在等你點批准或回 plan,要靠自己掃一遍活動點,容易漏看。下面介紹社區插件 @lixiangzhong/dsh-active-chat:它根據與側邊欄活動點相同的「進行中」信號,自動改寫 Host 順序,讓仍有會話在跑或等你回覆的工作區排在前面。
這是什麼¶
@lixiangzhong/dsh-active-chat 由維護者 lixiangzhong 發佈,npm 包名與 DSH 插件標識一致,分類爲客戶端(Web profile)。一句話定位:把仍有進行中會話的 workspace 釘在 DSH 側邊欄頂部,便於一眼看到哪些 chat 還在幹活或等你操作。
「進行中」與側邊欄自帶的活動點一致:會話處於 running,或處於 waiting for your reply(審批、plan 審閱、提問等)。
核心行爲¶
插件寫入的順序就是 Host 的真實 workspace 順序(與手動拖拽相同),會隨頁面重載和其他會話保留。
- 首次安裝 / 啓動 — 對齊一次:最近變爲 active 的工作區排第一,其餘保持當前相對順序;若已與規則一致則不寫入。
- 新的激活 — 該 workspace 跳到頂部;若多個同時 active,最近激活的排在最上。
- 工作結束 — 該 workspace 沉到仍 active 的工作區之下,不會回到你以前手動拖過的舊位置。
- 全部 idle — 插件停止寫入,你手動拖拽的順序保留,直到下一次激活。
無設置項、無獨立 UI:安裝即啓用;禁用或卸載插件並 reload 即關閉。
安裝與啓用¶
需要 DSH >= 0.2.1-rc.2,且使用 Web profile。這是常規 DSH bundle,README 說明不聲明 npm 依賴。
在 DSH 插件管理界面安裝,或在 CLI 執行:
dsh plugin --profile web add @lixiangzhong/dsh-active-chat
若從本地 checkout 開發,可改爲 link 路徑:
dsh plugin --profile web add /path/to/dsh-active-chat
安裝後 reload 頁面。移除時禁用或卸載插件並 reload。
當前 npm 版本爲 0.1.1(以 package.json 爲準),許可證 MIT。
典型用法¶
沒有額外配置步驟:裝好並 reload 後,只要某個 workspace 裏還有 running 或等你回覆的 session,它就會自動上浮;你仍可手動拖拽,但在有 active 集合變化時插件會按上述規則再次寫入順序。
全部會話 idle 之後,側邊欄順序會停在你最後一次手動排列(或插件最後一次寫入後的狀態),直到又有 workspace 變爲 active。
實現要點(供覈對源碼)¶
README 說明:client.js 在瀏覽器側運行,注入 workspaces、sessions、uiSession 客戶端服務,訂閱 snapshot,在 active workspace 集合變化時調用文檔化的 ctx.workspaces.insertBefore(workspaceId, beforeWorkspaceId?) 調整 Host 順序;變更會做合併,僅在 active 集合實際變化時寫入。Host 側入口 index.js 爲空插件條目。
適用場景與注意¶
適合在 Web 版 DSH 裏並行多個 agent / chat、又希望「還在跑或等我點一下」的 workspace 始終出現在側邊欄頂部的開發者。
插件以當前 DSH 進程與瀏覽器客戶端上下文運行;安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證。社區目錄頁 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,不要當作官方應用商店。
結尾¶
dsh-active-chat 不改變 DSH 的會話邏輯,只自動維護側邊欄 Host 順序,減少在多 workspace 下漏看 active chat 的情況。目錄與源碼:
- 目錄頁:https://www.skillhub.cn/plugins/lixiangzhong/dsh-active-chat
- GitHub:https://github.com/lixiangzhong/dsh-active-chat