
Seryta/dsh-node-nav
41最近提交 2026年8月15日
dsh-node-nav DSH 插件
dsh-node-nav 在聊天区右侧安装一列等距节点,每个节点对应一条用户消息。悬停或聚焦节点时显示消息文本预览,点击平滑滚动到对应消息并短暂高亮。active 药丸跟随阅读位置滑动,同时提供输入历史(↑/↓)功能,方便回忆最近输入。
如何安装 dsh-node-nav DSH 插件
dsh plugin --profile web add github:Seryta/dsh-node-nav复制不会执行命令。安装 dsh-node-nav DSH 插件前请核对仓库和版本。
dsh-node-nav DSH 插件数据来源
dsh-node-nav DSH 插件快照日期:2026年8月16日
discovered
dsh-node-nav DSH 插件能做什么
- 右侧纵向节点串,最多显示 15 个节点,窗口随阅读位置滑动,无滚动条,两端渐隐。
- 全量历史节点:从会话日志提取所有用户消息(含分页未加载的历史),覆盖全部历史,页面不展开。
- 底部固定方形节点,一键跳转到最新消息。
- 悬停/聚焦预览:显示服务端全文(300 字符截断)与时间。
- 点击跳转:scrollIntoView 居中 + 品牌蓝高亮环 1.2 秒。
- active 药丸跟随:滚动时实时标出视口内最顶部用户消息。
- 输入历史:输入框为空时按 ↑ 回填最近一条用户输入,连续 ↑ 翻更早,↓ 翻回;编辑/发送后指针重置。
- details 面板避让:右侧详情面板打开时节点串自动左移。
- 深色模式:跟随 body[data-ds-dark-theme]。
- reduced-motion 支持:系统减少动效偏好下禁用动画。
- 自动隐藏:非对话页时不显示。
dsh-node-nav DSH 插件适合哪些场景
- 在长对话中快速定位到之前的用户消息,无需反复滚动。
- 预览某条用户消息的内容,无需展开完整上下文。
- 通过底部节点一键跳转到最新消息,适合活跃的聊天室。
- 编写新消息时,用键盘上下键回忆之前发送过的输入。
- 作为辅助功能:键盘聚焦即可触发预览和跳转,方便键盘用户。
dsh-node-nav DSH 插件适合谁
- 使用 DSH Web GUI 进行长对话或多轮对话的用户。
- 经常需要参考之前用户消息或重新输入历史内容的用户。
- 偏好键盘操作、希望减少鼠标滚动的效率用户。
dsh-node-nav DSH 插件的限制
- 输入历史与跳转依赖 DSH 客户端契约([data-chat-anchor-key]、[data-composer-card] 以及 provides 通道 hooks.input/props.inputActions);DSH 大版本更新这些契约时需同步适配。
- 输入历史仅覆盖当前打开的(live)会话:host 端点只查 attached 会话,未打开的历史会话无 composer 焦点,不适用。
- 未加载节点点击依赖页面「加载更早」按钮存在(上限 30 批);按钮被移除的 harness 版本中,点击未加载节点会提示目标消息未能定位。
dsh-node-nav DSH 插件的仓库 README 摘录
以下文字摘自 dsh-node-nav DSH 插件的上游仓库 Seryta/dsh-node-nav 的 README,版权归原作者,仅作引用。
DSH(DeepSeek Harness)Web GUI 的客户端插件:在聊天区右侧显示一列等距节点串,每条用户消息对应一个节点。hover/focus 时显示消息文本预览,点击平滑滚动到对应消息并短暂高亮,active 药丸跟随阅读位置滑动。 <img src="docs/node-nav-overview.png" width="720" alt="节点串总览(浅色模式)"> ## 功能 | 功能 | 说明 | |---|---| | 节点串 | 右缘纵向节点串,每条用户消息一个圆点;最多同时显示 15 个,窗口随阅读位置滑动(无滚动条),两端渐隐提示更多 | | 全量历史节点 | host 半部从会话日志提取全部用户消息(含分页未加载的历史),导航在点击前就覆盖全部历史,页面保持原生分页不展开 | | 底部节点 | rail 最底端固定一个方形「跳到底部(最新消息)」节点,形状与提示区别于消息节点 | | hover/focus 预览 | 显示服务端全文(300 字符截断)与时间,键盘焦点同样触发 | | 点击跳转 | scrollIntoView 居中 + 品牌蓝高亮环 1.2 秒 | | active 跟随 | 滚动时药丸实时标出视口内最顶部的用户消息 | | 输入历史 | 输入框为空时按 ↑ 回填最近一条用户输入,连续 ↑ 翻更早、↓ 翻回;编辑/发送后指针重置 | | details 避让 | 右侧详情面板打开时节点串自动左移 | | 深色模式 | 跟随 `body[data-ds-dark-theme]` | | reduced-motion | 系统减少动效偏好下禁用动画 | | 自动隐藏 | 非对话页时不显示 | ## 截图 **节点串总览(浅色模式)**:每个圆点对应一条用户消息,底部方形节点一键跳到底部,药丸标出当前阅读位置。 <img src="docs/node-nav-overview.png" width="720" alt="节点串总览(浅色模式)"> **hover/focus 预览**:鼠标悬停(或键盘聚焦)节点时显示该条用户消息的服务端全文与时间。 <img src="docs/node-nav-hover.png" width="720" alt="hover 消息预览"> **active 药丸跟随**:滚动聊天区时,药丸实时移动到视口内最顶部的用户消息节点。 <img src="docs/node-nav-active.png" width="720" alt="active 药丸跟随滚动"> **深色模式**:跟随 `body[data-ds-dark-theme]` 自动切换配色。 <img src="docs/node-nav-dark.png" width="720" alt="深
阅读完整 README仓库许可: MIT
dsh-node-nav DSH 插件常见问题
如何安装 dsh-node-nav 插件?
在终端中运行命令 `dsh plugin --profile web add github:Seryta/dsh-node-nav`。安装后重启 `dsh web` 并刷新页面。插件是纯手写 JavaScript,零构建零依赖,git 安装不会触发任何构建脚本。你也可以克隆仓库后从本地目录添加:`dsh plugin --profile web add ./dsh-node-nav`。
为什么有些节点显示为虚线半透明?
虚线半透明的节点表示对应消息尚未加载到 DOM 中。这是因为会话消息较多,页面未加载完所有消息(分页或懒加载)。点击此类节点会自动触发「加载更早」按钮(最多 30 批),直到该消息行进入 DOM 并滚动定位。如果您的 DSH 版本移除了该按钮,则会提示目标消息未能定位。
输入历史功能是否跨会话生效?
不,输入历史仅覆盖当前打开的(live)会话。插件 host 端点只查询 attached 会话的日志,因此只有当前有焦点的会话才适用。切换到其他会话时,历史指针会重置为该新会话的最新消息。未打开的历史会话(无 composer 焦点)不适用输入历史。
active 药丸如何决定高亮哪个节点?
active 药丸跟随聊天区的滚动位置。它实时检测视口内最顶部的用户消息,并高亮对应的节点。药丸通过消息行的 `[data-chat-anchor-key]` 属性识别节点,即使通过点击节点程序化滚动也会更新。
如何在不卸载的情况下禁用插件?
dsh-node-nav 使用与同类插件相同的 React + `shell.overlay` 槽位模式,因此您可以通过 DSH 插件管理界面禁用它。如需完全移除,运行 `dsh plugin --profile web remove dsh-node-nav`。插件在非对话页会自动隐藏,只有进入会话时才会显示。