feat(flags): evaluate dynamic offline rules (FFL-2837 PR2) - #1347
Draft
btthomas wants to merge 2 commits into
Draft
feat(flags): evaluate dynamic offline rules (FFL-2837 PR2)#1347btthomas wants to merge 2 commits into
btthomas wants to merge 2 commits into
Conversation
This was referenced Jul 24, 2026
btthomas
force-pushed
the
blake.thomas/FFL-2837-PR1
branch
from
July 27, 2026 19:53
bb7ad12 to
d8dd76f
Compare
btthomas
force-pushed
the
blake.thomas/FFL-2837-PR2
branch
from
July 27, 2026 20:13
cb5597d to
932c87b
Compare
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.
Pull request stack
Summary
This PR adds dynamic and mixed offline evaluation to
FlagsClient.FlagDetails.Reason
A mixed configuration can contain assignments for one context and rules for other contexts.
FlagsClientselects the path when it resolves each flag.This check prevents a mismatched precomputed assignment from being used.
Tracking
A successful rules assignment uses the existing native assignment bridge. The bridge reports evaluations through the same Datadog path as online and precomputed assignments.
The rules response does not contain
extraLogging. The bridge still requires this field on Android, so the SDK supplies an empty object.The SDK calls the bridge for every real assignment. A false
doLogvalue does not stop the bridge call.Temporary upstream code
This PR has one PR2-only
TODO(FFL-2837)item.The temporary
rulesBasedcompatibility type remains until a flagging-core release contains therulesbranch from openfeature-js-client#344.The targeting-key policy is final. Missing and empty targeting keys are different. The deterministic fake remains as a permanent unit-test boundary.
User impact
The existing offline client can now evaluate rules after a context change.
It does not fetch data.
Matching precomputed data still has priority.
The provider does not pass its effective resolution context yet.
PR3 adds that connection and the customer documentation.
Checks
yarn tsc --noEmit -p packages/core/tsconfig.json