From 8ec366de42dd66256895f16c9669469791ca823a Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 9 Mar 2026 05:50:59 +0000 Subject: executor: strengthen rate-limit avoidance in classifier Updated isQuotaExhausted to detect more Claude quota messages. Added 'rate limit reached (rejected)' to quota exhausted checks. Strengthened classifier prompt to explicitly forbid selecting rate-limited agents. Improved Pool to set 5h rate limit on quota exhaustion. --- internal/executor/claude.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'internal/executor/claude.go') diff --git a/internal/executor/claude.go b/internal/executor/claude.go index ad1c4e3..9184333 100644 --- a/internal/executor/claude.go +++ b/internal/executor/claude.go @@ -433,7 +433,9 @@ func parseStream(r io.Reader, w io.Writer, logger *slog.Logger) (float64, error) if info, ok := msg["rate_limit_info"].(map[string]interface{}); ok { status, _ := info["status"].(string) if status == "rejected" { - streamErr = fmt.Errorf("claude rate limit reached: %v", msg) + streamErr = fmt.Errorf("claude rate limit reached (rejected): %v", msg) + // Immediately break since we can't continue anyway + break } } case "assistant": -- cgit v1.2.3