SherUnlocked-4869/dsh-plugin-msg-nav ↗★ 6
dsh-plugin-msg-nav
DSH 对话节点导航条插件,支持悬停预览、点击跳转与滑动浏览。
AI 分析
核心用途是在对话区域右侧提供一个直观的节点导航条,方便用户在长对话中快速预览、定位和跳转到特定的用户消息。适合进行超长对话交互、需要频繁回溯历史消息的用户。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:SherUnlocked-4869/dsh-plugin-msg-nav说明文档
阅读完整 README ↗简体中文 | English
dsh-plugin-msg-nav
DeepSeek Harness 对话节点导航条插件:在对话区右缘渲染一列短横线节点串(每条真实用户消息一个节点),跟随阅读位置;鼠标靠近节点串时,节点条「变形弹出」为单行消息预览面板(覆盖原位置,移开复原),点击任意预览平滑跳转 + 高亮横线,节点过多时可在悬停区域内用滚轮滑动浏览。host 侧会话投影让节点串进入会话即覆盖整段历史的全部用户消息——零翻页请求、无初始卡顿。

以 bundle 形式发布:dsh plugin 安装后自动接入 profile 层栈,无需手改任何配置文件。架构参考 dsh-chat-timeline 的 host 会话投影 + 客户端按需加载模式。
安装(DSH 官方命令)
# 直接从 GitHub 安装
dsh plugin --profile web add github:SherUnlocked-4869/dsh-plugin-msg-nav
dsh plugin 会转发给 pnpm 安装到 profile 目录,并自动把声明了 dsh.bundle 的包加入 dsh.profile.bundles 层栈。随后启动(已在运行则重启)部署即可:
dsh web # 或 dsh --profile
更新到最新版本:
cd ~/.dsh/profiles/web && pnpm update dsh-plugin-msg-nav
卸载:
dsh plugin --profile web remove dsh-plugin-msg-nav
功能
| 功能 | 行为 |
|---|---|
| 节点导航条 | 对话区右缘纵向短横线串,每条真实用户消息一个节点(系统注入的 goal 自动延续等不计入),恒定 20px 间距 |
| 悬停弹出面板 | 鼠标进入节点串区域:节点条短横线淡出、左侧单行预览面板弹出(0.18s 放大动画,覆盖节点条原位置,行内短横线落在原节点条短横线的横坐标上,如节点条变形展开);移出后节点条恢复 |
| 面板排版 | 每条消息一行(左文字 + 右短横线),24px 行距、上下 8px 对称留白;悬停行时文字与短横线同步高亮并出现 8px 圆角底色;当前阅读位置整行(文字+短横线)以品牌蓝/白色高亮 |
| 列表滑动 | 最多显示 10 条;超过时鼠标悬停在节点串区域内滚轮上下滑动列表(页面不滚动),面板按比例同步滚动 |
| 移出回中 | 鼠标移出悬停区域后,列表平滑居中回当前阅读位置,恢复跟随 |
| 跟随阅读位置 | 激活节点(品牌蓝 / 深色下白色)随滚动侦测实时更新 |
| 点击跳转 | 平滑滚动到对应消息 + 全宽品牌蓝高亮横线(1.5s 淡出),流式输出干扰下亦有看门狗兜底落位,列表自动居中到目标节点 |
| 全量历史即时入串 | host 侧会话投影(msgNavMessages)折叠整段日志,全量用户消息列表经历史尾页 + 推送帧即时送达——进入会话零翻页请求,节点串立刻覆盖全部用户消息,无初始卡顿;未挂载投影注册表的部署自动回退到后台逐页加载(每页 50 条、至多 120 页),加载中节点串末尾显示脉冲短横线 |
| 点击按需加载 | 点击尚未渲染进窗口的旧消息节点时,先按需拉取更早历史直至该消息入窗并渲染出行,再平滑跳转 + 高亮(按消息 id 与窗口行精确关联,不受节点 key 格式影响) |
| 自动隐藏 | //tar.gz/" |
| } |
然后 `pnpm install` 刷新锁文件,再重新执行 `dsh plugin add`。
**节点串没出现?**
- 确认部署已重启、页面已刷新(bundle 变更需重启部署;刷新页面通常即可拿到新 bundle)
- 当前会话需有 ≥2 条真实用户消息,且处于「对话」视图
## 开发
```bash
git clone https://github.com/SherUnlocked-4869/dsh-plugin-msg-nav.git
# 本地联调:安装进一个测试 profile
dsh plugin --profile
add file:
dsh --profile
--port 3090
License
MIT