Skip to content

Releases

v1.14.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 04:59

v1.14.0

https://github.com/objectivex666/dsh-settings-search

适配 Harness 0.2.1-rc.2

逐项核对后确认 0.2.1 对插件所依赖的接口没有破坏性变化:connection / remote.<ns> 服务、settings.describe(无参、namespaces[].ns/value)、llm.listConfigurableProviders(settingsNs/settingsPath)、pluginManager 清单字段、宿主 Fetch 路由注册与路径校验、四个设置 slot 座位、全部 18 个 --dsw-* 主题令牌、插件列表页的分组钩子、DeepSeek 适配器常量、__ModuleLoader__ 交付格式都保持不变。0.2.1 新增的是插件市场、api-remote-access(非 owner peer 的方法级鉴权,对本插件无影响)与平台化的客户端 bundle 文件名,插件无需改动即可继续工作。

新功能

  • 兼容性自检脚本(npm run compat):直接读取本机安装的 Harness(桌面版 app.asar,自动查找或 --asar / DSH_ASAR 指定),把上面这些「不属于任何 npm 公开 API 的接口」逐项断言一遍并打印 PASS/FAIL。升级 Harness 后先跑它,失败项就是需要适配的地方;因为它需要本机安装包,不进入 CI。当前对 0.2.1-rc.2 12/12 通过。

修复

  • 插件页分组搜不到:设置面板里「插件」页的会话插件 / 全局插件分组标题此前不会被索引收录——DSH 的 CSS Module 类名保留驼峰(RotMhW_groupTitle),而页内选项采集用的是区分大小写的 [class*="title"]。现在改为大小写不敏感匹配,并优先采集较浅层的页面/分组标题,避免几十个插件卡片先把 24 条名额占满;这两类分组现在都能进入索引并跳到对应位置。
  • 索引缓存版本:持久化索引结构升到 v2,旧缓存自动失效并重建(不必手动点「手动重建索引」),升级后立刻包含新采集的条目;写入 v2 时顺手清理旧的 v1 缓存键。
  • 页内搜索框不再被当成设置项:插件页顶部自带一个搜索输入,它的 <label> 会被页内选项采集误当成一个设置项(结果里出现「插件 › 搜索插件」)。现在含 input[type="search"] 的 <label> 会被跳过;普通设置行的文本输入不受影响。

Adapted to Harness 0.2.1-rc.2

An item-by-item audit found no breaking change in the surfaces this plugin relies on: the connection and remote.<ns> services, settings.describe (no arguments; namespaces[].ns/value), llm.listConfigurableProviders (settingsNs/settingsPath), the pluginManager inventory fields, the host Fetch route registry and path validation, all four settings slot seats, all 18 --dsw-* theme tokens, the Plugins-page group hooks, the DeepSeek adapter constants, and the __ModuleLoader__ hand-off format are unchanged. What 0.2.1 added is the plugin market, api-remote-access (method-level gating for non-owner peers, irrelevant here), and platform-suffixed client bundle filenames — the plugin keeps working without changes.

Features

  • Compatibility audit (npm run compat): reads the Harness installed on this machine (the desktop app.asar, auto-detected or given through --asar / DSH_ASAR) and asserts every surface listed above, printing PASS/FAIL per item. Run it first after a Harness upgrade — the failing lines are what needs adapting. It needs a local install, so it does not run in CI. Currently 12/12 pass against 0.2.1-rc.2.

Fixes

  • Plugins-page groups are searchable: the Session Plugins / Global Plugins group titles on the settings page were not indexed. DSH's CSS-module class names keep their camelCase (RotMhW_groupTitle), while the in-page miner matched classes case-sensitively ([class*="title"]). Matching is now case-insensitive and shallow page/group headings are harvested before card titles, so dozens of plugin cards can no longer consume the 24-entry cap before the next group is seen.
  • Index cache schema: the persisted index moved to v2, so an old cache is discarded and rebuilt automatically — no manual "rebuild index" needed — and upgrading immediately includes the newly harvested entries; writing v2 also removes the old v1 cache key.
  • A page's own search box is no longer indexed as a setting: the Plugins page renders its own filter input inside a <label>, which the in-page miner mistook for a setting (hence a "插件 › 搜索插件" result). Labels wrapping input[type="search"] are now skipped; ordinary text inputs in settings rows are unaffected.

