feat: Surface engine evaluation reason and variant on flags - #221
Merged
Conversation
Flag now carries reason and variant, populated from the engine's evaluation result in local evaluation and from the reason and variant fields of /flags and /identities responses when evaluating remotely. Remote evaluation reads both fields optionally, so they stay empty against an API that predates them. The engine did not compute a variant at all: FlagResult now reports "control" when an identity falls in a multivariate feature's leftover allocation, the selected variant's key when one is bucketed, and nothing for standard features, unkeyed variants, or evaluation without an identity. Variant keys come from the multivariate feature options in the environment document. Bump engine-test-data to v3.10.0, which asserts variant across the corpus; v3.7.0's expected results have no variant field, so they contradict any implementation of it. beep boop
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.
Replicates Flagsmith/flagsmith-python-client#236 in the Go client.
Flagnow carriesReasonandVariant, populated from the engine's evaluation result in local evaluation, and from thereasonandvariantfields of/flagsand/identitiesresponses when evaluating remotely.