
tbphpandcheluen
ed87a87b76
refactor(failover): 重构故障转移状态码配置为标准模式 (#413)
* feat: 支持分组级故障转移状态码 (#397)
* feat: 支持分组级故障转移状态码(增量)
* fix: 限制故障转移状态码为分组级配置
* refactor(config): 清理 #397 遗留的代码质量问题
- 新增 validateStringSettingValue 辅助函数,消除 ValidateGroupConfigOverrides 中的重复校验逻辑
- 删除 ValidateSettings 中已成死代码的 failover_status_codes 分支(上游 ValidateSystemSettingsPayload 已拦截)
- 统一使用 GroupScopedSettingKeyFailoverStatusCodes 常量,消除字符串字面量
* refactor(failover): 重构故障转移状态码配置为标准模式
- 将 failover_status_codes 回归"系统默认 + 分组覆盖"标准模式
- 添加 default:"400-403,405-999",与原硬编码行为等价
- EnsureSettingsInitialized 不再跳过该字段,升级后自动写入默认值
- GetSettings 不再 sanitize,系统设置页可见可改
- proxy 层改为纯 matcher 匹配,删除硬编码默认条件
- shouldFailoverOnStatusCode 直接读 group.FailoverStatusCodeMatcher
- 字段语义从"追加"变为"完整策略",名字与行为对齐
- 删除特殊化机制:sanitizeRuntimeSystemSettings、IsSystemSettingVisible、
ValidateSystemSettingsPayload 及所有调用点
- ValidateSettings 补充 failover_status_codes 格式校验,与分组校验一致
- 更新三语 i18n 文案,示例改为 400-403,405-999,250-260
升级兼容:未配置用户行为完全不变;配置过分组级该字段的用户
需将旧的"追加"写法改为"完整列表"写法
---------
Co-authored-by: cheluen <101640183+cheluen@users.noreply.github.com>