v1.13.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 06:05

v1.13.1

https://github.com/objectivex666/dsh-settings-search

修复

  • 导入 DSH 模型配置(内置 DeepSeek 路由):默认模型是 DSH 内置的 DeepSeek 路由时(deepseek-official / deepseek-account,地址写死在适配器里而不在设置里),原先会提示「没有可导入的 Base URL」;现在直接导入 DeepSeek 的接口地址 https://api.deepseek.com/anthropic 与模型名,并按适配器固定的 Messages 协议识别为 Anthropic 接口(设置里显式配置过 baseURL 时仍以设置为准)。该路由没有可供插件使用的 API Key,成功提示会说明需自行填写;其它 provider 缺少 Base URL 时仍按原样提示模型名。

Fixes

  • Import DSH model config (built-in DeepSeek route): when the default model is one of DSH's built-in DeepSeek routes (deepseek-official / deepseek-account, whose address lives in the adapter rather than in settings) the import used to report that there was no Base URL to import. It now imports DeepSeek's own endpoint, https://api.deepseek.com/anthropic, together with the model name, and maps it to the Anthropic interface through the adapter's fixed Messages protocol (a baseURL configured in settings still wins). Those routes carry no API key the plugin could use, and the success notice says so; other providers without a Base URL still get the model-naming message.

v1.13.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 05:38

v1.13.0

https://github.com/objectivex666/dsh-settings-search

新功能

  • 日志落盘与日志文件夹:日志按天写入 $DSH_HOME/logs/dsh-settings-search/settings-search-YYYY-MM-DD.log(文件名带日期,每天一个文件,与其它插件日志同级)。单个文件上限 100 MB,超出则同日续写编号分片(.1、.2…);整个日志目录上限 100 MB,超出时按时间删除最旧的文件,正在写的文件永不删除。旧版无日期的 settings-search.log 会在首次运行时并入当天文件,不会留下孤儿文件。「设置搜索」页的日志区新增「打开日志文件夹」,可在系统文件管理器中直接打开该目录。
  • 查看日志:日志区新增「查看日志」按钮,弹出只读日志窗口,显示磁盘日志末尾(更早内容可打开日志文件夹查看),支持刷新、复制与打开文件夹;宿主日志通道不可用时自动回退显示本次会话的记录并说明原因。
  • 适配 DSH 0.2 正式版:正式版把客户端插件清单迁到 remote.pluginManager 命名空间,插件现在从 listBundles / listPlugins 读取已安装插件,并在每次打开设置面板时复核;其它插件安装、更新或启用状态变化后仍会自动重建设置索引。更早版本继续使用原来的 pluginManager 客户端服务。

