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 为准。

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

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

小夜