Repository navigation
Add cooldown estimates and prepare limiter 4.1 - #105
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Sep 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a non-consuming
RateLimiter.getWaitTime(count)so callers can report cooldowns without confusing the token bucket's balance with the interval allowance. It accounts for both constraints, rounds up to milliseconds, validates impossible requests, and documents that competing/queued work can change the estimate.The README now leads with runnable examples, an API comparison, and explicit timing/composition semantics. Packaging exposes declarations for CommonJS, ESM, and legacy TypeScript resolution, and
npm packno longer requires a global Yarn installation. CI uses Yarn Classic's frozen-lockfile option and avoids sharing node_modules across Node versions. Prepares 4.1.0; publication is still separate.Validation: 32 passing tests and lint; a deterministic 5,000-request reproduction drains FIFO at the configured rate using one active timer; packed-package CommonJS/ESM imports; strict TypeScript NodeNext (CJS/ESM), legacy Node, and bundler resolution; executed README pacing and byte-budget examples.
Fixes #88. Clarifies the composition and fixed-window limitations discussed in #35; the 4.0 concurrent-accounting fixes are retained.