Skip to content

Changelog — page 22

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

GitHub

1.159.4 (2026-05-09)

Dependency updates
  • Update dependency io.jooby:jooby to v4.5.0 (#190) (GitHub)

    io.jooby:jooby: to 4.5.0

GitHub

1.159.3 (2026-05-09)

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

    sigstore/cosign-installer: to 4.1.2

GitHub

1.159.2 (2026-05-08)

Bug Fixes
  • modeling: preserve publish-only document state (GitHub)

    Allow PUBLISH_ONLY applies to advance state for non-event-sourced document-backed aggregates while keeping event-sourced aggregates out of cache, snapshots, and search state.

    This keeps document-backed read models working without writing to the aggregate event store, but preserves replay invariants for event-sourced aggregates.

GitHub

1.159.1 (2026-05-08)

Bug Fixes
  • modeling: keep publish-only applies out of state (GitHub)

    PUBLISH_ONLY events should remain publication-only facts: they are still emitted, but no longer advance aggregate cache, snapshots, relationships, or search/document state. This prevents hidden pending aggregate versions from causing event-index backfill failures.

    IF_MODIFIED no-op applies now preserve the existing aggregate version instead of creating an unpublished cached version. eventPublication=NEVER remains the supported way to update aggregate/document state without storing or publishing an event.

GitHub

1.159.0 (2026-05-08)

Tests
  • test-fixture: show assertion diffs in maven (GitHub)

    Include formatted expected and actual values in GivenWhenThenAssertionError messages when fluxzero.maven.enabled is set, while preserving the structured OpenTest4J comparison payload for IDE diffs.

GitHub

1.158.4 (2026-05-08)

Bug Fixes
  • publish runtime server dependencies (GitHub)

    Disable dependency-reduced POM generation for shaded test-server and proxy builds so Maven Central keeps the real dependency metadata.

    Move Jetty dependency management into test-server via the Jetty BOM and expose proxy's SDK/Undertow dependencies as normal runtime dependencies.

GitHub

1.158.3 (2026-05-07)

Dependency updates
  • proxy: localize undertow dependency management (GitHub)

    Move Undertow and Jakarta WebSocket version management from the root POM into the proxy module, where the Undertow server stack is still used. Keep Jakarta WebSocket APIs pinned to 2.2.0 for proxy while removing the dependency-management noise from other modules.

GitHub

1.158.2 (2026-05-07)

Bug Fixes
  • reflection: detect type-use nullable parameters (GitHub)

    Extend nullable parameter detection to inspect top-level type-use annotations as well as direct parameter annotations. This lets runtime reflection honor JSpecify-style Nullable annotations without adding a compile dependency.

Dependency updates
  • sdk: remove nullable annotation dependency (GitHub)

    Drop the SDK's Jakarta nullable annotation dependency and its root dependency-management entry now that public nullable contracts are documented in Javadocs instead of exported annotations. Remove the remaining javax/Jakarta/JetBrains Nullable usage from main code and unnecessary test-fixture API signatures while keeping runtime nullable detection annotation-agnostic.

GitHub

1.158.1 (2026-05-07)

Dependency updates
  • Update jetty monorepo to v12.1.9 (#187) (GitHub)

    jetty monorepo: to 12.1.9

GitHub

1.158.0 (2026-05-07)

Code Refactoring
  • test-server: replace undertow websocket server (GitHub)

    Switch the in-memory test server from Undertow/Jakarta WebSocket to Jetty Core WebSocket behind a small server-side session abstraction.

    Preserve handshake headers, runtime session negotiation, compression negotiation, health checks, reconnect behavior, result delivery semantics, and large SDK request batches.

    Add full-server websocket contract coverage for compression, namespace and topic isolation, malformed payload handling, reconnect retries, and request coverage across tracking, event sourcing, key-value, scheduling, and search.

    Also allow TrackerIntegrationBenchmark to target the test server through FLUXZERO_PORT, FLUX_PORT, or port.

Tests
  • sdk: drop undertow forwarding server (GitHub)

    Replace the web request forwarding test server with the native JDK HttpServer so sdk tests no longer need Undertow or RESTEasy.

GitHub

1.157.1 (2026-05-07)

Dependency updates
  • Update jakarta.websocket.version to v2.2.0 (#185) (GitHub)

    jakarta.websocket.version: to 2.2.0

GitHub

1.157.0 (2026-05-07)

Documentation
  • agents: add AGENTS.md with coding guidelines and project structure (GitHub)

    Introduce a new `AGENTS.md` file outlining project structure, build instructions, coding practices, and commit message conventions to help contributors maintain consistency and high-quality standards.

Code Refactoring
  • websocket: use native jdk client transport (GitHub)

    Replace the SDK runtime websocket client with small low-level contracts backed directly by java.net.http.WebSocket. This removes the Jakarta client facade and Undertow client transport from the SDK runtime path while keeping server-side Jakarta dependency management for modules that still use Undertow.

    Preserve Fluxzero handshake response headers, session metadata, compression negotiation, binary message assembly, ping/pong handling, close and abort handling, reconnect behavior, and session pooling.

GitHub

1.156.7 (2026-05-07)

Bug Fixes
  • tracking: avoid negative pause sleeps (GitHub)

    DefaultTracker now skips sleeping when the requested pause has already elapsed while checking the FlowRegulator. Add a regression test for elapsed pause durations.

Code Refactoring
  • tracking: make FlowRegulator functional (GitHub)

    Make pauseDuration the single abstract FlowRegulator method and move the no-op behavior into NoOpFlowRegulator. This allows lambda implementations while preserving default configuration behavior.

GitHub

1.156.6 (2026-05-06)

Dependency updates
  • Update dependency org.msgpack:msgpack-core to v0.9.12 (#184) (GitHub)

    org.msgpack:msgpack-core: to 0.9.12

GitHub

1.156.5 (2026-05-01)

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

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

GitHub

1.156.4 (2026-04-30)

Dependency updates
  • Update dependency com.fasterxml.jackson:jackson-bom to v2.21.3 (#182) (GitHub)

    com.fasterxml.jackson:jackson-bom: to 2.21.3

GitHub

1.156.3 (2026-04-30)

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

    gcr.io/distroless/java25-debian13:nonroot: to 9a9777e

GitHub

1.156.2 (2026-04-29)

Bug Fixes
  • entity: route nested child creation via matching parent (GitHub)

    When replaying nested aggregate updates, a routed event could be applied
    to the wrong parent if the routing key matched a higher-level entity while
    the payload also contained ids for descendants. In that case empty child
    target resolution could treat the first matching child slot as valid and
    add the new entity under the first sibling instead of the intended parent.

    Prefer explicit parent ids from the payload when resolving empty child
    targets, and only fall back from a routing key to other route candidates
    when the routing key targets the current entity. This keeps normal child
    routing on the existing fast path while allowing aggregate-routed events to
    find the correct nested parent.

    Add regression coverage for nested creation and replay across parent,
    child, alias, typed-id, deep, and fourth-level routing scenarios.

GitHub

1.156.1 (2026-04-25)

Bug Fixes
  • modelling: intercept event dispatch before event-sourced apply (GitHub)

    Resolve dispatch interception before applying event-sourced aggregate events so @​Apply methods observe the same metadata during the initial apply and replay. Validate the original event before dispatch interception so payload-protection interceptors can still sanitize the stored/published event without hiding invalid outgoing payloads from validation.

    Keep non-event-sourced aggregates on the existing state-first path: dispatch interception only affects publication, and blocked dispatches do not roll back the in-memory/document state mutation. Add regression coverage for user/metadata injection, protected-data validation, blocked dispatch, publish-never, and searchable upsert aggregates.

GitHub

1.156.0 (2026-04-25)

Tests
  • logging: add synchronous logging option to FluxzeroLogbackAppender (GitHub)

    Introduce a new `async` parameter to control synchronous or asynchronous logging. Allow programmatic attachment with the synchronous option, including tests for synchronous behavior and its interaction with existing async mechanisms.


© 2026 Fluxzero