🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话内查找 vagur1689/dsh-conversation-find

DeepSeek Harness
vagur168913 天前有提交已提供中文文档扫描:未发现敏感能力

在整段会话历史中搜索关键词并滚动定位到命中消息

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add vagur1689/dsh-conversation-find
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · search
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-conversation-find 在当前 DSH 会话里按关键词搜索消息,并把命中项滚动定位到对话视图中的对应位置。 补的是官方 Trajectory 视图缺的那一段:轨迹能搜到内容,但它自己的 README 写明 record/timeline selection 是 local 的、没有 anchor deep links,所以从轨迹无法跳到 Chat 里的那条消息。社区现成的 dsh-session-search-toggle / dsh-history 又硬依赖已在 0.2.x 被移除的 @deepseek-ai/dsh-client-runtime,装不上。这个插件就是填这个空。
展开完整文档(README 剩余 1 节)
dsh-conversation-find

在当前 DSH 会话里按关键词搜索消息,并把命中项滚动定位到对话视图中的对应位置。

补的是官方 Trajectory 视图缺的那一段:轨迹能搜到内容,但它自己的 README 写明 record/timeline selection 是 local 的、没有 anchor deep links,所以从轨迹无法跳到 Chat 里的那条消息。社区现成的 dsh-session-search-toggle / dsh-history 又硬依赖已在 0.2.x 被移除的 @deepseek-ai/dsh-client-runtime,装不上。这个插件就是填这个空。

功能

- 搜索覆盖整段会话历史:打开面板后先把会话历史翻到最早一页(面板显示「加载历史 N」进度),再在全文范围内搜索
- 会话头部(header utilities 座位)新增一个放大镜按钮,⌘/Ctrl + Shift + F 也能唤起
- 输入即搜(160ms 防抖),命中数显示为 当前/总数,Enter 下一个、Shift+Enter 上一个、Esc 关闭
- 命中项用叠加层高亮(当前项为橙色),不修改 React 拥有的 DOM,因此流式输出和重渲染都不会留下脏标记
- 跳转按 Range 的真实 client rect 把命中项滚到视口中间
- 流式输出时自动重算(400ms 防抖);切换会话自动关闭面板

为什么要先「加载历史」

会话视图不是把整段对话一次性放进 DOM 的:它维护一个窗口,hasMore 为真时列表顶部有「加载更早」。
所以只搜 DOM 的话,结论会是「没找到」,而那句话其实只是还没加载。本插件因此先调用会话 store 的
loadOlder() 把窗口翻到起点(hasMore === false)再搜索;视图自己会监听 loadingOlder 并保持
阅读位置,所以翻页不会把视口拽走。

翻页上限 400 页:真的撞到上限时,命中计数会带「历史未加载完」提示,明确告诉你结果只覆盖已加载部分,不会假装搜全了。关闭面板会立即中止正在进行的翻页。

安装

从 GitHub 安装(本仓库根目录即插件包,link: 指向克隆下来的目录):

git clone https://github.com/vagur1689/dsh-conversation-find.git ~/dsh-conversation-find
dsh plugin --profile web add link:~/dsh-conversation-find

也可以直接 link: 到你自己的任意克隆位置(路径用绝对路径或 ~ 展开后的路径):

dsh plugin --profile web add link:/path/to/dsh-conversation-find

然后重启 dsh web,再强刷页面(Cmd + Shift + R)。

用 link: 而不是 npm 安装,是因为本插件尚未发布到 npm;link: 的另一个好处是改源码后只需强刷页面即可生效(bundle 由宿主按请求读取)。

使用

1. 打开任意会话,点右上角的放大镜(或按 ⌘/Ctrl + Shift + F)
2. 输入关键词,回车在命中项之间循环

边界(重要,避免误解)

- 只在当前会话内搜索,不跨会话;跨会话需要另做检索层(读 $DSH_HOME/sessions 或用 session-query-sqlite)
- 搜索前会翻页到会话起点,因此第一次搜索需要等历史加载(面板有进度),超长会话耗时更明显;上限 400 页,撞到上限会提示「历史未加载完」
- 不搜输入框草稿(data-composer-seat),也不搜 / 和插件自己的面板
- 单次结果上限 2000 条命中、单帧最多绘制 400 个高亮框,避免一次按键把长会话卡住

实现要点

- 纯客户端插件:index.js 是空宿主半部,只用于让 Loader 挂载一个声明了 dsh.client 的包
- 运行时只 require("react"),不引入任何 @deepseek-ai/* 运行时模块(这正是它能在 0.2.0-rc.2 上跑的原因)
- 历史翻页走会话 store 的公开面:ctx.get('sessions').binding(id).session.getSnapshot().hasMore + loadOlder()
- 通过 ctx.slots.inject('conversation.session.header.utilities', …) 注册入口;ctx.effect 负责卸载
- 重复挂载用引用计数 + window.__dshConversationFind 单例收敛,不会出现两个面板或两套监听
- DOM 锚点只用官方稳定的数据属性:[data-conversation-scroll]、[data-conversation-session]、[data-composer-seat]

测试

测试用 jsdom 跑在真实 DOM 之上,不需要 DSH 运行:

npm install
npm test

覆盖的行为:

- collect() 命中数、大小写不敏感、跳过 composer / / 插件自有 UI
- 面板开合、计数器 1/2 → 2/2 → 循环、Esc 关闭、高亮层释放
- 叠加层:每个命中一个高亮框、恰好一个 data-current="true"、几何来自命中 rect
- 历史翻页:打开面板后「更早页」里的文本可被搜到;撞上限时计数带「历史未加载完」;关闭面板立即停止翻页
- 降级可见:拿不到 sessions 服务时计数必须出现 ⚠ 与解释,不允许静默失败

许可

MIT
预览分享卡片长什么样 ↓vagur1689/dsh-conversation-find
分享 · DeepSeek Harness Hub
vagur1689/dsh-conversation-find

在整段会话历史中搜索关键词并滚动定位到命中消息

回到顶部