diff --git a/server/src/chat/timer.rs b/server/src/chat/timer.rs index dbca8d28..fbd1241e 100644 --- a/server/src/chat/timer.rs +++ b/server/src/chat/timer.rs @@ -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}"