Skip to content

dsh-keys-setting v0.2.3 — 改键设置在引擎 0.2.0 上重新生效

Choose a tag to compare

@itchenshi itchenshi released this 04 Oct 23:54
· 4 commits to main since this release

这一版是功能修复,不是文案

在引擎 0.2.0-rc.2 上,本插件此前是完全静默失效的:插件照常加载、路由照常在、
日志里什么都不说 —— 但改键设置怎么改都没用。

原因

引擎从 0.1.5 升到 0.2.0 时,settings 服务被换成了 SettingsForms:

旧:get(ns) / section(ns) / register(ns, Config)      ← 全部移除
新:describe() / update(ns, patch, revision) / replace() / mutate() / configure()

本插件原来调 settings.register() 注册自己的命名空间,这个调用在 0.2.0 上抛错 →
apply 失败 → 路由根本没注册 → 设置页那一行还在,改它却毫无效果。
(三条独立证据:dsh-settings 的类型声明、全引擎 0 处旧调用、运行时探测的 404。)

修法

偏好现在就是本插件自己 row 的配置:

  • 读:apply(ctx, config) 收到的字段是引擎交进来的 Volatile 引用,
    每次用 .get() 读 —— 缓存下来就等于把偏好冻结在启动那一刻;
  • 写:settings.update('composer-keys', patch, revision),revision 先由 describe() 读出;
  • cordis.patch.yml 的插入行补了 config: {}(实测没有它这个 entry 既不可描述也不可写);
  • 调 settings.configure({ auto: false }),避免引擎再自动生成一个重复的设置页
    (我们自带 Settings → 通用 那一行)。

顺带:settings.yaml 这个文档在 0.2.0 已被取消,可调值改为落在插件自己的 row config 里 ——
这正是引擎自带的 cordis-plugin-development 文档要求的口径。

环境要求

  • DSH ≥ 0.2.0-rc.2(本版按该版本的 settings API 重写)
  • Node ≥ 20
  • 零运行时依赖(dependencies 为空)

安装 / 升级

dsh plugin --profile web add github:itchenshi/dsh-keys-setting

或本 Release 的 tarball(dsh-keys-setting-0.2.3.tgz)。

用 DSH Ready GUI:随包版本已抬高到 0.2.3,下次启动 GUI 会自动换过来。

验证

  • 本仓库 npm test:21 项通过(新增 readPrefs 用例,含「同一引用改值后再读必须
    拿到新值」——防止有人把它缓存起来)
  • GUI 侧 verify:builtin 运行时探测:/composer-keys 由 404 变为 401,
    即插件重新注册成功