Skip to content

fix: deduplicate in-flight mutating requests and add rate-limit-aware error handling (#44) - #181

Open
rafaio1 wants to merge 1 commit into
MergeFi:mainfrom
rafaio1:fix/44-deduplicate-mutating-requests
Open

fix: deduplicate in-flight mutating requests and add rate-limit-aware error handling (#44)#181
rafaio1 wants to merge 1 commit into
MergeFi:mainfrom
rafaio1:fix/44-deduplicate-mutating-requests

Conversation

@rafaio1

@rafaio1 rafaio1 commented Aug 20, 2026

Copy link
Copy Markdown

Fixes #44.

  • Add inflight mutation deduplication to apiRequest: identical concurrent POST/PUT/DELETE requests coalesce onto a single promise, preventing accidental double-submit from rapid clicks
  • Add Retry-After-aware 429 handling: ApiRequestError now carries retryAfter field; distinct user-facing message for rate limits
  • Audit all mutating-action UIs (IssueActions, MilestoneActions, sponsor and contributor dashboards): button-triggered actions already have pending/disabled states; useEffect-driven fetches rely on dedup layer
  • GET requests excluded from dedup (idempotent, may be concurrent)

TypeScript compiles cleanly with npx tsc --noEmit.

… error handling (MergeFi#44)

- Add inflight mutation deduplication to apiRequest: identical concurrent
  POST/PUT/DELETE requests coalesce onto a single promise, preventing
  accidental double-submit from rapid clicks
- Add Retry-After-aware 429 handling: ApiRequestError now carries
  retryAfter field; distinct user-facing message for rate limits
- Audit all mutating-action UIs (IssueActions, MilestoneActions, sponsor
  and contributor dashboards): button-triggered actions already have
  pending/disabled states; useEffect-driven fetches rely on dedup layer
- GET requests excluded from dedup (idempotent, may be concurrent)

TypeScript compiles cleanly with npx tsc --noEmit.
@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the chonilius' projects Team on Vercel.

A member of the Team first needs to authorize it.

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.

Deduplicate in-flight mutating requests and add rate-limit-aware error handling

1 participant