前言¶
長會話裏要回到某一輪用戶輸入,靠滾動和手動查找會打斷閱讀。下面介紹 dsh-session-timeline。它是 XiLuovo 維護的一個 DSH 會話時間軸插件,在會話左側渲染一條橫短橫線時間軸,用於在長會話中快速定位、跳轉和預覽。
DSH 的理念是「一切皆插件」。這個插件發佈在獨立社區目錄中,不是官方應用商店,與 DeepSeek / 幻方沒有官方從屬關係。
這是什麼¶
dsh-session-timeline 是面向 DSH web 平臺的插件,維護者是 XiLuovo,許可證爲 MIT。
它解決的問題比較直接:在對話區左側生成一條橫向短橫線時間軸,讓長會話中的用戶輸入位置可以被看到、預覽和點擊跳轉。
核心功能¶
橫短橫線時間軸¶
時間軸只在用戶輸入位置顯示橫向短橫線。時間軸條數等於整個會話的用戶消息數。
滾動時間軸時,條目內部滾動,且沒有滾動條。
全量統計與緩存¶
插件通過 DSH sessionProjections 增量統計整個會話的用戶消息與 AI 回覆預覽,並持久化緩存。
當前消息定位與波浪聚焦¶
插件提供 scroll-spy:激活條跟隨右側視口當前顯示的用戶消息。
鼠標在時間軸上移動時,會產生波浪聚焦效果。
懸停預覽與點擊跳轉¶
懸停某條時,會顯示圓角預覽 tooltip,內容包括該輪用戶消息和 AI 回覆。
點擊任意橫線,對話會跳轉到對應用戶輸入位置;如果目標消息還在窗口外,會先自動加載更早歷史,再跳轉。
收起與展開¶
第一條消息上方有一個膠囊把手。懸停時膠囊淡入,點擊可以收起時間軸。
收起後,時間軸變成一條全高細豎條。懸停或點擊豎條區域時,豎條淡入或展開時間軸。
安裝與啓用¶
先確認環境滿足以下要求:
DSH ≥ 0.1.0-rc
dsh CLI 已安裝
web profile 含 sessionProjections 服務
推薦用 npm 安裝。執行:
dsh plugin --profile web add dsh-session-timeline
安裝完成後,啓動或重啓 web:
dsh web
該包是純 JS 實現,client.js 是最終 bundle 產物,不需要 prepare 構建腳本。
卸載時使用:
dsh plugin --profile web remove dsh-session-timeline
典型用法¶
經過上面的步驟,打開任意會話後,時間軸會出現在對話區左側。
1、懸停時間軸某條,查看該輪的用戶消息和 AI 回覆預覽。
2、點擊橫線,跳轉到對應消息;窗口外歷史會自動加載。
3、鼠標在時間軸上移動,激活條和長度遞減形成波浪跟隨。
4、滾動時間軸,條目內部滾動且無滾動條。
5、懸停第一條上方的膠囊,膠囊淡入;點擊膠囊收起時間軸。
6、收起後懸停或點擊豎條區域,豎條淡入或展開時間軸。
如果只想快速體驗,也可以使用會話內動態加載:在 DSH Web 會話中讓 agent 執行 cordis_define,粘貼 client.js 的內容作爲 client 代碼,再執行 cordis_run 啓用。動態加載方式沒有 host 投影,全會話統計不可用,僅保留窗口內功能。
適用場景與注意¶
適合在 DSH Web 中使用長會話、需要頻繁回看或跳轉的用戶和插件作者。
注意以下幾點:
- DSH 插件以當前 dsh 進程權限運行;安裝前應檢查源碼與許可證。本插件許可證爲 MIT。
- 插件聲明
platform爲 web,並通過dsh.clientinject 宿主運行時與 UI layout。 - 插件只讀
sessions.binding(sessionId).session快照、投影與 DOM 錨點(data-chat-anchor-key),不修改會話數據。 - 動態加載方式沒有 host 投影,全會話統計不可用,僅保留窗口內功能。
- 修改投影狀態結構時,必須 bump
stateVersion,否則舊持久化緩存會被錯誤複用。
依賴聲明如下:
@deepseek-ai/dsh-client-runtime
@deepseek-ai/dsh-client-ui-layout
@deepseek-ai/dsh-session-projection
zod ^4.4.3
結尾¶
dsh-session-timeline 把長會話中的用戶輸入位置集中到左側時間軸上:橫短橫線定位、scroll-spy、懸停預覽、點擊跳轉、收起/展開,都是可直接操作的功能。如果你需要在 DSH Web 裏更快回到某一輪對話,可以先安裝試一下。
目錄頁:
https://www.skillhub.cn/plugins/XiLuovo/dsh-session-timeline
GitHub:
https://github.com/XiLuovo/dsh-session-timeline