dsh-chat-find:DSH 會話內中文友好的字面量查找

前言

在 DeepSeek Harness(DSH)裏找一句說過的話,常見三條路都不順手:瀏覽器自帶的 Ctrl+F 只能搜當前 DOM,長會話裏未渲染的歷史行搜不到;DSH 自帶的跨會話搜索走 SQLite FTS5 的 unicode61 分詞器,兩個漢字的詞經常 0 命中;純靠滾動肉眼找,一條長回覆就佔幾屏。維護者 ye001991g 做的客戶端插件 dsh-chat-find(倉庫 ye001991g/dsh-chat-find)針對的是當前會話內的字面量精確查找,並可選切到跨會話模式;不修改模型請求、不寫會話日誌,Host 側 apply() 爲空實現。

這是什麼

dsh-chat-find 是 DSH 的客戶端插件(分類:客戶端),包名 @local/dsh-chat-find,版本 1.0.0,MIT 許可證。它在 Web 界面會話頭部動作區增加放大鏡入口,在已渲染的消息行上做大小寫不敏感的子串匹配;中文不依賴 FTS5 分詞。跨會話搜索勾選後複用宿主 session.search(中文仍受 FTS5 限制,面板會說明)。目錄頁:skillhub.cn 插件頁。

核心功能

當前會話:字面量掃描

插件從當前已渲染的消息行取文本,用正則做真實子串匹配,輸入帶 150 ms 防抖的實時刷新。結果形如「N/M 處 · 共 K 次」,每條帶輪次號與摘要。底部會標明已掃描行數,以及是「更早歷史未載入」還是「整個會話已載入」;未載入時需點「載入更早」再重掃。

定位與高亮

DSH 聊天區存在嵌套滾動:外層 [data-conversation-scroll],工具調用展開區 [data-step-process-body] 還有內層滾動。插件用匹配文字的 Range.getBoundingClientRect(),從內到外逐層滾動容器,把匹配點落到視口垂直中線。高亮使用 CSS Custom Highlight API(CSS.highlights + Range),不改 DOM,避免 React 文本節點被 <mark> 包裹後流式更新異常;不支持該 API 時降級爲只列結果、不畫高亮。流式輸出時點擊結果會按 data-chat-anchor-key 重查 DOM 並重建 Range。

跨會話開關

勾選「搜索所有歷史會話」後走 DSH 自帶搜索;中文漏詞問題仍在宿主 FTS5 側,當前會話模式不受影響。該開關偏好記在 localStorage。

信任邊界(README 自述)

源碼無 fetch / XHR / WebSocket;只存一個 localStorage 偏好;不改模型請求與會話數據。

安裝與啓用

前提:DSH 桌面版;README 寫明在 DSH 0.2.2-rc.1 上 Windows 已實測,macOS/Linux 未實測。需已有 profile(常見爲 ~/.dsh/profiles/desktop,以設置裏顯示爲準)。

方式 A:安裝本地 bundle(推薦)

對應宿主能力 plugin_manager install_bundle,參數爲插件目錄的絕對路徑(README 說明不同版本的菜單名可能不同,需在插件頁使用「安裝本地插件」等等價入口):

  1. 獲取源碼:git clone https://github.com/ye001991g/dsh-chat-find.git
  2. 在 DSH 中對 dsh-chat-find 目錄執行本地 bundle 安裝(絕對路徑)
  3. 插件列表確認 chat-find 爲運行中
  4. 重啓 DSH(首次裝載需要)
  5. 打開任意會話,右上角應出現放大鏡

方式 B:PowerShell 腳本(Windows 批處理備選)

需 Node 22+ 與 PowerShell;腳本優先使用 DSH 自帶 Node。

git clone https://github.com/ye001991g/dsh-chat-find.git
cd dsh-chat-find
powershell -ExecutionPolicy Bypass -File .\install.ps1 install

profile 名不是 desktop 時加 -ProfileName <你的 profile 名>。裝完同樣需重啓 DSH 一次。卸載:

powershell -ExecutionPolicy Bypass -File .\install.ps1 uninstall

README 提醒:不要往 cordis.patch.yml 裏重複 insert,以免同一 slot id 註冊兩次報錯(詳見倉庫 INSTALL.md)。

裝完看不到放大鏡

按 README 四步排查:設置裏插件開關是否開啓;是否裝進了正在使用的 profile;是否已重啓;開發者工具 console 是否有 [chat-find] 報錯。

典型用法

  1. 打開會話,點右上角放大鏡。
  2. 輸入要查的文字(支持中文;空格分詞;大小寫不敏感)。
  3. 用 ↑ / ↓ 或在結果列表中點擊條目跳轉;視口應對準匹配文字。
  4. 若底部提示「更早歷史未載入」,先「載入更早」再繼續搜。
  5. 需要搜全部歷史會話時勾選跨會話(中文Recall 以宿主 FTS5 爲準,面板有說明)。

適用場景與注意

適合:在長對話裏用中文或英文短語做「當前已載入內容」的精確查找,並要跳轉到嵌套滾動區內的具體匹配點。

注意:

  • 插件以當前 DSH 進程權限在本地 Web 客戶端運行;安裝前宜自行審閱 GitHub 源碼 與 MIT 許可證。
  • 摺疊區(hidden="until-found")內文本暫不參與掃描。
  • 小窗口(高 ≤ 860px)時匹配可能在行尾被浮層面板遮擋。
  • 跨會話模式的中文仍可能漏詞;精確中文以當前會話字面量模式爲主。
  • DSH 社區目錄 skillhub.cn 爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-chat-find 補上的是「會話裏已渲染文本」的中文字面量查找與像素級滾動定位,與瀏覽器 Ctrl+F、宿主 FTS5 跨會話搜索形成互補。進一步瞭解安裝細節與開發者說明見倉庫 README 與 INSTALL.md;插件條目見 目錄頁,源碼見 GitHub。

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

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

小夜