dsh-recent-sessions-panel:DSH Web 側欄「最近會話」分欄

前言

在 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 中說明的能力如下,均可對照倉庫文檔覈對。

  1. 佈局:分欄佔真實佈局高度,默認展開;摺疊後不浮在內容上。側欄收成 56px 豎條時縮成時鐘圖標,點擊可展開側欄並顯示分欄。
  2. 排序與過濾:按會話目錄中的 updatedAt 倒序,最多 8 條;自動排除子代理會話與從未提問的空白會話。
  3. 導航:點任意會話行調用 Client 服務 uiWorkspace.openSession(sessionId),與在側欄點會話行等價。
  4. 運行中指示:正在運行的會話標題前顯示 ⏳,CSS 動畫旋轉;系統開啓 prefers-reduced-motion 時停轉。
  5. 數據與刷新:訂閱 Harness 根級 useSessions 會話目錄快照,活動變化即時反映,不額外請求 Host。
  6. 持久化與主題:摺疊狀態鍵爲 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,左側欄底部即可看到「最近會話」分欄。

方式二:手動安裝(高級)

  1. 在 profile 的 package.json 依賴中加入 link,例如:
"@local/recent-sessions-panel": "link:C:/path/to/dsh-recent-sessions-panel"
  1. 將 "@local/recent-sessions-panel" 加入同一文件中的 dsh.profile.bundles 數組。
  2. 在 profile 目錄執行 pnpm install,然後重啓 DeepSeek Harness。

卸載

在插件管理面板停用/移除該 bundle,或讓助手執行 plugin_manager → remove_bundle,目標爲 @local/recent-sessions-panel。

典型用法

安裝並啓用後,無需額外配置即可使用:

  1. 分欄始終在左側欄底部;點標題行(或右側箭頭)摺疊/展開,刷新後保持上次選擇。
  2. 點列表中的會話行切回對應會話。
  3. 運行中的會話標題前會出現旋轉的 ⏳。
  4. 側欄收起時,行內爲時鐘按鈕;點擊展開側欄並顯示分欄。

若需改列表條數、列表高度上限、運行中符號、動畫速度或摺疊持久化鍵,均在 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 與根級 Hook useSessions、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 啓用。

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

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

小夜