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

工作区搜索 d0ublecl1ck/dsh-search-enhance

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

在新会话下拉里按拼音或子串快速定位工作区

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · ui
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成

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

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

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

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

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

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

功能亮点

  • 下拉内搜索工作区
  • 拼音首字母匹配
  • 全拼与子串匹配

在 DeepSeek Harness 的「新建会话」工作区选择器里直接搜索,支持拼音首字母、全拼和任意位置子串匹配。

README

由 DeepSeek 最新模型翻译生成
🌐 中文 · English dsh-search-enhance 「工作区攒到三十个以后,每次开新会话都要在下拉里瞪着眼睛找一个名字——现在打两个字母就够了。」 给「新建会话」的工作区下拉装上搜索框:中文打拼音首字母,英文打中间任意几个字母,都能一次命中。 看效果 · 快速开始 · 匹配规则 · 它和同类有什么不同 · 安全边界 gz → 「工作区拼音测试」。中文名按拼音首字母和全拼建索引,不需要切换输入法。 它解决什么问题 事情是这样的:DSH 的工作区是刻意做成「可以一直加」的。一个人同时开着 foliole、笔记库、几个脚本仓库、给客户的两个项目——攒到二三十个很正常。 然后每次点「新会话」,下拉里就是一条长长的名单。官方的这个下拉没有搜索框,只能一行行看过去。你想找「工作区拼音测试」,眼睛得扫过每一个名字。 真正别扭的是:这个列表你明明能背下来,只是它太长。缺的不是记忆,是一个输入框。 这个插件做的就是这一件事——接管那个下拉,在顶上放一个搜索框,然后按你脑子里想的那个方式来匹配: - 想中文工作区?打 gz(拼音首字母)或 gongzuo(全拼),不用切输入法; - 记得英文名里有一段?打 pp 就能找到 apple-pie,不必从第一个字母开始; - 名字里有连字符、下划线?
展开完整文档(README 剩余 1 节)
🌐 中文 · English

dsh-search-enhance

「工作区攒到三十个以后,每次开新会话都要在下拉里瞪着眼睛找一个名字——现在打两个字母就够了。」

给「新建会话」的工作区下拉装上搜索框:中文打拼音首字母,英文打中间任意几个字母,都能一次命中。

看效果 · 快速开始 · 匹配规则 · 它和同类有什么不同 · 安全边界

gz → 「工作区拼音测试」。中文名按拼音首字母和全拼建索引,不需要切换输入法。

它解决什么问题

事情是这样的:DSH 的工作区是刻意做成「可以一直加」的。一个人同时开着 foliole、笔记库、几个脚本仓库、给客户的两个项目——攒到二三十个很正常。

然后每次点「新会话」,下拉里就是一条长长的名单。官方的这个下拉没有搜索框,只能一行行看过去。你想找「工作区拼音测试」,眼睛得扫过每一个名字。

真正别扭的是:这个列表你明明能背下来,只是它太长。缺的不是记忆,是一个输入框。

这个插件做的就是这一件事——接管那个下拉,在顶上放一个搜索框,然后按你脑子里想的那个方式来匹配:

- 想中文工作区?打 gz(拼音首字母)或 gongzuo(全拼),不用切输入法;
- 记得英文名里有一段?打 pp 就能找到 apple-pie,不必从第一个字母开始;
- 名字里有连字符、下划线?folioleenhance 也能找到 foliole-enhance。

效果示例

同一个下拉,输入两三个字符就开始收窄(截图来自真实运行实例,由 scripts/verify-browser.mjs 驱动拍摄):

| 输入 | 结果 |
| gz | 「工作区拼音测试」 |
| pp | apple-pie |

pp → apple-pie。英文匹配是任意位置子串,不要求前缀。

键盘全程可用:↑ ↓ 移动光标,Enter 选中,Esc 关闭,打开即自动聚焦搜索框。原来那个「添加工作区…」入口原样保留在面板底部。

快速开始

从 GitHub 安装:

~~~bash
dsh plugin --profile web add github:d0ublecl1ck/dsh-search-enhance

从本地克隆安装(改代码用这个):

~~~bash
git clone https://github.com/d0ublecl1ck/dsh-search-enhance
dsh plugin --profile web add ./dsh-search-enhance

装完重启 DSH Desktop(客户端模块图在 harness 启动时组合,刷新页面不够)。重启后打开新建会话页,点开工作区下拉,就能看到搜索框。

匹配规则

| 输入 | 命中 | 规则 |
| gz / gzq | 工作区拼音测试 | 拼音首字母(子串或前缀) |
| gongzuo / gongzuoqu | 工作区拼音测试 | 拼音全拼(子串或前缀) |
| pp | apple-pie | 英文任意位置子串 |
| folioleenhance | foliole-enhance | 去掉分隔符后比较 |
| samples | foliole-enhance-samples | 普通子串 |
| aple | apple | 子序列(弱权重兜底,只在标题上) |
| 路径片段 | 对应工作区 | 路径只参与子串匹配 |

排序:完全相等 > 前缀 > 子串 > 子序列;中文同时比对原文与拼音;同分保持官方原有顺序。

两条刻意的边界,都是真实浏览器里发现并修的:拼音投影不允许子序列(否则 pp 这种两字母查询会通过 gongzuoqupinyinceshi 命中几乎一切),路径不做模糊兜底(否则路径里的 /private/tmp/ 自带两个 p,人人都会命中 pp)。

