From 3626db0876680147a00b3ba70cad1962ae2729e7 Mon Sep 17 00:00:00 2001 From: Danny Kim Date: Wed, 23 Sep 2026 20:27:47 +0000 Subject: [PATCH] Recognize Claude weekly limits (#16) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recognize Claude’s actual weekly-limit message and continue to the next configured profile. The regression uses the production message from the failed migration review. Root suite: 38 passed. Reviewed-on: https://git.capsulizers.com/commons/bot-agents/pulls/16 Co-authored-by: Danny Kim Co-committed-by: Danny Kim --- src/profiles.ts | 2 +- src/profiles_test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/profiles.ts b/src/profiles.ts index ec59181..b164c12 100644 --- a/src/profiles.ts +++ b/src/profiles.ts @@ -5,7 +5,7 @@ export type BotProfile = { }; function isUsageExhausted(error: unknown): boolean { - return /(?:usage|rate) limit|hit your limit|insufficient_quota|exceeded your current quota|too many requests|(?:api error|http error|http|status(?: code)?)[ :]+4(?:02|29)\b/i + return /(?:usage|rate) limit|hit your (?:weekly )?limit|insufficient_quota|exceeded your current quota|too many requests|(?:api error|http error|http|status(?: code)?)[ :]+4(?:02|29)\b/i .test(String(error)); } diff --git a/src/profiles_test.ts b/src/profiles_test.ts index 245b97c..25cecbd 100644 --- a/src/profiles_test.ts +++ b/src/profiles_test.ts @@ -33,7 +33,7 @@ Deno.test("recognizes Claude's weekly limit message", async () => { ], (profile) => { if (profile.type === "claude") { - throw new Error("You've hit your limit · resets Monday"); + throw new Error("You've hit your weekly limit · resets 12am (UTC)"); } return Promise.resolve("fallback"); },