Skip to content

Changelog — page 9

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

GitHub

1.278.0 (2026-09-15)

Dependency updates
  • bump org.codehaus.mojo:versions-maven-plugin from 2.21.0 to 2.22.0 (GitHub)

    org.codehaus.mojo:versions-maven-plugin: 2.21.0 -> 2.22.0 changelog

GitHub

1.277.0 (2026-09-15)

Dependency updates
  • bump io.fluxzero.tools:fluxzero-maven-plugin from 1.18.0 to 1.18.6 (GitHub)

    io.fluxzero.tools:fluxzero-maven-plugin: 1.18.0 -> 1.18.6 changelog

GitHub

Fluxzero Java SDK 2.0.0-rc.13

Highlights

  • graph.current() returns a fresh view of the same Model identity while preserving the original historical Graph.
  • Stronger Model/Graph cache isolation and publication fences keep current assertions sensitive to committed state, membership changes and deletion, including commands received in the same batch.
  • Current-read batching drains immediately, without an artificial collection delay. Compatible requests accumulated during an in-flight read can still be combined; ordinary Model cache reads keep their own fast path.
  • Lower temporary allocation when reconstructing fresh Graph views.
  • Kotlin-generated component methods no longer make Model target IDs appear ambiguous.
  • Executable examples cover one-to-one Models, derived Graph properties and atomic Model actions.
  • Clearer payload-validation, HTTP test-double, consumer-diagnostic and message-envelope guidance.
  • Actual Spring Boot and application-configured shaded-JAR checks cover OpenAPI merging and actionable conflicts.

Java 25 remains required. This is a release candidate, not the final 2.0 release.

Changes since rc.12

GitHub

Fluxzero SDK 2.0.0-rc.12 strengthens Model lifecycles, delayed work and migration testing.

Schedules that follow a Model's lifetime

Declare @Parent on a schedule payload, or use Schedule.withParents(...), to tie delayed work to an existing committed Model. Deleting that Model also cancels its pending schedules, including cascaded deletion. Lifetime bindings protect against old schedules after deletion and recreation; cancellation is asynchronous.

More predictable Model changes
  • Duplicate creation and missing updates produce explicit lifecycle failures; nullable state and the existing compatibility opt-out keep upsert/idempotency intentional.
  • Dynamic writes retain their read revisions, and complete Graph-change handlers can observe cascaded child deletions and their previous event-sourced state.
  • Complete Graph changes retain their exact before-state through lazy navigation; creation does not accidentally inherit an empty or unrelated previous model.
  • Optional parent identities, ancestor updates and current-intent scheduling have clearer contracts and consistent Java/Kotlin examples.
  • Public DOCUMENT projections are independent of internal Model/Graph state. Explicit DOCUMENT therefore has additional write and storage costs; ordinary event-only Models do not acquire document copies.
Migration tests and fixture improvements

Value-preserving upcasting, givenModelEvents(...) reconstruction and retained-storage migration examples now form one documented route. Typed Graph document handling preserves the original source revisions, avoiding repeated root upcasting. Active-schedule assertions cover retained schedules as well as newly scheduled work, and rejected old schedule attempts no longer leave phantom fixture waits. Local document consumers retain updates from registration onward, including writes before their first asynchronous read.

Clearer modeling guidance

The developer and agent documentation now consistently explains details value objects, functional failures, event sourcing for previous(), and the distinction between a plain typed reference, a Graph relationship and deletion ownership.

This is a prerelease. Existing tags remain immutable; use the exact Maven version 2.0.0-rc.12.

GitHub

1.276.0 (2026-09-14)

Documentation
  • compatibility: update the tested JDK to 25 (GitHub)
  • onboarding: remove outdated FAQs (GitHub)
  • installation: label the coding agent route with a badge (GitHub)
  • cookies: remove retired feedback tip storage (GitHub)
  • installation: remove the web project generator (GitHub)

    Retire the generator form and its onboarding copy while keeping the coding-agent, CLI and manual SDK installation routes.

GitHub

1.275.0 (2026-09-14)

Bug Fixes
  • readme: restore responsive project buttons [skip ci] (GitHub)
Documentation
  • sdk: remove JDK version from overview [skip ci] (GitHub)
  • community: welcome SDK contributions [skip ci] (GitHub)
  • readme: compact project links on mobile [skip ci] (GitHub)
  • readme: clarify package and release policy [skip ci] (GitHub)
  • readme: add shared project footer [skip ci] (GitHub)
  • readme: link to the website [skip ci] (GitHub)
  • readme: trim SDK maintenance details [skip ci] (GitHub)
  • readme: shorten the SDK title [skip ci] (GitHub)
  • readme: link Packages to its homepage [skip ci] (GitHub)
  • readme: simplify the manual build path [skip ci] (GitHub)
  • readme: explain how builders use the SDK [skip ci] (GitHub)
  • readme: focus the SDK landing page [skip ci] (GitHub)

    Move detailed installation and API guidance to fluxzero.io/docs. Keep the repository page focused on capabilities, starting an app, working on the SDK, and contributing.

  • brand: use the corrected repository banner [skip ci] (GitHub)
  • readme: keep the introduction factual [skip ci] (GitHub)
  • readme: align presentation with Fluxzero Cloud [skip ci] (GitHub)
