问题
1. 自动故障转移设置无法保存
在 设置 → 供应商配置 里开启自动故障转移并配置队列后,退出设置再重新进入,配置全部丢失(开关回到关闭、队列清空)。
原因:modelFailover 没有接入任何持久化通道——persistSettings() 的变更检测和 writeLocalUiSettings() 的 payload 都不包含它,loadPersistedSettingsWithDefaults() 加载时也不读它;而每次打开设置页都会从磁盘重载,内存里的配置随即被默认值覆盖。
2. 队列语义偏离 cc-switch
故障转移队列存的是「供应商 + 模型」对,故障时可能切到不同的模型。参照 cc-switch 的设计,failover 应该只换供应商、不换模型:用当前对话正在用的模型 ID 原样请求队列里的下一个同厂商供应商。
期望行为
- 故障转移开关、队列、熔断参数在重进设置页/重启应用后保留
- 队列为供应商级(同厂商内排序),故障时同模型透传到下一个供应商;未激活该模型的供应商自动跳过
- 旧格式(供应商+模型对)自动迁移
🤖 Generated with Claude Code
问题
1. 自动故障转移设置无法保存
在 设置 → 供应商配置 里开启自动故障转移并配置队列后,退出设置再重新进入,配置全部丢失(开关回到关闭、队列清空)。
原因:
modelFailover没有接入任何持久化通道——persistSettings()的变更检测和writeLocalUiSettings()的 payload 都不包含它,loadPersistedSettingsWithDefaults()加载时也不读它;而每次打开设置页都会从磁盘重载,内存里的配置随即被默认值覆盖。2. 队列语义偏离 cc-switch
故障转移队列存的是「供应商 + 模型」对,故障时可能切到不同的模型。参照 cc-switch 的设计,failover 应该只换供应商、不换模型:用当前对话正在用的模型 ID 原样请求队列里的下一个同厂商供应商。
期望行为
🤖 Generated with Claude Code