sensen-jo/dsh-conversation-search

dsh-conversation-search

0.2.0-beta.2 仅支持 DSH 0.2.1-rc.2,面向宿主所有者使用。在当前会话或同目录工作区搜索用户与助手原文,查看来源坐标和上下文;不支持非所有者身份的会话级授权。

Uncategorized

在 DSH 会话里按关键词查找已经落盘的用户、助手原文,并回到准确的来源记录。支持中文连续子串、原句片段高亮、角色和时间标签,以及前后上下文。

0.2.0-beta.3 · 作者 sensenzi · MIT 许可证 · 包标识 dsh-sensenzi-conversation-search · GitHub 仓库。目标环境:DSH 0.2.1-rc.2 或 0.2.1-rc.3 / Node.js 24+。兼容声明只包含这两个精确宿主;旧宿主 0.2.0-rc.2 请保留 beta.1。

本版本面向宿主所有者的本地使用,未声明非所有者远程身份的会话级授权支持。请勿为兼容而授予全局访问权限或跳过宿主版本检查。详见 兼容性与授权边界。

开始检索

  1. 在一个普通工作区会话里打开 原文检索。
  2. 输入记得的连续文字,选择范围和选项,再点击 检索原文。打开面板不会自动扫描。
  3. 在结果中点击 打开原文,核对来源 sessionId + seq、原文及前后各最多两条可检索消息。长原文用 上一段原文/下一段原文 分段读取。
  4. 需要回到聊天位置时,点击 在对话中定位。它会打开来源会话、请求历史分页,并尝试展开和滚动到相关聊天行。布局或来源状态不适合定位时,请继续使用原文详情。

第一次使用时,范围是当前会话、最早优先,包含压缩/替换前原文已开启,工具调用/结果和区分大小写关闭。重新打开面板可能恢复浏览器内存中保存的选项与结果。

选项实际范围
当前会话当前普通工作区会话里所选类型的已落盘记录。
当前工作区工作区目录标识与当前会话完全相同的普通会话;排除子代理和没有工作区目录的会话。不会递归搜索文件夹,也不覆盖全部工作区或整个聊天库。
包含压缩/替换前原文包含仍可从日志读取的历史原文;不会恢复已经删除或不再可读的记录。分叉继承记录会另作标识。
包含工具调用/结果额外搜索工具参数与结果。默认关闭,这些文本可能含凭据或个人信息。
英文区分大小写开启时使用大小写敏感的字面匹配;关闭时使用 Unicode 简单大小写折叠,不是按语言环境做模糊搜索。

修改上方控件后,需要重新点击 检索原文 才会应用。已经显示的列表、原文详情、高亮和 扫描下一批会话 沿用对应检索的条件。

理解结果

结果里的“条匹配记录”按消息记录计数,同一条里的多次出现另列次数。复制来源地址只将来源坐标写入剪贴板,不复制整段正文;它是原始文本,不是可执行命令或已验证网址。

每批按所选的最早/最近顺序排序;同一会话沿用记录顺序或其逆序,跨会话使用经时钟倒退校正的记录时间合并。分批扫描时每批独立排序;“最早优先”不证明全库最早,更不证明真人首发。用户角色也不保证内容由真人输入。

每批最多扫描 100 个会话、显示 200 条匹配记录。结果截断、读取失败或超出预算会显示不完整提示;当前批没有成功扫描的会话时,无法判断是否匹配。出现 扫描下一批会话 表示尚有会话未扫描,下一批会替换当前结果列表,不会补回上一批因 200 条上限而省略的命中。列表截断时,请使用更具体的检索词或缩小范围重新查。

新增/删除可见会话或修改检索条件可能使分批游标失效,此时请从首批重查。即使游标有效,各批也不是同一时刻的不可变历史快照;扫描期间仍可能有新记录落盘。打开原文会按来源坐标重新读取,不是冻结的搜索快照;上下文是前后各最多两条符合本次类型选项的消息,不是完整相邻轮次。

清除、取消与隐私

取消会请求中止当前读取,并阻止其过期响应覆盖后续界面。清除结果会同时取消当前面板操作,清空该会话的结果、原文详情和对应检索状态;它保留输入框里的检索词与当前选项,不会删除聊天记录。

关闭面板会取消面板读取,但不会立即清除已完成的结果。插件在浏览器内存里保留至多 6 个会话的面板状态;可逐会话清除结果,刷新页面或卸载插件会清除这些插件缓存。清除结果不会清理已经复制到系统剪贴板的内容。取消工具勾选也不会撤下已有工具结果,需清除或重新检索。

插件不调用模型、不新增免认证历史接口、不向外部上传会话,也不建立持久索引。查询通过 DSH 现有的认证 RPC 在 Web 界面与 Host 之间传递;远程 Host 部署下,这不等于数据始终留在浏览器所在设备。正文仍可能包含敏感信息,完整说明见 隐私与数据边界。

安装、升级和回退

按你实际使用的 DSH 版本选择,不需要为了安装插件先升级 DSH。包标识为 dsh-sensenzi-conversation-search;同名近似 npm 包 dsh-conversation-search 属于其他项目。

