前言¶
在 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 未出現在已覈實資料中。