dsh 會話時間軸插件

在 dsh WebUI 的長會話中,快速定位用戶消息是常見的痛點。dsh 會話時間軸插件 在會話消息列的右緣渲染一條豎直時間軸,通過刻度與交互提供導航能力。該插件由 hemo94931 維護,遵循 MIT 許可證,旨在解決在長對話中手動滾動查找特定消息的問題。

核心功能

插件在 WebUI 右側邊欄提供以下能力:

  • 豎直時間軸渲染:每條用戶消息(包括首輪消息和 steering 追問)在右側邊緣生成一條短橫線刻度。
  • 懸浮摘要與序號:鼠標懸停時,顯示該條消息的序號(如 3 / 12)與摘要內容。
  • 點擊跳轉:點擊刻度或按鈕,滾動容器將自動定位到對應消息,並將其置於視口頂端並短暫高亮。
  • 導航按鈕:提供 ▲ / ▼ 按鈕用於逐條向上或向下導航。
  • 當前刻度高亮:當前滾動位置對應的刻度會自動高亮顯示。
  • 主題適配:顏色使用 dsh 主題令牌,支持深淺色模式自適應。

安裝與啓用

安裝前請確保系統已安裝 pnpm。

常駐安裝(推薦)

執行以下命令將插件添加到 WebUI 插件花名冊。包內的 cordis.patch.yml 會在下次啓動 dsh web 時自動加載插件,無需手動激活。

dsh plugin --profile web add @hemo94931/dsh-timeline

本地開發時,可在倉庫根目錄執行以下命令進行 Link 安裝:

dsh plugin --profile web add .

卸載

dsh plugin --profile web remove @hemo94931/dsh-timeline

注意事項與故障排查

  • 動態插件特性:動態加載的插件不隨進程重啓存活。若需永久生效,請使用常駐安裝方式。
  • 時間軸不出現:
    • 確認當前會話包含至少 2 條用戶消息。
    • 確認詳情面板未打開(詳情面板會遮擋時間軸渲染區域)。
    • 剛打開或刷新會話時,消息行是漸進掛載的,視口附近可能暫時只有 1 條用戶消息。嘗試向上滾動補齊後,時間軸會自動出現。
  • 啓動報錯 styles is not defined:這通常是由於常駐 bundle(lib/client.js)過期導致的。執行 node build.js 重新構建即可。
  • 產品升級後異常:產品 DOM 結構可能發生變化,請優先覈對 src/dom.js 中的契約清單(如 data-conversation-scroll、data-chat-flow-kind 等),並重新構建。

技術細節

  • 代碼結構:插件採用純邏輯模型(src/model.js)與 DOM 契約 adapter(src/dom.js)分離的設計。src/shell.js 負責控制器與 React 視圖渲染。
  • 開發命令:
    • 運行單測:node test/model.test.js
    • 重新構建:node build.js
    • 構建產物爲 client.js(動態插件)與 lib/client.js(常駐 bundle)。

生態背景

DSH 理念是「一切皆插件」,社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。本文檔僅基於已覈實事實編寫。

GitHub 倉庫

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

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

小夜