Skip to content

供应商自动故障转移:设置无法持久化,且队列应为供应商级(cc-switch 语义) #384

Description

@coder-hhx

问题

1. 自动故障转移设置无法保存

在 设置 → 供应商配置 里开启自动故障转移并配置队列后,退出设置再重新进入,配置全部丢失(开关回到关闭、队列清空)。

原因:modelFailover 没有接入任何持久化通道——persistSettings() 的变更检测和 writeLocalUiSettings() 的 payload 都不包含它,loadPersistedSettingsWithDefaults() 加载时也不读它;而每次打开设置页都会从磁盘重载,内存里的配置随即被默认值覆盖。

2. 队列语义偏离 cc-switch

故障转移队列存的是「供应商 + 模型」对,故障时可能切到不同的模型。参照 cc-switch 的设计,failover 应该只换供应商、不换模型:用当前对话正在用的模型 ID 原样请求队列里的下一个同厂商供应商。

期望行为

  • 故障转移开关、队列、熔断参数在重进设置页/重启应用后保留
  • 队列为供应商级(同厂商内排序),故障时同模型透传到下一个供应商;未激活该模型的供应商自动跳过
  • 旧格式(供应商+模型对)自动迁移

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions