DSH Hub
dsh-conversation-navigator cover

gjj-star/dsh-conversation-navigator

dsh-conversation-navigator

UIWeb UI22 GitHub stars· updated 2026-10-27

dsh-conversation-navigator is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-conversation-navigator

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-conversation-navigator DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-conversation-navigator.svg)](https://dshhub.dev/plugins/dsh-conversation-navigator)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from gjj-star/dsh-conversation-navigator, cleaned of badges and images.

DSH 会话导航插件(dsh-conversation-navigator)

English | 中文

DeepSeek Harness(DSH)Web 端会话导航面板:在对话页右侧悬浮展示按轮折叠的对话大纲,点击任意节点平滑跳转,滚动对话时实时高亮当前阅读位置,步次徽标配色与内置"轨迹"视图统一。

纯浏览器插件(无宿主行为)、纯 JavaScript、零构建、零 npm 依赖(按钮/Tooltip 复用 DSH 内核 seed 的官方 primitives)。

深色模式浅色模式

深色 / 浅色模式下的会话导航面板。三种形态:显示轮次、隐藏轮次、极简·左(极简·右自 0.2.6 暂缓,代码保留;极简收起仅露行内指示条,悬停展开定位面板)。更多截图见 assets/screenshots。

功能

  • 按轮折叠大纲:默认只显示"第 N 轮 + 你的问题"列表,长对话一目了然
  • 关键词过滤:点击左上角搜索图标呼出输入框,只按「你的提问 + 助手实际回复文本」过滤(上下文、工具、命令、压缩、推理等不参与匹配),命中词高亮,列表文本自动定位到关键词处
  • 搜索命中直达:点击命中的搜索结果,直接滚动到关键词在会话正文中出现的位置(不再只对齐消息顶部),并把该条消息内所有命中处标出来——先亮一下,再平滑淡出为常驻淡色,长回复里不用再自己找
  • 展开/折叠步次:点击轮次行右侧的箭头按钮(▸ N,展开时旋转为 ▾)平滑展开/折叠该轮的步次明细(助手回复、工具调用、命令、压缩点等)
  • 悬停查看全文:鼠标在轮次行停留片刻,气泡显示该轮用户提问的完整原文,不再被单行截断
  • 显示 / 隐藏 / 极简·左三种形态:头部切换按钮三态循环——「显示轮次」为经典分组视图(压缩等系统事件与轮次同级加粗展示)→「隐藏轮次」每行统一为轨迹徽标 + 文本(用户 = 业务蓝、助手 = 紫罗兰、压缩 = 中性灰)→「极简·左」锚定对话区左缘(为 dsh-better-sidebar 让出右侧,并与官方右侧轨道零重叠),再回到「显示轮次」;「极简·右」形态自 0.2.6 起暂缓(与官方 TurnNavigator 轨道视觉重叠),代码保留;
  • 「极简」形态收起时只露行内指示条(当前 = 品牌色实色、非当前 = 主题前景色掺 40%),悬停展开 7 行画幅的定位面板(点击跳转、悬停全文气泡、超 7 条仅滑块滚动;左对齐向右展开),外置悬浮按钮继续循环(极简·左→显示轮次),搜索框展开时按钮自动让位
  • 面板可拖动:显示轮次 / 隐藏轮次面板按住头部即可拖到视口任意位置(自动夹边;展开高度至多半屏,上边缘固定、下边缘展开,超长轮次时列表内部滚动,底部「回到最新/全部折叠」始终可达),头部图钉按钮在「默认右侧停靠」与「上次拖动位置」间切换;拖动位置与极简左/右对齐选择持久化于 localStorage,刷新页面原样恢复
  • 面板尺寸可调:左下角圆角处拖拽缩放(仅显示轮次 / 隐藏轮次)——横向拖宽(240–560px),纵向拖高/拖矮;高度采用「内容自适应 + 上限」模型:实际高度 = min(轮次内容, 你拖到的上限),随轮数变化、不会在底部产生空白,下限约 3 轮,上限不超过会话可视区;拖拽 1:1 线性跟随、可逆,尺寸持久化于 localStorage
  • 丝滑动效:面板开合淡入淡出、步次展开/折叠高度过渡、过滤结果逐条级联淡入、折叠箭头旋转——全部纯 CSS 实现,零依赖
  • 点击定位:点击轮次主体或步次条目,平滑滚动跳转到对话中对应位置(不改变折叠状态)
  • 加载更早 / 加载全部:面板顶部两个按钮——「加载更早」向后翻一页、「加载全部」一键把所有历史轮次载入导航,之后可任意跳转(页面默认仍懒加载,只有点按钮才补载)
  • 位置跟踪:手动滚动对话时,面板自动高亮并跟随当前正在阅读的轮次
  • 右侧定位:默认锚定视口右侧,收起/展开左侧边栏时纹丝不动;解除停靠(拖动/图钉)后可自由放置
  • 回到最新 / 全部折叠:面板底部两个快捷按钮;「全部折叠」在没有展开的轮次时置灰,避免误以为失效
  • 轨迹配色:用户/插话 = 业务蓝、上下文 = 成功绿、助手 = 紫罗兰、工具 = 琥珀、压缩 = 中性灰(与内置轨迹视图一致的 --dsw 主题 token,自动适配明暗主题)
  • DSH 原生风格:操作按钮复用官方 Button/Tooltip 组件与官方图标(搜索、关闭);其余操作图标(导航、加载更早、加载全部、回到最新、全部折叠、切换轮次等)取自 Lucide 描边图标集(ISC License,lucide.dev),currentColor 自动适配明暗主题
  • 切换工作区/会话自动跟随并重建大纲

安装

本插件是官方规范的组合包(dsh.bundle manifest + dsh.client 声明),纯 JavaScript、无构建步骤,推荐用官方 CLI 安装:

# 方式一:npm(发布后,用户无需任何构建授权)
dsh plugin --profile web add dsh-conversation-navigator

# 方式二:GitHub(纯 JS 包无需 prepare/allowBuilds,直接可用)
dsh plugin --profile web add github:gjj-star/dsh-conversation-navigator

# 方式三:本地 tarball
pnpm pack
dsh plugin --profile web add ./dsh-conversation-navigator-<version>.tgz

dsh plugin 在 profile 目录内转发给 pnpm,因此需要 pnpm 在 PATH 上;安装会自动把本包追加进 profile 的 dsh.profile.bundles,其自带的 cordis.patch.yml 层负责插入插件行。重启 dsh web 后生效。双形态默认值:官方 < 0.1.2-rc.1(无内置导航)时面板默认展开;官方 ≥ 0.1.2-rc.1(会话视图内置 TurnNavigator 轮次轨道)时面板默认关闭、默认形态为「极简·左」、搜索框默认收起,由标题栏「导航」按钮主动呼出,与官方右侧轨道零重叠。

手动方式(不依赖 pnpm):把仓库放进 <DSH_HOME>\profiles\<profile>\node_modules\dsh-conversation-navigator,并在 profile 的 cordis.patch.yml 顶层数组追加 example.patch.yml 的内容。

更新

修改 lib/client.js 后重启 dsh web 即可;停靠状态、拖动位置、极简左对齐、面板宽高持久化于 localStorage(dsh-cnvnav:ui:v2;面板的展开/收起 open 不再持久化——新宿主每次启动都从默认关闭开始,搜索关键词等界面状态仍只存于页面会话内。

已发布到 npm(dsh-conversation-navigator,徽章实时显示最新版本);升级已安装副本:市场更新或 dsh plugin --profile web add dsh-conversation-navigator 后重启。

工作原理

…

Related plugins