[AI-FSSDK] [FSSDK-12735] Add holdout exclusion logic for Targeted Delivery rules - #654
Open
esrakartalOpt wants to merge 5 commits into
Open
[AI-FSSDK] [FSSDK-12735] Add holdout exclusion logic for Targeted Delivery rules#654esrakartalOpt wants to merge 5 commits into
esrakartalOpt wants to merge 5 commits into
Conversation
… null TD fallback, and holdout event dispatch
…excludeTargetedDeliveries reason
Contributor
|
@esrakartalOpt HO related test cases failing, could you please have a look. |
…al holdouts - Refactor getDecisionForFlag: skip experiment rules when global holdout has excludeTargetedDeliveries=true, always evaluate rollout (delivery) rules - Attach holdoutDecision to rollout result so holdout impression fires alongside the rollout impression; attach to empty decision when no rollout matches so the holdout impression still fires - Add HoldoutDecision struct replacing the anonymous holdoutToSend tuple; failable init?(from:) absorbs the unwrapping logic previously spread across call sites and the holdoutTuple helper - Add userBucketedIntoRollout / userNotBucketedIntoRollout log messages matching Java SDK parity - Refactor getDecisionForFlag and extract getTargetedDeliveryExperiments on ProjectConfig - Fix DecisionServiceTests_ExcludeTargetedDeliveries: correct test setup ordering (project mutations before holdoutConfig assignment to prevent didSet from wiping the custom holdout), update assertions to match correct spec (experiments skipped, delivery/rollout rules always evaluated) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
Implements the
exclude_targeted_deliveriesfield on Holdout objects so that users bucketed into a holdout can still be served Targeted Delivery rules normally when the flag is set totrue. A/B Test and Multi-Armed Bandit rules continue to respect the holdout regardless of this flag.Changes
excludeTargetedDeliveriesproperty to the Holdout model with backward-compatible decoding (defaults tofalsewhen missing)Jira Ticket
FSSDK-12735