From a389f2699afafa4198ca6b3e0fdba04406ea7eae Mon Sep 17 00:00:00 2001 From: clousky Date: Mon, 20 Apr 2026 12:57:27 +0800 Subject: [PATCH] fix(fallback): merge new provider failure threshold fields in profile The mergeProviderProfile function was missing the three new fields added to PROVIDER_PROFILES (providerFailureThreshold, providerFailureWindowMs, providerCooldownMs). This caused tests to fail because the profile returned by getRuntimeProviderProfile did not include these fields. Co-Authored-By: Claude Opus 4.6 --- open-sse/services/accountFallback.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/open-sse/services/accountFallback.ts b/open-sse/services/accountFallback.ts index 749a5e9bf6..fc9c45d1da 100644 --- a/open-sse/services/accountFallback.ts +++ b/open-sse/services/accountFallback.ts @@ -2,6 +2,7 @@ import { COOLDOWN_MS, BACKOFF_CONFIG, BACKOFF_STEPS_MS, + PROVIDER_PROFILES, RateLimitReason, HTTP_STATUS, } from "../config/constants.ts"; @@ -27,6 +28,10 @@ type ProviderProfile = { maxBackoffLevel: number; circuitBreakerThreshold: number; circuitBreakerReset: number; + // Provider-level circuit breaker fields + providerFailureThreshold: number; + providerFailureWindowMs: number; + providerCooldownMs: number; }; type JsonRecord = Record; type ModelLockoutEntry = { @@ -187,6 +192,10 @@ function buildProviderProfile( maxBackoffLevel: connectionCooldown.maxBackoffSteps, circuitBreakerThreshold: providerBreaker.failureThreshold, circuitBreakerReset: providerBreaker.resetTimeoutMs, + // Provider-level circuit breaker fields (not configurable via settings, use PROVIDER_PROFILES defaults) + providerFailureThreshold: PROVIDER_PROFILES[category].providerFailureThreshold, + providerFailureWindowMs: PROVIDER_PROFILES[category].providerFailureWindowMs, + providerCooldownMs: PROVIDER_PROFILES[category].providerCooldownMs, } satisfies ProviderProfile; }