shl-session-history:会话历史请求迷你滑轨

前言

DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。在处理长对话或复杂 Agent 编排时,快速定位早期的用户请求是常见痛点。shl-session-history 旨在解决这一问题,它通过在对话区左侧提供一条迷你滑轨,让开发者能够直观地回顾历史输入并快速跳转。

这是什么

这是一个位于对话区左侧垂直居中的迷你历史滑轨插件。每条会话记录以短横线(或圆点)呈现。通过悬停可查看请求摘要,点击则可直接跳转到对应的对话位置。

核心功能

  • 视觉展示:默认显示为短横线,支持在设置中切换为圆点样式。样式修改实时生效并持久化到本地。
  • 交互反馈:鼠标悬停时,条目变长并呈现以悬停处为轴心的波浪渐变效果,同时弹出浮动窗口显示完整请求摘要。
  • 智能跳转:点击滑轨条目,对话区自动滚动至对应用户消息。若目标轮次未加载,会自动点击“加载更早”按钮直至定位成功。
  • 实时更新:滑轨每 2 秒自动刷新一次,仅在数据变化时重建 DOM,保证悬停交互不被打断。
  • 内容过滤:自动过滤系统注入的消息,仅显示真实用户请求。
  • 智能隐藏:当滑轨与对话内容过于接近或重叠时,会自动隐藏以避免遮挡文字。
  • 自定义尺寸:支持调整条目间距、横线长度、圆点大小以及悬停胶囊长度。

安装与启用

该插件为 bundle 插件,依赖由主应用运行时提供,无需手动安装 npm 依赖。

在终端中执行以下命令进行安装:

dsh plugin --profile desktop add /path/to/shl-session-history

安装完成后,进入设置页的「插件」卡片,找到「会话滑轨」卡片。默认状态下滑轨已启用,会随会话内容同步出现。

配置与使用

所有配置项集中在设置页「插件配置 → 会话滑轨」卡片中:

  1. 启用/关闭:拨动「启用滑轨」开关控制总开关。
  2. 样式切换:点击「横线」或「圆点」按钮切换视觉形式。
  3. 尺寸微调:拖动对应滑块调整间距、长度、大小等参数,数值即时生效。
  4. 自动隐藏:默认开启,可根据需要调整。

点击滑轨任意条目即可跳转历史请求位置。

版本历史与维护

  • v1.1.5:定位机制重构为“唯一键直连”。Host 端输出每条消息的事件 ID,客户端通过内核的 data-chat-anchor-key 精确查找 DOM 节点,解决了重复发送同一句话也能唯一定位的问题,并修复了分页加载中的命中误判。
  • v1.1.4:修复同前缀消息误跳问题,匹配逻辑从 includes 改为 startsWith,防止长会话中早期消息被错误匹配到。
  • v1.1.3:修复偶发性点击无法定位的问题,增加了对分页加载按钮和引用消息的兼容性处理。
  • v1.1.2:修复设置卡片在深色模式下的视觉问题。

总结

shl-session-history 提供了一个轻量级且高度可定制的会话导航方案。它不仅解决了长对话的定位难题,还通过自动隐藏和实时刷新机制保持了界面的整洁与交互的流畅。该插件使用 MIT 许可证,源码托管在 GitHub 上。

项目链接:https://github.com/sunyuhuirong/shl-session-history

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

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

小夜