Skip to content

Changelog — page 25

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

GitHub

1.144.0 (2026-04-05)

Features
  • websocket: include versions in connect metrics (GitHub)

    Add sdkVersion and runtimeVersion to ConnectEvent so websocket connect metrics capture both the client SDK version and the runtime version that accepted the connection.

    Resolve the runtime version from packaged test-server build metadata, wire both values into the runtime-side ConnectEvent publication path, and cover the new fields with websocket endpoint tests.

GitHub

1.143.1 (2026-04-05)

Bug Fixes
  • common: avoid duplicate memoized delegate calls (GitHub)

    Use computeIfAbsent for non-expiring cache misses so concurrent callers share a single delegate invocation per key.

    Add a regression test that forces concurrent access and verifies the delegate is still executed only once.

GitHub

1.143.0 (2026-04-04)

Features
  • websocket: send SDK version during handshake (GitHub)

    Advertise the SDK artifact version in websocket handshake headers so the runtime can observe which SDK version a client application is using.

    Also prepare runtime-version negotiation on the client side, include the negotiated runtime version in connection logs, and expose the client SDK version in websocket session metadata for the test server.

    Add a warning when SDK build metadata cannot be resolved, which helps diagnose shaded or repackaged deployments that strip META-INF resources.

GitHub

1.142.4 (2026-04-04)

Bug Fixes
  • entity: stabilize mutable entity replay diagnostics (GitHub)
GitHub

1.142.3 (2026-04-04)

Bug Fixes
  • stabilize websocket proxy shutdown close handling (GitHub)

    Wait for asynchronous websocket close notifications during proxy shutdown so the WS_CLOSE handler is not lost while the proxy is shutting down.

    Add a regression test that simulates a delayed onClose callback to cover the original flake in ProxyServerTest.

  • entity: preserve routed root-child apply replay (GitHub)

    Only treat a routed update as ambiguous when its routing key overlaps the current aggregate id and the payload also carries a distinct descendant id.

    This restores payment-style root plus child @​Apply flows during replay while keeping root-only routed replay on the fast path.

    Add regression coverage for typed payment attempt apply and replay behaviour.

GitHub

1.142.2 (2026-04-04)

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

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

GitHub

1.142.1 (2026-04-04)

Bug Fixes
  • entity: support multi-level apply without slowing routed replay (GitHub)

    Treat payloads that carry both the current aggregate id and a distinct descendant id as ambiguous instead of immediately routing them to the current entity.

    This preserves multi-level @​Apply flows such as CreatePaymentAttempt while keeping the routing-key replay fast path intact.

    Add a regression test for the payment/attempt aggregate-plus-child-id case.

Tests
  • entity: simplify self-referential entity tests (GitHub)
GitHub

1.142.0 (2026-04-03)

No commits were found for this release.

GitHub

1.141.1 (2026-04-03)

Bug Fixes
  • remove incorrect PositionStore overload with current position context (GitHub)
Tests
  • Add given and when methods for metrics to TestFixture (GitHub)
GitHub

1.141.0 (2026-04-03)

No commits were found for this release.

GitHub

1.140.0 (2026-04-03)

No commits were found for this release.

GitHub

1.139.0 (2026-04-03)

Features
  • entity: support self-referential nested entities (GitHub)

    Allow recursive member entities to target nested children with either routing keys or id properties.

    Support self-referential entities as aggregate roots while preserving child existence checks and simple add/delete apply handlers.

    Expand recursive folder coverage and trim the lookup/apply overhead introduced by recursive targeting.

  • entity: support multi-level apply with faster replay (GitHub)

    Allow a single update to apply across multiple entity levels while preserving sibling state during immutable rebuilds.

    This also adds replay-specific routing and wrapper reuse optimizations, lightweight resolver/memoization improvements, and load/apply benchmarks to verify the new behavior and performance.

Bug Fixes
  • entity: keep publish-only events out of aggregate playback (GitHub)

    Treat publish-only no-op applies as publications without creating a new aggregate state transition. Commit stateful side effects only when the aggregate instance actually changes, and let the caching repository ignore aggregate-context events that do not carry a sequence number. Add playback coverage for searchable aggregates so cache backfill and document indexing stay stable for this path.

Performance Improvements
  • benchmark: tune event load benchmark defaults (GitHub)
GitHub

1.138.3 (2026-04-02)

Dependency updates
  • Update dependency io.jooby:jooby to v4.2.0 (#167) (GitHub)

    io.jooby:jooby: to 4.2.0

GitHub

1.138.2 (2026-04-02)

Bug Fixes
  • web: allow Instant values to be bound from web request parameters (GitHub)
GitHub

1.138.1 (2026-03-30)

Bug Fixes
  • sdk: skip cache rebuild if possible while building a new Fluxzero instance (GitHub)
  • ignore duplicate caster registrations (GitHub)

    TestFixture can replay registerCasters modifiers when switching through spy() or async() while reusing the same serializer instance.
    Treat re-registering the exact same caster as a no-op, while still failing for conflicting casters, and cover both the chain-level and fixture-level regression paths in tests.

GitHub

1.138.0 (2026-03-30)

Features
  • Allow PositionStore implementations to perform optimistic concurrency checks (GitHub)
GitHub

1.137.1 (2026-03-30)

Bug Fixes
  • sdk: rebuild caches when creating a new Fluxzero instance (GitHub)

    Add Cache.rebuild() so builder cache configuration stays backward compatible while each Fluxzero build still gets fresh cache instances.

    This fixes an issue in tests where resetting or deriving a TestFixture reused mutable caches from the previous fixture, which could leave stale state behind and cause unexpected behavior.

GitHub

1.137.0 (2026-03-29)

Features
  • web: Allow generic type payload parameters in web handler methods (GitHub)
GitHub

1.136.0 (2026-03-29)

Tests
  • modeling: stabilize stale commit playback assertion (GitHub)

    Remove the timing-sensitive expectation that the newest cached aggregate version still has no event index after a stale commit path.

    The regression now checks the stable invariant instead: the latest cached head points to the newer event while the previous cached version retains the backfilled index of the earlier event.

GitHub

1.135.1 (2026-03-29)

Dependency updates
  • Update sigstore/cosign-installer action to v4.1.1 (#163) (GitHub)

    sigstore/cosign-installer: to 4.1.1


© 2026 Fluxzero