You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
4
4
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
7
+
## [4.1.1] - 2026-07-13
8
+
### Fixed
9
+
- Retry and circuit breaker plugins now detect failures correctly: they previously assumed the HTTP client throws synchronously on error, but a spec-compliant PSR-18 client returns 4xx/5xx responses without throwing, and `ErrorPlugin` (when used) only surfaces failures as a rejected Promise. Both `RetryHandler` and `CircuitBreaker` now inspect the actual resolved outcome (status code or exception) of each attempt, so `configureRetry()`/`configureFixedRetry()`/`enableReliability()` retry on 429/5xx responses as documented.
10
+
11
+
## [4.1.0] - 2026-07-03
12
+
### Added
13
+
- HTTP 429 rate-limit handling: retry strategies now honor the `x-rate-limit-reset` response header (capped by `max_delay_ms`) instead of relying solely on generic backoff.
14
+
- `RateLimitExceededException`, thrown once retries are exhausted on a 429, exposing `getRetryAfterSeconds()` and `getResponse()`.
15
+
7
16
## [4.0.0] - 2026-06-28
8
17
### Added
9
18
- Full HTTP observability tools: structured logging with token masking, per-status log levels, and custom logger support.
0 commit comments