dsh-session-nav:DeepSeek Harness 會話對話快捷導航

前言

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 端,註冊官方 slot conversation.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 會話歷史的快速導航。它解決了手動查找歷史提問的痛點,同時通過增量索引和緩存機制保證了性能。

插件目錄 | GitHub 倉庫

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

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

小夜