1.4.0 (6/10/2026)
Important
All client modules are considered stable. Some modules, including
server, CLI, and MCP, are still in developer-preview and may contain
bugs. No guarantee is made about their API stability. Unstable
modules are marked with a warning in their README.md and with the
@SmithyUnstableApi annotation in their package-info.java.
Features
- Added support for getter sections in union codegen, allowing codegen integrations to customize the generated union value getters. (#1229)
- Added call interceptors that can intercept and control the full lifecycle of a client call, enabling middleware-style behaviors such as caching and hedging. Interceptors can also override the operation input. (#1218)
- Added a
discard()method toDataStreamto drain unconsumed streams when needed. (#1224) - Added
x-amz-content-sha256handling for S3 and S3 Express requests. (#1217)
Bug Fixes
- Fixed several
DynamicClientserialization and deserialization issues, including comparing document-typed values by content, serializing renamed input/output shapes under their original wire name, and preserving null entries in@sparsemaps and lists. (#1233) - Fixed
PathSerializerto support non-string types in HTTP label bindings. (#1232) - Added a maximum depth limit to CBOR deserialization to guard against stack exhaustion from deeply nested input. (#1226)