3.8.10

(fix): Fixed inconsistent file placement for resource-based core files. All Java files now use standard src/main/java/ structure in local generation mode.


3.8.9

(fix): Fixed dynamic snippets incorrectly placing HTTP headers in request builders. Headers now correctly use RequestOptions.builder().addHeader() for body requests.




3.8.6

(fix): Fixed SSE stream terminator parsing for OpenAI-style data: [DONE] format. Terminators are now checked after data extraction and only at event boundaries to prevent data loss.

3.8.5

(fix): Fix SSE parser concatenating multiple events into malformed JSON. Events are now properly separated at blank line boundaries per SSE specification, with correct handling of multiline data fields and stream terminators.


3.8.3

(fix): Upgrade generator-cli dependency to fix local generation handling of .fernignore files.

3.8.2

(fix): Fix local file system generation to use proper Gradle directory structure (src/main/java). Source files are now correctly placed at src/main/java/com/package instead of com/package at the root.


3.8.4

(fix): Fixed code generation for undiscriminated unions with optional types. Generated code now correctly wraps optional values with Optional.of(), and wire tests are properly generated by default.

3.8.1

(fix): Append decimal to whole number double literals to prevent compilation errors.


3.8.0

(feat): Add getResponse() method to BasePage for accessing pagination metadata like cursor tokens. This enables stateless pagination by providing access to the full API response object.

Usage example:

1SyncPagingIterable<User> users = client.users().list();
2users.getResponse().ifPresent(response -> {
3 String cursor = response.getNext();
4 // Use cursor for stateless pagination
5});

3.7.0

(feat): Wire tests are now enabled by default for all Java SDKs, providing comprehensive HTTP protocol validation tests using MockWebServer. Wire tests validate request/response serialization, HTTP methods, headers, and API contract adherence. To disable wire tests, explicitly set enable-wire-tests: false in your generator configuration.



3.6.2

(fix): Fixed SDK variable setters incorrectly referencing non-existent clientOptionsBuilder. Variables now store in instance fields and apply via setVariables() method.

3.6.1

(fix): Fixed wire tests failing with InvalidDefinitionException for Optional<T> serialization by using the configured ObjectMappers.JSON_MAPPER instead of plain ObjectMapper.

3.6.0

(feat): Add support for PR mode for self-hosted/local sdk generation.

3.5.10

(fix): Snippets now show client-level variables in builder instead of method parameters.