Overview
model-failover-manager
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
- 依赖 DSH 的 `slots`、`modelDirectories`、`sessions`、`remote`、`remote.session` 服务与 `agent/request-error` 事件;宿主接口变动时需同步跟进。 - 失败状态到日界线(默认北京时间 8:00)统一过期,没有按失败原因分级退避或熔断;同一使用日内失败得越早、被挡得越久。并发类失败不进这套状态,走的是几十秒的临时冷却。 - 换账号能力依赖 `dsh-our-free-model` 是否安装;未安装时只有分组换模型这一条路径。「这个 provider 是否归它管」靠 `ofmHandoffExcludeProviders` 显式声明,不自动推断。 - qoder 压缩 shim 依赖 `dsh-our-free-model` 的 `pack.js` 里那一行注入口。该包升级会整份替换 `pack.js`,钩子随之消失;插件会自动补回并写进 `/status.qoderShim.hookRepair`,但补回要等下一次宿主启动才生效。若上游某次改动了类定义的形状导致无法唯一定位,插件只报告、不改文件,此时 qoder 会退回「无压缩直发」(`targets` 里没有 `pack:` 条目即为这种情况)。 - 判断 qoder 到底有没有压缩,只认 `/status.qoderShim.effective` 与 `folded`,不要看 `installed`:`installed` 在「补丁挂在没人用的那份加密器上」时同样为 `true`,2026-10-26 就是这样静默失效过一整天。 - `pack.js` 有两份副本(`$DSH_HOME/plugins/` 下的开发副本与 `$DSH_HOME/profiles/<name>/node_modules/` 下宿主真正 import 的那份),尺寸与 mtime 会不同。插件对每一份都做检查,`hookRepair.copies` 逐份列出;只补 `plugins` 那份是不够的。
