前言¶
在 DeepSeek Harness 的對話中,消息滾動到下方後,很難快速定位到之前的某條內容。雖然對話窗口右側會顯示一輪(turn)的刻度,但當你需要跳轉到很久以前的一條具體消息時,只能通過文本搜索或記憶位置。MsgRail 2.0.0 爲你提供了一條從當前會話的輸入框下方開始的細橫線,每條你發送的消息對應一個刻度,懸停可以預覽、點擊即可跳轉。
是什麼¶
MsgRail(消息軌道)是 DeepSeek Harness 的客戶端插件,維護者爲 chou109。它在對話左側(更準確地說是在輸入框下方的 ambient strip)爲每條用戶發送的消息顯示一根細刻度。插件會索引當前會話的全部歷史消息——包括聊天窗口尚未加載的舊消息,並在新消息出現時實時更新。
核心功能¶
全量歷史索引¶
插件會在會話切換時在後臺分頁加載整個持久化日誌(loadOlder())。爲防止異常長的日誌卡死界面,初始遍歷會在 80 頁後停止,隨後通過會話事件訂閱保持尾部實時更新。這意味着即便你發送了很多消息,軌道上仍然會顯示所有刻度,而不是僅顯示當前窗口內的幾條。
懸停預覽¶
鼠標懸停在任意刻度上,會彈出一個預覽卡片,顯示消息的角色、相對時間以及正文的前 6 行(超出視口會被截斷)。預覽卡的內容通過 ctx.locale 註冊,支持中英雙語。
點擊跳轉¶
點擊刻度會將對話窗口滾動到對應消息所在的歷史區域。跳轉是近似定位:DSH 0.2 移除了穩定的 per-message DOM 錨點,因此插件將刻度的序號映射到對話滾動範圍來實現跳轉。
實時更新與本地化¶
隨着會話增長,新發送的消息會自動出現在軌道上。UI 文案通過 ctx.locale 動態加載,切換語言設置後,預覽卡中的標籤會隨之更新。
主題原生¶
插件僅使用 DeepSeek Harness 的設計令牌(--dsw-alias-*),與當前主題保持一致。
安裝與啓用¶
方式一:Plugin Manager(桌面端)¶
插件是一個打包後的 bundle(dsh.bundle.patch → cordis.patch.yml)。在 Plugin Manager 中選擇“從文件夾安裝”,指向 dsh-msgrail 的目錄,啓用 dsh-msgrail。
方式二:CLI¶
dsh plugin --profile <profile> add /absolute/path/to/dsh-msgrail
方式三:Profile patch(手動)¶
將包安裝/鏈接到 profile 的 node_modules,然後在 cordis.patch.yml 中添加:
- insert:
- id: msgrail
name: 'dsh-msgrail'
安裝後刷新頁面即可。
驗證步驟¶
- 打開一個包含至少一條用戶消息的會話。
- 在輸入框下方會出現一條細橫線,每條用戶消息對應一個刻度,右側顯示刻度總數。
- 鼠標懸停在刻度上,查看預覽卡片;點擊刻度,對話窗口滾動到對應位置。
- 切換會話,軌道會重建爲新會話的內容。
- 在設置 → 通用 → 語言中切換語言,預覽卡片中的標籤會隨之變化。
限制說明¶
- 近似跳轉:由於 DSH 0.2 不再向插件暴露穩定的 per-message DOM 錨點,點擊跳轉無法精確到某條消息的開頭,而是滾動到該消息所在的歷史區域。
- 分頁邊界:初始遍歷歷史日誌時會在 80 頁後停止,超長會話只會保留最新的 80 頁索引。
- 客戶端僅:插件不提供工具、路由或配置項,完全依賴 DSH 的會話、語言與插槽服務。
卸載¶
在 Plugin Manager 中禁用 msgrail,或刪除 cordis.patch.yml 中的 insert 塊,然後刷新頁面。
總結¶
MsgRail 爲 DeepSeek Harness 提供了一個從輸入框下方開始的細橫線軌道,索引當前會話的全部歷史消息,支持懸停預覽與點擊跳轉,並隨會話實時更新。如果你需要在長對話中快速定位之前的消息,它是一個值得嘗試的客戶端插件。
- 插件目錄:https://www.skillhub.cn/plugins/chou109/dsh-msgrail
- 源碼倉庫:https://github.com/chou109/dsh-msgrail