Skip to content

1.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Aug 01:47
1d87719

What's Changed

Bug Fixes Summary

  • Remove the duplicate legacy coverage gate from forced feature rules
  • honor configured seeds, hash versions, hash attributes, fallback attributes, and ranges through one rollout decision
  • reject missing hash attributes for rollouts and filters instead of hashing an empty string
  • enable sticky bucketing by default when a service is configured and disableStickyBucketing is omitted
  • make malformed one-element ranges non-matching instead of allowing an out-of-bounds access

Root cause and impact

Forced rules first used isIncludedInRollout with the configured hashing inputs, then ran a duplicate coverage check with the feature key and hash v1. For rules using hash v2 or a custom seed, users had to pass two different gates, reducing effective inclusion toward coverage². Remote-evaluation tracking ran between those gates, so an exposure could be recorded even when the forced value was not returned.

The evaluator also hashed empty strings when rollout or filter attributes were missing, and treated an omitted disableStickyBucketing as disabled in two paths. These behaviors diverged from the evaluator contract and other SDK implementations.

Full Changelog: 1.1.15...1.2.0