前言¶
DeepSeek Harness (DSH) 採用插件化架構,允許開發者通過擴展功能增強客戶端體驗。在 Web UI 的對話界面中,隨着消息數量增加,手動滾動查找特定問題變得效率低下。dsh_chat_index 插件旨在解決這一導航痛點,在對話區右邊緣提供可視化的索引工具。
核心功能¶
該插件在對話區右邊緣展示一列小圓點,每個圓點代表一條用戶發送的問題。
- 圓點索引:圓點等間距、緊湊、縱向居中排列。當問題過多超出顯示高度時,間距會自動壓縮以適應。
- 懸停提示:鼠標懸停在圓點上時,會浮出一個縮略提示卡,顯示序號和問題正文的前 100 字。
- 平滑跳轉:點擊圓點,視圖會平滑滾動到對應的消息氣泡,氣泡會短暫高亮。
- 當前視口高亮:位於當前閱讀位置的圓點會高亮顯示爲品牌色。
- 無歷史展開:索引僅基於 DSH 默認的 50 條消息窗口,不會強制展開摺疊的歷史記錄。
- 按需分頁:對於窗口外的舊消息,點擊時才按需加載至該位置。
- 零構建:Node 端使用 ESM,瀏覽器端爲手寫腳本,無構建步驟。
- 不干預狀態:不干預思考過程、工具調用或終端輸出的摺疊/展開狀態。
安裝與啓用¶
前置條件¶
- DeepSeek Harness (DSH) 版本 0.1.1-rc.x 或更高
- Node.js ≥ 18
安裝步驟¶
在終端執行以下命令安裝插件:
dsh plugin --profile web add github:Barry-Liu-001/dsh_chat_index
安裝完成後,重啓 DSH Web(執行 dsh web 或重新打開應用會話),對話區右側即可看到圓點索引(至少有 2 條用戶消息時顯示)。
原理簡述¶
插件通過 cordis.patch.yml 向 Loader 樹注入 Node 端入口,註冊了精確路由 /chat-index.questions。瀏覽器端通過 DOM data-chat-flow-key 屬性將圓點與消息氣泡一一映射。
- 數據獲取:請求發送到該路由,Node 端通過
ctx.sessionQuery.readSession讀取會話日誌,過濾source.kind === 'user'的事件,並返回{seq, time, id, text}列表。結果在 Node 端緩存有效時間小於 10 秒。 - 客戶端渲染:零運行時依賴,全部使用 peerDependencies,不干擾 DSH 原生的摺疊/展開邏輯。
卸載¶
如需移除插件,執行:
dsh plugin --profile web remove dsh-chat-index