前言¶
在 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 說明,按需使用。
典型用法¶
- 在 Harness 桌面版打開目標對話,按
Ctrl+F(macOS 爲Cmd+F)打開搜索面板。 - 輸入關鍵詞;觀察計數隨掃描上升,正文中出現高亮。
- 用
Enter/Shift+Enter或面板箭頭在命中間切換;需要概覽時點擊計數打開列表,點某條跳轉。 - 跳轉後若要回到搜索前的閱讀位置,點面板上的
⟲。 - 結束時按
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