dsh-workspace-session-filter:給側邊欄加會話狀態篩選

前言

DSH 的會話都排在側邊欄列表裏。跑久了列表會很長,想找一條還在跑的、或點着等確認的會話,只能靠滾動和肉眼掃標題。這個插件解決這個問題:它在側邊欄底部加一條固定的篩選條,把運行中、待確認、未讀三種狀態直接攤開。插件由 shijiewang 維護,分類是客戶端,MIT 協議。

下面介紹它提供什麼、怎麼裝、怎麼用。需要說明的是,社區目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係。

這是什麼

一句話定位:給 DSH 側邊欄添加會議狀態篩選入口的客戶端插件。倉庫在 https://github.com/shijiewang/dsh-workspace-session-filter,維護者 shijiewang,當前版本 1.0.9,倉庫目前 0 star。它的目標是在長會話列表裏快速定位仍在運行、等待確認或有未讀內容的會話,而不是替換側邊欄原有列表。

核心功能

只列 README 裏已覈實的能力。

  • 底部篩選條有三個 chip:運行中(含子智能體仍在跑)、待確認(審批、計劃審閱、待回答)、未讀(跑完但沒看,或最近有新內容沒打開過),各自帶當前命中數。
  • 點 chip 向上彈出按工作區分組的會話列表,點行直接進會話,再點同一個 chip 收起。側邊欄收成窄條時換成帶合計角標的圓形按鈕,展開後同樣能篩。
  • 篩選條佔滿側邊欄那一行,不和成本計等其他底部條目擠在一起。
  • 完整面板頂部有 全部 / 運行中 / 等待確認 / 未讀 / 更多 篩選器;更多 裏是 最近一天 / 最近三天 / 最近一週 / 最近一個月,外加 不限時間,基於會話的 updatedAt 判斷。選中後 更多 按鈕直接顯示時間窗名稱,再點一次可改回 不限時間。
  • 狀態與時間可疊加,右側出現 清除篩選,一次復位。
  • 列表按工作區分組,組標題是工作區名(沒有名字時退化成目錄名),組內按最近活動倒序;不屬於任何工作區的會話歸到末尾的「未分組」。
  • 每行左側狀態點復刻內置 StateDot,運行中是旋轉描邊環,其餘是 10px 圓點並按狀態着色,右側顯示狀態文案與相對時間。
  • 整行是按鈕,點擊調用 uiWorkspace.openSession(sessionId) 切到會話面板。
  • 與內置列表同源:跳過 origin: 'subagent' 的子智能體會話,默認隱藏歸檔會話,空白新會話只保留當前打開的那一條,標題爲空時顯示「未命名會話」。

安裝與啓用

這是一個 DSH 插件包,兩種裝法:插件管理器,或 dsh CLI。

插件管理器的 install_bundle 指向目錄的絕對路徑:

plugin_manager({ action: "install_bundle", target: "/絕對路徑/dsh-workspace-session-filter" })

裝完後 profile 會以 link: 依賴指向該目錄(~/.dsh_desktop/profiles/desktop/package.json),改本目錄文件後刷新頁面(⌘R)就會生效;只有改到 package.json 的 dsh.client.inject、cordis.patch.yml 或 index.js 時才需要重新安裝。

用 dsh CLI 裝進某個 profile:

# 從 npm registry 裝(1.0.1 起可用)
dsh plugin --profile desktop add dsh-workspace-session-filter

# 從 GitHub 裝(pnpm 會鎖定解析到的 commit)
dsh plugin --profile desktop add github:shijiewang/dsh-workspace-session-filter

# 固定到某個標籤
dsh plugin --profile desktop add github:shijiewang/dsh-workspace-session-filter#v1.0.1

# 或本倉庫絕對路徑(裝成 link: 依賴,改文件後刷新即生效)
dsh plugin --profile desktop add /absolute/path/to/dsh-workspace-session-filter

# 卸載
dsh plugin --profile desktop remove dsh-workspace-session-filter

幾點前提:

  • 桌面應用自帶這條命令:/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh。它自帶 pnpm,不依賴你 shell 裏的 pnpm 版本。
  • desktop profile 需要先啓動過一次桌面應用(命令會檢查 profiles/desktop/package.json),建議在應用完全退出後再執行裝包,避免和運行中的實例搶 profile 鎖。
  • add github:... 會把依賴鎖在解析到的 commit 上;想跟進更新就再 add 一次,想回到改文件即時生效的開發狀態,用絕對路徑再 add 一次覆蓋即可。

截至 1.0.9,npm registry、GitHub、release tarball、本地目錄四種來源都能裝;registry 上是 npm publish 發出的正式版本,repository 字段指回本倉庫。

卸載用:

plugin_manager({ action: "remove_bundle", target: "dsh-workspace-session-filter" })

典型用法

裝好後,側邊欄底部(設置按鈕上方、單獨一行)出現 運行中 N / 待確認 N / 未讀 N 篩選條,這是日常主入口:看命中數,點 chip 看對應會話,點行進會話。

面板列表裏不會自動多出圖標。需要完整視圖時,到 設置 → 會話篩選(或 設置 → 插件 → 會話篩選,或底部彈層的頁腳)打開「在左側導航顯示」,圖標纔出現,開關狀態存本地、刷新後保留;同一頁還有「打開面板」按鈕,不裝圖標也能直接進完整視圖。

在完整面板裏,可以先用狀態篩,再用 更多 疊加時間窗;右側出現 清除篩選 後點一下即可復位。列表按工作區分組,組內按最近活動倒序,直接點行進會話。

適用場景與注意

  • 適合會話數量多、需要按狀態或時間定位會話的 DSH 使用者;只做篩選和入口,不改會話數據。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。本插件是 MIT License,見倉庫 LICENSE。
  • 狀態點、時間窗、分組、未讀判定都依賴插件自己維護的數據,與內置列表同源,行爲可能隨 DSH 版本變化。
  • 底部篩選條與完整面板分別有錯誤邊界,渲染異常時分別退化成空狀態或什麼都不渲染,不會讓中間欄變白或拖壞側邊欄。
  • DSH 的檢查工具沒有渲染和截圖能力,像素級外觀需要在正在運行的窗口裏目視確認。

小結

這個插件的價值是把會話篩選從滾動列表變成側邊欄底部一個固定入口,並保留一個可選的完整面板。目錄頁在 https://www.skillhub.cn/plugins/shijiewang/dsh-workspace-session-filter,源碼在 https://github.com/shijiewang/dsh-workspace-session-filter。

羽毛球分组比赛记分
小程序二维码

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

小夜