You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
Ordinary batch appends now go through the rich append RPC, so routing (event source type, stream type, stream id), tags, subject, occurred time, correlation id, identity, causation and per-entry concurrency scopes survive to the kernel instead of being dropped. Omitted routing and occurrence assignment are still left to the kernel, and the public return shapes and the explicit none-scope policy are unchanged.
A failed append result is now reported truthfully as an error tuple - including concurrency and constraint violations - rather than returning :ok on a rejection the server refused to persist.
Correlation ids are encoded correctly onto the wire, so a supplied UUID arrives as the same id rather than a reordered one.
The client runs a compatibility preflight once per connection channel, retries a failed check, and discards the successful verdict on reconnect, so an incompatible or unreachable server is caught before an append is attempted.
Changed
cratis_chronicle_contracts is pinned to 18.4.1, and the compatibility preflight announces that protocol version. Kernel 18.4.1 withdraws the append-receipt contract introduced in 18.4.0; this client never surfaced receipts, so nothing but the pin changes.
Added
An opt-in live suite that exercises append metadata against a real kernel rather than a fake channel: default routing resolved by the kernel, explicit metadata round-tripped through storage, and a stale concurrency scope rejected without persisting any attempted event. It runs only when CHRONICLE_INTEROP_CONNECTION carries credentials.