Skip to content

feat(api): rate-limit feedback with retry countdown - #548

Open
Nuwe10 wants to merge 1 commit into
Stellar-split:mainfrom
Nuwe10:feature/517-api-rate-limit-feedback
Open

feat(api): rate-limit feedback with retry countdown#548
Nuwe10 wants to merge 1 commit into
Stellar-split:mainfrom
Nuwe10:feature/517-api-rate-limit-feedback

Conversation

@Nuwe10

@Nuwe10 Nuwe10 commented Jul 29, 2026

Copy link
Copy Markdown

Summary

Adds a unified 429 handler so any API call that hits the rate limit shows a dismissable countdown banner and auto-retries transparently.

Changes:

  • src/lib/api.tsapiFetch drop-in wrapper: intercepts 429, reads Retry-After header, schedules automatic retry, notifies subscribers; concurrent 429s share one countdown
  • src/context/RateLimitContext.tsxRateLimitProvider + useRateLimit hook subscribe to the api.ts event bus and expose retryAt to the tree
  • src/components/layout/RateLimitBar.tsx — slim amber banner with live second countdown; dismissable (visual only — auto-retry still fires); aria-live="polite"
  • src/app/layout.tsx — wraps the app tree with RateLimitProvider and renders RateLimitBar above Navbar

Validation: No TypeScript diagnostics in any new/modified file.

Closes #517

Closes Stellar-split#517

- Add src/lib/api.ts: central apiFetch wrapper that intercepts 429s, parses Retry-After header, schedules auto-retry via setTimeout, and notifies listeners; only one countdown tracked at a time regardless of concurrent 429s
- Add src/context/RateLimitContext.tsx: RateLimitProvider subscribes to api.ts rate-limit events and exposes retryAt timestamp via useRateLimit hook
- Add src/components/layout/RateLimitBar.tsx: slim dismissable amber banner with live second countdown; dismissing hides the banner but auto-retry still fires
- Wire RateLimitProvider + RateLimitBar into app layout above Navbar
@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

@Nuwe10 is attempting to deploy a commit to the kingsman-99's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jul 29, 2026

Copy link
Copy Markdown

@Nuwe10 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

API Rate-Limit Exceeded Feedback with Retry Countdown

1 participant