dsh-anchor-rail:DSH Web 会话锚点导轨

前言

在使用 DeepSeek Harness (DSH) 进行 Web 会话开发时,长对话场景下定位历史提问或上下文切换点需要频繁手动滚动。这种方式效率低下且容易迷失。dsh-anchor-rail 插件通过左侧固定导轨,提供全局会话导航能力。

插件简介

dsh-anchor-rail 是一个客户端插件,由开发者 lyfZhixing 维护。它解决的核心问题是:如何在长会话中快速定位用户提问,并处理上下文压缩带来的历史数据展示问题。

核心功能

  1. 左侧导轨展示:在会话聊天区左侧展示全部用户问题的锚点,不随页面滚动移动。
  2. 压缩段聚合:连续的已压缩问题折叠为一个虚线分组锚点(如 ▸ 已压缩 · N 个问题),避免导轨因压缩内容过多而拥挤。
  3. 悬浮交互:鼠标悬浮在导轨或任意锚点上时,右侧展开对应的锚点名称列表(#序号 + 问题文本)。
  4. 分组展开:悬浮虚线分组锚点时,切换为该段已压缩问题的子列表;悬浮普通锚点仅显示未压缩列表。
  5. 密集兜底:当锚点间距小于 24px 时,名称面板自动变为紧凑滚动列表,防止文字重叠。
  6. 高亮与跳转:当前阅读的问题对应锚点/名称高亮加长。点击锚点或名称可快速跳转至对应问题。
  7. 保留历史:上下文压缩后的历史锚点会被保留(聚合进虚线分组或单独显示),不会因压缩而丢失。

安装与启用

推荐使用 DSH 官方插件命令进行安装:

dsh plugin --profile web add dsh-anchor-rail

若需本地调试或自定义,可将仓库放置于 ~/.dsh/profiles/web/plugins/dsh-anchor-rail/,并在 package.json 中配置依赖与 bundle。

工作原理

该插件分为 Host 和 Client 两半:
* Host 半:通过 sessionQuery.readSession 读取完整原始日志,提取用户提问事件,利用压缩检查点标记已压缩历史,并通过路由 /dsh-anchor-rail/anchors 提供数据。
* Client 半:处理导轨渲染、悬浮列表逻辑及滚动跳转。当跳转目标在当前窗口外时,会自动调用 loadOlder() 逐页加载历史数据。

典型用法

  1. 打开 DSH Web 会话页面。
  2. 导轨会自动出现在左侧(仅当问题数大于 2 且内容可滚动时显示)。
  3. 悬浮导轨查看全部锚点名称,点击任意名称跳转。
  4. 悬浮虚线分组查看已压缩问题的子列表。

注意事项

  • 自动隐藏:问题少于 2 个或内容无需滚动时,导轨自动隐藏。
  • 滚动列表:锚点间距小于 24px 时,名称面板自动变为紧凑滚动列表。
  • 许可证:MIT。

总结

dsh-anchor-rail 通过左侧导轨和悬浮交互,解决了长会话中快速定位历史提问的问题。它正确处理了上下文压缩后的数据展示,适合需要在复杂会话中快速回溯的开发者。

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

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

小夜