Repository navigation
feat: Cover numeric trait conditions with mixed types - #63
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
emyller
commented
Oct 30, 2026
khvn26
approved these changes
Oct 30, 2026
khvn26
left a comment
Member
There was a problem hiding this comment.
Confirmed against the Core API's pre-engine evaluator (check_integer_value / check_float_value) and flagsmith-engine v2.1.0 through v11.1.1. All 4 cases match.
3 tasks done
gagantrivedi
added a commit
to Flagsmith/flagsmith-nodejs-client
that referenced
this pull request
Nov 6, 2026
Since Flagsmith/flagsmith#8532, the environment document carries `metadata.experiment` on feature states. The SDK dropped it when building engine models, so under local evaluation `flag.experiment` was always undefined and `getExperimentFlag` never recorded an exposure. ### Changes - `FeatureStateModel` keeps `metadata.experiment`; the mapper adds it to the engine context's feature metadata for environment and segment feature states. Identity overrides carry none, as on the API. - `Flags.fromEvaluationResult` sets `experiment`, and also `variant`, which local evaluation dropped until now, so local exposures carry the variant key. - Locally evaluated environment flags carry no experiment, matching the API, which only sends it for identity flags. ### Tests `getExperimentFlag` under local evaluation: an enrolled identity records one exposure with its variant and experiment ID; an identity outside the rollout, one with an identity override, and a feature with no experiment record none. Environment flags carry no experiment. Also checked against a local Flagsmith with the events pipeline: local and remote evaluation give the same value, variant and experiment, and one exposure reached the warehouse. ### Not included Bumping `engine-test-data` to v3.13.0, which adds the experiment cases: it also adds two numeric trait cases (Flagsmith/engine-test-data#63) the engine already fails, to be fixed separately.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No cases cover numeric traits against rule values of another type, where the Ruby SDK raised or disagreed with flagsmith-engine.
Fixed in Flagsmith/flagsmith-ruby-client#118. All cases pass in flagsmith-engine.
Changes
95 > "90.5",95 != "90.5") doesn't match.95.5 > "90") matches.CONTAINSon an integer trait doesn't match.🤖 Generated with Claude Code