1.64.2
(fix): Return a completed HTTP response instead of discarding it when the request
context is canceled after the response has been fully received but before
it is decoded. Caller.Call previously re-checked ctx.Err() at that point
and returned context.Canceled / context.DeadlineExceeded with a nil
response, which dropped valid responses that had already been buffered (for
example by a logging http.RoundTripper that ends its scope before
returning). Calls canceled before the request is sent, and calls whose
response body cannot be read to completion once the context ends, continue
to fail with the context’s error, and a canceled context still never
triggers a retry.
(fix): Fix undiscriminated union deserialization so JSON objects are matched to the correct object
member. Previously, the first object member always won because object UnmarshalJSON accepts
unknown keys and doesn’t enforce required keys, so values like {"ends_with": [...]} were
decoded as an earlier member and silently corrupted on re-serialization. Object members
(including aliases to objects) that don’t allow extra properties are now only selected when
the JSON keys are a subset of the member’s properties and include all of its required
properties, and permissive object members no longer shadow a later member that matches
exactly. If no member matches exactly, object members whose required keys are present are
tried next, and the previous behavior is kept as the final fallback.
(fix): Preserve explicit null on optional nullable (optional<nullable<T>>) object
properties across a JSON decode/re-encode round trip. Previously only required
nullable properties were tracked on decode, so a response field such as
"holder_category": null was dropped when the value was marshaled again.
Fields absent from the input remain absent, and plain optional<T> fields are
unaffected. The generated <type>RequiredNullableFields map is renamed to
<type>NullableFields, and generated SDKs now include an optional-nullable
round-trip test for each affected type.