前言¶
DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。在处理长对话或复杂 Agent 编排时,快速定位早期的用户请求是常见痛点。shl-session-history 旨在解决这一问题,它通过在对话区左侧提供一条迷你滑轨,让开发者能够直观地回顾历史输入并快速跳转。
这是什么¶
这是一个位于对话区左侧垂直居中的迷你历史滑轨插件。每条会话记录以短横线(或圆点)呈现。通过悬停可查看请求摘要,点击则可直接跳转到对应的对话位置。
核心功能¶
- 视觉展示:默认显示为短横线,支持在设置中切换为圆点样式。样式修改实时生效并持久化到本地。
- 交互反馈:鼠标悬停时,条目变长并呈现以悬停处为轴心的波浪渐变效果,同时弹出浮动窗口显示完整请求摘要。
- 智能跳转:点击滑轨条目,对话区自动滚动至对应用户消息。若目标轮次未加载,会自动点击“加载更早”按钮直至定位成功。
- 实时更新:滑轨每 2 秒自动刷新一次,仅在数据变化时重建 DOM,保证悬停交互不被打断。
- 内容过滤:自动过滤系统注入的消息,仅显示真实用户请求。
- 智能隐藏:当滑轨与对话内容过于接近或重叠时,会自动隐藏以避免遮挡文字。
- 自定义尺寸:支持调整条目间距、横线长度、圆点大小以及悬停胶囊长度。
安装与启用¶
该插件为 bundle 插件,依赖由主应用运行时提供,无需手动安装 npm 依赖。
在终端中执行以下命令进行安装:
dsh plugin --profile desktop add /path/to/shl-session-history
安装完成后,进入设置页的「插件」卡片,找到「会话滑轨」卡片。默认状态下滑轨已启用,会随会话内容同步出现。
配置与使用¶
所有配置项集中在设置页「插件配置 → 会话滑轨」卡片中:
- 启用/关闭:拨动「启用滑轨」开关控制总开关。
- 样式切换:点击「横线」或「圆点」按钮切换视觉形式。
- 尺寸微调:拖动对应滑块调整间距、长度、大小等参数,数值即时生效。
- 自动隐藏:默认开启,可根据需要调整。
点击滑轨任意条目即可跳转历史请求位置。
版本历史与维护¶
- 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 上。