dsh-fulltext-search

August 25, 2026 · View on GitHub

DSH(DeepSeek Harness)Web GUI 插件:在侧边栏文件管理(dsh-better-sidebar)中按文件内容全文搜索当前会话工作目录,返回 文件 + 行号 + 匹配行预览,点击结果即可在编辑器中打开文件。

支持正则表达式、区分大小写、全字精确匹配、智能大小写与 include/exclude 范围过滤。系统装有 ripgrep 时自动使用(与 VSCode 搜索同款引擎,性能最佳);未安装则回退内置 JS 引擎,功能一致。

安装

前置:已安装 DSH 与 dsh-better-sidebar(dsh web 侧边栏可见)。

安装顺序:先装 dsh-better-sidebar,再装本插件;升级时同样先升级 dsh-better-sidebar。若未检测到 better-sidebar 的 registerTab 服务,本插件会打印中文警告并跳过 tab 注册(不会崩溃)。

dsh plugin --profile web add link:<本仓库路>
# 例如:dsh plugin --profile web add link:D:\git\dsh-fulltext-search

装完需重启 DSH,并硬刷新浏览器(Ctrl/Cmd+Shift+R)。

可选:安装 ripgrep 以启用最快的搜索引擎(如 winget install BurntSushi.ripgrep.MSVCbrew install ripgrepapt install ripgrep);未安装时自动使用内置 JS 引擎,功能一致。

安全

  • 搜索根恒为服务端会话记录的工作目录sessions.get(sessionId).header.cwd),请求体中的 cwd 字段一律忽略——伪造的 sessionId 无法借任意绝对路径把全文搜索扩大到宿主机其他可读目录。
  • 会话不存在 → 404 session-not-found;会话无工作目录 → 400 no-session-cwd;两者都在任何搜索执行前被拒绝,不存在 process.cwd() 兜底。

使用

  1. 打开侧边栏,点 + → 选择「全文搜索」(或直接点击放大镜图标)
  2. 输入关键字并回车;可用 .*(正则)、Aa(区分大小写)、Ab(全字匹配)按钮与「智能大小写」开关调整匹配方式
  3. 点击结果行 → 文件在编辑器 tab 中打开;点击文件名 → 打开文件

许可证

本项目基于 Apache License 2.0 发布。