dsh-session-sidebar:給 DSH 側邊欄加一個收件箱式活動視圖

前言

在 DeepSeek Harness(DSH)裏同時開很多會話時,原生側邊欄只按工作區把列表鋪開。哪個會話還在後臺跑、哪個卡在審批等你處理、哪個跑完了還沒點開看,往往得挨個點進去才知道。dsh-session-sidebar(v0.1.0,MIT,維護者 QuentinCrane)參考 Codex 桌面端的側邊欄設計,用兩個東西解決這件事:集中看運行狀態和未讀消息的「活動視圖」,以及排在工作區列表上方、可跨項目整理常用會話的「置頂區」。它同時支持 DSH Web 和 Desktop,安裝後自動接管側邊欄,不用額外改配置文件。

這是什麼

一句話定位:給 DSH 的會話列表加收件箱式的狀態分流,再加上跨工作區的置頂、樹狀分組、拖拽排序和全文搜索。項目託管在 GitHub(QuentinCrane/dsh-session-sidebar),星標數不重要,README 和包裏給出的功能說明比較完整。下面按功能、安裝、用法、注意事項介紹。

核心功能

下面逐項列出已經覈實的能力,每項對應 README 中的具體描述。

活動視圖(Activity View)

點側欄頂部的鈴鐺,或按 ⌥⌘U(macOS)/ Ctrl+Alt+U(Windows、Linux)即可切換。視圖最上面的「優先級」區域集中三類會話:正在運行的(帶子任務併發數)、卡在 待審批 / 計劃待審 / 待回答 等你處理的、跑完還沒點開過的未讀會話。點「優先級」右側的 ...,還可以把置頂或帶定時任務的會話放進來,開啓「僅未讀與運行中」,或一鍵「全部標爲已讀」。

優先級下面按今天、昨天、星期幾、具體日期排列各工作區的最近對話,每條帶所屬工作區名稱和兩行最新回覆預覽。默認快捷鍵若與其他插件衝突,可在 DSH 快捷鍵設置裏搜「活動視圖」修改。

會話置頂:三種模式

點側欄右上角設置按鈕,可在三種置頂方式之間切換:

  • 按會話選擇(hybrid,默認):每條會話的 ... 菜單裏同時有「置頂到置頂區」和「在工作區置頂」,兩邊隨時互移。
  • 獨立置頂區(space):所有置頂統一收進工作區列表上方的置頂區,每條後面標出來自哪個工作區。
  • 工作區內置頂(workspace):隱藏頂部置頂區,與原生行爲一致。

默認模式下,會話放到頂部置頂區後,原工作區默認仍保留。不想兩邊重複看到,點「置頂區」右側 ... 勾上「置頂後從原工作區隱藏」;同一菜單還能改懸停圖釘的默認置頂位置,以及無置頂時是否保留空置頂區標題。

分組、排序與全文搜索

常規側邊欄支持三種視圖:按工作區、按工作區樹(按目錄路徑自動把子目錄縮進到父工作區下)、單列表。置頂區、工作區內部或單列表裏,按住會話行上下拖動即可切到手動排序並記住順序,也可在右上角設置裏切回按最近更新排序。

頂部搜索框即時過濾會話標題和工作區名,停頓一下還會全文搜索歷史聊天內容(Esc 清空退出)。重命名、分叉會話、手動標爲已讀/未讀、複製 Session ID、歸檔篩選、新建工作區時的目錄選擇彈窗等原有操作都保留;歸檔正在運行的會話前會先彈窗確認停止。

Agent 工具 activity_pins

插件給模型註冊了 activity_pins 工具,與前端側邊欄讀寫同一份狀態,可以在對話裏直接用自然語言操作,例如「把所有未讀會話標成已讀」或「把當前會話置頂到置頂區並在原工作區隱藏」。支持的 action 包括:

  • list_activity:列出各工作區會話的運行狀態、未讀標記和最新回覆摘要。
  • list_pins:按當前順序返回所有已置頂會話及其所在位置(space / workspace)。
  • status:查看當前置頂模式、默認置頂目標、已讀基線和活動視圖設置。
  • pin_space / pin_workspace:置頂到頂部置頂區或在所屬工作區內。
  • unpin:取消置頂,同步更新原生 workspaceRegistry。
  • set_pin_mode:修改全局置頂模式與置頂區顯示選項。
  • mark_read / mark_unread / mark_all_read:手動標記單條或全部已讀/未讀。
  • set_activity_prefs:修改活動視圖篩選偏好。

安裝與啓用

Web 端和 Desktop 端的 profile 是分開的,用哪邊就裝哪邊。安裝命令來自插件 README:

# DSH Web
dsh plugin --profile web add github:QuentinCrane/dsh-session-sidebar

# DSH Desktop
dsh plugin --profile desktop add github:QuentinCrane/dsh-session-sidebar

裝完後刷新頁面(Web)或重啓客戶端(Desktop),插件直接接管側邊欄,無需改配置。

本地調試源碼時用 link: 指向倉庫絕對路徑(路徑含空格或 & 時記得加引號):

dsh plugin --profile <profile> add "link:/path/to/dsh-session-sidebar"

Desktop 上的一點注意事項:剛裝好的 DSH Desktop 需要先打開一次客戶端讓它生成默認 profile,完全退出後再運行 Desktop 自帶的 dsh 命令;如果終端裏找不到 dsh,可在應用菜單的 Manage dsh Command 裏開啓。README 給出了官方說明鏈接。

狀態存放與卸載

置頂位置、手動排序和已讀時間戳保存在 Host 的 storageDomain(dsh-session-sidebar)裏,只有存儲域打開失敗時才退回內存模式。如果重啓 DSH 後置頂或已讀狀態丟失,先檢查當前運行的 DSH profile 和安裝插件時指定的是否一致。

卸載方式是在對應 profile 的插件列表裏移除 dsh-session-sidebar(或刪掉配置中由 cordis.patch.yml 注入的插件條目),刷新或重啓 DSH 後恢復原生側邊欄。已保存的置頂和已讀記錄會保留在存儲域裏,以後重新啓用仍可接着用。

適用場景與注意

適合在 DSH Web 或桌面端維護多個工作區、同時跑多個後臺會話的開發者。插件同時提供前端界面和給 Agent 用的 activity_pins 工具,手動整理和讓模型代爲整理兩種方式都能用。

注意兩點。一是 Web 與 Desktop 的 profile 相互獨立,只裝一邊不會在另一邊生效,這是 README 中專門列出的常見誤區。二是插件隨當前 dsh 進程運行,擁有該進程的權限,安裝前應檢查源碼與許可證本項目爲 MIT。本文只轉述 README 和包信息,未實際運行驗證。

結尾

這套側邊欄的價值在於把「找哪個會話該處理」從逐個點開變成一眼分流,同時保留了工作區樹、拖拽排序和全文搜索這些整理手段。目錄頁在 skillhub.cn(QuentinCrane/dsh-session-sidebar),源碼在 github.com/QuentinCrane/dsh-session-sidebar,許可證 MIT。

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

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

小夜