Fluxzero 2.0.0-RC9
Pre-releaseRC9 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 (
04335c4)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 (
7683f93)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 (
1d12645)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 (
9ff9987)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 (
5ac3d14)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 (
4246c73)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.
docs: publish the SDK 2.x agent graph (
b0c70e4)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 (
f5b3e52)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 (
bcf00ef)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 (
085b7a5)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 (
ba391cf)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 (
ec3e0f8)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 (
e075f18)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 (
d490bf5)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 (
38a1ca9)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 (
4b2c15f)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 (
d002ac1)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 (
55bb595)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 (
68caf8c)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 (
51e4cc8)
Continuous Integration
release: remove Node-based tag action (
082f8f3)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 (
606a642)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 (
44eed7e)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] (
fc9be10) release: stop waiting for Central publication (
20da9ee)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
docs: publish agent graph archives with SDK releases (
ffe5b94)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 (
a8c4ef1)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 (
c18869f)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 (
3c0ee30)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 (
2e4db85)Bring the typed scheduling conveniences into the existing Java 25 and Model release line.
v2: merge main identity and release hardening (
14abe1f)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 (
e486e16)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 (
39483e3)Retain Model-first guidance and Java 25 while adopting the versioned agent documentation graph. Preserve JSON root arrays when resolving inherited fixture resources.