前言¶
DeepSeek Harness (DSH) 採用「一切皆插件」的架構。在開發和調試智能體對話時,頻繁回溯歷史提問是常見場景。手動滾動或搜索往往效率低下。dsh-session-nav 提供了一個懸浮導航入口,解決快速跳轉歷史對話的問題。
核心功能¶
右側懸浮按鈕¶
按鈕位於對話文字列的右邊緣,採用四角圓角設計,呈現半透明效果。它會隨佈局動畫(詳情面板開合、側邊欄拖動、窗口縮放)平滑跟隨位置。
歷史提問列表¶
鼠標懸停在按鈕上時彈出列表,顯示當前會話的全部歷史提問(包含被 compaction 摺疊的記錄,不依賴 DSH 渲染窗口)。
* 列表支持上下滾動。
* 打開時自動將「當前提問」滾動到列表中央。
* 頂部固定顯示會話名字與提問總數。
點擊跳轉¶
- 窗口內提問:直接平滑跳轉。
- 窗口外提問:自動逐頁加載更早歷史後跳轉(帶進度提示,視口不跳動)。
交互與性能¶
- 平滑關閉:鼠標移出後短暫延遲再開始淡出動畫,避免「按鈕 → 彈窗」路徑的誤關;點擊提問按鈕後移開鼠標可正常關閉。
- 性能優化:Host 端對 live Session 做內存增量遍歷 + 持久化索引(
$DSH_HOME/session-nav-questions.)+ 客戶端緩存 +afterSeq增量同步。正常路徑下無磁盤 IO,無日誌全量掃描。
安裝與啓用¶
執行以下命令安裝插件:
dsh plugin --profile web add github:tuogusa/dsh-session-nav
安裝後需要進行配置:
1. 按引導添加 pnpm-workspace.yaml 的 allowBuilds 條目(放行 git 依賴的 prepare 腳本)。
2. 重啓 DSH。
3. 瀏覽器刷新(Ctrl+Shift+R)。
結構與更新¶
代碼結構¶
lib/index.js:Host 端,提供GET /api/session-nav/questions接口。lib/client.js:Client 端,註冊官方 slotconversation.session.header.utilities進行渲染。
更新方式¶
# 方式一:CLI 更新
dsh plugin --profile web update dsh-session-nav
# 方式二:重新安裝
dsh plugin --profile web add github:tuogusa/dsh-session-nav
說明:
dsh plugin是 pnpm 的前置轉發器,update會按當前依賴聲明重新解析該包;通過github:tuogusa/dsh-session-nav安裝時,會更新到倉庫默認分支的最新提交。
注意事項¶
- 兼容 Profile:僅支持
web(DSH Web GUI)。 - 檢查源碼:插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
總結¶
dsh-session-nav 通過右側懸浮按鈕和列表,實現了對 DSH 會話歷史的快速導航。它解決了手動查找歷史提問的痛點,同時通過增量索引和緩存機制保證了性能。