前言¶
DeepSeek Harness (DSH) Web 端左側邊欄的搜索框,默認只能匹配會話標題和工作區名稱。這是因爲官方全文索引(@deepseek-ai/dsh-session-query-sqlite)在 web 組合中是可選能力,且默認配置爲不開啓。
本插件通過在 profile 的 cordis.patch.yml 中覆蓋配置項,開啓 SQLite FTS5 全文索引;同時重寫搜索過濾邏輯,支持按時間範圍和內容來源(用戶消息 / 機器人回覆 / 項目名)篩選結果。
是什麼¶
這是一個 DSH 插件,用於增強 Web 端側邊欄的會話搜索能力。它提供本地 SQLite 索引,支持按關鍵詞檢索歷史會話正文,且零第三方依賴。
- 維護者:CHIP-PHILO-GH
- 許可:MIT
核心能力¶
- 自定義搜索範圍:在搜索結果上方實時調整時間範圍(全部 / 1 / 3 / 7 / 30 天)與內容來源(我說的話 / DSH 的回覆 / 項目名)。
- 持久化設置:用戶的選擇會寫入官方設置文檔或 localStorage,重啓後仍然保留。
- 命中片段顯示:將單行省略的命中片段改爲顯示兩行原文。
- 本地索引:使用 SQLite FTS5,支持首次搜索時才建索引,避免啓動時阻塞。
- 索引預熱:默認開啓,在啓動後延遲 45 秒後臺運行一次搜索,確保索引就緒。
- 零第三方依賴:僅依賴 DSH 官方模塊。
安裝與啓用¶
安裝需要修改 profile 配置目錄(記作 <DSH_HOME>,默認 %USERPROFILE%\.dsh)下的三個文件,修改後需重啓 dsh web。
- 掛載插件目錄
將插件目錄(記作<REPO>)掛載到 profile 的node_modules下。Windows 上建議使用 junction 以節省空間:
$modules = Join-Path $env:USERPROFILE '.dsh' 'profiles\web\node_modules'
New-Item -ItemType Directory -Force -Path $modules | Out-Null
New-Item -ItemType Junction -Path (Join-Path $modules 'dsh-session-search') -Target '<REPO>'
- 更新 package.json
在 profile 的package.json中添加依賴和 bundle 引用:
{
"dsh.profile.bundles": ["dsh-session-search"],
"dependencies": {
"dsh-session-search": "link:<REPO>"
}
}
- 開啓全文索引
在 profile 的cordis.patch.yml中覆蓋官方索引配置,設置openAt: first-search:
- id: session-query-sqlite
config:
path: '<DSH_HOME>\profiles\web\session-search.db'
openAt: first-search
配置與用法¶
安裝完成後,側邊欄搜索框將具備全文檢索能力。
-
使用範圍控件
展開側邊欄搜索框並輸入關鍵詞,結果上方會出現「範圍」控件。點擊可調整:- 時間範圍:全部 / 1 / 3 / 7 / 30 天。
- 搜索內容:勾選「我說的話」、「DSH 的回覆」或「項目名」。
- 這些修改無需重啓,立即生效。
-
僅保留正文匹配
取消勾選「項目名」,側邊欄將只顯示正文命中的結果,過濾掉僅匹配名稱的行。 -
重建索引
刪除<DSH_HOME>\profiles\web\session-search.db文件,下次搜索時會自動重新建索引。
測試與驗證¶
插件包含離線驗證臺,不需要 DSH 運行或聯網即可檢查代碼與配置一致性:
node test.mjs
該命令會執行語法檢查、宿主與客戶端驗證臺,並覈對 README 文檔與配置表的一致性。
注意事項¶
- 插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證。
- 需要依賴 DSH 官方模塊,不依賴第三方庫。
- 官方全文索引在 web 組合裏是可選能力,本插件通過覆蓋
cordis.patch.yml的openAt來啓用。
參考資料¶
- 生態目錄:https://www.skillhub.cn/plugins/CHIP-PHILO-GH/dsh-session-search
- GitHub 倉庫:https://github.com/CHIP-PHILO-GH/dsh-session-search