dsh-chat-search:在 DeepSeek Harness 對話裏用 Ctrl+F 查找

前言

在 DeepSeek Harness(DSH)裏做長對話開發時,經常要在已加載的歷史裏定位某段報錯、接口名或配置片段。Harness 桌面版本身沒有對話內查找:按 Ctrl+F 會交給瀏覽器,在會話視圖裏往往沒有任何反應。社區裏曾有同名查找類插件,但它們依賴的 data-chat-anchor-key、data-chat-node-key、data-chat-turn 等 DOM 屬性在 0.2.x 會話視圖裏已經不存在;錨點找不到,跳轉列表就會一直是空的。下面介紹維護者 P-PPJ 的客戶端插件 dsh-chat-search:按當前 data-conversation-* DOM 契約重寫,在不展開摺疊塊、不改變閱讀位置的前提下,提供正文高亮、上一個/下一個、命中列表和邊搜邊漲的計數。

這是什麼

dsh-chat-search 是 DSH 的客戶端(純前端)插件:在當前打開的對話中搜索關鍵詞,用 Ctrl+F / Cmd+F 喚起面板。它需要 DeepSeek Harness 桌面版 0.2.x;裝好後刷新頁面即可,不必重啓應用。源碼與說明見 GitHub:P-PPJ/dsh-chat-search,社區目錄頁:skillhub.cn/plugins/P-PPJ/dsh-chat-search。許可證爲 MIT。當前資料中的包版本爲 1.0.1。

核心功能

插件把搜索範圍限定在聊天區:[data-conversation-region="chat"] 爲對話主體,輸入框所在的 composer 區域會從搜索樹裏剪掉,因此不會搜到你正在輸入框裏打的字。

  • Ctrl+F / Cmd+F:隨時打開搜索(光標在輸入框裏也會攔截瀏覽器原生查找);面板已打開時再按一次會聚焦並全選查詢框。
  • 邊搜邊漲的計數:分片掃描(每幀約 900 個節點或 8ms),長對話不易卡界面,命中數隨掃描遞增。
  • 正文高亮:用 CSS Custom Highlight API 繪製 Range,不向 React DOM 插入 <mark>,減少重排與宿主衝突。
  • 上一個 / 下一個:Enter 或面板 ↓ 爲下一個,Shift+Enter 或 ↑ 爲上一個,到盡頭自動迴繞。
  • 首個命中靠近當前視口:以視口頂部爲錨從近到遠找第一個匹配;只有不可見時才做最小滾動。
  • 命中位置列表:點擊計數(如 3/58)展開列表(最多 300 條),帶片段與命中詞高亮,點條目跳轉;跳轉後可點 ⟲ 回到開始搜索時的閱讀位置(錨定元素而非滾動像素)。
  • 低打擾:不展開摺疊塊、不改動對話內容;點面板外或聊天區不關閉,僅 Esc 關閉並把焦點還回原元素。
  • 中文輸入法:合成期間不誤觸發搜索或 Enter/Esc。
  • 按需補歷史:開頭最多補加載 80 頁 / 12 秒;未完成時面板會說明「只搜索了已加載的部分」。
  • 主題:使用 --dsw-alias-* token,明暗主題隨 Harness 適配。

與瀏覽器原生查找、依賴舊 DOM 的老插件相比,README 中強調本插件在「只在對話裏搜」「按字符高亮」「不展開摺疊、不移動閱讀位置」「計數實時增長」「首個命中在附近」等項上的差異;具體對照表見倉庫 README。

快捷鍵

按鍵 作用
Ctrl+F / Cmd+F 打開搜索;已打開則聚焦並全選
Enter / ↓ 下一個命中
Shift+Enter / ↑ 上一個命中
Esc 退出搜索,焦點還回原處
點擊計數 展開 / 收起命中位置列表

安裝與啓用

