4.9.0

(feat): Add exported-client-class-name config to the Java SDK generator. When set, docs surfaces (dynamic snippets, README, reference.md) display this name for the root client instead of client-class-name — for teams that wrap the generated client with a hand-written public class and want documentation to show the wrapper. Generated source code and wire tests are unaffected.

(fix): SSE streaming endpoints now decide protocol-level vs data-level union discrimination from the API spec’s x-fern-discriminator-context (IR discriminatorContext) instead of inferring from the discriminator’s field name. Unions whose discriminator happens to be named event/id/retry/data but lives in the data payload are now correctly parsed from the data JSON; envelope dispatch only happens when x-fern-discriminator-context: protocol is explicit.

4.8.12

(fix): Fix compilation error on multipart file-upload endpoints when idempotency headers are configured. The generator now emits headers((RequestOptions) null) instead of a bare headers(null), which resolves the ambiguous method reference between headers(RequestOptions) and headers(IdempotentRequestOptions) overloads in ClientOptions.