Skip to content

v3.5.1 — Score-rounding errata, and a .NET SDK

Choose a tag to compare

@blackwell-systems blackwell-systems released this 09 Aug 19:15
· 51 commits to main since this release

Spec errata: pin graph score rounding to round-half-to-even (Section 5)

The graph node-line score (two decimals) had an unspecified rounding mode, so implementations diverged at exact IEEE-754 binary midpoints: the printf-family SDKs (Go, Rust, Python, Swift, .NET) round half-to-even (0.1250.12), while round-half-up formatters (JavaScript Number.toFixed, Java String.format %f) produced 0.13 — a silent, non-interoperable wire difference. Section 5 now requires round-half-to-even applied to the exact double. A clarification, not a grammar change: the two modes agree on every value except exact midpoints, and correct decoders are unaffected.

gcf-typescript and gcf-kotlin are corrected; the printf-family SDKs already complied. Pinned by a new graph-encode/004_score_midpoint_rounding conformance fixture, generated by the gcf-go reference and verified across all seven SDKs.

New SDK: gcf-dotnet (.NET / C#)

A seventh first-party SDK, gcf-dotnet (NuGet BlackwellSystems.Gcf), zero runtime dependencies, multi-targeting netstandard2.0 and net8.0. Full parity across generic and graph profiles, delta, session dedup, streaming, and the re-anchor helper; passes the complete cross-SDK conformance suite (265 fixtures).

Full changelog: https://github.com/blackwell-systems/gcf/blob/main/CHANGELOG.md