Skip to content

Releases

v0.3.0 — 适配 DSH 0.1.7-rc.x 官方桌面版(修复安装后无效果)

Choose a tag to compare

@DreamRift DreamRift released this 25 Sep 01:44

v0.3.0 — 适配 DSH 0.1.7-rc.x 官方桌面版

修复「安装后插件表面无效果」:旧版依赖的两个机制在当前 DSH 已不存在——插件能加载,但永远不会有任何代码路径执行写入。

根因

依赖 旧版假设 0.1.7-rc.2 实测
触发事件 settings/updated(ns, next) 仅 settings/document-updated(ns, revision)
读取当前值 ctx.settings.get(ns) settings 服务无 get(只有 describe/update/replace/mutate/configure/prepareDocument)

两个失败都是静默的:主触发器完全不触发;启动兜底的 TypeError 被 catch 吞掉只留 warn 日志。

变更

  • 触发器改为 settings/document-updated(仅响应 ns === 'llm-pi-ai');app-boot/config-reload、llm/adapters-updated 作兜底触发器
  • 读取改为 settings.describe() 描述符的 user 层(profile patch 层 = 用户自定义提供方所在层;不动 value/base 层,避免把 bundle 目录提供方写进用户 patch)
  • 写入仍为 settings.mutate('llm-pi-ai', ops):llm-pi-ai 的 providers 是 volatile 字段,热提交不重启条目,llm-pi-ai 监听 loader/volatile-update 热重建路由,Composer 即时出现档位;结果落盘 profile 的 cordis.patch.yml,重启不丢
  • 启动 1.5s 首扫 + 命名空间未就绪时间隔 1s 重试(上限 30 次,告警只打一次);写后 250ms 确认扫描收敛,写入失败 5s 退避;新增 dispose() 清理定时器
  • force: true 收敛修复:值与目标四档等价的条目不重复写(此前验证扫描会无限循环写)
  • 附带 v0.2.0 未提交的四档升级:默认档位 off/high/max → off/low/high/max(对齐 rc.7 起官方 llm-deepseek 适配器)

兼容性

  • 目标版本:DSH 0.1.7-rc.x(官方桌面版 nightly,实测 0.1.7-rc.2)
  • 更早版本线(≤ 0.1.2-rc.x)依赖当时存在、现已移除的 settings/updated 事件与读取路径,不适用本版;可在本版基础上把触发器/读取路径换回旧机制复用四档常量

安装

dsh plugin --profile desktop add <本页 tgz 或 git 规格>

重启 DSH 后:在模型设置页保存/修改自定义提供方 → Composer 模型选项应出现 Off / Low / High / Max 四档。未生效时查看日志中 [thinking-efforts] 前缀的 info/warn 即可定位。

测试

24 项单测全绿(node --test):

  • buildReasoningOps / selectUserProviders 纯函数测试(含 force 收敛、三档/四档不覆盖、modelOverrides 路径写)
  • apply 装配集成测试(假 ctx / 假 settings / 可控定时器:启动写入一次、未就绪重试后补齐、事件按命名空间分流、写入失败退避重试、dispose 取消、describe 抛异常耐受)

文件

  • dsh-thinking-efforts-0.3.0.tgz — npm pack 产物,可直接用于 dsh plugin add