Skip to content

Changelog — page 24

New features, improvements, and fixes in the Fluxzero SDK.

GitHub

1.151.1 (2026-04-14)

Bug Fixes
  • tracking: remove unused join in pause event publishing (GitHub)
  • tracking: preserve interrupts while storing position (GitHub)

    Handle InterruptedException explicitly when waiting for tracker position updates so storePosition does not lose the thread interrupt state or keep retrying it as a normal failure.

    This keeps tracker shutdown and cancellation responsive and adds focused test coverage for interrupted position storage.

  • websocket: shut down result handling on close (GitHub)

    Shut down the websocket result executor when the client closes so background result handling threads do not outlive the client lifecycle.

    This keeps websocket executor cleanup consistent with the ping and reconnect executors while preserving the existing websocket test coverage.

  • websocket: run ping timeouts on a worker pool (GitHub)

    Configure the websocket ping scheduler with a dedicated worker pool so expired ping tasks no longer execute inline on the scheduler thread.

    This keeps ping timeout handling from stalling on a single scheduler thread and adds focused tests for async task delegation and websocket ping scheduler configuration.

  • websocket: make reconnect retries easier to follow (GitHub)

    Log repeated websocket connection failures more frequently and include retry counts in both retry and success messages.

    This makes long-running reconnect loops easier to diagnose in production and adds focused tests around the retry logging cadence.

  • websocket: configure connection timeouts explicitly (GitHub)

    Add an explicit websocket connection timeout to the client config, propagate it to the underlying websocket container, and wrap connection attempts in a slightly longer outer failsafe.

    This makes connection setup behavior more predictable, keeps the public config independent from a specific container implementation, and adds focused tests for timeout propagation and outer timeout cancellation.

  • websocket: validate session pool size upfront (GitHub)

    Reject websocket session pools smaller than one and simplify round-robin index updates with floorMod for clearer, safer slot selection.

    This prevents invalid pool configurations from failing later at runtime and adds focused tests for zero, negative, and single-session pool behavior.

  • websocket: retry requests off the close thread (GitHub)

    Schedule outstanding websocket request retries on a dedicated reconnect executor instead of running them inline from onClose or abort-driven close handling.

    This keeps reconnect work away from timeboxed close threads, avoids interruption-driven reconnect failures, and adds focused test coverage for backlog-gated async retries without timing-sensitive assertions.

  • retries: stop retry loops on thread interruption (GitHub)

    Treat thread interruption as a cancellation signal inside retryOnFailure instead of retrying it as a normal failure.

    This prevents reconnect and other retry-driven flows from silently restarting after an interrupted task and makes the retry behavior easier to reason about.

GitHub

1.151.0 (2026-04-14)

Features
  • scheduling: trace schedule side effects with branch ids (GitHub)

    Add a schedule branch trace to published schedules so direct and indirect side effects can be grouped under a single schedule execution. Each reschedule creates a new branch id, keeping repeated runs of the same schedule distinct in observability and debugging flows.

GitHub

1.150.1 (2026-04-13)

Bug Fixes
  • spring: ignore direct handler bean definitions (GitHub)

    Remove direct bean definitions for Stateful, TrackSelf and SocketEndpoint types before registering Fluxzero prototypes.

    This prevents Spring from trying to instantiate handler classes as regular beans in setups that explicitly include these annotations in component scanning, and adds regression coverage for constructor-injected Stateful types.

GitHub

1.136.1 (2026-04-13)

Bug Fixes
  • threading: allow disabling virtual thread workers (GitHub)

    Guard virtual thread worker support behind a configurable property named `fluxzero.virtual-threads.allowed` (default true) in addition to the Java version (>= 25) check.

    Also resolve environment variables through normalized underscore aliases so settings like FLUXZERO_VIRTUAL_THREADS_ALLOWED work consistently, and add focused tests for both the property toggle and alias resolution.

GitHub

1.150.0 (2026-04-12)

Tests
  • web: add static and websocket handler coverage (GitHub)
Chores
  • repo: standardize license text and line endings (GitHub)
GitHub

1.149.9 (2026-04-12)

Bug Fixes
  • content-filtering: preserve JsonIgnore filtering in Java and Kotlin (GitHub)

    Keep a single internal mapper inside JacksonContentFilter so filtered values can be materialized without mutating the serializer mapper.

    Wrap the existing Jackson annotation introspectors when disabling JsonIgnore so Java fields stay available during content filtering while Kotlin constructor binding keeps working.

    Add Java and Kotlin regression tests for disableJsonIgnore and @​FilterContent round trips.

  • spring: decouple scanned handlers from bean stereotypes (GitHub)

    Register Stateful, TrackSelf and SocketEndpoint types through scan-scoped Fluxzero prototypes so handlers still follow component-scan and type-level conditional annotations without being exposed as regular Spring beans.

    This removes the need for IDE warning suppressions around prototype beans and adds regression coverage for conditional registration and non-bean visibility.

