4.23.0
(feat): XML-encoded (TwiML) types now carry inline Javadoc on their user-facing API: the class itself gets the
type description, every Builder setter overload gets the property description, and child appenders
(say.break_(...), response.say(...)) document the child element plus @param/@return.
4.22.2
(fix): RetryInterceptor now applies the client timeout to each attempt individually instead of to the
whole retry loop. Previously a Retry-After wait as long as the timeout (e.g. Retry-After: 60
with the default 60s timeout) cancelled the call during the backoff sleep and surfaced
IOException: Canceled instead of retrying or returning the received 429. The call timeout is
paused while waiting for the backoff and restarted for each retry attempt, so a call that retries
may now take up to timeout * (maxRetries + 1) plus the backoff waits.
4.22.1
(fix): Closing the root client (or ClientOptions.close()) now disconnects any WebSocket clients that are still
connected before the SDK-owned OkHttp dispatcher is shut down, so they stop reconnecting cleanly instead of
failing asynchronously with InterruptedIOException: executor rejected. ClientOptions exposes isClosed();
WebSocket connect/reconnect attempts made after close, as well as OkHttpWebSocketFactory.create(...) when
constructed with a closed-check, fail fast with IllegalStateException("root client has been closed").