推薦通過 Harness 插件安裝器安裝預構建 .tgz(不需要 Git)。安裝器裏「安裝源:中國大陸鏡像源」只改寫 npm 包名請求;填 GitHub 地址或 .tgz 直鏈時不會走該鏡像,需本機能訪問對應 URL 或使用本地文件。

任選一種能連通的填法:

https://github.com/P-PPJ/dsh-chat-search/releases/download/v1.0.1/dsh-chat-search-1.0.1.tgz
https://cdn.jsdelivr.net/gh/P-PPJ/dsh-chat-search@main/dist/dsh-chat-search-1.0.1.tgz

本地已有文件時可直接填路徑,例如 Windows 上:

D:\某個目錄\dsh-chat-search-1.0.1.tgz

若填 https://github.com/P-PPJ/dsh-chat-search 這類倉庫地址,安裝器會按 git 依賴解析,本機須已安裝 Git;否則可能出現 ERR_PNPM_GIT_RESOLVE_FAILED 或「git 不是內部或外部命令」——與網絡無關,可改用上述 .tgz 直鏈或本地文件。

中國大陸訪問 GitHub Release 直鏈不穩定時,README 給出在完整 GitHub 地址前加第三方加速前綴的示例(如 https://ghfast.top/https://github.com/.../dsh-chat-search-1.0.1.tgz);這些是公共鏡像,可用性不由項目保證,也可下載 .tgz 後用本地路徑安裝。

也可在 Harness 內 插件 → 市場 搜索 dsh-chat-search(社區目錄條目,非 DeepSeek / 幻方官方商店)。裝完後刷新頁面生效。

與同名舊包衝突:社區中 helo060228/dsh-chat-search 與本插件 npm 包名相同。安裝本插件前請從 profile 裏刪除舊依賴與 bundle,否則會被覆蓋,且兩個 bundle 會在同一 overlay 槽位爭搶 Ctrl+F。

本地開發還可把倉庫放進 profile 的 package.json 依賴與 dsh.profile.bundles(路徑見 README「方式 B」),再 pnpm install 並刷新;該路徑 README 含 git clone 說明,按需使用。

典型用法

  1. 在 Harness 桌面版打開目標對話,按 Ctrl+F(macOS 爲 Cmd+F)打開搜索面板。
  2. 輸入關鍵詞;觀察計數隨掃描上升,正文中出現高亮。
  3. 用 Enter / Shift+Enter 或面板箭頭在命中間切換;需要概覽時點擊計數打開列表,點某條跳轉。
  4. 跳轉後若要回到搜索前的閱讀位置,點面板上的 ⟲。
  5. 結束時按 Esc 關閉並恢復焦點。

若需搜摺疊塊(Tool 調用、思考過程等)內的文字,須先手動展開;插件有意不自動展開,以免改變閱讀位置。摺疊塊內未渲染進 DOM 的內容無法被搜到。

適用場景與注意

適合:在 0.2.x Harness 長會話裏快速定位已加載消息中的術語、日誌片段或代碼引用;希望查找時不要被「展開全部摺疊」或「從對話頂開始第一個命中」打斷閱讀節奏的場景。

限制(README 明確列出):

  • 命中上限 3000、高亮上限 1200、位置列表 300 條。
  • 依賴 CSS Custom Highlight API(Chromium 105+,桌面版滿足);不支持時仍可跳轉,但無染色。
  • 綁定當前 data-conversation-* DOM 契約;Harness 大版本改結構時需更新插件。
  • 插件以當前 DSH 進程/頁面上下文運行;安裝前請自行查看 源碼 與 MIT 許可證,確認符合你的環境與安全要求。

結尾

dsh-chat-search 補上了 Harness 0.2.x 對話視圖裏可用的 Ctrl+F:高亮、導航、列表與實時計數,並儘量保持「不展開、不挪位」。需要安裝地址與故障對照時,以倉庫 README 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/P-PPJ/dsh-chat-search
  • GitHub:https://github.com/P-PPJ/dsh-chat-search
羽毛球分组比赛记分
小程序二维码

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

小夜