Dependency updates
  • bump io.fluxzero:lychee-maven-plugin from 0.2.10 to 0.2.18 (GitHub)

    io.fluxzero:lychee-maven-plugin: 0.2.10 -> 0.2.18 changelog

GitHub

Model and Graph query guidance

  • Start with plain @Model. Extra document persistence and periodic snapshots are now introduced only when an example needs them.
  • A central capability matrix explains identity loads, direct and relationship-scoped search, live and materialized Graphs, result types, and current versus event-bound state.
  • The developer guides, public Javadocs, and Java/Kotlin agent instructions now use the same query contract. The compact README from main is included.
  • LocalClient text matching now respects the capabilities of retrieval-only Model documents, preventing misleading successful queries in local tests. Stored Model values and ordinary document scans are preserved.

Read the Model and Graph query guide.

Current Graph correctness

Explicit loadCurrentGraph reads now establish a fresh storage boundary even with a cached root, so committed child additions, removals and moves are not hidden by delayed cache updates. Each call performs a head-only read; values remain lazy and can reuse an exactly matching cached revision. Previously returned Graphs keep their pinned state, and ordinary Model and Graph cache paths are unchanged.

Version spelling

This release uses 2.0.0-rc.11, with lowercase rc and a dot before the number. Future candidates keep this numeric format for consistent Maven and SemVer ordering. Existing versions and tags are unchanged; update exact dependency pins to the spelling below.

<dependency>
    <groupId>io.fluxzero</groupId>
    <artifactId>sdk</artifactId>
    <version>2.0.0-rc.11</version>
</dependency>

All changes since RC10

GitHub

RC9 highlights

This candidate advances the Java SDK 2.0 release line; it is not a 2.0 GA release.

  • Transactional Graph reads track inspected relationship collections, including empty results. Concurrent add/remove/reparent operations trigger the selected conflict policy without making every parent read depend on every relationship change.
  • Select Graph children and descendants by path or logical Model name before unrelated value reconstruction. Explicit unknown-node inclusion supports metadata navigation and counting across application contracts. Known-only selections may omit stored children; value/history access still requires compatible local contracts.
  • Read verified current Model documents explicitly without silently falling back to historical event replay. Model discovery is independent of optional serialization-name registration.
  • Avoid unnecessary replay for Graph path selection, current/untyped root identity, exact-ID lookup and revision metadata. Preserve pinned snapshots and extension-point fallbacks.
  • Include Java 25 execution isolation for SDK-managed asynchronous work, explicit user identity, typed scheduling conveniences, fixture corrections and the combined Java/Kotlin agent documentation.
SDK upgrade notes

Java 25 is required. Custom User implementations must implement id() and be recompiled. Identity no longer falls back to Principal.getName(); a display or principal name remains separate.

Rebuild shared Model contract JARs with SDK annotation processing enabled for cold Model discovery.

Existing documents retain their ordinary read path. The new explicit verified current-state API rejects documents without a trusted, version-bound proof, rather than silently falling back to replay or accepting unchecked state. Unsupported capabilities fail explicitly rather than weakening consistency.

This prerelease does not promote stable 1.x, latest or stable-documentation channels.

2.0.0-RC9 (2026-09-12)

Features
  • modeling: navigate Graph relationships before replay (GitHub)

    Select children and descendants by path or logical Model name while retaining unknown nodes as explicit metadata-only views. Preserve pinned values, staged dependency provenance and relationship conflict checks through lazy selection and graph updates.

  • scheduling: add schedule ID factory (GitHub)

    Offer a concise construction route for generic typed schedule IDs while preserving the existing constructor and stable string representation. Use the factory in human and agent guidance.

  • scheduling: expose typed schedule ID overloads (GitHub)

    Make ScheduleId discoverable across scheduling, command, periodic, lookup, and cancellation APIs while retaining the existing Object-based implementation contract. Default delegates preserve custom scheduler implementations and the established string wire format.

  • modeling: support independent discovery and verified current state (GitHub)

    Separate Model discovery from optional serialization aliases and expose an explicit read-only document state API. Bind trusted materialized documents to their durable head and stored envelope while preserving ordinary replay and search behavior.

  • authentication: require explicit user identities in v2 (GitHub)

    Keep identity separate from principal and display names without changing the versioned user-metadata format.

    BREAKING CHANGE: User implementations must provide id() and be recompiled. Principal names default to that explicit ID; identity no longer falls back to getName().

  • authentication: add stable user identity (GitHub)

    Keep existing User implementations compatible by defaulting id() to Principal.getName(). Use the explicit identity for user metadata and authorization diagnostics without adding it to legacy serialized user objects.

  • publish the SDK 2.x agent graph (GitHub)

    Add canonical Java and Kotlin Model/Graph guidance and retain explicit Aggregate compatibility topics. Attach the graph archive to the root Maven artifact and include it in normal prerelease assets so the stdio MCP bridge can resolve documentation for future SDK 2.x releases.

