在 DSH 中處理長會話時,頁面滾動困難,定位特定提問往往需要大量時間。@dsh-external/dsh-chat-jumper 插件在頁面右側提供了一條縱向圓點列,每個圓點對應一條用戶提問,通過點擊即可快速跳轉。
插件簡介¶
該插件由 Cloud-J 維護,採用 MIT 許可證。它解決了在長對話中快速導航和定位用戶提問的問題,通過右側的圓點列提供直觀的交互入口。
核心功能¶
- 右側圓點列:顯示一條縱向圓點列,每個圓點對應一條用戶提問(
user)或引導輸入(steering)。 - 懸停預覽:鼠標懸停在圓點上時,顯示該輪提問的截斷預覽(前 40 個字符)。
- 平滑滾動:點擊圓點,頁面會平滑滾動到對應的用戶提問位置。
- 當前位置高亮:當前閱讀位置附近的提問圓點會高亮顯示。
- 會話快照數據:數據來源於 DSH 會話快照,不掃描 DOM,因此即使歷史消息尚未渲染,也能正確統計。
- 加載歷史:若還有更早消息未加載,圓點列頂部會出現 ↑ 按鈕。點擊一次會自動連續調用
loadOlder(),直到把全部更早歷史加載完。 - 自動加載重試:點擊尚未渲染進 DOM 的舊圓點時,會自動觸發
loadOlder()並重試定位。
安裝與啓用¶
推薦使用官方裝配方式:
- 執行安裝命令:
dsh plugin --profile web add <解壓後的目錄或 .tgz>
- 將包名加進 profile 的 bundles 列表。編輯
~/.dsh/profiles/web/package.json,在dsh.profile.bundles數組末尾加上:
"@dsh-external/dsh-chat-jumper"
完成後重啓 web / 刷新頁面即可。
從源碼構建¶
需要本機有 DSH checkout,並設置環境變量 DSH_CHECKOUT 指向源碼根目錄。
npm run build # host tsc
npm run build:client # client tsdown → lib/client.js
打包發佈:
npm pack
依賴說明¶
該插件需要安裝 peerDependencies,包括:
* @deepseek-ai/dsh-llm
* @deepseek-ai/dsh-tools
* cordis
* schemastery
* @deepseek-ai/dsh-client-ui-slots
典型用法¶
點擊右側圓點即可快速跳轉到對應的用戶提問位置。
結語¶
該插件通過快照機制和歷史加載邏輯,解決了長會話導航的痛點。更多細節與源碼,請訪問 GitHub 倉庫。