@lcthe/dsh-timeline-rail:爲 DeepSeek Harness 長會話加一條消息時間軸

前言

用 DeepSeek Harness(DSH)跑長任務時,一個會話很快會積累幾十條用戶消息。想回看某次指令的原文、覈對當初給的約束,只能在消息流裏一屏一屏滾動,會話越長成本越高。

@lcthe/dsh-timeline-rail 把這件事變成一次點擊:沿對話左邊緣爲每條用戶消息畫一條細刻度,組成時間軸;懸浮刻度可預覽消息,點擊刻度直接跳轉。本文介紹它的功能、實現和接入方式。

這是什麼

@lcthe/dsh-timeline-rail 是 DSH 網頁會話的消息時間軸導航條,作者 lcthe,當前版本 0.2.12,MIT 許可。它在對話左邊緣、composer 卡片上方渲染一條 1px 豎軌,爲每條 durable 用戶消息繪製一條等間距水平刻度,固定 12px 間距,刻度居中於豎軸。

DSH 的理念是「一切皆插件」,客戶端 UI 同樣通過槽位擴展。這個包註冊單個入口到 conversation.input.dock 槽位,屬於純展示型客戶端插件,不定義新服務。

Desktop 與 Web 均可使用。DSH 桌面應用是 Electron 外殼,內嵌同一套瀏覽器客戶端,所以面向 web 的插件在兩端表現一致;只有 headless/TUI profile 沒有 composer 槽位,不會渲染任何內容。

核心功能

  • 等間距刻度:1px 豎軌上,每條用戶消息一條水平刻度,固定 12px 間距。
  • 長曆史獨立滾動:歷史很長時,軌道內容在軌內自行滾動,而不是壓縮刻度間距;滾動軌道不會帶動對話區滾動。
  • 完整歷史加載:會話打開後,通過 loadOlder() 自動串行加載更早的歷史頁,直到沒有更多頁,每頁到達即添加對應刻度。
  • 點擊跳轉:將所選的第 N 條用戶消息對齊到可見消息區頂部。
  • 懸浮預覽:寬卡片顯示加粗、限 2 行的用戶消息,以及限 3 行的助手回覆;純圖片/附件消息顯示帶標籤的佔位。
  • 主題感知:顏色取自 --dsw-* token,自動跟隨亮/暗主題,無需額外配置。
  • 不擋交互:除刻度本身外 pointer-events 爲 none,不阻擋消息區或 Session Log 的點擊與滾動。

實現方式

DSH 的網頁 GUI 是一個 Cordis 組合,本包是運行在其上的客戶端插件,做三件事:

1、向 conversation.input.dock 槽位(composer 卡片上方的附加帶)註冊單個入口。

2、通過槽位的 useSession 讀取即時 ConversationSnapshot,把每個 durable 的 kind: 'user' 節點映射爲一條刻度。

3、測量 [data-conversation-scroll]、[data-composer-seat] 等 scrollport,把軌道鋪在左邊緣;定位計算複用產品自身的穩定 data 屬性([data-conversation-scroll]、[data-chat-flow]、[data-chat-anchor-key]、[data-composer-seat])。

它不定義新服務,也不改動消息區本身的邏輯。

安裝與啓用

前置條件:一個帶瀏覽器客戶端的 DSH 部署——桌面應用(內嵌 Web UI)或 Web 版均可。插件是純展示組件,只在存在消息輸入區(composer)的位置渲染。

1、安裝包:

pnpm add @lcthe/dsh-timeline-rail

2、在 cordis.yml 中,與 bundle 行相同的 include 層級添加插件行:

- insert:
    - id: dsh-timeline-rail
      name: '@lcthe/dsh-timeline-rail'

經過上面的步驟,打開會話後即可在對話左邊緣看到時間軌。完整接線細節見倉庫中的 INSTALL.cordis.yml.md。

典型用法:會話內動態加載

如果只想快速試用,可以不走 npm 安裝:在會話裏直接讓 agent 用動態 Cordis 工具(cordis_define + cordis_run)加載本包。這條路線適合快速評估;npm 包是穩定、可分享的形式。

適用場景與注意事項

適合的用戶:主要通過 DSH 桌面版或 Web 版工作、會話歷史偏長、需要頻繁回溯定位消息的人。headless/TUI 環境沒有 composer 槽位,這個插件不會顯示任何內容。

使用前有幾點需要知道:

1、刻度是等間距的(每條用戶消息一個刻度、固定 12px 間距),並不代表各消息的真實滾動位置。按真實位置渲染的 minimap 模式是作者列出的後續工作。

2、預覽有截斷:用戶消息限 2 行、助手回覆限 3 行,軌道內沒有展開手段;點擊刻度可以跳到完整消息。

3、插件針對 0.0.1-rc.1 發佈線的 Harness 客戶端槽位契約。若後續 RC 更改 conversation.input.dock 契約,本包可能需要升級。peerDependencies 要求如下:

包 版本範圍
@deepseek-ai/cordis >=4.0.1-rc.1
@deepseek-ai/dsh-client-locale ^0.0.1-rc.1
@deepseek-ai/dsh-client-runtime ^0.0.1-rc.1
@deepseek-ai/dsh-client-ui-conversation ^0.0.1-rc.1
@deepseek-ai/dsh-client-ui-slots ^0.0.1-rc.1
react / react-dom ^18.2.0

4、安全提醒:插件以當前 dsh 進程的權限運行,安裝前建議檢查源碼與許可證。本包源碼公開在 GitHub,採用 MIT 許可。

小結

@lcthe/dsh-timeline-rail 解決的問題很具體:在長會話裏定位某條用戶消息。它不碰消息流本身,只在左邊緣加一條可懸浮、可點擊的時間軸,改動範圍小。如果你經常在 DSH 裏跑長會話,值得接入試試。

  • GitHub 倉庫:https://github.com/lcthe/dsh-timeline-rail
  • 社區插件目錄頁:https://www.skillhub.cn/plugins/lcthe/dsh-timeline-rail

社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