dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
当前会话内的关键词搜索:先把会话历史翻回最早一页再匹配,命中处高亮并滚动定位到所选项。
在当前 DSH 会话里按关键词搜索消息,并把命中项滚动定位到对话视图中的对应位置。
已收录于 awesome-dsh-plugin 的
session分类 (列表条目)。
补的是官方 Trajectory 视图缺的那一段:轨迹能搜到内容,但它自己的 README 写明 record/timeline selection 是 local 的、没有 anchor deep links,所以从轨迹无法跳到 Chat 里的那条消息。社区现成的
dsh-session-search-toggle/dsh-history又硬依赖 已在 0.2.x 被移除的@deepseek-ai/dsh-client-runtime,装不上。这个插件就是填这个空。
⌘/Ctrl + Shift + F 也能唤起当前/总数,Enter 下一个、Shift+Enter 上一个、Esc 关闭会话视图不是把整段对话一次性放进 DOM 的:它维护一个窗口,hasMore 为真时列表顶部有「加载更早」。
所以只搜 DOM 的话,结论会是「没找到」,而那句话其实只是还没加载。本插件因此先调用会话 store 的
loadOlder() 把窗口翻到起点(hasMore === false)再搜索;视图自己会监听 loadingOlder 并保持
阅读位置,所以翻页不会把视口拽走。
翻页上限 400 页:真的撞到上限时,命中计数会带「历史未加载完」提示,明确告诉你结果只覆盖已加载部分, 不会假装搜全了。关闭面板会立即中止正在进行的翻页。
直接从 GitHub 装(推荐):
dsh plugin --profile web add github:vagur1689/dsh-conversation-find
然后重启 dsh web,再强刷页面(Cmd + Shift + R)。
本插件没有 prepare/postinstall 构建步骤(源码就是可直接加载的 JS),所以不需要在 pnpm-workspace.yaml 里加 allowBuilds 白名单。
要改源码就改用 link: 指到克隆目录——link: 的好处是改完只需强刷页面,宿主按请求读取 bundle,不必重装:
git clone https://github.com/vagur1689/dsh-conversation-find.git ~/dsh-conversation-find
dsh plugin --profile web add link:~/dsh-conversation-find
⌘/Ctrl + Shift + F)$DSH_HOME/sessions 或用 session-query-sqlite)data-composer-seat),也不搜 <script> / <style> 和插件自己的面板index.js 是空宿主半部,只用于让 Loader 挂载一个声明了 dsh.client 的包require("react"),不引入任何 @deepseek-ai/* 运行时模块(这正是它能在 0.2.0-rc.2 上跑的原因)ctx.get('sessions').binding(id).session.getSnapshot().hasMore + loadOlder()ctx.slots.inject('conversation.session.header.utilities', …) 注册入口;ctx.effect 负责卸载window.__dshConversationFind 单例收敛,不会出现两个面板或两套监听[data-conversation-scroll]、[data-conversation-session]、[data-composer-seat]测试用 jsdom 跑在真实 DOM 之上,不需要 DSH 运行:
npm install
npm test
覆盖的行为:
collect() 命中数、大小写不敏感、跳过 composer / <script> / 插件自有 UI1/2 → 2/2 → 循环、Esc 关闭、高亮层释放data-current="true"、几何来自命中 rectsessions 服务时计数必须出现 ⚠ 与解释,不允许静默失败MIT