前言¶
DSH 的理念是「一切皆插件」。隨着工作區變多,歷史會話分散在各個項目裏,想找回一句幾星期前說過的話,通常只能靠回憶關鍵詞再逐個翻會話列表,成本很高。dsh-search-chat 做的就是這件事:在 DSH 的右側欄提供會話搜索,跨全部工作區按字面匹配聊天記錄,點一下就能跳到原消息。
它由 QwQ2333333-QaQ 維護,在社區插件目錄的分類是「記憶」,當前版本是 0.4.1,許可證 MIT。下面介紹這個插件的定位、安裝方式和使用細節。
這是什麼¶
這是一個 DSH 宿主插件,入口在右側欄。它本身不建語料、不下模型、不調用外部 API,數據來自 DSH 官方的 sessionQuery 會話索引。目標是讓開發者在多工作區環境下快速定位歷史消息,而不是做語義理解。
環境要求¶
需要 DSH 0.2.2-rc.1 及以上,依賴右側欄擴展點與 sessionQuery 服務。Node 要求 >=20。桌面端和 dsh web 都可以使用,插件不改動宿主文件或其它插件。
核心功能¶
- 跨工作區搜索:覆蓋所有工作區的歷史會話。
- 三種字面匹配:整段短語、全部詞包含、任一詞包含;中英文和代碼片段都可以。
- 結果校驗:先走索引找候選,再對每條命中回讀原文做字面校驗;索引漏檢時自動退化爲逐會話字面掃描。
- 按時間排序:支持正序和倒序,結果按天分組。
- 點擊跳轉:打開會話、加載到目標 seq、滾動到匹配消息並高亮 2.4 秒;失敗會明確提示。
- 日期時間軸:選一個日期後加載該日 ±3 天的聊天記錄,滾動到邊界繼續按 3 天加載;有關鍵詞時只在窗口內過濾。
- 月曆可用性:沒有對話的日期變暗且不可選。
- 搜索歷史:聚焦輸入框自動彈出,最近優先,可重搜、單刪、清空。
- 本地緩存:相同查詢第二次直接讀緩存,狀態欄顯示「緩存」。
- 外觀可自定義:高亮底色/文字色/加粗、面板背景與不透明度、面板文字色,帶預設與恢復默認。
- 中英文文案。
安裝與啓用¶
本機開發時,在 package.json 所在目錄用 DSH 的插件管理器安裝絕對路徑:
plugin_manager install_bundle target = D:\Deepseek Workpalcae\dsh-search-chat
安裝完成後如果右側欄沒有立即出現,重啓 DSH 客戶端,因爲宿主路由與客戶端模塊在啓動時裝載。
發佈到 npm 之後,按包名安裝:
plugin_manager install_bundle target = dsh-search-chat
卸載用:
plugin_manager remove_bundle target = dsh-search-chat
典型用法¶
- 右側欄點擊「會話搜索」,或右側欄指南頁裏的同名入口。
- 輸入要查找的文字,默認「整段匹配」,也可以切「全部詞」或「任一詞」。
- 需要時切換範圍與時間順序。
- 點擊結果:插件會打開該會話、加載歷史並滾動到匹配消息附近,同時閃爍高亮。
狀態欄會顯示命中總數、耗時,以及這次結果來自「索引」還是「掃描」。
外觀與高亮設置¶
點擊標題右側的設置圖標展開「外觀設置」。默認命中關鍵詞底色是 #ffd54f(亮黃),附 1px 深色描邊;高亮文字默認按底色亮度自動取黑或白以保證對比度;關鍵詞加粗默認開啓。
面板背景默認透明,繼承宿主主題;想更好讀可以選一個顏色並用滑條調整不透明度。選了深色面板背景時建議把面板文字改成淺色。預設有「默認 / 高對比 / 柔和」,底部的「恢復默認」回到透明背景加亮黃高亮。
改動立即生效,約 0.5 秒後自動保存到 $DSH_HOME/.dsh-search-chat.json,刷新頁面、重啓客戶端、重裝插件都會保留。保存失敗時界面提示「僅本次生效」,不影響搜索。
日期時間軸、搜索歷史與本地緩存¶
日期時間軸的月曆依據最近 100 個會話的事件時間聚合,沒有對話的日期變暗不可點。選中日期後加載該日 ±3 天記錄並按時間正序排列,列表頂部和底部有「加載更早 3 天 / 加載更晚 3 天」,滾動到邊緣也會自動加載。有關鍵詞時只在窗口內做字面匹配,清空日期則回到全局關鍵詞搜索。
搜索歷史按最近使用時間排序,點擊任一項回填條件並立即搜索,相同條件會命中緩存;鼠標懸停顯示單條刪除;底部「清空歷史」需要二次確認。歷史保存在 $DSH_HOME/dsh-search-chat/history.json。
關鍵詞搜索和時間窗口結果都會按「請求鍵 + 語料簽名」緩存。同一查詢第二次直接讀緩存,狀態欄顯示「緩存」。語料簽名由會話數、最新會話時間和當天日期組成,變化時自動失效;窗口包含今天時只用內存緩存,避免讀到活動會話的舊快照。緩存文件在 $DSH_HOME/dsh-search-chat/cache/,自動做 LRU 清理,上限 200 個 / 20MB。
適用場景與注意¶
適合經常在多個 DSH 工作區之間切換、需要靠關鍵詞找回歷史消息的開發者。如果只是想找「大意」,字面匹配不適用,得換幾個關鍵詞;語義檢索在路線圖中,默認關閉。
有三個已知限制需要注意。第一,關鍵詞搜索固定最多掃描 80 個會話、每會話 8 條命中;日期時間軸每個窗口最多 500 條、每會話 200 條,超出會截斷,用日期窗口可以顯著縮小範圍。第二,跳轉優先按命中片段在聊天行裏定位,其次按輪次定位;如果當前會話打開的不是「聊天」視圖,會提示無法定位。第三,跳轉使用聊天行的 data-chat-* 屬性,這是產品內部屬性而非公開 API,選擇器集中在 lib/client.js 的跳轉區,DSH 升級後只需調整這一處,細節見 docs/API-NOTES.md。
關於運行權限:插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證(MIT)。隱私方面,搜索、歷史和緩存完全在本機完成,沒有遙測、沒有外部請求,不讀取或返回任何憑據;宿主路由只接受迴環地址請求,拒絕跨站請求和異源 Origin,查詢內容與結果不寫入日誌。
結尾¶
dsh-search-chat 解決的問題很具體:多工作區下怎麼快速找回一句聊天記錄。它用索引加字面校驗的方式保證結果可信,又用日期時間軸、搜索歷史和本地緩存把翻歷史這件事做順。如果你的工作區已經開始堆積會話,可以從下面的入口安裝試用。
- 目錄頁:https://www.skillhub.cn/plugins/QwQ2333333-QaQ/dsh-search-chat
- 倉庫:https://github.com/QwQ2333333-QaQ/dsh-search-chat
需要說明的是,社區目錄是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,它不是官方應用商店。