dsh-session-search:DSH 桌面跨會話消息搜索

前言

在 DSH 桌面裏做智能體開發,會話會按工作區不斷累積。想找回某次對話裏說過的一句話,往往只能在當前會話裏翻聊天記錄,或逐個打開歷史會話手動查找。社區插件 dsh-session-search(維護者 Augl-l,分類:記憶)面向這一問題:在本地對所有會話做消息級全文檢索,結果以緊湊的「輪次」行展示,並支持跳轉到原會話高亮命中位置。索引落在本機 SQLite,不上傳、不改動原始 session 日誌。

這是什麼

dsh-session-search 是 DSH 桌面端的跨會話消息搜索插件。側欄提供 Session search 入口,會話標題旁還有 Search history 快捷按鈕。首次打開會在後臺建立 FTS5 索引;建庫過程中已索引內容可先搜。項目在 GitHub 上爲 Augl-l/dsh-session-search,許可證 MIT;目錄頁見 SkillHub 插件頁。

核心功能

下面介紹 README 中已說明的能力,均可在本地完成。

檢索範圍與排序

  • 默認只搜 You 與 Assistant 文本;需要時可打開 Tools、Reasoning、System(索引裏已有,默認僅過濾不展示)。
  • 中文單字、詞、Markdown 源碼與 LaTeX 公式均可搜。
  • 排序可在 Relevance(BM25 + 關鍵詞位置、來源類型、時間衰減)與 Newest 之間切換。

結果展示與跳轉

  • 每條結果對應一輪對話(類似微信式一行):標題、輪次號、日期、一條高亮摘要;同一輪多處命中可展開。
  • 首屏 5 輪;底部 View all 在同一次查詢下擴展到 200 輪,不重新跑查詢。
  • 點擊行會打開對應會話、滾到該輪;若命中在摺疊的工具調用或 reasoning 塊內會先展開再高亮。若界面本身不渲染該文本(注入的系統上下文、被截斷的工具卡片等),會用 toast 說明,避免誤高亮。
  • 查詢詞、篩選、排序、展開狀態與滾動位置在「跳進會話再返回」後會保留。

本地索引

  • 使用 SQLite FTS5(trigram),路徑約爲 ~/.dsh/storages/session-search.sqlite;增量更新並自動 compact。README 舉例約 2.2 萬條消息對應索引體量約 40 MB。
  • 用戶/助手正文走 FTS;工具、推理、系統類文本在啓用篩選時用 LIKE 子串掃描,索引更小,但這類搜索約慢 60–80 ms。
  • 索引損壞會自動重建;單個不可讀會話不會阻斷建庫。面板內可 Rebuild index;刪除該 sqlite 文件亦可清空衍生索引,不影響 session 日誌(只讀打開)。

架構簡述

session logs ──> Host indexer ──> SQLite (messages + FTS5 trigram)
                                        │
                              HTTP  /.dsh-session-search/*
                                        │
                            Client panel (Cordis slots)

Host 通過 sessionPersistence / sessionQuery 讀事件;Client 註冊側欄面板與會話頭快捷入口,經同源 HTTP 訪問上述路由。

環境與依賴

官方寫明在 DSH desktop 0.2.1-rc.3 上測試。需要宿主服務 webServer、sessionPersistence / sessionQuery,以及 Node 的 node:sqlite。缺任一項時插件仍可加載,面板會說明哪些能力不可用。跳轉/高亮依賴 DSH 聊天 DOM 約定,其他版本可能需要插件更新。

安裝與啓用

從倉庫 Release 下載 .tgz,任選其一:

插件管理器

  1. 打開 DSH → Plugins → Add → Local path。
  2. 選擇 .tgz(若管理器只接受文件夾,可先解壓再選目錄)。
  3. 重啓 DSH 或等待熱重載。

CLI

dsh plugin --profile desktop add ./dsh-session-search-1.1.1.tgz

啓用後從側欄打開 Session search;首次打開後臺建索引並顯示進度。

典型用法

  1. 輸入關鍵詞回車;單個漢字也可作爲查詢。
  2. 按需勾選 Tools / Reasoning / System 來源篩選。
  3. 在 Relevance 與 Newest 間切換排序。
  4. 結果過多時用 View all 展開至 200 輪。
  5. 點擊某行進入會話定位;搜完返回搜索面板,狀態仍保留。

適用場景與注意

適合:長期在 DSH 桌面積累多工作區、多會話的開發者,需要在本地快速定位歷史表述、代碼片段或公式,且希望數據不出本機。

注意:

  • 插件以當前 DSH 進程權限運行;安裝前請自行查看源碼與 MIT 許可證,確認可接受索引文件存放敏感消息文本。
  • 極舊 session 日誌格式可能被宿主跳過,面板會顯示跳過數量。
  • 超大會話跳轉到很舊的輪次時,加載歷史可能需數秒。
  • 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本插件爲社區維護項(GitHub 星標數見倉庫頁,撰寫時資料爲 2)。

結尾

dsh-session-search 把「跨會話找一句話」做成側欄裏的本地 FTS 檢索:緊湊輪次結果、相關性排序與跳轉高亮,索引可重建、日誌只讀不改。若你需要在 DSH 桌面裏檢索歷史對話,可從 Release 安裝 1.1.1 包並按上文 CLI 或本地路徑啓用。

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

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

小夜