Skip to content

Release v7.19.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 23:42
a26b3d6

Summary

A provider whose quota or spend limit is used up no longer stops a provider pool. Cratis.AI moves the same request to another provider that still has capacity, and agent workers report this failure with a typed reason so the dispatcher can continue the work elsewhere.

Added

  • LanguageModelResult.IsQuotaExhausted, PoolAttemptOutcome.QuotaExhausted, and TriedProviders and QuotaExhaustedProviders on PoolDispatchResult (#423)
  • The worker failed callback carries reason: "quotaExhausted" with provider, plus model and vendorCode when known, when the agent session ran out of quota. Other failures send the same fields as before (#423)

Changed

  • Quota and spend-limit errors (Anthropic enforced_spend_limit_reached and "credit balance is too low", OpenAI and Azure insufficient_quota and billing_hard_limit_reached, HTTP 402) are no longer retried against the same provider. Pool dispatch and pooled conversations park that provider and resend the same request to the next member with capacity. Ordinary 429 throttling still retries after Retry-After (#423)
  • When every pool member is exhausted, the failure names each provider tried (#423)
  • A Claude session that exits normally but ends with a quota-exhausted error result is now reported as failed instead of completed (#423)