Bug Fixes
  • modeling: keep Graph metadata reads replay-free (GitHub)

    Resolve scopes, identities and revisions before reconstructing values while retaining pinned boundaries and conflict evidence. Reuse exact cached revisions and preserve custom repository and Entity behavior.

  • modeling: resolve lazy Graph aliases before replay (GitHub)

    Pin canonical identity or absence together with the read boundary before deferred value reconstruction. Preserve pending overlays and custom repository fallback, and fail when a pinned revision has been erased.

  • modeling: preserve canonical IDs in alias wire replies (GitHub)

    Compact replies implicitly equate the requested stream ID with its canonical head ID. Use the existing general transport for alias replies so both identities survive without changing canonical frames or wire versions.

  • concurrency: isolate SDK-managed asynchronous work (GitHub)

    Give Model continuations named virtual workers and keep CPU batches on an explicitly owned pool. Preserve caller participation, context, ordered completion and transport cancellation while retaining the documented JDK-internal transport boundary.

  • serialization: preserve inherited JSON root containers (GitHub)

    Parse inheritance-bearing resources one root tree at a time so Jackson does not unwrap root arrays. Preserve singleton and typed arrays as well as independent NDJSON records while leaving resources without inheritance on their existing fast path.

  • proxy: isolate forwarding from common pool (GitHub)

    Run asynchronous HTTP completion and retry scheduling on the Proxy worker pool so a lazy response-session connect cannot starve its own handshake. Preserve direct completion behavior and propagate the active thread-local context across the handoff.

  • testing: isolate fixture property overrides (GitHub)

    Give every fixture copy its own property snapshot over the original builder source. Properties now remain visible across copy operations while sibling and separately created fixtures cannot inherit each other's overrides.

  • serialization: resolve fixture inheritance per array element (GitHub)

    Resolve @​extend and @​extends structurally for each JSON node so independent array entries inherit from their own relative bases before type resolution and upcasting. Preserve raw resources without inheritance and existing object-root and NDJSON behavior.

  • modeling: protect transactional graph read dependencies (GitHub)

    Retain inspected value and relationship scopes through lazy evaluation, cached views and rebases. Preserve ACCEPT apply-only reads and reject opaque transactional Graph implementations rather than dropping proof.

    Use a distinct relationship-aware wire request and detect stale reads of physically erased values while allowing fresh absence reads.

Documentation
  • javadoc: reject invalid API references (GitHub)

    Repair the known broken links and invalid inherited documentation. Enable reference doclint and fail release and site generation on future Javadoc warnings.

  • positioning: align documentation with product builders (GitHub)

    Make agent-led development the primary path while preserving direct development as a full option. Use broad software and cloud language in product-facing copy, and retain precise technical terminology where documentation addresses specific contracts.

  • agents: migrate the SDK documentation graph (GitHub)

    Make docs/agents the canonical graph and incorporate the later Java and Kotlin manual changes. Preserve existing article identities and ZIP consumers while preparing namespace-aware release documentation.

Dependency updates
  • bump kotlin.version from 2.4.10 to 2.4.20 (GitHub)
    • kotlin.version: 2.4.10 -> 2.4.20
    • org.jetbrains.kotlin:kotlin-stdlib-jdk8: 2.4.10 -> 2.4.20 changelog
    • org.jetbrains.kotlin:kotlin-reflect: 2.4.10 -> 2.4.20 changelog
    • org.jetbrains.kotlin:kotlin-maven-plugin: 2.4.10 -> 2.4.20
    • org.jetbrains.kotlin:kotlin-test: 2.4.10 -> 2.4.20 changelog
  • bump io.fluxzero.tools:fluxzero-maven-plugin from 1.17.3 to 1.18.0 (GitHub)

    io.fluxzero.tools:fluxzero-maven-plugin: 1.17.3 -> 1.18.0 changelog

