Skip to content

v1.4.0

Latest

Choose a tag to compare

@yasmewad yasmewad released this 10 Jun 20:30
· 55 commits to main since this release
43117e6

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 to DataStream to drain unconsumed streams when needed. (#1224)
  • Added x-amz-content-sha256 handling for S3 and S3 Express requests. (#1217)

Bug Fixes

  • Fixed several DynamicClient serialization 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 @sparse maps and lists. (#1233)
  • Fixed PathSerializer to 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)

Improvements

  • Optimized the writeTo implementation for multi-buffer data streams. (#1224)
  • Reduced allocations during SigV4 request signing by switching to in-place buffer encoding on the signing hot path. (#1217)