dsh-plugin-question-index:DeepSeek Harness 会话问题索引与定位插件

前言

DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在长会话中定位特定提问,尤其是存在运行中插话或需要切换标签页时,操作较为繁琐。dsh-plugin-question-index 插件在主聊天区左缘提供问题刻度轨道,点击提问即可自动滚动定位。

核心功能

  1. 问题刻度轨道:固定在主聊天区左缘,每个用户问题对应一条短横线。轨道内可独立滚动,不撑爆页面。
  2. 仅对话可见:只在「对话」Tab 展示,切换到「轨迹」等其他页签时自动隐藏。
  3. 原文浮层:鼠标移入某条横线时,该线平滑延长,并在右侧显示完整问题原文。原文浮层可独立滚动阅读。
  4. 索引列表:按顺序列出当前会话全部提问(含运行中插话发送的「插话」,带角标)。
  5. 点击定位:点击问题后,会话内容平滑滚动到该提问所在行(约视口上方 1/4 处)。
  6. 键盘访问:Tab 聚焦横线后显示摘要,Enter / Space 定位到对应问题。

安装与启用

使用官方安装命令添加插件:

dsh plugin --profile web add github:antlordGit/dsh-plugin-question-index

安装完成后重启 dsh web(或等待补丁层热重载)。

注意:React 不需要单独安装。客户端 bundle 里的 require("react") 由 DSH shell 的模块表提供。插件只做加法,注册 shell.overlay 的一个列表条目,不替换任何产品 UI。

典型用法

  • 快速定位:点击左缘任一问题横线,聊天内容会自动平滑滚动到该提问位置。
  • 查看原文:鼠标移入某条横线,横线延长并在右侧显示完整问题原文,方便在长对话中快速回忆上下文。

工程实现要点

该插件通过增量槽位和轻量 DOM 桥接实现交互:

  • 界面挂载:使用 slots.inject('shell.overlay', …) 注册全局浮层列表条目,随 Fiber 卸载自动清理。
  • 浮层托管:根节点设置 pointer-events:none,仅面板/按钮恢复 pointer-events:auto 以保证交互。
  • 数据来源:使用全局标准 props useSessions 获取 sessions.binding(id).session,数据零 Host RPC、零持久化。
  • 跳转锚点:利用聊天节点 key 上的 data-chat-anchor-key 属性,与产品滚动恢复契约对齐。
  • 视图切换:点击定位时,若当前不在「对话」Tab,会自动点击头部第一个标签按钮(order=0)切回对话。
  • 样式:引用 --dsw-alias-* 主题令牌(如 --dsw-alias-bg-overlay、--dsw-alias-brand-primary),支持明暗主题自动适配。

适用场景与注意

该插件适合需要频繁查看长对话上下文、快速定位特定提问的场景。

注意:本插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

总结

该插件通过在左侧提供轻量级问题刻度,解决了长会话定位难的问题。更多详情可查阅社区目录或GitHub 仓库。

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

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

小夜