Continuous Integration
  • release: remove Node-based tag action (GitHub)

    The repository-owned release resolver already selects the exact version and reruns reuse a tag on the current commit. Expose those values directly instead of invoking a Node 20 action with an overriding custom tag.

  • release: use GitHub App client ID input (GitHub)

    Use the current create-github-app-token input while retaining the existing app credential, repository scope, permissions, and automatic token revocation.

  • maven: use explicit credential environment inputs (GitHub)

    Migrate setup-java to its non-deprecated environment-variable-name inputs while preserving the separate GitHub Packages, Fluxzero, and Maven Central credential mappings.

  • release: stop Central publishing on 1 October 2026 [skip ci] (GitHub)
  • release: stop waiting for Central publication (GitHub)

    Return after Maven Central accepts the automatically published bundle instead of polling through validation and publication. Remove the obsolete recovery polling while retaining safe release reruns.

Build System
  • publish agent graph archives with SDK releases (GitHub)

    Attach a version-bound documentation ZIP to the standard Maven publication and preserve the same archive and checksum in GitHub releases for recovery. Keep the existing Java and Kotlin project ZIPs available during migration.

Tests
  • modeling: preserve lightweight direct graph reads (GitHub)

    Keep unused and value-only directly resolved Graphs on the ordinary commit protocol. Clarify that indirect ancestor selection still protects its traversed relationships and document validation of inspected dependencies.

Chores
  • release: integrate SDK RC9 candidate (GitHub)

    Integrate transactional Graph dependencies, explicit cross-app reads and metadata-first navigation together with current main and v2 documentation. Retain Java 25, explicit user identity and prerelease-only publication.

  • integration: reconcile v2 agent documentation for RC9 (GitHub)

    Retain current Model, identity, privacy and fixture contracts while incorporating the v2 discovery pages and Model-specific guidance. Keep canonical Graph documentation and prerelease publication policy authoritative.

  • integration: merge latest main into RC9 candidate (GitHub)

    Bring the typed scheduling conveniences into the existing Java 25 and Model release line.

  • v2: merge main identity and release hardening (GitHub)

    Retain v2 consumer defaults and complete-message fetch limits while integrating the stable user identity API and stricter release documentation checks.

  • v2: merge latest main fixes into graph hardening (GitHub)

    Integrate isolated proxy forwarding and the updated Central publication policy while retaining the v2 Graph and prerelease contracts. Align release documentation with asynchronous Central publication and its cutoff.

  • merge: integrate main into v2 graph hardening (GitHub)

    Retain Model-first guidance and Java 25 while adopting the versioned agent documentation graph. Preserve JSON root arrays when resolving inherited fixture resources.

GitHub

Parent updates through existing Model relations

RC10 fixes an SDK RC9 issue where an @Apply could receive a parent Model through an existing @Parent relation but could not return that same parent as its updated result unless the command also contained the parent's ID.

A command can now identify a child, remove it, and update its existing parent in the same atomic action without duplicating the parent ID in the payload. Parent selection uses the state read before the action, and the event streams remain replayable after the child has been removed.

Explicit target IDs retain precedence. Missing or ambiguous parents and unexpected result IDs still fail safely; unrelated read-only Models do not become writable. This focused repair is the only functional change compared with RC9.


2.0.0-RC10 (2026-09-12)

Bug Fixes
  • modeling: resolve parent write targets through existing relations (GitHub)

    Use pinned ancestor selection when a singular Model apply has no direct write identity. Preserve direct-ID precedence, read-only dependencies and the existing collection and dynamic apply paths. Bind unique replay targets to their durable stream identity while retaining required historical sibling reads.

Tests
  • concurrency: isolate replay and reentrant publisher assumptions (GitHub)

    Keep live consumer observation outside replayable model state and use the JDK publisher for fixed-length small parts. Preserve exact chunk assertions while removing timing-dependent test behavior.

Chores
  • release: integrate SDK RC10 parent injection repair (GitHub)

    Include the focused relational parent-write repair and deterministic release probes on the 2.0 release line.

  • release: align SDK RC10 candidate with release history (GitHub)
GitHub

1.274.0 (2026-09-12)

Features
  • scheduling: add schedule ID factory (GitHub)

    Offer a concise construction route for generic typed schedule IDs while preserving the existing constructor and stable string representation. Use the factory in human and agent guidance.

  • scheduling: expose typed schedule ID overloads (GitHub)

    Make ScheduleId discoverable across scheduling, command, periodic, lookup, and cancellation APIs while retaining the existing Object-based implementation contract. Default delegates preserve custom scheduler implementations and the established string wire format.

  • authentication: add stable user identity (GitHub)

    Keep existing User implementations compatible by defaulting id() to Principal.getName(). Use the explicit identity for user metadata and authorization diagnostics without adding it to legacy serialized user objects.

GitHub

1.273.0 (2026-09-11)

