Changelog — page 10
New features, improvements, and fixes in the Fluxzero SDK.
Sep 9, 2026 · 1.264.0
Section titled “Sep 9, 2026 · 1.264.0”GitHub
Sep 9, 2026 · 1.264.0
Section titled “Sep 9, 2026 · 1.264.0”Sep 8, 2026 · 2.0.0-RC7
Section titled “Sep 8, 2026 · 2.0.0-RC7”GitHub
Sep 8, 2026 · 2.0.0-RC7
Section titled “Sep 8, 2026 · 2.0.0-RC7”2.0.0-RC7 (2026-09-08)
Features
Bug Fixes
Performance Improvements
- persisting: preserve single-model cache reads (GitHub)
- persisting: batch cache read admission (GitHub)
- publishing: map successful gateway responses directly (GitHub)
- publishing: reuse terminal response callbacks (GitHub)
- context: reuse restored thread-local snapshots (GitHub)
Dependency updates
Tests
Chores
- release: merge main into next/2.0 (GitHub)
Changes
Sep 8, 2026 · 1.263.0
Section titled “Sep 8, 2026 · 1.263.0”GitHub
Sep 8, 2026 · 1.263.0
Section titled “Sep 8, 2026 · 1.263.0”Sep 8, 2026 · 1.262.0
Section titled “Sep 8, 2026 · 1.262.0”GitHub
Sep 8, 2026 · 1.262.0
Section titled “Sep 8, 2026 · 1.262.0”Sep 8, 2026 · 1.261.0
Section titled “Sep 8, 2026 · 1.261.0”GitHub
Sep 8, 2026 · 1.261.0
Section titled “Sep 8, 2026 · 1.261.0”Sep 8, 2026 · 1.260.0
Section titled “Sep 8, 2026 · 1.260.0”GitHub
Sep 8, 2026 · 1.260.0
Section titled “Sep 8, 2026 · 1.260.0”Sep 8, 2026 · 1.259.0
Section titled “Sep 8, 2026 · 1.259.0”GitHub
Sep 8, 2026 · 1.259.0
Section titled “Sep 8, 2026 · 1.259.0”Sep 8, 2026 · 1.258.0
Section titled “Sep 8, 2026 · 1.258.0”GitHub
Sep 8, 2026 · 1.258.0
Section titled “Sep 8, 2026 · 1.258.0”Sep 4, 2026 · 1.257.0
Section titled “Sep 4, 2026 · 1.257.0”GitHub
Sep 4, 2026 · 1.257.0
Section titled “Sep 4, 2026 · 1.257.0”Sep 4, 2026 · 1.256.0
Section titled “Sep 4, 2026 · 1.256.0”GitHub
Sep 4, 2026 · 1.256.0
Section titled “Sep 4, 2026 · 1.256.0”Sep 4, 2026 · 1.255.0
Section titled “Sep 4, 2026 · 1.255.0”GitHub
Sep 4, 2026 · 1.255.0
Section titled “Sep 4, 2026 · 1.255.0”Sep 4, 2026 · 1.254.0
Section titled “Sep 4, 2026 · 1.254.0”GitHub
Sep 4, 2026 · 1.254.0
Section titled “Sep 4, 2026 · 1.254.0”Sep 3, 2026 · 2.0.0-RC6
Section titled “Sep 3, 2026 · 2.0.0-RC6”GitHub
Sep 3, 2026 · 2.0.0-RC6
Section titled “Sep 3, 2026 · 2.0.0-RC6”Fluxzero SDK 2.0.0-RC6
RC6 makes Model identity durable and intentional, and completes the distinction between searchable current-state documents and private reference-only documents.
Durable Model identity
A Model now has a stable logical name that is independent of its Java package and payload class name:
@Model(name = "Task")
public record RenamedTask(@EntityId TaskId taskId) {
}
When name is omitted, the simple class name is used. Applications that share one Runtime namespace can prepend fluxzero.model.namePrefix; the prefix is concatenated literally. The resolved name owns persisted Model metadata, default document collections and Graph relationship types. Java FQNs remain serializer details instead of becoming storage identities.
Changing an established Model name or prefix is an application-managed data transition.
Reference-only document persistence
Document-backed Models can now remain directly addressable without becoming generally searchable:
@Model(
persistence = ModelPersistence.DOCUMENT,
document = @DocumentProjection(searchable = false))
public record UserPreferences(@EntityId UserId userId) {
}
These documents keep their normal resolved collection and remain available by Model ID, alias and exact parent or ancestor ID. Without an independent Graph role, Fluxzero omits text, facet and sortable indexes. Graph components retain only the internal indexes their Graph role requires.
This makes storage intent explicit: DOCUMENT controls the durable representation, while DocumentProjection.searchable controls external typed search visibility.
Runtime pairing
Use SDK RC6 with Runtime RC6 when logical Model names or materialized Graphs are involved. The complete SDK, downstream compatibility, test-server and Proxy suites passed in the release pipeline.
Full changelog: https://github.com/fluxzero-io/fluxzero-sdk-java/compare/2.0.0-RC5...2.0.0-RC6
Sep 3, 2026 · 1.253.0
Section titled “Sep 3, 2026 · 1.253.0”GitHub
Sep 3, 2026 · 1.253.0
Section titled “Sep 3, 2026 · 1.253.0”Sep 3, 2026 · 1.252.0
Section titled “Sep 3, 2026 · 1.252.0”GitHub
Sep 3, 2026 · 1.252.0
Section titled “Sep 3, 2026 · 1.252.0”Sep 3, 2026 · 1.251.0
Section titled “Sep 3, 2026 · 1.251.0”GitHub
Sep 3, 2026 · 1.251.0
Section titled “Sep 3, 2026 · 1.251.0”Sep 2, 2026 · 2.0.0-RC5
Section titled “Sep 2, 2026 · 2.0.0-RC5”GitHub
Sep 2, 2026 · 2.0.0-RC5
Section titled “Sep 2, 2026 · 2.0.0-RC5”Fluxzero 2.0.0-RC5 is a focused stabilization and API-coherence release for the new Model platform. It makes Model storage intent explicit, adds direct relationship-ID search, and closes correctness gaps around document-only Models, recursive deletes, and cache invalidation.
Model persistence says what is stored
Persistence and public search are now separate choices:
@Model(
persistence = {
ModelPersistence.EVENT_SOURCED,
ModelPersistence.DOCUMENT
},
document = @DocumentProjection(searchable = false))
public record Task(
@EntityId TaskId taskId,
@Parent(pathInParent = "tasks") ProjectId projectId,
TaskDetails details) {
}
persistence selects the durable representations and authoritative load path. DocumentProjection.searchable only controls whether the current document is exposed through an unrestricted typed search. A reference-only document remains available for direct loads, relationships, and Graph composition.
Search by known parent or ancestor identity
A known typed ID can now start directly from Fluxzero's durable relationship index. The related parent or ancestor does not need a public document:
List<Task> projectTasks = Fluxzero.search(Task.class)
.whereParent(projectId)
.fetch(100);
List<Task> organisationTasks = Fluxzero.search(Task.class)
.whereAncestor(organisationId)
.fetch(100);
Content-based whereParent and whereAncestor searches remain available when the related identity is not known.
Correctness and runtime parity
RC5 also strengthens the less visible paths that matter in production:
- Document-authoritative Models can be created, repeatedly updated, deleted, and recreated without reconstructing nonexistent event history.
- Recursive owned-descendant deletes validate the complete closure before mutation in both
TestFixtureand the Runtime. - Deep cascade conflicts rebase from the actual missing descendant boundary.
- Hard deletes release cache-refresh waiters independently of asynchronous eviction notification timing.
- Self-tracking and automatic Model handlers reject unrelated payload types before deserialization.
- README navigation and the Model persistence guidance have been refreshed.
Compatibility
Use SDK 2.0.0-RC5 together with Runtime 2.0.0-RC5. This remains a release candidate intended for validation before the final 2.0 release.
Sep 2, 2026 · 1.250.0
Section titled “Sep 2, 2026 · 1.250.0”GitHub
Sep 2, 2026 · 1.250.0
Section titled “Sep 2, 2026 · 1.250.0”Sep 2, 2026 · 1.249.0
Section titled “Sep 2, 2026 · 1.249.0”GitHub
Sep 2, 2026 · 1.249.0
Section titled “Sep 2, 2026 · 1.249.0”Sep 1, 2026 · 2.0.0-RC4
Section titled “Sep 1, 2026 · 2.0.0-RC4”GitHub
Sep 1, 2026 · 2.0.0-RC4
Section titled “Sep 1, 2026 · 2.0.0-RC4”Fluxzero 2.0 RC4
RC4 closes the public Model persistence design and hardens the concurrency, recovery, and historical-read paths discovered during final application qualification. It is the current SDK candidate to pair with Runtime 2.0.0-RC4.
One explicit persistence choice
The provisional eventSourced and searchable boolean matrix is replaced by one closed contract:
EVENT_SOURCEDreconstructs state from the Model event stream.EVENT_SOURCED_WITH_DOCUMENTreconstructs from events and maintains a searchable current document.DOCUMENTmakes the current document authoritative and reads it through the configuredDocumentSerializer.
@Model(persistence = ModelPersistence.EVENT_SOURCED_WITH_DOCUMENT)
public record Project(
@EntityId ProjectId projectId,
ProjectDetails details) {
}
Event publication, internal Graph component documents, and optional whole-Graph materialization remain orthogonal. Invalid or non-reconstructable combinations now fail before commit.
Final hardening
- Nested Model replay no longer inherits an unrelated outer Graph handler constraint, while the selected Graph remains available to its handler.
- Direct document reads and ACCEPT rebases respect exact durable boundaries while materialization catches up.
- Cascade rebases include newly attached descendants and retain atomic deletion semantics.
- In-memory Model commits no longer have a lock inversion with concurrent event appends.
- Model cache bulk updates are serialized per key so stale work cannot overwrite a newer revision.
- Monitored in-memory document indexing replaces entries by message ID without quadratic collection scans.
- WebSocket close acknowledgement is independent from application notification latency.
Compatibility and qualification
The persistence API change only replaces provisional 2.0 prerelease declarations; it does not change persisted Model data or wire formats. Existing 1.x Aggregate and document flows remain supported. Human guides, Javadoc, and the Java and Kotlin agent manuals now describe the same final API.
Use this SDK with Runtime 2.0.0-RC4. Stable and 1.x channels are unchanged.
© 2026 Fluxzero