Skip to content

v2.2.2

Choose a tag to compare

@github-actions github-actions released this 11 Jul 03:13
· 52 commits to main since this release

Patch release: a losslessness fix in nested-object flattening. No API changes; recommended for all users.

🐛 Fixes

  • Losslessness: null nested objects are no longer dropped. A nested object that was an object in some records and null at an intermediate level in others (e.g. {"meta": {"owner": null}}) was being flattened, and on decode the null reconstructed as a missing key instead of null, silently losing data. Such fields now fall back to the attachment encoding, which round-trips exactly. A top-level null still flattens (it emits - and rebuilds via the all-null rule), so compression is unaffected for that case.

✅ Tests

  • Added test_flatten_roundtrip: aligned arrays whose shared fields are fixed-shape nested objects with a field or an intermediate level sometimes null/absent, the shape the prior scalar-only generator never produced. Verified failing on the pre-fix encoder and passing on the fix at 500k iterations.

This is a format-level bug, fixed identically across the GCF SDKs (TypeScript / Go / Python / Rust / Swift / Kotlin); it is locked in by shared conformance fixtures (flatten/017019) that this SDK's conformance suite runs against the gcf spec repo.

Full Changelog: v2.2.1...v2.2.2