前言¶
在 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。