前言¶
在 DeepSeek Harness Web 裏,工作區和會話往往集中在側欄中部的瀏覽區。會話一多,要回到「剛纔還在聊的那條」,通常得在長列表裏翻找,或依賴記憶去對標題。側欄自帶的瀏覽能力足以管理會話,但對「最近互動過的幾條」缺少一個固定在視野裏的快捷入口。
下面介紹社區客戶端插件 dsh-recent-sessions-panel(維護者 LoneyKnight):在 Web 界面左側欄底部、Settings 正上方,常駐一塊可摺疊的「最近會話」分欄,按最近活動時間列出最多 8 條會話,點一行即可切回,展開/摺疊狀態會記在瀏覽器本地。
這是什麼¶
- 定位:DeepSeek Harness Web 插件(Client bundle),無 npm 依賴、無構建步驟。
- 分類:客戶端(僅 Web GUI 生效;純 CLI 或無瀏覽器環境不顯示)。
- 倉庫:LoneyKnight/dsh-recent-sessions-panel
- 許可證:MIT(
package.json版本 1.0.0)。
插件註冊到側欄 footer 的 additive 席位 sidebar.footer.action,不替換 Harness 自帶的工作區/會話瀏覽區。
核心功能¶
README 中說明的能力如下,均可對照倉庫文檔覈對。
- 佈局:分欄佔真實佈局高度,默認展開;摺疊後不浮在內容上。側欄收成 56px 豎條時縮成時鐘圖標,點擊可展開側欄並顯示分欄。
- 排序與過濾:按會話目錄中的
updatedAt倒序,最多 8 條;自動排除子代理會話與從未提問的空白會話。 - 導航:點任意會話行調用 Client 服務
uiWorkspace.openSession(sessionId),與在側欄點會話行等價。 - 運行中指示:正在運行的會話標題前顯示 ⏳,CSS 動畫旋轉;系統開啓
prefers-reduced-motion時停轉。 - 數據與刷新:訂閱 Harness 根級
useSessions會話目錄快照,活動變化即時反映,不額外請求 Host。 - 持久化與主題:摺疊狀態鍵爲
localStorage的dsh.recent-sessions.collapsed(1摺疊 /0展開);中英文文案與明暗主題跟隨界面,樣式使用--dsw-alias-*token。
側欄底部展開時示意:
┌─ 左側欄 ────────────────────┐
│ 品牌 / 新建會話 │
│ 工作區與會話瀏覽(原有區域) │
│ │
├─────────────────────────────┤
│ 🕐 最近會話 8 ⌄ │
│ ⏳ 項目重構方案討論 3 分鐘前 │
│ 數據庫遷移腳本 2 小時前 │
│ 週報整理 昨天 │
├─────────────────────────────┤
│ ⚙ 設置 │
└─────────────────────────────┘
安裝與啓用¶
環境要求¶
- 已安裝 DeepSeek Harness 的 Web GUI;作者在
0.2.2-rc.1上驗證,0.2.1-rc.5亦可運行。
插件以當前 DSH 進程權限運行。安裝前建議瀏覽 client.js、index.js 與 cordis.patch.yml,並確認 MIT 許可證是否符合你的合規要求。
方式一:讓 Harness 助手安裝(推薦)¶
先把倉庫落到本機,再在對話裏讓助手用 plugin_manager 的 install_bundle 指向該目錄的絕對路徑:
git clone https://github.com/LoneyKnight/dsh-recent-sessions-panel.git
示例提示(路徑按你的環境替換):
用
plugin_manager的install_bundle安裝C:\path\to\dsh-recent-sessions-panel(填克隆下來的絕對路徑)
安裝成功應返回 application: applied,左側欄底部即可看到「最近會話」分欄。
方式二:手動安裝(高級)¶
- 在 profile 的
package.json依賴中加入 link,例如:
"@local/recent-sessions-panel": "link:C:/path/to/dsh-recent-sessions-panel"
- 將
"@local/recent-sessions-panel"加入同一文件中的dsh.profile.bundles數組。 - 在 profile 目錄執行
pnpm install,然後重啓 DeepSeek Harness。
卸載¶
在插件管理面板停用/移除該 bundle,或讓助手執行 plugin_manager → remove_bundle,目標爲 @local/recent-sessions-panel。
典型用法¶
安裝並啓用後,無需額外配置即可使用:
- 分欄始終在左側欄底部;點標題行(或右側箭頭)摺疊/展開,刷新後保持上次選擇。
- 點列表中的會話行切回對應會話。
- 運行中的會話標題前會出現旋轉的 ⏳。
- 側欄收起時,行內爲時鐘按鈕;點擊展開側欄並顯示分欄。
若需改列表條數、列表高度上限、運行中符號、動畫速度或摺疊持久化鍵,均在 client.js 中調整(例如 MAX_ROWS 默認 8,.dsh-recent-list 的 max-height 默認 224px,COLLAPSED_KEY 對應上述 localStorage 鍵)。
本地開發時,通過 link 安裝後修改 client.js 保存即可;dsh-client-hmr 約在 1 秒內熱加載。提交前可做語法檢查:
node --check client.js
node --check index.js
適用場景與注意¶
適合:長期在 DSH Web 中切換多條會話的開發者,希望在不改側欄主瀏覽區的前提下,固定看到「最近互動」短列表。
限制與兼容性(來自 README):
- 依賴 Client 槽位
sidebar.footer.action與根級 HookuseSessions、uiWorkspace;Harness 大版本升級後若接口變化,可能需要小幅適配。 - 未提供自動化測試,UI 行爲依賴人工驗證。
- 倉庫未使用
dsh plugin add github:...一類一鍵命令;安裝以 clone +install_bundle或 profile link 爲準。
DSH 生態強調「一切皆插件」;社區目錄站點 SkillHub 插件頁 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-recent-sessions-panel 在 Web 側欄底部增加一塊可摺疊的最近會話列表,用目錄快照排序、一行直達切換,併兼顧運行狀態與主題。若你正在使用 DSH Web GUI,可按 README 克隆倉庫並通過 install_bundle 或 profile link 啓用。