Overview
dsh-plan-act-models
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
1. **几项配置都不写 `reasoningEffort` 时,下拉框无法区分它们**:provider 与 model 都一样, "当前在哪一项"没有可比较的差异,此时按 plan 模式决出显示项(tie-break),内建的 Plan / Act 在并列时优先;选另一个同路由的条目效果只是把 effort 改回默认。 2. 手动在原生选择器里换到的模型若恰好等于某一项的 route,会显示成那一项(语义等价,不算错)。 3. `enabled` 关闭只停自动切换;它不会锁住下拉框,也不会阻止你手选一个和 plan 模式不匹配的模型, 或手选一个自定义模式。 4. 若被链接安装(目录 junction / `link:`),`lib/schema.mjs` 会依次尝试裸导入宿主安装里的 `@deepseek-ai/schemastery`、`DSH_SCHEMASTER_ROOT` 指定的副本、从 `process.execPath` 与启动参数 往上回溯找到的 `resources/app.asar` / `app.asar.unpacked` 副本(回溯 8 层,也接受相邻的普通 `node_modules`),最后才是 profile 里的副本。**每一份都会先校验能力**:必须带 `.volatile()` (schemastery ≥ 3.18.5)。profile 的上级 `node_modules` 里常残留旧副本(例如 3.18.1 的 陈旧 junction),旧副本能 resolve 但没有 `.volatile()`,直接用会让插件在声明 Config 时就崩, 所以现在被跳过并在报错里点名版本。全都不可用时插件整体不加载——设置页显示「宿主没有提供配置项」, 报错列出每条试过的路径,可用 `DSH_SCHEMASTER_ROOT` 指向副本目录。 5. **自动切换失败只降级,不拖垮会话**:`selectModel` 被拒绝(模型不在目录里、连接不可用)时 插件只告警一次并跳过;`agent/created` 里挂载监听器抛出的异常同样就地吞掉, 否则那个 Agent 永远 publish 不出来。 6. **挂载点只有两个事件**:每个 root Agent 的 `tools/result`(审批)与根平面的 `session/event`(`plan/mode`)。不再有请求期改写,所以没有「比宿主更早装监听器」的优先级问题。 7. **下拉框沿用硬编码中文**:与设置页一致,没有走 Client locale 服务;`client.js` 里甚至不能出现 `locale` 字样(`test/client.test.mjs` 有既有断言)。 8. **`conversation.input.right` 目前无人占用**,所以我们的条目稳定落在模型选择器左侧;若将来有别的 包也注册到同一个座位,顺序由 `order` 决定(本插件是 100),届时可能需要重新排序。 9. **项目覆盖编辑器暂时从设置页隐藏**(`client.js` 里 `SHOW_PROJECT_OVERRIDES = false`)。 宿主仍然解析 `projects`、测试仍然覆盖它、手写的覆盖照旧生效;只是页面上不再提供入口 —— 一个"含义随文件夹变"的下拉框比它解决的问题更让人困惑。代码一行没删,把那个常量改成 `true` 就恢复。隐藏期间页面**不会**因为一条手写的、不完整的覆盖而拒绝保存,也不会在保存时抹掉它。 10. **自定义模式是全局的**:它不参与 `projects` 覆盖,也不会被两条自动规则选中, 只在你手动点选时生效。