插件版本支持的 DSH获取方式
0.2.0-beta.30.2.1-rc.2、0.2.1-rc.3GitHub Release 下载完整 tgz;本次没有把 beta.3 发布到 npm。
0.2.0-beta.20.2.1-rc.2npm 精确版本;继续使用 rc.2 的用户可以保留已验证 beta.2。
0.2.0-beta.10.2.0-rc.2npm 精确旧版;不支持 0.2.1-rc.2/rc.3。

所有版本都是 beta 预发布,不承诺其他未来宿主兼容。Release 列表按 tag 保留版本选择;旧 npm 版本不改写。支持范围详见 兼容性说明。

下载 Release 中的 dsh-sensenzi-conversation-search-0.2.0-beta.3.tgz 和 SHA256SUMS.txt,核对校验和后,在 DSH 官方插件管理界面选择完整本地包,或把下面路径替换成下载包的实际绝对路径:

dsh plugin --profile web add "/absolute/path/dsh-sensenzi-conversation-search-0.2.0-beta.3.tgz" --ignore-scripts --config.auto-install-peers=false

这只安装插件,不升级 DSH。先停用旧原文检索 bundle,只启用一个版本。不要直接安装 GitHub main 的压缩源码作为完整发行包;Release 的 tgz 包含已核对的生成客户端和显式发行清单。

保留 npm beta.2 的 rc.2 用户可使用:

dsh plugin --profile web add dsh-sensenzi-conversation-search@0.2.0-beta.2

beta.3 没有对应 npm 发布,不能把上面命令的版本替换成 beta.3。当 npm 或市场使用不带版本的包名时,实际版本还受 dist-tag 和 pnpm minimumReleaseAge 策略影响;以安装后版本和宿主准入为准,不关闭全局安全观察期。

源码构建:使用 Node.js 24+ 运行 node build.mjs --check,再 npm pack --offline --ignore-scripts --workspaces=false。包没有需联网安装的运行时依赖,运行时服务来自匹配的宿主。Web profile 的重载行为依宿主而定;源码或 Release 发布不代表你当前界面已经加载新版。

现用市场目录:市场条目。GitHub Release、npm、市场审核和实际客户端搜索是分别维护的状态;本次 GitHub beta.3 发布不修改 npm dist-tag 或市场条目,不把旧目录显示当作新版验收。

未来升级时保留已验证旧包和该插件的配置记录,先停用旧 bundle,再通过 DSH 官方插件管理方式安装并启用同一版本的 Host/客户端包。旧版与新版共用 RPC 服务名和视图入口,不支持同时启用。

升级后用不含隐私的已知样例验证搜索、原文、取消和清除;定位失败时先检查原文详情。需要回退时停用新包,恢复与当前 DSH 版本兼容的旧包及其所属配置。只调整本插件的配置项,避免用旧备份覆盖其他插件的配置;本插件不修改或迁移聊天数据。

常见问题

现象处理方法
已修改关键词或选项,列表仍显示旧内容点击 检索原文。控件不会自动重查,原文和下一批仍使用那次检索的条件。
明明记得文字,却没有结果核对会话范围、是否包含历史/工具文本,以及原文是否已落盘。图片文字、思维链、系统/开发者提示和未落盘流式输出不在范围内。留意读取失败提示。
提示“会话目录或检索条件已变化”从首批重新检索,不继续使用旧游标。
提示读取失败、超出预算或服务不可用将该会话视为未完成,稍后重试。关闭不需要的工具/历史正文可能减少文本预算消耗,但不会减少会话事件总数;缩小范围只减少要查的会话,不能使一个超大日志自动符合限制。换更短或更具体的关键词也不会减少匹配前的事件/文本预算。
能打开原文,却不能在对话中定位原文详情不依赖聊天定位桥。记录可能只在日志里、被折叠/替换,或宿主布局、来源身份不再满足定位条件;以来源坐标和原文详情核对。
清除后搜索框还在,或另一个会话仍有结果清除只清当前会话的结果和详情,保留检索词与选项。其他会话的插件内存状态分别保留。
复制来源地址失败浏览器未允许剪贴板访问时,可手动选择显示的来源坐标复制。不要把复制内容当作命令执行。

这是字面检索,不是语义、正则或 OCR 搜索。长度和原文位置按 UTF-16 单位计数;字形相似、组合形式不同的文本可能不匹配,分段高亮也不代表整条原文的全部匹配位置。详见 兼容性与限制。

合成界面示例

以下图片来自经过核对的私有 beta 客户端与检索引擎,在离线 React/Chromium 测试壳中运行的专造事件。图片标明 SYNTHETIC DEMO;没有真实聊天,也不是已登录 Host 截图。更名候选沿用相同实现、改变包身份;图片不能证明新名称包的真实 GUI 验收或市场审核。三张故障图是人工注入的失败/歧义/来源变化演示。

中文检索 · 合成示例

深色原文与上下文 · 合成示例

390px 窄屏 · 合成示例

读取失败提示 · 合成注入

重复来源时停止定位 · 合成注入

来源绑定变化时停止定位 · 合成注入