diff --git a/cmd/gateway_errors.go b/cmd/gateway_errors.go index 61dde32b..76b676bc 100644 --- a/cmd/gateway_errors.go +++ b/cmd/gateway_errors.go @@ -32,7 +32,7 @@ func formatAgentError(err error) string { } // 4. Rate limit - if containsAny(lower, "rate limit", "rate_limit", "too many requests", "429", "quota exceeded", "resource_exhausted") { + if containsAny(lower, "rate limit", "rate_limit", "too many requests", "429", "quota exceeded", "resource_exhausted", "usage limit") { return "⚠️ API rate limit reached. Please try again later." } diff --git a/internal/providers/claude_cli_types.go b/internal/providers/claude_cli_types.go index b56a4dd9..d2838028 100644 --- a/internal/providers/claude_cli_types.go +++ b/internal/providers/claude_cli_types.go @@ -29,6 +29,8 @@ type cliStreamEvent struct { Model string `json:"model,omitempty"` CostUSD float64 `json:"cost_usd,omitempty"` Usage *cliUsage `json:"usage,omitempty"` + IsError bool `json:"is_error,omitempty"` // true when subtype="error" + Error string `json:"error,omitempty"` // error message (may be set when result is empty) } // cliStreamMsg wraps content blocks inside an assistant message event.