前言¶
DSH 的扩展方式是插件化,社区目录是独立站点,不是 DeepSeek / 幻方官方应用商店。对于 DSH Web GUI 中的长会话,用户发送的消息容易夹在多轮回复里,靠滚轮回看比较费时。
AFAP/dsh-message-minimap 在 DeepSeek Harness Web GUI 会话聊天窗的左边缘显示一条迷你导航条:每一条你发送的消息都是刻度,悬停看摘要,点击即跳转,拖动可快速扫读长会话。
本文基于已核实资料,介绍它解决什么问题、能做什么、如何安装,以及使用边界。
这是什么¶
AFAP/dsh-message-minimap 是由 AFAP 维护的客户端插件,使用 MIT 许可证。
它解决的问题很具体:在 DSH Web GUI 会话中快速定位“我之前发过的那条消息”。插件不改变会话内容,只在聊天窗左边缘提供一条紧凑居中的迷你导航条,把用户消息映射成刻度,支持悬停预览、点击跳转和轨道拖动。
GitHub 仓库地址:
https://github.com/AFAP/dsh-message-minimap
核心功能¶
下面介绍已核实的能力。
- 在聊天窗左侧显示一条紧凑居中的迷你导航条。
- 每条用户消息对应一个刻度,刻度在刻度列上均匀分布。
- 覆盖全部用户消息,包含分页未渲染的历史;点击未加载的刻度会自动向上翻页。
- 按消息
id将 API 数据与 DOM 节点精确关联,点击后平滑滚动到目标消息。 - 当前视口内的消息刻度自动加粗高亮。
- 鼠标扫过刻度列时鱼眼放大。
- 悬停刻度弹出预览卡,显示消息序号、总数、摘要和时间。
- 点击或按住拖动轨道背景按比例跳转。
- 流式输出、加载历史、切换会话、窗口缩放时自动跟随。
- 内容未溢出、无用户消息或在新会话引导页时自动隐藏。
- 提供中英双语界面文案。
- 刻度为原生
button,可Tab聚焦后回车跳转。
这个插件是只读的:不修改 DOM 业务结构、不拦截自身轨道外事件、不修改/删除任何文件。
安装与启用¶
使用下面的命令安装:
dsh plugin --profile web add github:AFAP/dsh-message-minimap
安装完成后,重启 dsh web 生效。
典型用法¶
先准备一个有多条往返消息、且内容已溢出可滚动的会话,然后按下面的步骤验证。
- 打开该会话,查看聊天窗左边缘是否出现一条带刻度的细条。
- 将鼠标悬停在刻度上,查看消息摘要、序号、总数和时间。
- 点击某个刻度,跳转到对应用户消息。
- 点击或按住拖动刻度以外的轨道背景,按比例快速跳转。
- 如果会话太短、没有用户消息,或处于空白新会话页,导航条会自动隐藏。
- 如果宿主路由不可达,插件会降级为只显示已加载消息的刻度。
API 与数据边界¶
宿主仅新增一个只读路由,用于从会话日志提取用户消息摘要:
GET /api/message-minimap-messages?sessionId=<sessionId>
这个路由需要浏览器信任围栏通过,支持 loopback 或 trustedHosts + 同源校验,否则返回 403。
请求参数边界如下:
- 未知
sessionId返回404。 - 缺失
sessionId返回400。 - API 只返回摘要,不返回完整内容。
摘要字段包括:
seq
id
时间
最多 140 字符摘要
是否含图片
插件不写 localStorage / cookie,卸载即无痕。
适用场景与注意¶
适合以下场景:
- 长会话中快速回看自己发过的消息。
- 分页历史尚未渲染时,通过刻度定位未加载的用户消息。
- 用悬停摘要确认目标消息,再用点击跳转。
- 用轨道拖动快速扫读整段会话。
注意以下边界:
- MVP 暂不支持标注 AI 消息、错误、分支。
- MVP 暂不支持按文本搜索刻度。
- MVP 暂不支持持久化开关,导航条始终根据状态自动显示或隐藏。
- 宿主路由不可达,例如
403、404或网络错误时,插件会退回只显示已加载消息的刻度。 - DSH 插件以当前
dsh进程权限运行;安装前应检查源码和 MIT 许可证。
链接¶
- GitHub 仓库:
https://github.com/AFAP/dsh-message-minimap - 目录页:已核实资料未给出具体 URL,这里不列出不确定的地址。