Skip to content

供应商级流式重试策略:default/off/custom 三态可配置 #596

Description

@AlphaCatMeow

背景

流内重试(withStreamRetry)目前由全局常量 DEFAULT_STREAM_RETRY_MAX_ATTEMPTS 统一决定,用户无法按供应商调整。不同中转/官方端点的稳定性差异很大:不稳定的中转可能需要更多重试,而本地代理失败通常是永久性的,重试只会拖慢 failover。

目标

把流式重试策略的归属权反转到供应商配置(DSH 风格 per-provider retry policy,stack 第 3 层):

  • CustomProvider.retryPolicy?off | custommaxRetries 1..10,不含首次请求);未配置 = default,行为与现状严格等价
  • 旧配置零迁移:非法/缺省一律落 default 且不落字段
  • 运行时经 ProviderRuntimeConfig 唯一构造点透传,resolveStreamRetryConfig 解析为 withStreamRetry 选项;failover 逐候选使用各自供应商的策略
  • streamRetry.ts 重试机制本体与协议适配器零改动
  • 设置 UI(GUI 与 WebUI 镜像同源)提供 默认/关闭/自定义次数 三态控件

验收标准

  • 未配置任何 retryPolicy 时行为与 main 逐字节等价(golden + 既有 stream-retry 套件零修改通过)
  • 自定义 n 次时重试提示显示 (1/n)..(n/n),共 n+1 次请求
  • 关闭时连接失败直接报错(不影响跨供应商 failover)
  • 配置持久化且 default 态不落字段

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