{"repo":"NousResearch/hermes-agent","public_id":"117484","display_label":"Rate-limit cooldown should use provider reset window","summary":"These issues and PRs concern a bug where the rate-limit fallback cooldown uses an exponential backoff guess instead of the provider's own reset timestamp, which is parsed but then discarded. The work focuses on making the cooldown honor the provider-supplied reset time.","subsystem":null,"counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":117604},"resolution":{"state":"resolved","by":"pr-117604"},"freshness":{"state":"verified","last_verified_at":"2026-09-21T00:00:44+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":117484,"pr_number":117604,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":117484,"title":"[Bug]: The rate-limit cooldown guesses the wait exponentially while the provider's own reset time is parsed a few lines earlier and dropped","url":null,"state":"closed"},{"kind":"pr","number":117493,"title":"fix(agent): honor provider rate-limit reset cooldown","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#117504","number":117504},{"kind":"pr","value":"#117518","number":117518}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":117503,"title":"fix(agent): keep fallback aligned with provider reset windows","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"dcae0d81d0","number":0},{"kind":"pr","value":"#117604","number":117604}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":117504,"title":"fix(agent): honor provider reset_at in rate-limit cooldown","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"dcae0d81d0","number":0},{"kind":"pr","value":"#117604","number":117604}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":117518,"title":"Honor the provider's own rate-limit reset window when arming fallback cooldown","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"dcae0d81d0","number":0},{"kind":"pr","value":"#117604","number":117604}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":117604,"title":"fix(agent): rate-limit cooldown honours the provider's reset window instead of an exponential guess (#117484, salvage #117503)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/chat_completion_helpers.py","agent/fallback_cooldown.py","agent/turn_api_error.py","agent/turn_recovery.py","hermes_cli/config_defaults.py","hermes_cli/web_server_config.py","tests/agent/test_provider_reset_cooldown.py","website/docs/user-guide/features/fallback-providers.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}