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
羽毛球分组比赛记分
小程序二维码

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

小夜