前言¶
在 DSH 的 web 会话中,长对话、流式输出和分页历史会让普通页面查找不够用:浏览器原生查找会把侧边栏、composer 和页面 UI 一起搜进来,也不适合在模型继续输出时跟随当前会话。
下面介绍 beijingwahw 维护的 dsh-conv-search。它是一个 DSH 客户端插件,把 Ctrl/Cmd+F 限制在当前活动会话滚动区内,高亮已渲染文本,并支持按匹配项前进、后退。
插件定位¶
- 安装名:
beijingwahw/dsh-conv-search - 维护者:
beijingwahw - 分类:客户端
- 许可证:
MIT - 作用范围:仅浏览器端读取已渲染会话文本;不接触 prompt、message、schema、stream、tool 或 provider 请求
- 仓库:https://github.com/beijingwahw/dsh-conv-search
核心功能¶
搜索范围¶
插件在当前对话滚动区内搜索,匹配:
- 用户消息
- 助手文本
- 工具卡片
- 分页历史
插件会排除 composer 座位和自身搜索栏,避免草稿文本产生误匹配。
搜索范围仅限活动会话栏;侧边栏会话标题和设置页不在范围内。
高亮与状态¶
插件使用 CSS Custom Highlight API 绘制高亮,不修改 React 管理的 DOM。
无结果时,计数会变红,搜索栏边框给出反馈,并有一次性抖动提示;该提示遵循 prefers-reduced-motion。
流式输出或加载旧页时,插件会防抖重搜,并保持当前滚动位置。
匹配选项¶
插件支持两个匹配选项:
Aa:大小写匹配ab:全词匹配
匹配项跳转¶
插件提供 n / total 计数,并支持 wrap-around 前进后退:
Enter、F3、Ctrl/Cmd+G:跳到下一个匹配Shift+Enter、Shift+F3、Ctrl/Cmd+Shift+G:跳到上一个匹配
ArrowUp / ArrowDown 用于浏览查询历史。
头部搜索按钮通过下面的会话头部插槽注册:
conversation.session.header.actions
安装与启用¶
安装前需要 Node.js ≥ 22 和 pnpm。
如果执行插件安装时提示 pnpm 未识别,先安装 pnpm:
npm install -g pnpm
然后添加插件到 web profile:
dsh plugin add beijingwahw/dsh-conv-search --profile web
重启 web 服务以加载插件:
dsh web
如果 dsh web 出现 EADDRINUSE :3080,说明旧进程仍占用 3080 端口。先停止旧进程,或者改用其他端口启动:
dsh web --port 3081
验证插件是否挂载:
dsh --profile web --dump-config | grep conv-search
典型用法¶
1、用 Ctrl/Cmd+F 或会话头部搜索图标打开搜索栏。
2、输入关键词;输入即搜索,debounce 为 120 ms。
3、按 Aa 或 ab 切换大小写匹配或全词匹配。
4、按 Enter 或 Shift+Enter 在匹配项之间前进或后退。
5、用 ArrowUp / ArrowDown 回看最近的查询历史。
6、按 Esc 关闭搜索栏并清除所有高亮。
浏览器要求与限制¶
需要支持 CSS Custom Highlight API 的浏览器:
- Chrome/Edge 105+
- Safari 17.2+
- Firefox 132+
在不支持的浏览器中,搜索栏仍可计数匹配项,但不绘制高亮。
匹配仅支持纯文本:
- 不支持正则
- 不支持变音符折叠
- 不支持跨节点短语匹配
搜索栏位置固定为:
top: 64px; right: 24px
当前不可拖拽。
适用场景与注意¶
适合在 DSH web 会话中查找当前对话内已渲染文本的人,例如长会话、工具卡片和分页历史中的重复文本。
该插件仅读取已渲染会话文本,不接触 prompt、message、schema、stream、tool 或 provider 请求。但它会作为客户端插件运行在当前 dsh 进程权限下,安装前建议检查源码、依赖和许可证。
本插件许可证为 MIT。
结尾¶
dsh-conv-search 的核心价值是把浏览器查找收敛到当前 DSH 会话:范围明确、能跟随流式输出、支持 n / total 跳转。
仓库:https://github.com/beijingwahw/dsh-conv-search
目录页 URL 未出现在已核实资料中。