Documentation
  • javadoc: reject invalid API references (GitHub)

    Repair the known broken links and invalid inherited documentation. Enable reference doclint and fail release and site generation on future Javadoc warnings.

Continuous Integration
  • release: remove Node-based tag action (GitHub)

    The repository-owned release resolver already selects the exact version and reruns reuse a tag on the current commit. Expose those values directly instead of invoking a Node 20 action with an overriding custom tag.

  • release: use GitHub App client ID input (GitHub)

    Use the current create-github-app-token input while retaining the existing app credential, repository scope, permissions, and automatic token revocation.

  • maven: use explicit credential environment inputs (GitHub)

    Migrate setup-java to its non-deprecated environment-variable-name inputs while preserving the separate GitHub Packages, Fluxzero, and Maven Central credential mappings.

  • release: stop Central publishing on 1 October 2026 [skip ci] (GitHub)
GitHub

1.272.0 (2026-09-11)

Continuous Integration
  • release: stop waiting for Central publication (GitHub)

    Return after Maven Central accepts the automatically published bundle instead of polling through validation and publication. Remove the obsolete recovery polling while retaining safe release reruns.

GitHub

1.271.0 (2026-09-11)

Bug Fixes
  • serialization: preserve inherited JSON root containers (GitHub)

    Parse inheritance-bearing resources one root tree at a time so Jackson does not unwrap root arrays. Preserve singleton and typed arrays as well as independent NDJSON records while leaving resources without inheritance on their existing fast path.

  • proxy: isolate forwarding from common pool (GitHub)

    Run asynchronous HTTP completion and retry scheduling on the Proxy worker pool so a lazy response-session connect cannot starve its own handshake. Preserve direct completion behavior and propagate the active thread-local context across the handoff.

  • testing: isolate fixture property overrides (GitHub)

    Give every fixture copy its own property snapshot over the original builder source. Properties now remain visible across copy operations while sibling and separately created fixtures cannot inherit each other's overrides.

  • serialization: resolve fixture inheritance per array element (GitHub)

    Resolve @​extend and @​extends structurally for each JSON node so independent array entries inherit from their own relative bases before type resolution and upcasting. Preserve raw resources without inheritance and existing object-root and NDJSON behavior.

GitHub

1.270.0 (2026-09-11)

Dependency updates
  • bump kotlin.version from 2.4.10 to 2.4.20 (GitHub)
    • kotlin.version: 2.4.10 -> 2.4.20
    • org.jetbrains.kotlin:kotlin-stdlib-jdk8: 2.4.10 -> 2.4.20 changelog
    • org.jetbrains.kotlin:kotlin-reflect: 2.4.10 -> 2.4.20 changelog
    • org.jetbrains.kotlin:kotlin-maven-plugin: 2.4.10 -> 2.4.20
    • org.jetbrains.kotlin:kotlin-test: 2.4.10 -> 2.4.20 changelog
GitHub

2.0.0-RC8 (2026-09-10)

Features
  • publishing: add fail-closed local dispatch (GitHub)

    Introduce @​LocalOnly for commands and queries so absent or ambiguous local request handlers cannot fall through to the Runtime. Preserve ordinary location-transparent dispatch and require custom registries to explicitly support exact selection.

  • eventsourcing: bound aggregate history pages (GitHub)

    Add an optional mixed-version-safe payload-byte limit alongside the existing event-count bound. Preserve exact paging progress for short and oversized pages, resolve configuration per application, and align the TestServer contract.

  • eventsourcing: bound aggregate history pages (GitHub)

    Add an optional mixed-version-safe payload-byte limit alongside the existing event-count bound. Preserve exact paging progress for short and oversized pages, resolve configuration per application, and align the TestServer contract.

  • publishing: add fail-closed local dispatch (GitHub)

    Introduce @​LocalOnly for commands and queries so absent or ambiguous local request handlers cannot fall through to the Runtime. Preserve ordinary location-transparent dispatch and require custom registries to explicitly support exact selection.

  • modeling: add safe retry defaults and canonical model routing (GitHub)

    Separate apply dependencies from assertion-only reads for ACCEPT while retaining complete RETRY validation and strict implicit creation. Infer routing only for unambiguous Model targets, preserve explicit routing, and gate the new defaults per application.

  • serialization: resolve registered wire type names (GitHub)

    Accept unique registered simple and partial type identifiers across message envelopes, nested JSON and fixtures while preserving alias and upcaster ordering and direct FQN resolution. Document shared ApplicationProperties resources and leave custom uber-JAR resource merging to applications.

  • serialization: support package type aliases (GitHub)

    Resolve multiple exact and package-prefix aliases deterministically after revision upcasting. Expose builder, property, and fixture configuration while keeping the unconfigured deserialization path allocation-free.

  • serialization: support untyped JSON sequences (GitHub)

    Load root arrays and newline-delimited resources element by element so fixture setup can preserve order, per-record type resolution, revision metadata, and user context.

