Repository navigation
Releases
Releases · DreamRift/dsh-thinking-efforts
v0.3.0 — 适配 DSH 0.1.7-rc.x 官方桌面版(修复安装后无效果)
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