Tests
  • kotlin: isolate kotlin-specific tests in dedicated module (GitHub)

    Move Kotlin-specific tests and fixtures into a dedicated kotlin-tests module so the Java-focused modules can stay simpler.

    Keep the kapt-dependent type registry tests Maven-gated while leaving the other Kotlin tests IDE-friendly.

    Replace dependencies on internal sdk test fixtures with local Kotlin fixtures so the module behaves more like a standalone consumer project.

GitHub

1.149.8 (2026-04-12)

Bug Fixes
  • content-filtering: preserve Kotlin deserialization in JacksonContentFilter (GitHub)

    Use a dedicated mapper for filter serialization and keep a clean mapper for deserializing filtered JSON back into domain types. This avoids Kotlin data classes failing during @​FilterContent processing when JsonIgnore handling is customized.

    Add a Kotlin regression test that reproduces the issue and verifies filtered Kotlin objects are materialized correctly.

GitHub

1.149.7 (2026-04-11)

Dependency updates
  • Update dependency at.yawk.lz4:lz4-java to v1.11.0 (#170) (GitHub)

    at.yawk.lz4:lz4-java: to 1.11.0

GitHub

1.149.6 (2026-04-11)

Bug Fixes
  • proxy: avoid shutdown hangs and websocket close noise (GitHub)

    Use a best-effort websocket close path during embedded proxy shutdown so the proxy no longer waits on close acknowledgements while the test server is already stopping.

    Also suppress expected closed-channel send errors in the websocket client once shutdown has started, which removes noisy shutdown stack traces without changing normal request handling.

GitHub

1.149.5 (2026-04-11)

Bug Fixes
  • stabilize hidden schedule deadline test (GitHub)

    Make the regression test deterministic by fixing the schedule store clock and disabling retention for the scenario.

    This avoids CI flakes where the schedule could already be visible or the backing message could be purged before the assertion runs.

GitHub

1.149.4 (2026-04-11)

Bug Fixes
  • proxy: avoid competing websocket response handlers (GitHub)

    Reuse the proxy request handler for websocket close acknowledgements instead of creating a second WEBRESPONSE consumer.

    This keeps proxy shutdown stable without triggering unknown request warnings from multiple handlers consuming the same client response stream.

GitHub

1.149.3 (2026-04-11)

Bug Fixes
  • test-server: wake waiting trackers for hidden schedule deadlines (GitHub)

    Make the in-memory schedule store expose an explicit includeFuture batch path so the test server can detect the next hidden deadline while a tracker is long-polling.

    This avoids an extra max-wait cycle before scheduled messages become visible and adds a regression test for the immediate-next-index case.

GitHub

1.149.2 (2026-04-10)

Dependency updates
  • Update dependency io.jooby:jooby to v4.3.0 (#169) (GitHub)

    io.jooby:jooby: to 4.3.0

GitHub

1.149.1 (2026-04-09)

Bug Fixes
  • stabilize flaky websocket proxy shutdown test (GitHub)

    Wait for the websocket close flow to complete on the WEBRESPONSE ack instead of only waiting for the close request to be appended.

    This hardens the closeProxy path and helps keep the GitHub build pipeline stable under CI timing variability.

GitHub

1.149.0 (2026-04-09)

No commits were found for this release.

GitHub

1.148.1 (2026-04-09)

Bug Fixes
  • fall back to Void for payload class instead of null (GitHub)
GitHub

1.148.0 (2026-04-08)

Features
  • serialization: support Kotlin type registry processing (GitHub)

    Add an explicit RegisterType.root override so Kotlin projects can register package prefixes without package-info.java.

    Update the type registry processor to merge prefixes and types across processing rounds and preserve Kotlin kapt outputs.

    Add kapt-backed regression coverage, including a Given/When/Then fixture test that deserializes Kotlin simple type names from JSON.

Documentation
  • entities: add examples for multi-level `@​Apply` methods (GitHub)
GitHub

1.147.0 (2026-04-08)

Code Refactoring
  • reflection: cache reflection info onto one object per type (GitHub)
GitHub

1.146.0 (2026-04-08)

Features
  • web: Allow serializer to deserialize to generic type from an unknown serialized type (GitHub)
GitHub

1.145.0 (2026-04-07)

Features
  • correlation: include handler name in correlation metadata (GitHub)

© 2026 Fluxzero