Bug Fixes
  • modeling: protect Model events while integrating main (GitHub)

    Preserve v2 dispatch paths while incorporating deferred local data protection and current main fixes. Redact restored and replaced Model updates at the durable boundary, retain erasure provenance, and restore available private values for replay without hiding vault failures.

    Keep serialized extensions intact and fail closed for unsupported private-data mappings or unstable representations. Unprotected updates retain their serialized-data fast path.

  • dataprotection: avoid KV round trips for local messages (GitHub)

    Protected values for locally handled messages no longer need a Runtime KV round trip. Defer externalization until external fallback or SDK-managed logMessage publication, while preserving incoming-reference and custom-registry behavior.

  • keyvalue: redact values from write failures (GitHub)

    Failed key-value writes should retain their diagnostic key and cause without rendering the value into exception text. This prevents protected or otherwise sensitive payloads from leaking through exception logs and avoids value rendering from masking the original failure.

  • modeling: validate recursive Model assertions (GitHub)

    Traverse returned validation objects and annotated fields without losing phase, invocation context or pinned Model dependencies. Preserve direct assertions and keep validation out of ACCEPT rebase and replay.

  • web: merge OpenAPI resources deterministically (GitHub)

    Applications may expose generated or maintained specifications from several modules. Discover every visible resource, combine compatible definitions, and reject ambiguous contracts before serving the endpoint.

  • websocket: cap reconnect backoff at sixteen seconds (GitHub)

    Keep equal-jitter reconnects responsive during medium outages by limiting the exponential ceiling to sixteen seconds. This retains fleet desynchronization while reducing the worst-case delay after Runtime recovery.

  • websocket: bound recovery work during outages (GitHub)

    Keep opt-in transport diagnostics single-flight and timeboxed on a dedicated lifecycle worker. Add a versioned, explicitly overridable capped equal-jitter reconnect policy so existing compatibility defaults remain stable.

  • web: close generated OpenAPI request contracts (GitHub)

    Mark required request bodies explicitly and retain supported map type-use constraints across runtime and compile-time generation. Keep OpenAPI 3.0 output valid while expressing map-key validation in 3.1 and preserving Jackson deduction semantics.

  • websocket: cap reconnect backoff at sixteen seconds (GitHub)

    Keep equal-jitter reconnects responsive during medium outages by limiting the exponential ceiling to sixteen seconds. This retains fleet desynchronization while reducing the worst-case delay after Runtime recovery.

  • web: merge OpenAPI resources deterministically (GitHub)

    Applications may expose generated or maintained specifications from several modules. Discover every visible resource, combine compatible definitions, and reject ambiguous contracts before serving the endpoint.

  • web: close generated OpenAPI request contracts (GitHub)

    Mark required request bodies explicitly and retain supported map type-use constraints across runtime and compile-time generation. Keep OpenAPI 3.0 output valid while expressing map-key validation in 3.1 and preserving Jackson deduction semantics.

  • websocket: bound recovery work during outages (GitHub)

    Keep opt-in transport diagnostics single-flight and timeboxed on a dedicated lifecycle worker. Add a versioned, explicitly overridable capped equal-jitter reconnect policy so existing compatibility defaults remain stable.

  • web: preserve compiled Model graph types during enrichment (GitHub)

    Combine generated Model type evidence with the application registry so partially initialized applications can serve selected graph schemas. Keep schema bindings, per-document isolation and invalid-path validation intact.

  • modeling: preserve context through commit retries (GitHub)

    Keep the captured application context active during rebase preparation and delayed admission submission, including custom serialization and dispatch interception. Restore the completion thread context after each continuation.

  • modeling: release completed admission dependencies (GitHub)

    Discard predecessor references once admission is granted so sustained overlap cannot retain an unbounded completed chain. Preserve visibility of progress and transport state across completion threads.

  • serialization: expose alias-aware JSON input (GitHub)
  • serialization: apply aliases across JSON type metadata (GitHub)

    Preserve historical type names through revision upcasting, then resolve aliases for nested polymorphic JSON, typed message metadata, and unrevisioned fixture roots. Keep raw metadata and unmatched deserialization on their existing representation.

  • web: align OpenAPI object constraints (GitHub)

    Expose closed unions and explicit unknown-property policies in generated schemas, while mapping size validation to the matching schema shape.

