前言¶
在 DeepSeek Harness(DSH)里,侧边栏已经接了一条会话搜索链路,但开箱配置下往往只能对上标题和工作区名称,正文里的用户提示、模型回复和工具输出很难靠同一套能力稳定找回。中文场景里,若底层用 FTS5 的 unicode61 分词,整段汉字常被当成一个 token,短关键词可能完全匹配不到;即便打开内容检索,公开接口返回的命中项也常按相关度排序,单条记录上的时间不会在那一层保留,「按某条内容的时间从新到旧排结果」在官方 remote 上做不到。
dsh-session-search(维护者 Victue,社区分类:记忆)在宿主机上自建索引:增量解析各会话 transcript,把每条记录的文本与其 time 绑在一起,用子串匹配(中英文都适用),再按命中记录的时间排序。无需改 profile 里的 cordis.patch.yml 去打开出厂关闭的内容后端。
这是什么¶
一句话:面向 DSH 的 bundle 插件,全局搜索所有会话正文(不限标题),结果按命中那条记录的时间从新到旧排列。
- 名称:
dsh-session-search(npm 包名同插件目录名) - 版本(资料):0.3.2
- 许可证:MIT
- 引擎要求:Node
>=22.15 - 目录页:SkillHub - Victue/dsh-session-search
- 源码与说明:GitHub - Victue/dsh-session-search
核心功能¶
全局会话内容搜索¶
插件在侧栏占用与「插件」「计划任务」同级的一级入口:放大镜图标 + 主区域全宽结果页(在二者之间,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 有说明。
典型用法¶
全局搜某段对话里说过的话¶
- 点侧栏 Plugins 与 Schedules 之间的搜索图标,或按
Ctrl/Cmd+Shift+F。 - 输入关键词(中英文均可子串匹配)。
- 用芯片缩小到「我的提示」「回复」或「工具输出」;需要时再勾选包含 subagent 会话。
- 在顶部选一个会话缩小范围,或直接在列表里点某条命中,按上下文查看并跳转。
只在当前会话里找¶
- 打开目标会话。
Ctrl/Cmd+F或点会话头右侧放大镜。- 在浮动条里输入查询(后续步骤见 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 插件页。