dsh-session-search:按内容时间检索全部会话正文

前言

在 DeepSeek Harness(DSH)里,侧边栏已经接了一条会话搜索链路,但开箱配置下往往只能对上标题和工作区名称,正文里的用户提示、模型回复和工具输出很难靠同一套能力稳定找回。中文场景里,若底层用 FTS5 的 unicode61 分词,整段汉字常被当成一个 token,短关键词可能完全匹配不到;即便打开内容检索,公开接口返回的命中项也常按相关度排序,单条记录上的时间不会在那一层保留,「按某条内容的时间从新到旧排结果」在官方 remote 上做不到。

dsh-session-search(维护者 Victue,社区分类:记忆)在宿主机上自建索引:增量解析各会话 transcript,把每条记录的文本与其 time 绑在一起,用子串匹配(中英文都适用),再按命中记录的时间排序。无需改 profile 里的 cordis.patch.yml 去打开出厂关闭的内容后端。

这是什么

一句话:面向 DSH 的 bundle 插件,全局搜索所有会话正文(不限标题),结果按命中那条记录的时间从新到旧排列。

核心功能

全局会话内容搜索

插件在侧栏占用与「插件」「计划任务」同级的一级入口:放大镜图标 + 主区域全宽结果页(在二者之间,order 5)。任意界面可用 Ctrl/Cmd+Shift+F 打开(桌面 profile 注册;Web profile 上与出厂 session.fork 的快捷键可能冲突,见下文注意)。

搜索行为(README 已说明):

  • 匹配方式:子串、不区分大小写;中文短词可命中较长句段内(与出厂 FTS5 对 CJK 的行为不同)。
  • 筛选:芯片 All / My prompts / Replies / Tool output;可选 Include subagent sessions(默认关)。
  • 顶部 session scope picker:有查询时只列出真正命中的会话及条数(如 title (12));无查询时列最近会话。
  • 点击命中:在上下文中打开——命中记录及前后各四条,高亮且不全文截断;可上一条/下一条,或用 Open session 进入会话。

当前会话内查找

在正在阅读的会话里,可用 Ctrl/Cmd+F,或点会话头右侧工具栏(conversation.session.header.utilities)里的放大镜。会弹出浮动查找条(与结果对话框共用 shell.overlay 层)。具体交互细节以仓库 README 为准。

与出厂搜索的差异(设计动机)

README 用表格归纳了三条并存事实:profile 里内容后端默认 openAt: never;CJK 在 FTS5 unicode61 下分词过粗;启用后 wire 形状丢每条命中的 time 且排序以相关度为主。本插件因此选择在 host 侧自建索引,且不需要你改 profile 打开 session-query-sqlite 内容检索。

安装与启用

标准 DSH bundle(manifest 含 dsh.bundle.patch 与 dsh.client)。用插件管理器安装(路径换成你本机仓库的绝对路径):

plugin_manager action=install_bundle target="<absolute path to this repo>"

会写入 profile 的 dependencies、dsh.profile.bundles 并链到 node_modules,不必手改 profile 的 package.json 或 cordis.patch.yml。

停用或移除:

plugin_manager action=set_bundle    target=dsh-session-search enabled=false
plugin_manager action=remove_bundle target=dsh-session-search

若手动挂载,在 profile 自有的 cordis.patch.yml 增加一行(name 可为包名、相对路径或绝对路径):

- insert:
    - id: session-search
      name: 'dsh-session-search'

开发时若曾加载失败,Node ESM 缓存可能导致改盘后不生效,需重启 Host;README 对 lib/entry.js 与 HMR 有说明。

典型用法

全局搜某段对话里说过的话

  1. 点侧栏 Plugins 与 Schedules 之间的搜索图标,或按 Ctrl/Cmd+Shift+F。
  2. 输入关键词(中英文均可子串匹配)。
  3. 用芯片缩小到「我的提示」「回复」或「工具输出」;需要时再勾选包含 subagent 会话。
  4. 在顶部选一个会话缩小范围,或直接在列表里点某条命中,按上下文查看并跳转。

只在当前会话里找

  1. 打开目标会话。
  2. Ctrl/Cmd+F 或点会话头右侧放大镜。
  3. 在浮动条里输入查询(后续步骤见 GitHub README.zh.md)。

适用场景与注意

适合谁

  • 会话多、靠标题记不住,需要按正文里的配置名、报错、接口名回溯。
  • 需要按「那条消息的时间」看最近相关讨论,而不是纯相关度排序。
  • 中文关键词检索频繁,不想依赖出厂 FTS5 对 CJK 的分词限制。

使用前请知悉

  • 插件在当前 DSH 进程权限下读会话 transcript 并建索引;安装前请阅读源码与 MIT 许可证,确认符合你的安全与合规要求。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本包是社区维护的独立 bundle。
  • 桌面与 Web 的快捷键:全局 Ctrl/Cmd+Shift+F 仅在桌面 profile 默认注册;Web 上出厂已占用 KeyF + primary+shift,后注册的插件可能触发 Conflicting shortcut defaults,以 README Compatibility 为准。
  • 星标等目录元数据会变动;撰写时 GitHub 显示约 1 star,以页面实时为准。

结尾

若你的痛点是「搜得到标题、搜不到正文」,或「想按消息时间线找回某句话」,可以在本机用 plugin_manager 安装 dsh-session-search,从侧栏全局搜索或会话内查找开始用。说明与更新见 GitHub 仓库,条目索引见 SkillHub 插件页。

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

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

Xiaoye