MsgRail:DeepSeek Harness 的全量消息轨道插件

前言

在 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'

安装后刷新页面即可。

验证步骤

  1. 打开一个包含至少一条用户消息的会话。
  2. 在输入框下方会出现一条细横线,每条用户消息对应一个刻度,右侧显示刻度总数。
  3. 鼠标悬停在刻度上,查看预览卡片;点击刻度,对话窗口滚动到对应位置。
  4. 切换会话,轨道会重建为新会话的内容。
  5. 在设置 → 通用 → 语言中切换语言,预览卡片中的标签会随之变化。

限制说明

  • 近似跳转:由于 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye