Changelog
This page mirrors the repository root CHANGELOG.md.
[Unreleased]
[1.3.0] - 2026-02-19
Fixed
- Fix packed HLC decode for high-bit wall times.
- Enforce HLC drift bounds when the clock moves backwards.
- Harden
VectorClockstring parsing and coordinator locking. - Fix
VectorClockoverflow behavior. - Fix thread safety in demo
FailureInjector. - Preserve correlation IDs correctly in at-least-once demo flows.
- Prevent a template dictionary memory leak in the integration demo.
- Stabilize demo
MessageIdgeneration.
Changed
- Optimize HLC timestamp serialization/parsing, and simplify witness max selection.
- Make HLC message header
TryParsenon-exceptional. - Split HLC coordinator supporting types into separate files.
- Optimize
VectorClockmerge/compare/increment and serialization. - Use
ArrayPool<T>for vector clock merge buffers. - Use
CollectionsMarshalfor vector clock canonicalization. - UUIDv7 packing now uses
BinaryPrimitivesand a tighter packing path. - UUIDv7 factory batch generation throughput improvements.
- Adopt C# 14 extension member blocks.
Added
- Add high-value property tests for HLC and vector clocks.
- Demo: add distributed-systems at-least-once simulation with HLC/VC stats.
Documentation
- Update README with HLC and
VectorClockwire formats. - Clarify HLC drift bounds and ordering scope.
Build
- Infrastructure scripts: improve setup/maintenance harness and dotnet installation step.
[1.2.0] - 2026-01-27
Changed
- HLC receive semantics now witness the full remote
HlcTimestamp(wallTime, counter, nodeId)(including nodeId tie-breaking) rather than only the remote wall time. - HLC coordinator receive statistics now treat "remote ahead" based on full timestamp ordering.
Added
- Additional property tests for
HlcCoordinatorcovering remote-ahead by counter, nodeId tie-breaking, remote-behind behavior, and mixed send/receive/time interleavings. - Unit test coverage for receiving a remote timestamp with higher counter at the same wall time.
Build
- Centralized common build properties in
Directory.Build.props.
