dsh-node-nav:DSH Web GUI 的对话节点导航插件

前言

在 DSH Web GUI 中处理较长会话时,常见操作不只是继续聊天,还包括快速找到某条用户消息、在滚动阅读时判断当前位置,以及输入框为空时回看上一条输入。DSH 的理念是「一切皆插件」,这类体验可以通过客户端插件扩展。dsh-node-nav 就是针对 Web GUI 侧边导航与输入历史给出的一个插件方案。

这是什么

dsh-node-nav 是 DSH Web GUI 的客户端插件,发布账号为 Seryta(GitHub 仓库与安装命令指向该账号)。它的作用是在聊天区右侧提供节点串,支持 hover 预览、点击跳转,并让 active 药丸跟随阅读位置。

该插件采用 MIT 许可证,资料说明其为纯手写 JS(零构建、零依赖),通过 git 安装不会触发构建脚本。

核心功能

dsh-node-nav 的已核实能力包括:

  • 节点串:在 Web GUI 右侧提供纵向节点导航。
  • 全量历史节点:用于覆盖 attached 会话 session log 中的历史用户消息,减少只依赖当前 DOM 的限制。
  • 底部节点:提供底部节点。
  • hover / focus 预览:悬停或键盘聚焦时显示消息文本预览。
  • 点击跳转:点击后平滑滚动到对应消息,并短暂高亮。
  • active 跟随:阅读位置变化时,active 状态跟随当前阅读位置。
  • 输入历史:输入框为空时可按 回填最近一条用户输入,连续 翻更早, 翻回。
  • details 避让:右侧 details 打开时进行避让。
  • 深色模式:支持深色模式。
  • reduced-motion:支持 reduced-motion
  • 自动隐藏:支持自动隐藏。

安装与启用

安装命令为:

dsh plugin --profile web add github:Seryta/dsh-node-nav

安装后重启 dsh web,并刷新页面。

如果希望从本地目录安装,也可以先克隆仓库:

git clone https://github.com/Seryta/dsh-node-nav.git
dsh plugin --profile web add ./dsh-node-nav

插件会以当前 dsh 进程权限运行。安装前建议检查源码与许可证;该插件资料标注许可证为 MIT。

典型用法

下面是几个可复现的使用路径:

1、安装并重启 dsh web 后,在 Web GUI 对话页打开右侧节点串。

2、将鼠标悬停在节点上,或通过键盘聚焦节点,查看消息文本预览。

3、点击节点,页面会平滑滚动到对应消息,并短暂高亮。

4、在输入框为空时按 ,回填最近一条用户输入;继续按 可翻更早输入;按 可翻回更近输入。

5、对于尚未加载进页面的历史节点,点击时会连续触发页面「加载更早」,直到该行进入 DOM,再滚动定位。

如果当前 dsh 版本移除了页面「加载更早」按钮,资料说明点击未加载节点会提示目标消息未能定位。

适用场景与注意

适合使用 DSH Web GUI、需要在长会话中定位用户消息、查看当前位置或回看输入历史的开发者。

需要注意以下几点:

  • 插件以当前 dsh 进程权限运行,安装前需要检查源码与许可证。
  • 输入历史仅覆盖当前打开的(live)会话;host 端点只查 attached 会话,未打开的历史会话无 composer 焦点,不适用输入历史。
  • 全量列表端点如下:
/plugins/dsh-node-nav/api/users

该端点从 attached 会话的 session log 提取全部真实用户消息;端点不可用或冷会话(未 attached)时回退到纯 DOM 扫描。

  • 输入历史与跳转依赖以下 dsh 客户端契约:
[data-chat-anchor-key]
[data-composer-card]
hooks.input
props.inputActions

harness 大版本改动这些契约时需同步适配。

  • 未加载节点点击依赖页面「加载更早」按钮存在,资料标注上限为 30 批;按钮被移除的 harness 版本中,点击未加载节点会提示目标消息未能定位。

结尾

dsh-node-nav 提供的是 DSH Web GUI 侧的导航增强:节点串、预览、跳转、阅读位置跟随和输入历史回看。仓库地址为 https://github.com/Seryta/dsh-node-nav。已核实资料未给出目录页 URL;DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

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

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

小夜