sent-msg-locator:在 DSH 会话中定位每一轮对话

前言

长会话里想找“第 N 轮说了什么”或“某个助手回复从哪开始”,往往只能来回滚动。sent-msg-locator 是一个 DSH 插件,在对话区左缘提供常驻轮次图标列,把当前会话的轮次变成一个可点击、可悬停查看摘要的导航入口。

这是什么

sent-msg-locator 由 ShanHaiFish 维护,许可证为 MIT,定位为纯 Client 插件。它针对“一轮对话 = 用户发送 → 助手完整回复”的边界,在会话界面中显示轮次序号图标,支持点击定位与高亮联动。

包内提供两种形态:

  • 静态 bundle:安装后随 profile 层栈自动加载,跨 DSH 进程存续。
  • 动态插件回退形态:由 manifest.jsonclient-source.js 构成。

核心功能

下面按界面行为说明:

  • 对话区左缘常驻一条浮动图标列,每轮一个气泡序号图标。
  • 点击图标后,聊天视口平滑滚动到对应轮次开头。
  • 当前浏览轮会高亮,图标列自动跟随,使高亮图标可见。
  • 会话快照更新时,图标列同步更新;轮次很多时,图标列内部可滚动。
  • 悬停图标可看到轮次、时间,以及该轮第一条用户输入文本;超长文本会截断。
  • 切换到轨迹视图时,图标列与提示卡自动隐藏,切回后恢复。
  • 界面颜色使用主题 CSS 变量,适配浅色/深色。

安装与启用

从 npm 安装

下面命令把插件安装到 web profile:

dsh plugin --profile web add sent-msg-locator

安装后重启 DSH,打开任意会话,即可在对话区左缘看到图标列并开始使用。

本地目录安装

如果使用本地调试副本,路径不能包含空格。已核实资料中的本地安装命令为:

dsh plugin --profile web add file:C:/Users/whaow/.dsh/plugins-dev/sent-msg-locator

该命令依赖具体本机路径,仅适合作为本地安装示例。

动态插件回退形态

动态形态每次 DSH 重启后需要重新激活。基本步骤是:

1、读取本目录 client-source.js 的完整内容。
2、调用 cordis_define 注册插件。
3、调用 cordis_run 激活。

典型用法

  • 需要快速回到某一轮时,点击图标列中对应序号。
  • 想确认该轮开头内容时,悬停图标查看第一条用户输入摘要。
  • 当前正在滚动阅读时,通过高亮图标判断当前浏览轮。
  • 会话分页后,若最旧可见轮显示用户消息尚未加载,点击聊天区“加载更早”,快照更新后文本会显示。

权限与注意

sent-msg-locator 是纯 Client 插件,无 Host 能力,即无 RPC / fs / 网络 / spawn。其滚动定位只使用元素级 API:closestgetBoundingClientRectscrollTo

安装前应检查源码与许可证。虽然本插件声明为纯 Client 插件,但它仍以当前 dsh 进程权限运行;若对来源或行为有疑虑,先审阅仓库代码再安装。

包声明信息:

{
  "dsh.client.platform": "web",
  "peerDependencies": {
    "@deepseek-ai/cordis": "^4.0.1"
  }
}

这些字段说明它面向 web profile,并依赖 Cordis 相关 peer dependency。静态 bundle 安装后需要重启 DSH;动态插件形态每次重启后需重新 cordis_define / cordis_run

结尾

sent-msg-locator 的价值在于把长会话里的轮次导航外显:点击定位、当前轮高亮、悬停摘要,都是围绕“快速回到某一轮”这一件事。

GitHub 仓库:https://github.com/ShanHaiFish/sent-msg-locator。本文未附可核对的目录页链接,可按 sent-msg-locator 名称在社区目录检索。

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

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

小夜