Skip to content

v2.3.1

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Jun 21:23
6e8954e

2.3.1 (2026-06-18)

What's Changed

  • SDK Conformance Audit - Cases.json, evalCondition operator audit and partial feature-eval / experiment-assignment by @madhuchavva in #122

Fixes & Enhancements

  • Align condition equality with JavaScript strict equality semantics:
    • $eq and direct equality no longer coerce across types, so values like 5 and "5" or true and 1 no longer match. (7f9d2d2)
    • $ne now returns the inverse of strict equality for these cases.
    • Array and object operands follow JavaScript reference-identity semantics, so separately parsed but structurally equal arrays/objects do not match with $eq. (a8ff302, 7f9d2d)
  • Fix NaN comparison handling so NaN does not compare equal to itself and ordered comparisons involving NaN evaluate as false. (672136a)
  • Preserve JavaScript-compatible Unicode lowercasing behavior for case-insensitive operators such as $ini, $nini, and $alli. (5f45087)

Tests and CI

  • Expanded SDK conformance coverage for condition operators, prerequisite/parent-condition cases, force-rule hashVersion: 2, and sticky-bucket bucket-version boundaries.
    (505c8e1, a95ce02, 076eab8)
  • Added a corpus freshness check against the JavaScript SDK cases corpus to catch missing or drifted cases.
    (e428acb, 460f581, a030b66)

Compatibility note

There are no API changes, but this release can change feature targeting results for customers whose conditions relied on Python’s previous coercive equality behavior.

Full Changelog: v2.3.0...v2.3.1