mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-13 18:32:12 +03:00
providerFailureThreshold / providerFailureWindowMs / providerCooldownMs shipped in PROVIDER_PROFILES with no runtime consumer (2026-08-31 docs audit, P0.1). Provider-level entries in providerCooldownTracker now honor them: the whole provider only counts as cooling after providerFailureThreshold failures inside providerFailureWindowMs, then cools for providerCooldownMs. Connection-level entries keep the pre-existing exponential backoff, and the layer stays opt-in (PROVIDER_COOLDOWN_ENABLED, default off) — default behavior is unchanged. TDD: tests/unit/provider-cooldown-window-gate.test.ts written first (4 red on the old behavior), then the wiring; legacy tracker suite aligned to the new contract (23/23 green). Docs: AGENTS.md breaker section + RESILIENCE_GUIDE opt-in layer subsection; executors soft-drift refresh (104 -> 106).