dsh-session-nav:DeepSeek Harness 会话对话快捷导航

前言

DeepSeek Harness (DSH) 采用「一切皆插件」的架构。在开发和调试智能体对话时,频繁回溯历史提问是常见场景。手动滚动或搜索往往效率低下。dsh-session-nav 提供了一个悬浮导航入口,解决快速跳转历史对话的问题。

核心功能

右侧悬浮按钮

按钮位于对话文字列的右边缘,采用四角圆角设计,呈现半透明效果。它会随布局动画(详情面板开合、侧边栏拖动、窗口缩放)平滑跟随位置。

历史提问列表

鼠标悬停在按钮上时弹出列表,显示当前会话的全部历史提问(包含被 compaction 折叠的记录,不依赖 DSH 渲染窗口)。
* 列表支持上下滚动。
* 打开时自动将「当前提问」滚动到列表中央。
* 顶部固定显示会话名字与提问总数。

点击跳转

  • 窗口内提问:直接平滑跳转。
  • 窗口外提问:自动逐页加载更早历史后跳转(带进度提示,视口不跳动)。

交互与性能

  • 平滑关闭:鼠标移出后短暂延迟再开始淡出动画,避免「按钮 → 弹窗」路径的误关;点击提问按钮后移开鼠标可正常关闭。
  • 性能优化:Host 端对 live Session 做内存增量遍历 + 持久化索引($DSH_HOME/session-nav-questions.)+ 客户端缓存 + afterSeq 增量同步。正常路径下无磁盘 IO,无日志全量扫描。

安装与启用

执行以下命令安装插件:

dsh plugin --profile web add github:tuogusa/dsh-session-nav

安装后需要进行配置:
1. 按引导添加 pnpm-workspace.yaml 的 allowBuilds 条目(放行 git 依赖的 prepare 脚本)。
2. 重启 DSH。
3. 浏览器刷新(Ctrl+Shift+R)。

结构与更新

代码结构

  • lib/index.js:Host 端,提供 GET /api/session-nav/questions 接口。
  • lib/client.js:Client 端,注册官方 slot conversation.session.header.utilities 进行渲染。

更新方式

# 方式一:CLI 更新
dsh plugin --profile web update dsh-session-nav

# 方式二:重新安装
dsh plugin --profile web add github:tuogusa/dsh-session-nav

说明:dsh plugin 是 pnpm 的前置转发器,update 会按当前依赖声明重新解析该包;通过 github:tuogusa/dsh-session-nav 安装时,会更新到仓库默认分支的最新提交。

注意事项

  • 兼容 Profile:仅支持 web(DSH Web GUI)。
  • 检查源码:插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

总结

dsh-session-nav 通过右侧悬浮按钮和列表,实现了对 DSH 会话历史的快速导航。它解决了手动查找历史提问的痛点,同时通过增量索引和缓存机制保证了性能。

插件目录 | GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