在 DSH Web 界面进行长对话交互时,快速定位历史提问是一个常见痛点。dsh-indexbookmark 插件通过在输入框右侧添加索引按钮,解决这一需求。它由 cuhaitiang0405-collab 维护,开源 MIT 协议。
核心功能¶
问题索引
插件会列出当前会话中所有的 user 或 message,按时间顺序排列并附带全局序号。
点击定位
点击列表中的任意条目,对话界面会自动滚动定位到对应消息,并闪烁高亮 1.6 秒。
搜索过滤
面板内置搜索框,支持大小写不敏感的子串匹配。标题栏会实时显示当前命中的数量与总数。
视图分页
支持自定义每页显示条数(10 / 30 / 50 条)。翻页控件采用 ‹ 1/3 › 格式,提供全局编号。
懒加载与分页
面板仅在打开时拉取数据,单次最多加载 200 条消息。对于更早的消息,可通过“加载更早的问题”按钮按需加载。
会话级内存缓存
同一会话在 60 秒内重复打开,面板会直接从内存读取,实现零请求、零处理的开屏体验。缓存采用 LRU 策略,上限保留 5 个会话。
交互与适配
面板展开/收起带有淡入淡出动画。点击面板外部或按下 Esc 键可收起面板。面板内的滚轮事件被独占,不会触发页面滚动。主题适配方面,所有样式变量均基于 DSH 主题变量(--dsw-alias-*),支持亮暗色自动切换。界面文案支持中英文随界面语言切换。
安装与启用¶
在安装前,请确保环境已安装 dsh 命令行工具和 pnpm(dsh plugin 依赖 pnpm)。
dsh plugin --profile web add github:cuhaitiang0405-collab/dsh-indexbookmark
安装完成后,重启网页版 DSH 即可生效。
dsh web
使用步骤¶
- 打开任意包含历史消息的会话。
- 点击输入框右侧的 ☰ 按钮,面板向上弹出。
- 在搜索框输入关键词过滤问题,点击列表中的条目,对话会自动滚动定位并高亮。
- 若消息较多,可在面板底部调整每页条数,或点击“加载更早的问题”。
- 点击面板外部区域或按
Esc键关闭面板。
适用场景与注意¶
该插件适合需要频繁回顾和跳转长对话中特定提问的开发者。插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
已知限制
- 定位使用文本前缀匹配(前 40 字符),若前缀完全相同,可能定位到较早的一条消息。
- 索引仅收录来源为
append(追加)的消息,与对话实际渲染一致。 - 搜索功能仅覆盖当前已加载页面的问题。
- 缓存为浏览器内存级,刷新页面(F5)后缓存会清空。