Skip to content

Changelog — page 23

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

GitHub

1.155.1 (2026-04-25)

Dependency updates
  • Update gcr.io/distroless/java25-debian13:nonroot Docker digest to f25ab72 (#180) (GitHub)

    gcr.io/distroless/java25-debian13:nonroot: to f25ab72

GitHub

1.155.0 (2026-04-25)

Tests
  • run Mockito as a Java agent (GitHub)

    Configure Surefire to start Mockito through its javaagent instead of relying on Byte Buddy self-attachment at test runtime.

    This removes the Mockito inline mock maker warning and avoids the intermittent Java 25 self-attach failure during tests.

GitHub

1.154.3 (2026-04-25)

Bug Fixes
  • add latch to synchronize pong handling completion during test (GitHub)
GitHub

1.154.2 (2026-04-24)

Dependency updates
  • Update gcr.io/distroless/java25-debian13:nonroot Docker digest to e689f0e (#177) (GitHub)

    gcr.io/distroless/java25-debian13:nonroot: to e689f0e

GitHub

1.154.1 (2026-04-24)

Dependency updates
  • Update dependency org.projectlombok:lombok to v1.18.46 (#178) (GitHub)

    org.projectlombok:lombok: to 1.18.46

GitHub

1.154.0 (2026-04-24)

No commits were found for this release.

GitHub

1.153.1 (2026-04-24)

Bug Fixes
  • logging: publish logback errors asynchronously (GitHub)

    FluxzeroLogbackAppender could block while publishing a Logback error through the error gateway. During websocket connection setup this can deadlock the connect path because the appender still holds Logback's append lock while the websocket onOpen callback logs its successful connection.

    Move publication onto a worker pool so Logback appenders do not participate in the websocket connect call stack, preserve correlation metadata before the async boundary, and keep the websocket reproduction with the test-server module. Also remove duplicate downstream logback-test.xml files that made Logback report multiple test configs on the classpath.

GitHub

1.153.0 (2026-04-24)

No commits were found for this release.

GitHub

1.152.10 (2026-04-24)

Bug Fixes
  • utils: pass logFailure to timeboxedExecutor in runAndWaitSafely (GitHub)
GitHub

1.152.9 (2026-04-24)

Bug Fixes
  • tracking: avoid unnecessary position lookup (GitHub)

    Only fetch the stored tracker position on startup when maxIndexExclusive is configured and already lies in the past. This keeps normal trackers, and trackers with a future max index, from issuing GetPosition before their first read while preserving the suspend-after-max-index behavior.

  • handling: prefer payload specificity over entity injection (GitHub)

    When multiple handlers match the same message, resolve the final winner using the concrete resolver that matched the message. This lets direct payload parameters outrank broader entity/value injection without changing invoke-multiple semantics.

    Keep the normal handler hot path fast by returning immediately for single-method handlers and for first matches that cannot be beaten by a lower specificity priority.

    Add regression coverage for payload-vs-entity selection and harden MethodInvokerBenchmark so handler timings remain observable under JIT optimization.

GitHub

1.152.8 (2026-04-24)

Dependency updates
  • Update kotlin monorepo to v2.3.21 (#179) (GitHub)

    kotlin monorepo: to 2.3.21

GitHub

1.152.7 (2026-04-23)

Bug Fixes
  • test-server: negotiate runtime version in websocket handshake (GitHub)
GitHub

1.152.6 (2026-04-23)

Bug Fixes
  • websocket: suppress metrics after target close (GitHub)

    Treat metrics publishing as best-effort when the metrics websocket client has already closed during Fluxzero shutdown.

    Suppress the expected closed-client session lookup failure both at metrics publication and request send logging, while keeping other metrics failures visible.

  • websocket: avoid force close during shutdown (GitHub)

    Only force-close Undertow sessions from close callbacks while the websocket client is still active.

    This preserves the existing reconnect behavior for remotely closed sessions, because the session pool must not reuse a closing session that still reports isOpen=true.

    During SDK shutdown, skip forceClose so the websocket close handshake can complete cleanly and the runtime does not report abnormal 1006 closes.

  • websocket: ignore metrics after close (GitHub)

    Keep websocket request and result metrics best-effort so telemetry cannot break functional request handling during shutdown.

    Skip metrics publishing once the websocket client is closed and log non-shutdown publish failures at warn level. Add regression coverage for publishing metrics after close.

  • tracking: suppress shutdown interrupts (GitHub)

    Treat interrupted fetches and position stores as normal shutdown once a tracker has been cancelled. This keeps the stricter retry interruption behavior intact while preventing tracker threads from printing uncaught InterruptedExceptions during Fluxzero shutdown.

    Add regression coverage for interrupted fetch shutdown and interrupted position storage after cancellation.

  • websocket: keep reconnects off io threads (GitHub)

    SDK 1.133 migrated websocket clients from annotation-based endpoints to programmatic endpoints for capability negotiation. With Undertow, server-initiated abnormal closes can then invoke callbacks on XNIO I/O threads, so retrying outstanding requests inline may block reconnects until UT003035 timeouts. Route websocket message, pong, close, and error callbacks through the result executor, keep reconnect work on the reconnect executor, and make shutdown explicitly drain callback executors while logging late callbacks after close. Add a CI reconnect test with a test-only endpoint that force-closes an outstanding tracking request and verifies the replacement session is opened without close handling running on an XNIO thread.

Tests
  • benchmark: add tracker integration benchmark (GitHub)

    Add a standalone TrackerIntegrationBenchmark that can stress many consumers and websocket clients against a local runtime.

    The benchmark publishes configurable event traffic, waits for all consumers to observe the expected messages, and logs missing consumer progress when the run times out.

  • websocket: add ping latency benchmark (GitHub)

    Add a focused websocket benchmark for investigating ping and pong latency against a real runtime.

    The benchmark keeps tracking sessions open, optionally publishes event traffic, continuously reads message batches, and reports ping scheduling lag, pong callback latency, pong end-to-end latency, latency buckets, timeout counts, publish/read counters, and callback thread summaries.

    This gives us a lightweight way to compare SDK versions and spot pong tail latency moving toward ping timeouts under realistic websocket message traffic without turning timing-sensitive behavior into a flaky CI test.

GitHub

1.152.5 (2026-04-20)

Bug Fixes
  • tracking: handle removed trackers gracefully in schedule logic (GitHub)

    Ensure scheduler does not attempt to process trackers already removed from clusters, enhancing reliability and preventing unnecessary operations. Add updated test coverage for null and empty task cases.

  • ensure in-flight request does not re-add tracker to cluster after disconnect (GitHub)
  • use List.getLast() (GitHub)
GitHub

1.152.4 (2026-04-19)

Dependency updates
  • Update dependency org.springframework:spring-framework-bom to v7.0.7 (#175) (GitHub)

    org.springframework:spring-framework-bom: to 7.0.7

GitHub

1.152.3 (2026-04-17)

Dependency updates
  • Update dependency io.jooby:jooby to v4.4.0 (#172) (GitHub)

    io.jooby:jooby: to 4.4.0

GitHub

1.152.2 (2026-04-17)

Dependency updates
  • Update dependency maven to v3.9.15 (#173) (GitHub)

    maven: to 3.9.15

GitHub

1.152.1 (2026-04-17)

Dependency updates
  • Update dependency org.jboss.resteasy:resteasy-undertow to v7.0.2.Final (#174) (GitHub)

    org.jboss.resteasy:resteasy-undertow: to 7.0.2.Final

GitHub

1.152.0 (2026-04-17)

Tests
  • web: Prevent flakiness from shared forward-proxy consumers during test (GitHub)
GitHub

1.151.2 (2026-04-17)

Dependency updates
  • Update softprops/action-gh-release action to v3 (GitHub)

© 2026 Fluxzero