Model/tests/infrastructure/solar
Khalim Conn-Kowlessar 440159e7f4 Harden Solar API client against 429s: jitter, Retry-After, bounded backoff 🟩
Route the Google Solar client through the shared call_with_retry with
full jitter (de-synchronises the 32 concurrent containers per Google's
"avoid synchronised requests" guidance), honouring Retry-After, a 60s max
backoff (rides out the 600 QPM per-minute window), and 6 bounded retries.
429/5xx/transport errors are transient; other 4xx propagate immediately;
404-entity-not-found stays BuildingInsightsNotFoundError. On exhaustion a
TransientHttpError surfaces so the subtask fails and is re-triggered (no
silent degrade).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 10:51:23 +00:00
..
__init__.py GoogleSolarApiClient fetches building insights from the Solar API 🟥 2026-05-21 15:46:47 +00:00
test_google_solar_api_client.py Harden Solar API client against 429s: jitter, Retry-After, bounded backoff 🟩 2026-06-25 10:51:23 +00:00
test_google_solar_api_wiring.py GoogleSolarApi translates BuildingInsightsNotFoundError to sentinel dict 🟩 2026-05-21 16:06:54 +00:00