fix: skip rate limit timer for short blocks (≤10 min) — CLI handles internally
The rate limit auto-scheduler was creating timers for every hard block, including short 5-minute throttles. This caused a death loop: agent hits rate limit, timer set, agent exits, pipeline restarts before timer fires, new agent dies instantly (Session: None) because API is still throttled. Short rate limits are handled naturally by the CLI's internal wait. Only schedule timers for long session-level blocks (>10 min) where the CLI will exit and needs external restart. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -255,6 +255,18 @@ pub fn spawn_rate_limit_auto_scheduler(
|
||||
agent_name,
|
||||
reset_at,
|
||||
}) => {
|
||||
// Skip short rate limits (≤10 min) — the CLI handles
|
||||
// these internally. Only schedule timers for long
|
||||
// session-level blocks where the CLI will exit.
|
||||
let until_reset = reset_at.signed_duration_since(chrono::Utc::now());
|
||||
if until_reset.num_minutes() <= 10 {
|
||||
crate::slog!(
|
||||
"[timer] Skipping short rate limit for {story_id} \
|
||||
({} min); CLI will handle internally",
|
||||
until_reset.num_minutes()
|
||||
);
|
||||
continue;
|
||||
}
|
||||
crate::slog!(
|
||||
"[timer] Auto-scheduling timer for story {story_id} \
|
||||
(agent {agent_name}) to resume at {reset_at}"
|
||||
|
||||
Reference in New Issue
Block a user