dsh-find-history:在側欄按你輸入過的內容跨工作區找會話

前言

在 DSH Web 裏用智能體久了,會話會分散在多個工作區。側欄自帶的搜索按會話標題匹配;若只記得某句提示詞或某段對話裏的措辭,卻想不起會話叫什麼,標題搜索往往幫不上忙。社區插件 dsh-find-history(維護者 sukirk,分類:記憶)在側欄「工作區」標題行增加入口,跨所有工作區檢索消息正文裏你輸入過的內容(可選包含每輪最終回答),在側欄內聯展示結果並跳轉到對應會話。

這是什麼

dsh-find-history 是面向 DSH Web profile 的純 JavaScript 插件:無外部索引服務、零 npm 依賴、無需構建。安裝後在側欄「工作區」標題行注入檢索圖標(放大鏡內含時鐘,位於自帶搜索圖標左側);點擊後在側欄內搜索並定位「忘記的會話」。數據只讀本地 ~/.dsh/sessions/,索引寫入 ~/.dsh/cache/find-history/,檢索走本地同源路由 /dsh-find-history/search,不訪問外網。

與側欄自帶搜索的分工如下:

側欄自帶搜索 dsh-find-history
檢索對象 會話標題 消息正文:你輸入的內容,可選每輪迴答
適用場景 記得會話叫什麼 記得某句話,但忘了它在哪個會話

目錄頁:https://www.skillhub.cn/plugins/sukirk/dsh-find-history
源碼與說明:https://github.com/sukirk/dsh-find-history(MIT 許可證)

核心功能

下面介紹插件在資料中明確寫明的能력。

檢索與交互

  • 默認只索引你的輸入;技能目錄、運行時上下文等 Harness 注入不會混入結果。需要搜回答時勾選「輸出」(輸出池僅收錄每輪最終回答,過程消息與工具調用不入庫)。
  • 中文子串匹配,無需分詞;長關鍵詞無命中時可退化爲按二字切塊匹配。
  • 多關鍵詞用空格分隔:同一條消息內全部命中優先,不足時用部分命中補足。
  • 工具欄:Aa 區分大小寫,ab 整詞匹配,.* 正則(不合法時面板會提示);文件夾圖標按工作區多選篩選,列表圖標按會話分組,排序可按時間(默認)或相關度。
  • 結果鋪在側欄內、關鍵詞高亮;懸停可預覽命中原文。點擊結果打開會話並滾動到首個關鍵詞處高亮(命中消息尚未加載時停在會話頂部);歸檔會話會先自動解除歸檔。鍵盤:↑ ↓ 選擇,Enter 打開,Esc 關閉。每頁 24 條,底部「加載更多」。

性能與索引

  • 資料稱:同一臺機器、同一份數據下,單次檢索中位約 0.7ms(p95 2.8ms);不依賴 FTS 或外部索引。首次啓動在後臺構建約 3MB 側車索引,約 2s 出首批結果、4.7s 建完;再次啓動讀取側車約 3ms。會話日誌增長時從上次字節位置續讀,僅解壓尾部新增幀。
  • 歸檔會話不進索引。

實現要點(便於理解爲何能快)

DSH 將會話寫入 ~/.dsh/sessions/<workspace>/<session-id>/session.v4.jsonl.zstd(多幀 zstd 拼接)。插件掃描幀頭、逐幀解壓並只解析 user/message、assistant/message、session/title 等目標行,生成側車文件;檢索階段在內存中掃描提取文本。包內共 5 個 JS 文件,由 dsh plugin add 直接安裝。

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前應自行查看倉庫源碼與 MIT 許可證,確認符合你的環境與安全要求。

從 GitHub 源碼安裝(官方命令)

dsh plugin --profile web add github:sukirk/dsh-find-history

包爲純 JS、無構建步驟,git 安裝無需授權 allowBuilds。安裝完成後刷新頁面;側欄「插件」頁會出現「查找歷史」,可隨時停用。若標題行圖標未出現:先刷新,再確認「查找歷史」已啓用(入口通過注入 DOM 實現,DSH 側欄結構變更時可能需要插件適配)。

兼容性(資料原文)

  • 適用於 DSH 0.2.1-rc.x 的 web profile,需要 Node ≥ 22(用內置 zstd 逐幀解壓);目前只在 Linux 上實測。
  • 高亮依賴瀏覽器 CSS Custom Highlight API(Chromium 105+);不支持時只滾動定位、不高亮。

徹底卸載:

dsh plugin --profile web remove dsh-find-history && rm -rf ~/.dsh/cache/find-history

也可交由 AI 助手按倉庫內 INSTALL_GUIDE.md 安裝並驗證;提示語示例:

根據 sukirk/dsh-find-history 倉庫中的 INSTALL_GUIDE.md 安裝並驗證該插件。

典型用法

  1. 打開 DSH Web,在側欄找到「工作區」標題行,點擊查找歷史圖標(放大鏡+時鐘)。
  2. 輸入關鍵詞;若記得的是模型最終回答而非你的提示,勾選「輸出」。
  3. 需要縮小範圍時,用工作區篩選或多關鍵詞組合;需要精確匹配時打開 Aa / ab 或使用正則 .*。
  4. 在結果列表中用方向鍵或鼠標選中條目,Enter 或點擊即可打開會話並定位到命中處。

適用場景與注意

適合誰

  • 跨多個工作區開發、會話數量大,經常「記得說過什麼、不記得在哪個會話」的 DSH Web 用戶。
  • 希望本地檢索、不依賴外部索引服務,且能接受首次安裝後數秒內完成側車索引構建的場景。

應注意

  • 插件讀取本地會話日誌並在本地 cache 目錄寫入索引;刪除 ~/.dsh/cache/find-history/ 即清空索引。
  • 索引構建時間隨會話數線性增長;資料給出 10 萬條消息量級檢索約 46ms 的量級說明,日常規模下檢索仍爲毫秒級。
  • DeepSeek Harness 社區插件目錄(如 skillhub.cn)爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;選型時以倉庫 README 與許可證爲準。

結尾

dsh-find-history 補的是「按正文找會話」這一環:與側欄標題搜索互補,側欄內聯完成跨工作區檢索與跳轉。需要安裝命令、性能說明與隱私邊界時,以 GitHub 倉庫 README 爲準。

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

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

小夜