修复

  • 日志记录逻辑:改为「内存环形缓冲 + 批量写盘」——每条日志生成一行 时间 [级别] [运行号:序号] 消息 {上下文},按 1.2 秒或 40 条批量提交给宿主,页面隐藏/关闭前再冲刷一次;同一份行格式同时用于文件、查看窗口与导出文本。写盘失败不会递归记日志,清空日志时也会丢弃未提交的队列并截断磁盘文件。
  • 宿主路由鉴权:日志通道注册在 DSH 连接服务的 /api 精确 Fetch 路由上(与官方会话日志导出同一通道),沿用页面自身的鉴权,浏览器只访问文档相对路径,不需要也无法接触令牌。
  • 日志尾部读取:读取超过尾部预算的日志时改为按实际读取的字节数解码,避免日志被并发截断或发生短读时把未初始化内存当作日志返回。
  • 打开日志文件夹(Windows):改为通过 shell 自己的 open 动词启动(cmd /c start),不再直接 spawn explorer.exe——后者在 windowsHide(CREATE_NO_WINDOW)下会创建一个永远不可见的窗口(实测该窗口 IsWindowVisible()=false),表现就是「点了没反应」。新路径窗口可见且直接置前;宿主还会把本次启动命令写进日志([host] 打开日志文件夹 ok (cmd.exe)),下次可以直接从日志判断。
  • 日志计数器:日志标题旁的计数显示当天日志文件中的条目数(由宿主返回,读取/写入/清空时同步刷新),不再是本次会话的内存缓冲;早先几天的记录可在日志文件夹里查看,宿主通道不可用时才回退为本次会话条数,鼠标悬停有说明。清空日志会同时删除本插件的历史日志文件。
  • 导入 DSH 模型配置:正式版把客户端接口迁到了 remote.* 命名空间,插件仍按旧的 connection.api 读取,于是点击「导入 DSH 模型配置」时报 Cannot read properties of undefined (reading 'settings')。现在按运行中的 DSH 自动选择接口:0.2 正式版走 remote.settings / remote.llm,更早版本继续走 connection.api。
  • 无法导入时说明原因:默认模型在 DSH 设置里没有可导入的 Base URL(例如由 DSH 账号内置提供的模型)时,提示具体模型名,而不是笼统的「未找到 DSH 当前默认模型配置」。
  • 客户端加载依赖:dsh.client.inject 中已不存在的 @deepseek-ai/dsh-client-runtime 换成 0.2 的 @deepseek-ai/dsh-api-gateway 与 @deepseek-ai/dsh-api-remotes。
  • 插件卡片索引对齐正式版:0.2 把插件管理页移到了独立的侧栏「插件」面板(plugins.item),设置面板内的「插件」分区只渲染标签页,而搜索与跳转都限定在设置面板内,因此不再为 0.2 索引这些卡片,避免结果跳到不存在的位置;旧版座位(settings.plugin.item、web-ui.plugin.item)保留,老版本照常索引。
  • 索引重建信号:0.2 里原有的两路信号都已失效——pluginManager 服务不存在,而备用指纹只统计两个旧版卡片座位,因此在 0.2 上恒为空([]),装完插件后索引不会自动重建。除改用 remote.pluginManager 外,备用指纹现在统计所有设置页与页内座位,没有插件清单的组合也能在下次打开设置面板时自动失效。
  • 主题颜色对齐正式版:失败提示改用正式版主题令牌 --dsw-alias-state-error-primary、成功提示改用 --dsw-alias-state-success-primary,弹窗遮罩改用 --dsw-alias-bg-mask-1;原来的 --dsw-alias-label-danger 在 0.2 主题里并不存在,错误提示此前不会显示为红色。

