在使用 DeepSeek Harness (DSH) 的 Web 模式时,设置面板往往包含大量分区和选项。在长列表中定位具体配置项需要多次翻页。dsh-settings-search-plugin 插件通过在设置面板增加搜索入口,提供独立的候选列表,帮助快速定位到目标分区并聚焦具体设置项。
插件简介¶
这是一个仅运行于浏览器的插件。它为 DSH Web 设置面板增加了一个搜索字段,在输入时覆盖内容列展示独立候选列表,点击后导航至所属分区并聚焦对应设置。
安装与启用¶
按照以下步骤将插件挂载到 Web 配置文件中:
- 克隆仓库并安装依赖
git clone https://github.com/DoiiarX/dsh-settings-search-plugin
cd dsh-settings-search-plugin
pnpm install
注:构建后的 lib/ 输出已提交,peer 依赖由 harness 运行时提供。
- 编辑配置文件
编辑$HOME/.dsh/profiles/web/package.json,在dependencies下添加:
"@doiiarx/dsh-settings-search-plugin": "link:<绝对路径到该目录>"
同时在 dsh.profile.bundles 下添加:
"@doiiarx/dsh-settings-search-plugin"
- 安装依赖并重启
在 Web 配置目录下运行pnpm install,然后重启 Web 进程。验证设置面板是否出现搜索字段。
核心功能¶
- 搜索入口与独立列表
在设置面板中新增搜索输入框。输入内容后,会在内容列上方展示独立的候选列表。 - 导航与聚焦
点击候选项后,浏览器会自动导航至该设置所属的分区,并滚动至对应设置项,同时高亮显示其轮廓。 - 索引构建机制
插件通过三种方式构建搜索索引:- Slot Ledger(声明式):读取注入的
slots服务,所有注册的settings.section都是候选项,无论是否被访问。 - Registration Surface(可选增强):插件可调用全局接口注册更详细的 item 级数据。
- Rendered-DOM Scan(已访问分区):观察已打开分区的 DOM,提取标题和文本生成 item 级候选项。
- Slot Ledger(声明式):读取注入的
- 注册表面支持
插件提供了一个全局对象window.__DSH_SETTINGS_SEARCH__,允许其他设置插件注册 item 级搜索项,包括自定义关键词和data-settings-item锚点。
典型用法¶
如果需要在设置插件中注册搜索项,可在客户端的 apply 方法中调用:
window.__DSH_SETTINGS_SEARCH__?.register('local-shell-tools', {
label: 'Shell',
keywords: 'shell 终端 命令 cmd bash powershell pwsh 语言环境',
items: [
{
id: 'bashLang',
label: '语言环境',
desc: '写入 LANG 与 LC_ALL',
keywords: '语言 locale lang 环境'
},
],
})
注意事项¶
- 浏览器端运行:该插件仅运行于浏览器环境,不涉及设置命名空间或模型工具,因此无需配置
WEB_SETTINGS_NAMESPACES且无需重建宿主。 - 未访问分区的索引限制:对于用户从未打开过且插件未注册的分区,搜索仅返回分区名称(Tab 级),无法提供具体的 Item 级候选项。
- 匹配逻辑:候选项文本仅进行标准化处理,不做词干提取或拼音匹配,不支持模糊召回。
- 覆盖层特性:搜索覆盖层是页面局部的,尺寸在安装时测量。如果主题在对话框挂载后改变了导航栏或内容的宽度,可能需要重新打开设置面板以重新计算尺寸。