Performance Improvements
  • publishing: cache local-only scope decisions (GitHub)

    Keep immutable positive and negative annotation decisions in the central type metadata cache. Preserve dynamic handler selection and checks of both original and interceptor-replaced payloads.

  • publishing: cache local-only payload scope decisions (GitHub)

    Resolve immutable annotation scope once through central type metadata, including negative decisions. Keep handler selection and interceptor replacement dynamic across applications.

Documentation
  • modeling: define intercepted assertion semantics (GitHub)

    Document which AssertLegal methods apply when InterceptApply retains, suppresses, replaces, or splits an update. Lock the existing sequence with focused state-aware regression tests without adding a noisy runtime diagnostic.

  • packages: align setup, policies, and checksum publishing (#340) (GitHub)

    * docs(packages): align installation and policies with public repository

    * chore(packages): refine policies and checksum publishing

    Keep public-package disclosures concise while preserving processing, retention, transfer, and license information. Configure Maven publishing to include SHA-256 and SHA-512 alongside the existing checksum formats.

  • modeling: define intercepted assertion semantics (GitHub)

    Document which AssertLegal methods apply when InterceptApply retains, suppresses, replaces, or splits an update. Lock the existing sequence with focused state-aware regression tests without adding a noisy runtime diagnostic.

  • serialization: prioritize property-based alias setup (GitHub)

    Lead with application properties and conventional environment variables across human and agent guidance, while retaining builder methods as explicit programmatic overrides. Require all future configuration features to use the shared ApplicationProperties infrastructure instead of feature-specific property resolution.

  • serialization: cover type aliases for humans and agents (GitHub)

    Explain when aliases replace or complement upcasters, including builder and property configuration and JSON fixture type resolution. Keep the README, developer guides, and Java and Kotlin agent manuals aligned, and codify that documentation-surface expectation.

Dependency updates
  • bump org.eclipse.jetty:jetty-bom from 12.1.12 to 12.1.13 (GitHub)

    org.eclipse.jetty:jetty-bom: 12.1.12 -> 12.1.13 changelog

  • bump org.slf4j:slf4j-api from 2.0.18 to 2.0.19 (GitHub)

    org.slf4j:slf4j-api: 2.0.18 -> 2.0.19

Code Refactoring
  • publishing: simplify local-only dispatch (GitHub)

    Make LocalOnly mean that only existing local handlers run for every message type. Requests without a local handler fail through their future, while non-requests complete without external publication; package scopes and explicit overrides define the boundary without a separate handler-selection model.

  • publishing: simplify local-only dispatch (GitHub)

    Apply the local-only boundary to every message type while retaining the v2 gateway's parallel serialization and model-handler paths. Requests without a local handler fail through their future; non-requests complete without external publication, and package scopes support explicit overrides.

Continuous Integration
  • remove automatic main repair workflow [skip ci] (GitHub)

    Failed main builds now remain ordinary CI failures and no longer start Codex, create repair branches, or open pull requests.

  • release: use source commit timestamps for Maven archives (GitHub)

    Read the source commit timestamp through the POM for release builds and preserve it when setting the release version. Keep Packages publication before Central.

  • release: use the dedicated Packages upload endpoint (GitHub)

    Use /publish/maven for SDK uploads and the GitHub OIDC audience while keeping public Maven downloads at /maven. Preserve signing and publication to Packages before Maven Central.

  • release: publish SDK to Fluxzero Packages before Central (GitHub)

    Add GitHub OIDC publication to the existing build job and retain Central publication afterward. Share signing through the sign profile while keeping the Central extension optional, so Central can be retired independently.

Build System
  • java: require Java 25 for SDK v2 (GitHub)

    Remove older-JDK worker fallbacks while preserving the existing Java 25 execution policy, admission limits and public utility signatures. Align Java and Kotlin consumer builds and documentation with the new baseline.

    BREAKING CHANGE: SDK v2 artifacts require Java 25 or newer to compile and run. The SDK 1.x release line is unchanged.

Tests
  • modeling: await initial cache publication before advancing tracker (GitHub)

    Establish the intended current-cache precondition before the asynchronous tracker advances. A load published after that advance correctly needs a fresh proof and must not race this unrelated-update assertion.

Chores
  • release: integrate SDK RC8 candidate (GitHub)

    Integrate current main and the qualified v2 fixes, including durable Model event protection and replay restoration, for the matching RC8 prerelease.

  • integration: merge main into SDK v2 (GitHub)

    Retain v2 compact metadata, byte-range serialization and release defaults while incorporating main's type aliases and publication changes.

    Reuse normalized inputs and bound alias detection work to preserve deserialization fast paths.

Changes
  • merge(v2): integrate latest main updates (GitHub)

    Keep the already ported SDK fixes and v2 Model behavior while incorporating the current packaging guidance and CI changes.

  • merge(v2): combine main ports with Model hardening (GitHub)

    Preserve the main compatibility ports alongside the later Model conflict, routing and graph corrections and Java 25 baseline.

GitHub

1.269.0 (2026-09-10)

Documentation
  • positioning: align documentation with product builders (GitHub)

    Make agent-led development the primary path while preserving direct development as a full option. Use broad software and cloud language in product-facing copy, and keep language- and Runtime-specific terminology where the documentation addresses those technical contracts directly.

Dependency updates
  • bump io.fluxzero.tools:fluxzero-maven-plugin from 1.17.3 to 1.18.0 (GitHub)

    io.fluxzero.tools:fluxzero-maven-plugin: 1.17.3 -> 1.18.0 changelog

GitHub

1.268.0 (2026-09-10)

Documentation
  • agents: migrate the SDK documentation graph (GitHub)

    Make docs/agents the canonical graph and incorporate the later Java and Kotlin manual changes. Preserve existing article identities and ZIP consumers while preparing namespace-aware release documentation.

Build System
  • publish agent graph archives with SDK releases (GitHub)

    Attach a version-bound documentation ZIP to the standard Maven publication and preserve the same archive and checksum in GitHub releases for recovery. Keep the existing Java and Kotlin project ZIPs available during migration.

GitHub

1.267.0 (2026-09-10)

Bug Fixes
  • dataprotection: avoid KV round trips for local messages (GitHub)

    Protected values for locally handled messages no longer need a Runtime KV round trip. Defer externalization until external fallback or SDK-managed logMessage publication, while preserving incoming-reference and custom-registry behavior.

  • keyvalue: redact values from write failures (GitHub)

    Failed key-value writes should retain their diagnostic key and cause without rendering the value into exception text. This prevents protected or otherwise sensitive payloads from leaking through exception logs and avoids value rendering from masking the original failure.

GitHub

1.266.0 (2026-09-10)

Performance Improvements
  • publishing: cache local-only scope decisions (GitHub)

    Keep immutable positive and negative annotation decisions in the central type metadata cache. Preserve dynamic handler selection and checks of both original and interceptor-replaced payloads.

GitHub

1.265.0 (2026-09-10)

Features
  • publishing: add fail-closed local dispatch (GitHub)

    Introduce @​LocalOnly for commands and queries so absent or ambiguous local request handlers cannot fall through to the Runtime. Preserve ordinary location-transparent dispatch and require custom registries to explicitly support exact selection.

  • eventsourcing: bound aggregate history pages (GitHub)

    Add an optional mixed-version-safe payload-byte limit alongside the existing event-count bound. Preserve exact paging progress for short and oversized pages, resolve configuration per application, and align the TestServer contract.

Bug Fixes
  • web: merge OpenAPI resources deterministically (GitHub)

    Applications may expose generated or maintained specifications from several modules. Discover every visible resource, combine compatible definitions, and reject ambiguous contracts before serving the endpoint.

  • websocket: cap reconnect backoff at sixteen seconds (GitHub)

    Keep equal-jitter reconnects responsive during medium outages by limiting the exponential ceiling to sixteen seconds. This retains fleet desynchronization while reducing the worst-case delay after Runtime recovery.

  • websocket: bound recovery work during outages (GitHub)

    Keep opt-in transport diagnostics single-flight and timeboxed on a dedicated lifecycle worker. Add a versioned, explicitly overridable capped equal-jitter reconnect policy so existing compatibility defaults remain stable.

  • web: close generated OpenAPI request contracts (GitHub)

    Mark required request bodies explicitly and retain supported map type-use constraints across runtime and compile-time generation. Keep OpenAPI 3.0 output valid while expressing map-key validation in 3.1 and preserving Jackson deduction semantics.

Documentation
  • modeling: define intercepted assertion semantics (GitHub)

    Document which AssertLegal methods apply when InterceptApply retains, suppresses, replaces, or splits an update. Lock the existing sequence with focused state-aware regression tests without adding a noisy runtime diagnostic.

  • packages: align setup, policies, and checksum publishing (#340) (GitHub)

    * docs(packages): align installation and policies with public repository

    * chore(packages): refine policies and checksum publishing

    Keep public-package disclosures concise while preserving processing, retention, transfer, and license information. Configure Maven publishing to include SHA-256 and SHA-512 alongside the existing checksum formats.

Code Refactoring
  • publishing: simplify local-only dispatch (GitHub)

    Make LocalOnly mean that only existing local handlers run for every message type. Requests without a local handler fail through their future, while non-requests complete without external publication; package scopes and explicit overrides define the boundary without a separate handler-selection model.

Continuous Integration
  • remove automatic main repair workflow [skip ci] (GitHub)

    Failed main builds now remain ordinary CI failures and no longer start Codex, create repair branches, or open pull requests.


© 2026 Fluxzero