dsh-find:在 DSH 會話內搜完整歷史並逐處跳轉

前言

在 DeepSeek Harness(DSH)里長對話很常見:上下文被摺疊、未加載輪次不在當前視口裏,只靠瀏覽器自帶的「頁內查找」往往只能掃到已渲染區域,也搜不到尚未加載的助手或用戶消息。社區插件 dsh-find(倉庫 iamwaller/dsh-find)針對的是另一類需求:在持久化的完整會話日誌裏檢索,在已渲染的正文裏高亮每一處命中,並用回車在命中之間前進或後退;跨越「未加載」邊界時會通過宿主加載對應輪次。

下面介紹它是什麼、如何安裝啓用,以及用法與限制。同類名稱的 dsh-conversation-find 搜的是當前視圖 DOM;本插件只搜持久化會話日誌,二者定位不同。

這是什麼

dsh-find 是維護者 iamwaller 發佈的 DSH 插件(npm 包名 dsh-find,當前資料中的版本爲 0.2.1,許可證 MIT)。在社區目錄中歸類爲「記憶」相關能力:在單次 DSH 會話內查找關鍵詞,覆蓋完整會話歷史(含尚未加載的輪次),在轉錄區域高亮所有命中,並支持快捷鍵與列表跳轉。

插件幾乎無額外配置:在 Plugins 頁面裏 Find in conversation 卡片上的 conversation-find 行開關,是唯一設置項。

核心功能

資料中已覈實的能力如下。

  1. 入口與快捷鍵
    - 會話標題欄出現搜索圖標。
    - Desktop:Ctrl/Cmd+F。
    - 純 Web / 瀏覽器:Ctrl/Cmd+Alt+F(避免與瀏覽器自帶查找欄衝突)。

  2. 檢索範圍與方式
    - 輸入查詢後,經宿主 sessionQuery.filterEvents 掃描持久化會話日誌(資料寫明不使用 SQLite FTS)。
    - 在用戶消息與助手消息(user/message、assistant/message)中返回片段;帶約 250 ms 防抖。
    - 結果列表展示角色、時間與摘要;最多 100 條,超出時會有「僅顯示前 100 條」提示。

  3. 高亮與導航
    - 當前窗口內已渲染的轉錄正文裏,每一處匹配都會上色;當前命中更深,計數形如 3/17。
    - Enter 下一處,Shift+Enter 上一處;若需跨越未加載邊界,會調用 session.loadThrough(seq) 加載對應輪次。
    - 點擊某條結果會加載該輪、跳到該消息內第一處命中並閃爍提示。
    - Esc 關閉查找並清除高亮繪製。

  4. 實現要點(便於排障)
    - 客戶端註冊會話頭工具區、overlay 與快捷鍵路由 find.inConversation。
    - 宿主提供 POST /api/dsh-find/search,按文本、surface: current 與消息類型過濾事件。
    - 頁內高亮優先使用 CSS Custom Highlight API(::highlight(dshfind-hit) / ::highlight(dshfind-current)),不直接改動 React 持有的 DOM;Chromium 105+ 支持該繪製,否則回退爲滾動並閃爍消息。

安裝與啓用

安裝命令以 README 原文爲準:

dsh plugin --profile <profile> add dsh-find

也可在 DSH Desktop / Web 中打開 Plugins → Add plugin,輸入 dsh-find,選擇 Enable now,然後重啓或重新加載。

啓用後打開 Plugins,確認 Find in conversation 卡片裏 conversation-find 行爲開啓。關閉該行會移除標題欄圖標、查找欄與快捷鍵,並註銷宿主路由。

環境與權限說明: package.json 要求 Node >=20、DSH ^0.2.2-rc.1。插件在當前 DSH 進程權限下運行;安裝前建議閱讀倉庫源碼與 MIT 許可證,確認符合你的使用環境。DSH 生態強調「一切皆插件」;社區目錄站點爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

典型用法

  1. 在會話中點擊標題欄搜索圖標,或按上述快捷鍵。
  2. 輸入要查找的字符串;稍候結果列表出現。
  3. 在正文中查看全局高亮,用 Enter / Shift+Enter 在命中間移動。
  4. 需要直接定位到某輪對話時,在結果列表中點擊對應項。
  5. 結束時按 Esc 關閉並清除高亮。

適用場景與注意

適合: 需要在同一會話裏回溯較早輪次、覈對模型或自己說過的話、在長上下文中定位某配置名或接口名等——且希望檢索依據是完整日誌而非僅當前已加載片段的開發者。

限制(資料原文):

  • 每次查詢都會重放會話日誌;結果上限 100 條。
  • 跳轉要求目標輪次可通過 loadThrough 加載,且消息出現在當前聊天窗口;否則可能提示輪次已加載但無法在界面定位消息。
  • 高亮僅覆蓋已渲染消息;摺疊進 process/reasoning 分組的節點不參與高亮。
  • 依賴宿主 sessionQuery 服務;不可用時搜索會報告無法進行全會話搜索(501)。
  • 無「僅當前視圖」模式,也無獨立配置文件。

結尾

dsh-find 把「會話內查找」建立在持久化日誌之上:未加載歷史仍可被搜到,命中在正文逐處高亮,回車可逐處跳轉。如需查看分類與簡介,可打開社區目錄頁 iamwaller/dsh-find;源碼與完整說明見 GitHub 倉庫。

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

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

小夜