Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
The DataImpulse proxy has dead ports that stall ~10s on connect, and undici's ProxyAgent connect.timeout does NOT bound the proxy connection (verified: runtime still 10s despite the Phase-2 setting). With the 30s request timeout, 2-3 dead ports blow the 25s decode budget → false misses + 12-32s p95 (prod). /car/info answers in <1s on a healthy proxy, so bound it at the fetch level instead: a 6s per-call AbortSignal + 4 retries (both env-tunable: PCAT_DECODE_TIMEOUT_MS / PCAT_DECODE_MAX_RETRIES) make a stuck port abort fast and rotate to a live one within budget. Helps every PCAT decode, not just Renault. Band-aid for proxy flakiness; proper fix is proxy port health-tracking (follow-up). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>