Repository navigation
dsh-keys-setting v0.2.3 — 改键设置在引擎 0.2.0 上重新生效
这一版是功能修复,不是文案
在引擎 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,
即插件重新注册成功