dsh-active-chat:把進行中的會話工作區釘在側邊欄頂部

前言

在 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 順序(與手動拖拽相同),會隨頁面重載和其他會話保留。

  1. 首次安裝 / 啓動 — 對齊一次:最近變爲 active 的工作區排第一,其餘保持當前相對順序;若已與規則一致則不寫入。
  2. 新的激活 — 該 workspace 跳到頂部;若多個同時 active,最近激活的排在最上。
  3. 工作結束 — 該 workspace 沉到仍 active 的工作區之下,不會回到你以前手動拖過的舊位置。
  4. 全部 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
羽毛球分组比赛记分
小程序二维码

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

小夜