SherUnlocked-4869/dsh-plugin-msg-nav
DeepSeek Harness 对话节点导航条插件:在对话区右缘渲染一列短横线节点串(每条真实用户消息一个节点),跟随阅读位置;鼠标靠近节点串时,节点条「变形弹出」为单行消息预览面板(覆盖原位置,移开复原),点击任意预览平滑跳转 + 高亮横线,节点过多时可在悬停区域内用滚轮滑动浏览
Project Overview项目介绍
This is a natively-built plugin exclusively for DeepSeek Harness that adds a user message navigation bar to the chat interface. It is distributed as a bundle that can be installed directly from GitHub using the official DSH plugin command, and it automatically integrates into the DSH profile stack without any manual configuration edits after installation. The plugin renders a vertical strip of nodes along the right edge of the chat area, with each node corresponding to one real user message, and the active node updates in real time as you scroll through the conversation.
When you hover your mouse over the node strip, it expands into a preview panel that shows one-line previews for all user messages. If there are more than 10 messages, you can scroll the wheel within the preview area to navigate the full list without scrolling the main page. Clicking any node smoothly scrolls the main chat to the corresponding message, highlights it temporarily, and centers the preview list on the selected node. You can also use the Alt + Up/Down keyboard shortcuts to jump between adjacent user messages directly.
The plugin uses a host-side session projection architecture that pulls all user message data immediately when you enter a conversation, eliminating the need for pagination requests and initial load lag. It automatically hides on conversations with fewer than 2 user messages, blank conversations, and non-chat views to avoid unnecessary UI clutter. It uses windowed rendering and throttled scroll detection to keep performance overhead near zero even during long conversations, and it is released under the permissive MIT open source license.
这是一个专为DeepSeek Harness开发的原生插件,为对话界面添加了用户消息节点导航条功能。它会在对话区右边缘渲染一列对应每个真实用户消息的节点,节点位置会跟随当前阅读位置自动更新,鼠标悬停时节点条会变形弹出消息预览面板,节点过多时支持滚轮滑动浏览,点击任意节点即可平滑跳转到对应消息。它还支持使用Alt+上下方向键在相邻用户消息之间快速跳转。
插件以bundle形式发布,使用DSH官方命令即可直接从GitHub仓库安装,安装后会自动接入profile层栈,不需要手动修改任何配置文件。它采用host侧会话投影模式,进入会话后就能立刻覆盖全部历史用户消息,不需要逐页翻页拉取,不存在初始加载卡顿,未支持投影的旧版部署会自动回退到后台逐页加载机制。
插件在用户消息少于2条、空白会话或者非对话视图下会自动隐藏,渲染时会对齐设备像素保证节点粗细一致,长会话下通过窗口化渲染和节流处理将性能开销降到近乎为零。它参考了现有同类项目的架构设计,采用MIT许可开源,可以免费使用、修改和分发,安装更新卸载都可以通过DSH官方命令完成。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-plugin-msg-nav(SherUnlocked-4869/dsh-plugin-msg-nav)
仓库:https://github.com/SherUnlocked-4869/dsh-plugin-msg-nav
本站详情页:https://www.yhbd.top/plugins/sherunlocked-4869-dsh-plugin-msg-nav/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 8 · 最近提交 2026-08-29 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 8 stars - very few users, little community feedback星标只有 8,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:SherUnlocked-4869/dsh-plugin-msg-nav
把 SherUnlocked-4869/dsh-plugin-msg-nav 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
简体中文 | English
dsh-plugin-msg-nav
DeepSeek Harness 对话节点导航条插件:在对话区右缘渲染一列短横线节点串(每条真实用户消息一个节点),跟随阅读位置;鼠标靠近节点串时,节点条「变形弹出」为单行消息预览面板(覆盖原位置,移开复原),点击任意预览平滑跳转 + 高亮横线,节点过多时可在悬停区域内用滚轮滑动浏览;Alt+↑ / Alt+↓ 可在相邻用户消息间直接跳动。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 <你的 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 淡出),流式输出干扰下亦有看门狗兜底落位,列表自动居中到目标节点 |
| 快捷键跳转 | Alt+↑ / Alt+↓ 在相邻用户消息间平滑跳转,与点击跳转同一链路(未入窗消息先按需加载再落位 + 高亮横线 + 列表回中);连按 / 按住可跨多条连续推进;焦点在已有草稿的输入框内时不触发,避免打断输入 |
| 全量历史即时入串 | host 侧会话投影(msgNavMessages)折叠整段日志,全量用户消息列表经历史尾页 + 推送帧即时送达——进入会话零翻页请求,节点串立刻覆盖全部用户消息,无初始卡顿;未挂载投影注册表的部署自动回退到后台逐页加载(每页 50 条、至多 120 页),加载中节点串末尾显示脉冲短横线 |
| 点击按需加载 | 点击尚未渲染进窗口的旧消息节点时,先按需拉取更早历史直至该消息入窗并渲染出行,再平滑跳转 + 高亮(按消息 id 与窗口行精确关联,不受节点 key 格式影响) |
| 自动隐藏 | <2 条用户消息、空白会话、非对话视图(如轨迹页)时不显示 |
| 渲染细节 | 节点位置按 devicePixelRatio 对齐设备像素(粗细一致);窗口调整 rAF 合帧,不拖慢界面;节点串与面板窗口化渲染(只创建可视窗口元素),滚动侦测 rAF 节流 + 行缓存增量维护,长会话下插件开销近零 |
工作原理
与 dsh-chat-timeline 相同的「投影快路径 + 按需翻页」模式:
- Host 投影:host 半注册
msgNavMessages会话投影单元,折叠整段日志中每条user/message事件(仅source.kind === "user"的真实用户消息与 steering,注入的上下文行排除——与聊天视图节点组装器的分类完全一致),产出{seq, time, text, id}全量列表;框架持续驱动,经历史尾页与session/projection推送帧送达。 - 客户端即时渲染:节点串用
useProjection("msgNavMessages")直接渲染全量列表;已加载窗口内的消息按持久 id 关联到 DOM 行,用于阅读位置跟随与跳转。 - 点击按需翻页:点击尚未入窗的旧节点时,按消息 id 循环
loadOlder()(每页 50 条、至多 120 页)直到目标入窗并渲染出行,再平滑跳转 + 高亮。 - 兜底:未挂载投影注册表的部署,客户端自动回退到后台
loadOlder全量循环(投影一旦送达立即停止)。会话切换即换代取消旧循环,插件卸载时同步停止。
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
ZSeven-W/dsh-openpencil
joeseesun/qiaomu-rss-dsh
LAU-MARS/dsh-cad
penguin-oo/dsh-bookmarks
tylina/dsh-tylina
13071301808/dsh-composer-expand