触发方式

打开「新会话」页,点工作区按钮,然后:

- gz — 找「工作区拼音测试」
- gongzuo — 同一件事,全拼打法
- pp — 找 apple-pie
- folioleenhance — 找 foliole-enhance(不记得连字符在哪)
- pkm — 找路径里含 pkm 的工作区
- ↑ ↓ Enter — 全键盘挑一个
- Esc 或点面板外 — 关掉,不做任何选择

它和同类有什么不同

同类插件都在解决「工作区/会话多了不好找」,但切的位置不一样:

| 插件 | 它切的入口 | 匹配方式 | 和本插件的差异 |
| dsh-search-enhance(本插件) | 「新建会话」的工作区下拉,内联搜索框 | 拼音首字母 + 全拼 + 任意位置子串 + 分隔符无关 + 子序列兜底 | 唯一在这个下拉里就地过滤的 |
| dsh-workspace-kit | ⌘K 全局 Spotlight 面板 + 接管侧栏 | 名称模糊搜索 | 全局面板,不进工作区下拉;无拼音 |
| dsh-advancesearch | 侧栏搜索按钮 + MCP 工具 | 会话正文全文检索 | 搜的是会话内容,不是选择器过滤 |
| dsh-workspace-search | dsh-better-sidebar 的 Search 页签 | 工作区文件内容检索 | 搜文件,不是工作区名 |
| dsh-codex-ui | 整体替换侧栏 | 全局搜索 | 换了一整套 UI,改动面大 |

选谁取决于你要找什么:找会话内容用 advancesearch,找文件用 workspace-search,找工作区选择器本身用本插件。

安全边界

- 不写任何工作区或会话数据。 选中一行只是调用官方下拉本来就调的 onPick;「添加工作区…」走的是官方 uiWorkspace.pickDirectory() + createWorkspace()。
- 只遮蔽,不替换。 插件以 priority: -1 注册到 single 槽 conversation.hero.workspace 遮蔽官方下拉;官方注册仍在,卸载插件即恢复。
- 崩了会自动让位。 single 槽的渲染错误会触发槽注册表的 abdicate 语义,官方下拉随即接管——插件自身出问题不会让「选择工作区」整体不可用。
- 零持久化、零网络。 没有 localStorage、没有额外请求、没有遥测。
- 面板只用官方 client UI 0.1.5 与 0.1.7 都在的原子(useAnchoredPosition 加图标),图标导出名的版本差异由回退处理。

文件结构

~~~text
client.js 浏览器半边:搜索算法 + 下拉面板(含内嵌拼音表) index.js 宿主半边占位(bundle 需要一个 apply 导出) cordis.patch.yml bundle 层:把插件插入 profile scripts/generate-pinyin-table.mjs 生成 client.js 里的拼音表(GB2312 全字集) scripts/verify-browser.mjs 真实浏览器端到端断言(自起 Chrome 走 CDP) tests/search.test.mjs 搜索算法单测 tests/picker.test.mjs 组件渲染与最小 primitives 兼容性测试 assets/showcase/ README 用的真实运行截图

验证与测试

~~~bash
npm install # 只为生成拼音表(devDependency: pinyin-pro)
npm test # 19 项:搜索算法 + 组件渲染 + 版本兼容
npm run check:pinyin # 拼音表是否为最新

真实浏览器端到端(需要先跑起一个含三份测试工作区的 DSH 实例):

~~~bash
node scripts/verify-browser.mjs --url "http://127.0.0.1:4401/?token=<token>"

它会自己起 headless Chrome,断言 14 项:样式注入、引导弹窗清理、面板打开、8 组查询的精确结果集、↑↓ 光标移动、零页面错误。当前实测输出:

~~~text
PASS shell paints — the boot graph rendered without a load failure PASS plugin applies — stylesheet tag is present PASS onboarding dismissed — first-run dialogs cleared PASS picker opens — the shadowing occupant replaced the shipped picker PASS query "" ... PASS query "gz" ... PASS query "gzq" ... PASS query "gongzuo" PASS query "pp" ... PASS query "folioleenhance" ... PASS query "samples" ... PASS query "zzz" PASS ArrowDown moves the cursor row — active row is "apple-pie" PASS no page errors verified: the picker searched correctly in a real browser

已知边界

- 只增强这一个下拉。 侧栏那条搜索属于 sidebar.workspaces single 槽,要加同款匹配就得整体接管官方侧栏浏览器(会话分组、拖拽排序、归档、行菜单、目录选择)。官方在查询非空时只渲染它自己判定的命中行,DOM 层也没法把被过滤掉的行加回来——那是另一次独立交付。
- 多音字按 pinyin-pro 的主读音投影(表里保留其他读音,但候选侧只用主读音)。
- 工作区标题或路径里出现生僻字(GB2312 之外)时,该字不参与拼音匹配,仍可被子串匹配命中。

License

MIT
预览分享卡片长什么样 ↓d0ublecl1ck/dsh-search-enhance
分享 · DeepSeek Harness Hub
d0ublecl1ck/dsh-search-enhance

在新会话下拉里按拼音或子串快速定位工作区

这是你的仓库?认领条目

回到顶部