Features

  • Logs on disk and a log folder: logs are written per local day as $DSH_HOME/logs/dsh-settings-search/settings-search-YYYY-MM-DD.log (one dated file per day, beside the other plugins' logs). A single file is capped at 100 MB — the day then continues in numbered parts (.1, .2, …) — and the whole folder is held at 100 MB by deleting the oldest files by time, never the file being written. The pre-daily undated settings-search.log is folded into the current day on first run instead of lingering. The log section gained Open log folder, which reveals that directory in your file manager.
  • View logs: a View logs button opens a read-only log window with the end of the on-disk log (open the folder for earlier lines), offering refresh, copy, and open-folder; when the host channel is unavailable it falls back to this session's entries and says so.
  • DSH 0.2 stable support: the stable release moved the client plugin inventory onto the remote.pluginManager namespace. The plugin now reads it through listBundles / listPlugins and re-checks on every settings-panel mount, so installing, updating, or toggling another plugin still rebuilds the settings index. Earlier builds keep using the original pluginManager client service.

Fixes

  • Log recording: the ring buffer now writes through in batches — one line per entry, time [level] [run:seq] message {context}, shipped every 1.2 s or 40 lines and flushed once more when the page hides or unloads. The same line format feeds the file, the viewer, and the exported text. A failing write-through never logs about itself, and clearing logs drops the pending queue and truncates the file.
  • Host route authorization: the log channel registers an exact Fetch route on the DSH connection service's authenticated /api channel (the carrier the shipped session-log export uses), so the browser only ever calls a document-relative path and never handles a token.
  • Log tail read: reading a log larger than the tail budget now decodes only the bytes actually read, so a concurrent truncation or short read can never expose uninitialized memory as log text.
  • Open log folder (Windows): launches through the shell's own open verb (cmd /c start) instead of spawning explorer.exe directly — with windowsHide (CREATE_NO_WINDOW) Explorer creates a window that never becomes visible (measured: IsWindowVisible() === false), which is exactly "clicking does nothing". The shell verb shows the window and brings it to the foreground, and the host records the launcher it used ([host] 打开日志文件夹 ok (cmd.exe)) so the next attempt is diagnosable from the log itself.
  • Log counter: the badge beside the log title counts the entries of today's log file (returned by the host and refreshed on every read, write, and clear) instead of only this session's ring buffer; earlier days are visible in the log folder, and the session count is used only when the host channel is unavailable. A hover explains which number is shown. Clearing logs also removes this plugin's older log files.
  • Import DSH model config: the stable release moved the client API onto remote.* namespaces while the plugin still read through the legacy connection.api, so "Import DSH model config" failed with Cannot read properties of undefined (reading 'settings'). The reader now picks the face the running DSH offers: remote.settings / remote.llm on 0.2, connection.api on earlier builds.
  • Explain an impossible import: when the default model has no importable Base URL in DSH settings (for example a model served by the built-in DSH account), the message now names that model instead of the generic "No current DSH default model config found".
  • Client load dependencies: @deepseek-ai/dsh-client-runtime, absent from 0.2, is replaced in dsh.client.inject by that release's @deepseek-ai/dsh-api-gateway and @deepseek-ai/dsh-api-remotes.
  • Plugin-card indexing follows the stable layout: 0.2 moved plugin management to a standalone sidebar Plugins panel (plugins.item) and left only tabs inside the Settings → Plugins section, while search and navigation stay inside the settings dialog. Those cards are therefore no longer indexed on 0.2, so no result can dead-end there; the pre-0.2 seats (settings.plugin.item, web-ui.plugin.item) stay indexed for older builds.
  • Rebuild signals: both original signals were dead on 0.2 — the pluginManager client service does not exist, and the fallback fingerprint only counted the two pre-0.2 card seats, so it was permanently empty ([]) and an installed plugin never rebuilt the index. Besides moving to remote.pluginManager, the fallback now counts every settings page and in-page seat, so a composition without a plugin inventory also invalidates its stored index on the next panel open.
  • Theme colours align with the stable release: failure notices now use the stable token --dsw-alias-state-error-primary, success notices use --dsw-alias-state-success-primary, and dialog masks use --dsw-alias-bg-mask-1. The previous --dsw-alias-label-danger does not exist in the 0.2 theme, so error text never turned red.

v1.12.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:05

v1.12.0

https://github.com/objectivex666/dsh-settings-search

新功能

  • 设置索引持久化:首次采集后的设置索引保存在本机浏览器;只在首次安装、其它插件安装或更新时重建,也可在「设置搜索」页手动重建。
  • 模型选择:AI 接口配置新增「获取模型」,可从 Ollama、OpenAI 兼容和 Anthropic 接口返回的模型中选择,同时保留手动输入。
  • 快捷入口:「设置搜索」页新增 GitHub 仓库和反馈问题入口。

修复

  • 弹出搜索层级:弹出搜索页遮罩层级提升到 1000,避免被宿主界面覆盖。
  • 模型列表可靠性:模型列表请求限制为 12 秒,禁用重定向,配置变更时取消旧请求并清空旧列表。

Features

  • Persistent settings index — the first harvested settings index is stored locally. It rebuilds only on first use or after another plugin is installed or updated, and can be rebuilt manually from the Settings Search page.
  • Model selection — the AI configuration can fetch models from Ollama, OpenAI-compatible, and Anthropic APIs; complete manual model names are still supported.
  • Quick links — the Settings Search page links to the GitHub repository and issue chooser.

Fixes

  • Popup layering — the popup search overlay now uses z-index 1000 so host UI cannot cover it.
  • Model list reliability — model list requests time out after 12 seconds, reject redirects, and clear stale lists when configuration changes.

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 05:15

v1.11.0

https://github.com/objectivex666/dsh-settings-search

新功能

  • 本机 Ollama:AI 联想搜索新增「Ollama(本机)」接口类型,默认地址为 http://127.0.0.1:11434。支持原生聊天接口,无需 API Key,且不会发送已有云端密钥。
  • Ollama 配置与测试:支持保存模型名、自定义地址、导入 DSH 的 Ollama 配置,以及通过「测试接口」验证连接。请求超时时间为 120 秒,并提供本机服务及跨域错误提示;插件不会启动 Ollama 或下载模型。

修复

  • 切换 AI 配置:缓存按接口、地址、模型及设置索引隔离,配置变更时清理旧结果;同一设置页内切换接口会保留已输入的地址与模型名。
  • 请求取消与超时:超时或取消搜索时中止底层请求;修改配置或离开设置页时取消接口测试,避免旧测试结果覆盖当前配置。

Features

  • Local Ollama: AI-assisted search now offers an "Ollama (local)" API type, defaulting to http://127.0.0.1:11434. Uses the native chat API without an API key and never sends an existing cloud API key.
  • Ollama configuration and testing: save a model name and custom URL, import DSH's Ollama configuration, and check connectivity with "Test API". Requests allow 120 seconds and report local-service and cross-origin errors. The plugin does not start Ollama or download models.

Fixes

  • Switching AI configuration: cache entries are scoped by API type, URL, model, and settings index; configuration changes clear old results. Switching API types within the settings page preserves URL and model drafts.
  • Cancellation and timeouts: timed-out and cancelled searches abort the underlying request. Editing configuration or leaving the settings page cancels the connectivity test so stale results cannot overwrite the current configuration.

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 17:17

v1.10.0

https://github.com/objectivex666/dsh-settings-search

✨ 新功能

  • 搜索快捷键:在设置面板内按 Ctrl+F 或 ⌘F 聚焦搜索框;弹出搜索页样式会直接打开搜索页。可在「设置搜索」页启用或关闭,关闭后保留浏览器默认查找行为。

🐛 修复

  • 移除混合搜索样式:删除“顶栏 + 搜索页”模式及其重复窗口渲染逻辑,保留经典侧栏、窗口顶栏和弹出搜索页三种稳定布局。

✨ Features

  • Search shortcut — focus the search box with Ctrl+F or ⌘F inside the settings panel; the popup-page style opens that page directly. You can enable or disable it from the "Settings Search" page, and disabling keeps the browser's default find behavior.

🐛 Fixes

  • Remove mixed search style — removed the “top bar + popup page” mode and its duplicate-window rendering path, leaving three stable layouts: classic sidebar, top bar, and popup search page.

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 17:30

v1.9.0

https://github.com/objectivex666/dsh-settings-search

✨ 新功能

  • 混合搜索样式:新增“窗口顶栏 + 弹出搜索页”模式,顶栏输入框获得焦点或输入后弹出搜索结果页;按 Esc 可关闭弹层。
  • 导入 DSH 模型配置:AI 接口配置新增一键导入功能,自动读取 DSH 当前默认模型的 Base URL 与模型名,并映射 OpenAI 兼容 / Anthropic 接口类型。该功能不会读取、导入或保存 API Key。
  • 更新新用户引导:引导内容补充四种搜索样式;“不再显示”按钮与手动“新用户引导”入口已移除。引导仅在安装后首次打开设置面板时自动弹出。
  • API Key 存储加固:AI API Key 从 localStorage 迁移到 sessionStorage,并自动清除旧版持久化副本;Key 只在当前浏览器会话内保留。

🐛 修复

  • 皮肤中心选项标题:搜索“启用皮肤中心”时不再把“关闭后停用试穿、应用与背景控件,重新打开即恢复。”等条件说明拼进标题;即使标题与说明之间没有标点也会正确拆分。
  • 发布链路加固:release helper 增加严格语义版本校验;GitHub Actions 检出不保留 Git 凭据,npm 发布增加 --ignore-scripts。

✨ Features

  • Mixed search style — a new “window top bar + popup page” layout opens the popup results page when the top-bar input is focused or typed into; press Esc to close the popup.
  • Import DSH model config — the AI API section can import the Base URL and model name from DSH's current default model and map it to OpenAI-compatible or Anthropic. It never reads, imports, or stores an API key.
  • Updated onboarding — the guide now covers all four search styles. The “Don't show again” button and manual onboarding button were removed; the guide appears automatically only on first use after installation.
  • API-key storage hardening — the AI API key now uses sessionStorage, and any legacy localStorage copy is removed automatically; the key only persists for the current browser session.

🐛 Fixes

  • Skin Center option labels — searching for “启用皮肤中心” no longer merges conditional text such as “关闭后停用试穿、应用与背景控件,重新打开即恢复。” into the title. The description is stripped even when no punctuation precedes it.
  • Release pipeline hardening — the release helper now validates strict semantic versions; GitHub Actions checkout no longer persists Git credentials, and npm publish uses --ignore-scripts.

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 04:19

v1.8.0

https://github.com/objectivex666/dsh-settings-search

✨ 新功能

  • 新用户引导界面:首次打开设置面板时弹出引导弹窗,介绍实时搜索、拼音与意图联想、AI 联想、点击即达、自动导入索引与自带设置页等核心功能;可一键打开「设置搜索」页,并支持「不再显示」。仅在首次自动弹出,之后可在「设置搜索」页通过「新用户引导」按钮重新打开。
  • 清空日志二次确认:「清空日志」按钮需再次确认「确认清空」才会执行,避免误清空日志。
  • 清除 API 配置:AI 配置区新增「清除配置」按钮,可一键清除 Base URL、模型名与 API Key(需二次确认),便于快速重置。同时为 API Key 输入框禁用浏览器密码保存提示。
  • 测试 API 服务:AI 配置区新增「测试接口」按钮,发送最小请求验证 Base URL、模型名与 API Key 是否可用,并就地显示成功或失败原因;失败时按 HTTP 状态码/错误类型给出可读提示(如认证失败、无权限、接口不存在、限流、服务端错误、超时等)。
  • 页内选项可搜索:「创意工坊」等分区内的选项(如「启用创意工坊卡片」)现可直接搜索并点击跳转,命中后在对应页面高亮该选项。
  • 启动自动索引:首次打开设置面板时自动遍历各设置分区,静默读取分区内选项(如「启用创意工坊卡片」)并导入搜索索引,无需逐页手动打开即可直接搜索所有分区选项;读取完成后自动恢复当前所在分区,并在搜索框下方显示导入提示,完成后自动消失。

🐛 修复

  • 搜索结果名称截断:搜索结果中的设置项名称过长时不再以单行省略号截断,改为换行完整展示;并优化页内选项的标签提取,优先显示选项本名,去除多余的行内描述(如「关闭后停用试穿、应用与背景控件…」)。
  • AI 接口安全加固:对 AI 服务 Base URL 进行校验,仅允许 http(s) 地址;非本机地址必须使用 https(避免明文泄露 API Key),并拒绝内嵌账号密码或危险协议(如 javascript:、data:)的地址。不安全地址会在「测试接口」中给出明确提示,且 AI 联想会跳过该请求。

✨ Features

  • First-run onboarding guide — the first time the settings panel opens, a welcome modal introduces core features: instant search, pinyin & intent hints, AI hints, click-to-navigate, auto-index, and the built-in settings page. It can open the "Settings Search" page directly and be dismissed with "Don't show again". It only appears automatically once, after which you can reopen it from the "Settings Search" page's "Onboarding" button.
  • Clear-logs confirmation — the "Clear logs" button now asks you to confirm before clearing, so logs are never wiped accidentally.
  • Clear API config — a "Clear config" button in the AI section clears the Base URL, model, and API key after confirmation, so you can reset quickly. The API-key input also no longer triggers the browser's save-password prompt.
  • Test API service — a "Test API" button in the AI section sends a minimal request to verify the Base URL, model, and API key, showing success or the failure reason inline; on failure it shows a readable hint based on the HTTP status / error type (auth failed, forbidden, endpoint not found, rate limited, server error, timeout, etc.).
  • In-page options are searchable — options inside sections such as "Enable Workshop card" under Workshop can now be searched and clicked to jump, with the matching option highlighted.
  • Auto-index on startup — the first time the settings panel opens, the plugin automatically visits every settings section, silently reads in-page options (e.g. "Enable Workshop card") into the search index, then restores your current section, so all section options are searchable without having to open each page manually. A short "Importing section options…" hint appears under the search box and disappears when it finishes.

🐛 Fixes

  • Truncated result names — long setting names in search results are no longer cut off on a single line with an ellipsis; they now wrap to show the full name. In-page option label extraction now prefers the option's own name and strips trailing in-row description sentences (e.g. a "When disabled…" note), so results show just the setting name.
  • Hardened the AI endpoint URL — the AI service Base URL is now validated: only http(s) is allowed, remote hosts must use https (so the API key is not sent in cleartext), and URLs with embedded credentials or dangerous schemes (e.g. javascript:, data:) are rejected. Unsafe URLs show a clear hint in "Test API" and are skipped by AI suggestions.

v1.7.2

Choose a tag to compare

@github-actions github-actions released this 28 Aug 09:46

v1.7.2

https://github.com/objectivex666/dsh-settings-search

✨ 新功能

  • Issue 提交指南:README「反馈与贡献」章节新增提交 Issue 时的说明,提醒附带问题描述、复现步骤、日志(「设置搜索」页可导出)、环境信息与截图/录屏,便于定位与复现。

🐛 修复

  • 纯文档完善,无功能修复。

✨ Features

  • Issue submission guide — the README's "Feedback & contributions" section now asks reporters to include a problem description, reproduction steps, logs (exportable from the "Settings Search" page), environment details, and screenshots/recordings so issues are easier to locate and reproduce.

🐛 Fixes

  • Documentation only; no functional fixes.

v1.7.1

Choose a tag to compare

@github-actions github-actions released this 28 Aug 08:47

v1.7.1

https://github.com/objectivex666/dsh-settings-search

✨ 新功能

  • 查看更新说明:在「检查更新」旁新增按钮,点击拉取 GitHub Release 更新内容并就地展示;拉取失败时自动跳转至 Release 页面。
  • 欢迎提交 Issue:README 新增「反馈与贡献」章节,邀请反馈 Bug、功能建议或疑问,也欢迎发起 Pull Request。

🐛 修复

  • 「检查更新」按钮配色与「保存配置」统一,设置页视觉更一致。
  • 完成 Codex Security 安全扫描:当前工作区 diff 未发现可报告漏洞,无安全回归。

✨ Features

  • View release notes — a new button next to “Check for updates” fetches the GitHub release notes and shows them inline; if fetching fails it opens the release page automatically.
  • Issues welcome — README now has a “Feedback & contributions” section inviting bug reports, feature ideas, and pull requests.

🐛 Fixes

  • Unified the “Check for updates” button color with the “Save config” button for a consistent look.
  • Ran a Codex Security review of the working tree: no reportable vulnerabilities found; no security regressions.