52763998d3
Провайдер-фабрики gemini и ollama (chat-путь) шли на глобальном undici-fetch: без keep-alive recycle, без ретраев на pre-response reset, с дефолтным (безграничным по паузе) таймаутом. Классы инцидентов #140/#175/#310 для них воспроизводимы так же, как для openai. Прокинул this.aiProviderFetch (одна строка на провайдера) — тот же слоёный instrumented streaming fetch, что уже стоит на openai. Плюс явно закрепил maxRetries=2 в обоих streamText-вызовах (authenticated и public-share): совпадает с дефолтом SDK, но фиксирует потолок против дрейфа дефолта. Арифметика коннектов на ход: (1 + maxRetries=2) × (1 + AI_STREAM_PRE_RESPONSE_RETRIES) — два слоя ретраев композируются. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>