用钢琴键快速跳转会话中的任意一轮对话
34.4/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kiligzzz/dsh-session-nav该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 65 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@kiligzzz/dsh-session-nav(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 00:32:39
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:502
fetch('/_dsh/session-nav/questions?sessionId=' + encodeURIComponent(currentId), { headers: { accept: 'application/json' } })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-conversation给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
3 张 · 点击查看大图功能亮点
- 钢琴键式会话导航
- 悬停预览提示
- 点击跳转历史对话
DeepSeek Harness 网页界面里的钢琴键式会话内导航栏:每条用户消息一个键,悬停预览提示,点击跳转整个历史。官方双面 dsh 插件,无需改动 dsh 源码。
README
由 DeepSeek 最新模型翻译生成dsh-session-nav
installs
钢琴键风格的会话内导航条 —— 为 DeepSeek Harness Web GUI 的单个会话提供多轮对话导航:每根键锚定一条用户消息,悬停显示该轮「用户消息 + 模型回复」预览,点击平滑跳转到对应消息。
基于 DSH 官方双面插件机制(host + browser half),不侵入 DSH 源码。
| 整体效果 | 悬停预览 | 点击跳转 |
| 整体效果 | 悬停预览 | 点击跳转 |
| 一个 43 轮的会话 —— 每根键对应一个用户问题,紧凑簇在消息区垂直居中。 | 悬停某键显示用户消息(单行)+ 该轮模型回复(最多 3 行)。 | 点击任意键自动翻页历史(与官方「加载更早」同一通道)并精确定位到视口顶部。 |
截图取自一个真实的 43 轮会话(DSH记忆注入验证优化,浅色主题)。
参考实现:KeLearns/dsh-navigation-bar(视觉规格与交互对齐,代码独立重写)。
功能
- 会话内导航:一根键 = 一条用户消息(含 agent 运行中发送的 steering 消息),按时间正序;模型回复不单独占键,并入对应轮次的预览。
展开完整文档(README 剩余 1 节)
dsh-session-nav
installs
钢琴键风格的会话内导航条 —— 为 DeepSeek Harness Web GUI 的单个会话提供多轮对话导航:每根键锚定一条用户消息,悬停显示该轮「用户消息 + 模型回复」预览,点击平滑跳转到对应消息。
基于 DSH 官方双面插件机制(host + browser half),不侵入 DSH 源码。
| 整体效果 | 悬停预览 | 点击跳转 |
| 整体效果 | 悬停预览 | 点击跳转 |
| 一个 43 轮的会话 —— 每根键对应一个用户问题,紧凑簇在消息区垂直居中。 | 悬停某键显示用户消息(单行)+ 该轮模型回复(最多 3 行)。 | 点击任意键自动翻页历史(与官方「加载更早」同一通道)并精确定位到视口顶部。 |
截图取自一个真实的 43 轮会话(DSH记忆注入验证优化,浅色主题)。
参考实现:KeLearns/dsh-navigation-bar(视觉规格与交互对齐,代码独立重写)。
功能
- 会话内导航:一根键 = 一条用户消息(含 agent 运行中发送的 steering 消息),按时间正序;模型回复不单独占键,并入对应轮次的预览。
- 全量历史:导航键数据来自 host 端按需读取的完整会话日志(sessionPersistence.readFrom),而非浏览器已加载的窗口 —— 长会话(上百轮)也能一屏看到全部用户问题;与实时快照合并时按消息 UUID 去重,不会出现重复键。
- 视觉规格:键簇固定 10px 键距、2px 键高、6px 最短长、26px 悬停长(≈4.3×),在消息区内垂直居中;配色浅色 #D2D3D3 / #767779 / #1A1C1F,深色 #454545 / #A3A3A3 / #FFFFFF。
- 悬停阶梯:悬停键变长变色,上下相邻 3 级阶梯(20 / 14 / 10px,≈77% / 54% / 38%),第 4 邻恢复最短,首/尾键悬停时阶梯自然单侧裁剪。
- 悬停气泡:用户消息单行省略 + 对应模型回复最多 3 行(宽度模型 JS 截断 + -webkit-line-clamp 双保险,超出以 … 省略);气泡与键垂直居中对齐;顶部带「第 N 轮」轮次徽标(v0.1.8+),长会话定位更直观。
- 当前位高亮:非悬停时当前查看内容对应的键仅变色(长度不变),随滚动实时联动。
- 点击跳转:目标消息已在加载窗口内时平滑滚动直达;在窗口外(虚拟列表未加载)时自动循环调用官方分页接口(与「加载更早」按钮同一通道)拉取历史,直到目标行渲染后精确定位到视口顶部。
- 深浅色主题自适应(data-ds-dark-theme + prefers-color-scheme 兜底)。
- 自动隐藏官方回合导航(v0.1.5+):安装本插件即自动隐藏 DSH 官方「紧凑回合导航」(右侧竖排「跳转到第 N 轮」按钮),钢琴键导航是它的同位替代,避免双导航并存。
- 仅对话视图显示(v0.1.5+):钢琴键只在「对话」Tab 渲染,切到轨迹 / Agent 调度 / 记忆系统等视图时自动隐藏,不干扰其他面板。
兼容性
- 适配 DSH 0.1.2+(v0.1.11+):0.1.2 重构了会话快照结构(session.getSnapshot() 不再包含 navigation 投影),本插件已改用官方 uiConversation 服务的 chat 完整
快照(viewStore.get('chat'))取回复文本,与官方「紧凑回合导航」同源;
历史轮次回复由 host 端从磁盘日志提取,全量轮次均可预览。
- 0.1.2 之前版本:同样可用(自动回退旧快照路径)。
安装
方式一:从 GitHub 安装(推荐)
dsh plugin --profile web add github:kiligzzz/dsh-session-nav
方式二:本地开发(link 方式)
本地开发(link 方式;改 lib/client.js 后刷新页面即生效)
dsh plugin --profile web add link:
注意:插件名单在实例启动时加载 —— 新装插件后需重启 dsh web 实例再刷新页面。
结构
| 文件 | 说明 |
| index.js | host 半端:读取会话全量日志并暴露同源路由 /_dsh/session-nav/questions |
| lib/client.js | browser 半端(手写 bundle,无构建步骤;window.__ModuleLoader__.load) |
| cordis.patch.yml | bundle patch:把插件行插入 web profile 名单 |
| package.json | dsh.bundle.patch + dsh.client(platform web)声明 |
数据来源(全部官方 API):
- ctx.uiConversation.binding(currentId).viewStore.get('chat') → chat 完整快照(含 navigation,0.1.2+;useSyncExternalStore 实时订阅)
- ctx.sessions.binding(currentId).session → ConversationSnapshot
(0.1.2 前 / 无 uiConversation 时回退)
- ctx.sessionPersistence.readFrom(sessionId, 0) → 全量会话日志(host 端)
- DOM 锚点:滚动容器 [data-conversation-scroll],消息行 [data-chat-anchor-key]
- 分页:session.loadOlder()(与官方「加载更早」按钮同一通道)
性能
事件驱动几何跟踪:scroll capture / resize / 惰性附加的 scrollport ResizeObserver → rAF 合并重算;无常驻 MutationObserver、无定时器。锚点行走 isConnected 校验的缓存,虚拟滚动回收重建不影响正确性。
开发
环境要求:Node.js >= 18。
pnpm install # 开发依赖(vitest / eslint / prettier)
pnpm test # 运行单元测试(31 个用例)
pnpm lint # eslint 检查
pnpm format # prettier 格式化
结构说明:
- 纯函数(文本提取、截断、键身份、集群几何)放在 lib/shared.js,host 与 browser 两端共用同一实现,测试只需覆盖一次。
- browser 半端是手写 bundle、无构建步骤:改 lib/client.js 刷新页面即可;host 端(index.js)改动需要重载插件。
- window.__dssnNavDebug__ 暴露诊断信息(entryCount、fullCount、stats),便于 CDP 检查。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
kiligzzz/dsh-session-nav
用钢琴键快速跳转会话中的任意一轮对话
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目