DeepSeek Harness (DSH) 对话索引插件介绍

前言

DeepSeek Harness (DSH) 采用插件化架构,允许开发者通过扩展功能增强客户端体验。在 Web UI 的对话界面中,随着消息数量增加,手动滚动查找特定问题变得效率低下。dsh_chat_index 插件旨在解决这一导航痛点,在对话区右边缘提供可视化的索引工具。

核心功能

该插件在对话区右边缘展示一列小圆点,每个圆点代表一条用户发送的问题。

  • 圆点索引:圆点等间距、紧凑、纵向居中排列。当问题过多超出显示高度时,间距会自动压缩以适应。
  • 悬停提示:鼠标悬停在圆点上时,会浮出一个缩略提示卡,显示序号和问题正文的前 100 字。
  • 平滑跳转:点击圆点,视图会平滑滚动到对应的消息气泡,气泡会短暂高亮。
  • 当前视口高亮:位于当前阅读位置的圆点会高亮显示为品牌色。
  • 无历史展开:索引仅基于 DSH 默认的 50 条消息窗口,不会强制展开折叠的历史记录。
  • 按需分页:对于窗口外的旧消息,点击时才按需加载至该位置。
  • 零构建:Node 端使用 ESM,浏览器端为手写脚本,无构建步骤。
  • 不干预状态:不干预思考过程、工具调用或终端输出的折叠/展开状态。

安装与启用

前置条件

  • DeepSeek Harness (DSH) 版本 0.1.1-rc.x 或更高
  • Node.js ≥ 18

安装步骤

在终端执行以下命令安装插件:

dsh plugin --profile web add github:Barry-Liu-001/dsh_chat_index

安装完成后,重启 DSH Web(执行 dsh web 或重新打开应用会话),对话区右侧即可看到圆点索引(至少有 2 条用户消息时显示)。

原理简述

插件通过 cordis.patch.yml 向 Loader 树注入 Node 端入口,注册了精确路由 /chat-index.questions。浏览器端通过 DOM data-chat-flow-key 属性将圆点与消息气泡一一映射。

  • 数据获取:请求发送到该路由,Node 端通过 ctx.sessionQuery.readSession 读取会话日志,过滤 source.kind === 'user' 的事件,并返回 {seq, time, id, text} 列表。结果在 Node 端缓存有效时间小于 10 秒。
  • 客户端渲染:零运行时依赖,全部使用 peerDependencies,不干扰 DSH 原生的折叠/展开逻辑。

卸载

如需移除插件,执行:

dsh plugin --profile web remove dsh-chat-index
羽毛球分组比赛记分
小程序二维码

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

小夜