前言¶
DeepSeek Harness(DSH)側邊欄用工作區把多條 Session 收攏在一起。摺疊後,組內的會話行不再可見,標題行卻通常仍顯示同一個文件夾圖標——裏面有會話在等你批准或回答、有 turn 正在跑、或剛跑完還沒打開看過,從標題上很難區分。展開工作區才能看到各行自帶的黃色等待圓點、進行中加載動畫和綠色完成圓點,日常會多一步操作。
下面介紹社區插件 dsh-workspace-running-indicator(維護者 icrefin,分類爲客戶端)。它在摺疊狀態下,把工作區標題行 16×20 圖標格上的文件夾圖標替換成與原版會話行一致的三種標記,邏輯與 DSH 0.2.1-rc.5 側邊欄已有規則對齊。
這是什麼¶
插件全名 dsh-workspace-running-indicator,當前發佈版本爲 v0.3.0,MIT 許可證。官方簡介是:在 dsh 側邊欄裏,爲已摺疊的工作區鏡像其內部 Session 的狀態——等待圓點、進行中 loader、完成未讀圓點,相當於把摺疊藏起來的標記還原到標題行上。
它不接管整個 sidebar.workspaces 瀏覽器面板,也不改會話行、摺疊水位或分組順序;只在頁面側裝飾工作區標題那一格,並通過 Cordis patch 注入客戶端腳本。
核心功能¶
摺疊標題上的三種狀態¶
僅當工作區行滿足 role="treeitem"、data-row-key="workspace:<id>" 且 aria-expanded="false" 時,插件在圖標格覆蓋對應標記:
- 等待回答(黃色圓點):組內任一成員 Session 在
ctx.uiSession.sessionStatus中存在待答交互,類型爲approval、plan-review或question(與dsh-client-ui-session/ui-workspace一致)。 - 進行中(加載動畫):成員 Session 在目錄中
running爲真,或有正在運行的直屬子代理(external子代理排除,與側邊欄一致)。 - 完成未讀(綠色圓點):成員 Session 一輪從運行變爲結束,且該 Session 不是當前主欄正在查看的那一個;打開 Session 或再次開跑會清除,僅展開工作區不算「已讀」。
優先級與原版會話行一致:等待 > 進行中 > 完成未讀。懸停標題行時,原版會把圖標格換成摺疊箭頭,覆蓋層隨之隱藏。
邊界行爲(README 已說明)¶
- 只統計直接屬於該工作區的 Session,嵌套子工作區在跑不會點亮父行(0.1.3 起修復目錄包含誤傳播)。
- 父工作區不會借用子代理的待答交互,只會反映子代理運行時的 loader,與原版父行一致。
- 展開的工作區標題保持文件夾圖標,因爲各行已在原位顯示標記。
- 三個標記爲裝飾性(
aria-hidden),讀屏仍只讀工作區名稱。
實現要點(便於排查)¶
插件讀取 ctx.sessions.list、ctx.workspaces.list 與 ctx.uiSession.sessionStatus,用 MutationObserver 跟隨摺疊、展開與列表重掛載。圖形尺寸、關鍵幀與主題 token(如 --dsw-alias-state-warn-primary)按原版 StateDot 在插件類名前綴下重聲明,不 import 宿主組件。
安裝與啓用¶
環境要求(來自 README 簡體中文):
- 運行 DSH 0.2.1-rc.5(桌面版或 Web UI)。
- 從源碼構建需 Node.js ≥ 22.17 與 pnpm 11。
官方步驟是先在本倉庫構建打包,再在 DSH 裏安裝 .tgz:
pnpm install
pnpm check # 類型檢查 · 構建 · vitest
pnpm run pack # -> dist/dsh-workspace-running-indicator-0.3.0.tgz
然後在 DeepSeek Harness 桌面版打開 設置 → 插件,安裝 dist/dsh-workspace-running-indicator-0.3.0.tgz,並重啓應用。文檔說明:加入運行中 profile 的 bundle 在重啓前模塊解析可能失敗;重啓後 Web 端還需刷新頁面。
package.json 中聲明的 dsh 引擎範圍爲 >=0.2.1-rc.5 <0.2.2-0,與上述版本一致。
社區目錄頁 skillhub.cn/plugins/icrefin/dsh-workspace-running-indicator 可查看插件條目與來源鏈接;該站點爲社區目錄,與 DeepSeek / 幻方無官方從屬關係,安裝前仍建議對照 GitHub 源碼與許可證。
典型用法¶
插件沒有設置項或宿主路由配置。安裝並重啓、Web 端刷新後即可生效:
- 摺疊一個內有 Session 正在等待你回答的工作區,標題圖標格應顯示黃色等待圓點;處理完待答交互後,標題會交給下一層狀態標記。
- 摺疊內有 Session 正在運行(或符合規則的直屬子代理在跑)的工作區,文件夾位置顯示進行中加載動畫。
- 某 Session 跑完且你尚未在主欄打開它時,摺疊標題顯示綠色完成圓點;打開該 Session 或讓它重新運行後圓點清除。
開發與本地組合驗證可使用倉庫內 scripts/dev-profile.sh(隔離 DSH home),屬於貢獻者流程,日常使用者按上一節安裝即可。
適用場景與注意¶
適合誰:側邊欄裏常摺疊多個工作區、又需要掃一眼「有沒有在等、在跑、剛跑完沒看」的 DSH 用戶;依賴 0.2.1-rc.5 側邊欄 DOM 約定(data-row-key、aria-expanded 等)的當前一代客戶端。
務必注意:
- 插件以當前 DSH 進程權限運行,安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證,自行評估信任邊界。
- 不組合 Session UI 的殼可能沒有
uiSession投影,等待圓點無法推導,但目錄側的進行中與完成邏輯仍可按 README 說明工作。 - 插件掛載前已結束的運行不會產生完成提醒;未來 dsh 若改動行標識,徽標可能靜默失效而非報錯(README「不做的事」一節)。
結尾¶
dsh-workspace-running-indicator 解決的是摺疊工作區「標題行信息丟失」這一具體 UI 缺口,用與原版一致的三種標記補回標題格,減少爲看狀態而反覆展開的操作。更多細節與測試說明見倉庫 README(含 README.zh-CN.md)。