前言¶
在 DSH 的多轮会话里,当历史消息较多时,靠手动滚动定位某一轮用户问题并不方便。dsh-turn-nav 是给 DSH 用的右侧会话轮次导航栏插件:在聊天窗口右侧显示轮次圆点,悬停查看摘要,点击跳转到对应轮次,并自动加载更早历史。
这是什么¶
dsh-turn-nav 是由 flyHZJ 维护的 DSH 插件,许可证为 MIT。它不替换 DSH 官方聊天界面,而是使用 shell.overlay 全局浮层,在右侧显示一条导航栏,用于快速查看和定位会话轮次。
核心功能¶
- 右侧悬浮导航:默认只显示数字圆点,不遮挡聊天内容。
- 悬停卡片:鼠标悬停到某个圆点时,左侧弹出该轮次的提示卡片,显示“Q + 用户问题摘要”。
- 快速跳转:点击圆点,平滑滚动定位到对应轮次。
- 当前阅读位置高亮:随滚动自动高亮当前所在轮次,高亮为蓝色圆点。
- 自动刷新:新消息、流式输出、加载历史时自动重建导航。
- 自动加载更早历史:自动调用 DSH 的
loadOlder(),把之前分页未加载的轮次也补全,不需要手动滚动到顶部点“加载更早”。 - 不侵入官方 UI:使用
shell.overlay全局浮层,不替换、不遮挡 DSH 官方聊天界面。 - DSH Bundle 兼容:已声明
dsh.bundle.patch,可通过dsh plugin add安装。
安装与启用¶
安装前需要满足:
- 已安装并运行 DSH。
- 构建时需要 Node.js。
- 可选:DSH 源码 checkout,用于本地构建。
从 GitHub 安装:
dsh plugin --profile web add github:flyHZJ/dsh-turn-nav
安装后重启 dsh web,右侧导航即生效。
典型用法¶
安装后使用¶
安装并重启 dsh web 后,在 DSH 聊天窗口右侧会出现导航圆点。
1、将鼠标悬停到某个圆点,查看该轮次的提示卡片。
2、点击圆点,平滑滚动到对应轮次。
3、继续滚动页面时,当前所在轮次会被高亮。
本地开发调试¶
如果使用 super-injector 运行时注入,可执行:
dev_inject_plugin {"dir": "C:/Users/J/Desktop/新建文件夹/dsh-turn-nav"}
修改源码并重新构建后,可执行热重载:
dev_reload_package {"packageName": "dsh-turn-nav"}
更新与卸载¶
bundle 安装版更新:
dsh plugin --profile web update dsh-turn-nav
bundle 安装版卸载:
dsh plugin --profile web remove dsh-turn-nav
自动加载更早历史¶
插件会自动调用 DSH 的 loadOlder(),把之前分页未加载的轮次补全到导航可识别范围内。默认最多加载 200 页,可通过 MAX_OLDER_PAGES 调整。
可调整项¶
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 卡片最小宽度 | 240px | 悬停卡片的最小宽度 |
| 卡片最大宽度 | 400px | 悬停卡片的最大宽度 |
| 导航右侧间距 | 10px | 导航栏距离右侧的间距 |
| 导航垂直位置 | 50% | 导航栏的垂直位置 |
| 自动加载历史页数上限 | 200 | MAX_OLDER_PAGES 默认值 |
| 摘要长度 | 60 字符 | 悬停卡片中用户问题摘要的长度 |
适用场景与注意¶
适合使用 DSH 进行多轮、长会话调试或阅读的开发者。它可以减少在长会话中来回滚动查找历史轮次的操作。
需要注意:
- 插件会随当前
dsh进程权限运行,并按当前 DSH 环境加载导航和更早历史;安装前应检查 GitHub 源码和 MIT 许可证,确认当前环境允许该插件访问会话界面与历史加载能力。 - 如果旧版本
@dsh-external/dsh-turn-nav报declares no dsh.bundle,应升级到当前版本dsh-turn-nav。 - 自动加载更早历史默认最多 200 页;如果历史超过这个范围,需要调整
MAX_OLDER_PAGES后重新构建。
相关链接¶
插件目录页:
https://www.skillhub.cn/plugins/flyHZJ/dsh-turn-nav
插件源码:
https://github.com/flyHZJ/dsh-turn-nav