편집자 노트

对话节点导航

Seryta/dsh-node-nav is a DeepSeek Harness ecosystem project for UI enhancements. Review its public README for features, setup, and usage details.

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

dsh-node-nav — 对话节点导航

DSH(DeepSeek Harness)Web GUI 的客户端插件:在聊天区右侧显示一列等距节点串,每条用户消息对应一个节点。hover/focus 时显示消息文本预览,点击平滑滚动到对应消息并短暂高亮,active 药丸跟随阅读位置滑动。

节点串总览(浅色模式)

功能

功能说明
节点串右缘纵向节点串,每条用户消息一个圆点;最多同时显示 15 个,窗口随阅读位置滑动(无滚动条),两端渐隐提示更多
全量历史节点host 半部从会话日志提取全部用户消息(含分页未加载的历史),导航在点击前就覆盖全部历史,页面保持原生分页不展开
底部节点rail 最底端固定一个方形「跳到底部(最新消息)」节点,形状与提示区别于消息节点
hover/focus 预览显示服务端全文(300 字符截断)与时间,键盘焦点同样触发
点击跳转scrollIntoView 居中 + 品牌蓝高亮环 1.2 秒
active 跟随滚动时药丸实时标出视口内最顶部的用户消息
输入历史输入框为空时按 ↑ 回填最近一条用户输入,连续 ↑ 翻更早、↓ 翻回;编辑/发送后指针重置
details 避让右侧详情面板打开时节点串自动左移
深色模式跟随 body[data-ds-dark-theme]
reduced-motion系统减少动效偏好下禁用动画
自动隐藏少于 2 条用户消息或非对话页时不显示

截图

节点串总览(浅色模式):每个圆点对应一条用户消息,底部方形节点一键跳到底部,药丸标出当前阅读位置。

节点串总览(浅色模式)

hover/focus 预览:鼠标悬停(或键盘聚焦)节点时显示该条用户消息的服务端全文与时间。

hover 消息预览

active 药丸跟随:滚动聊天区时,药丸实时移动到视口内最顶部的用户消息节点。

active 药丸跟随滚动

深色模式:跟随 body[data-ds-dark-theme] 自动切换配色。

深色模式

输入历史(↑ / ↓)

输入框(draft)为空时:

  • :回填最近一条用户输入;连续 ↑ 翻更早(到最早一条为止);
  • :翻回更近一条;回到最新位置后 ↓ 清空 draft(与 readline/TUI 惯例一致);
  • 开始编辑回填文本、发送或清空后,指针重置(下次 ↑ 从最近一条重新开始);
  • 菜单打开时(触发词在 draft 中)天然不抢上下键;IME 组合中不拦截;
  • 数据复用 /plugins/dsh-node-nav/api/users(仅 source.kind === 'user' 的真实输入,纯图片消息 [图片] 占位不参与历史)。

数据源:服务端会话日志 + DOM 行状态(双轨)

  • 全量列表:host 半部端点 /plugins/dsh-node-nav/api/users 从 attached 会话的 session log 提取全部真实用户消息(source.kind === 'user'),返回 [{ id, seq, time, text }]——导航覆盖全部历史,页面不展开,无历史预加载副作用;
  • DOM 行状态:锚点 key 形如 <seq>:input-message<uuid>,uuid 即消息 id,用 [data-chat-anchor-key$="<id>"] 判定该消息行是否已加载进页面;
  • 端点不可用/冷会话(未 attached)时回退到纯 DOM 扫描。

未加载的节点以虚线半透明显示;点击时连续触发页面「加载更早」(上限 30 批)直到该行进入 DOM,再滚动定位。hover 预览显示服务端全文与时间。

安装

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

安装后重启 dsh web 并刷新页面。插件是纯手写 JS(零构建、零依赖),git 安装不会触发任何构建脚本。

也可以 clone 后从本地目录安装:

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

与同类插件的差异

项目数据源本插件的取舍
dsh-navbarDOM 扫描(同款思路)本插件采用相同的 DOM 扫描契约,但保留 React + shell.overlay 槽位形态(可停用/启用),并补充 details 面板避让
dsh-turn-index会话快照 binding(id).session快照方案在部分 dsh 版本上只见最近窗口节点,故本插件改走 DOM

已知限制

  • 输入历史与跳转依赖 dsh 客户端契约:[data-chat-anchor-key](行锚点)、[data-composer-card](composer 容器)与 provide 通道 hooks.input / props.inputActions(输入状态与写入口);harness 大版本改动这些契约时需同步适配。
  • 输入历史仅覆盖当前打开的(live)会话:host 端点只查 attached 会话,未打开的历史会话无 composer 焦点,不适用输入历史。
  • 未加载节点点击依赖页面「加载更早」按钮存在(上限 30 批);按钮被移除的 harness 版本中,点击未加载节点会提示目标消息未能定位。

License

MIT

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.