Langroid 0.67.2 fixes an async LLM backoff that froze every task on the event loop during a 429 retry
`async_retry_with_exponential_backoff`, used by all core async LLM call paths, was calling synchronous `time.sleep` during backoff, so a single rate-limit retry blocked concurrent agents, `run_batch_tasks` and any co-hosted server for the entire exponentially growing delay. The 2026-08-28 fix switches to `await asyncio.sleep(...)` and ships a regression test that runs a heartbeat task across real backoffs to prove the loop stays live. The same release routes `URLLoader` content-type-sniffed downloads through the hardened streaming fetcher, since they previously issued `requests.head`/`get` with no timeout and buffered whole response bodies in memory, ignoring the `url_max_size` (10MB default) and timeout settings that extension-bearing URLs already enforced.
Source
↳ Follow the thread