Skip to content

[AI-FSSDK] (DO NOT REVIEW) [FSSDK-12262] Exclude CMAB from UserProfileService#10

Closed
jaeopt wants to merge 1 commit intomasterfrom
ai/jaeopt/FSSDK-12262-cmab-ups
Closed

[AI-FSSDK] (DO NOT REVIEW) [FSSDK-12262] Exclude CMAB from UserProfileService#10
jaeopt wants to merge 1 commit intomasterfrom
ai/jaeopt/FSSDK-12262-cmab-ups

Conversation

@jaeopt
Copy link
Owner

@jaeopt jaeopt commented Feb 5, 2026

Summary

Excludes CMAB (Contextual Multi-Armed Bandit) experiments from User Profile Service (UPS) logic to ensure dynamic decision-making.

Changes

  • Updated decision_service.py to skip UPS lookup for CMAB experiments (line 461)
  • Updated decision_service.py to skip UPS save for CMAB experiments (line 534)
  • Added comprehensive unit tests in test_cmab_ups_exclusion.py

Rationale

CMAB experiments should not use UPS for sticky bucketing because:

  • UPS maintains decisions across experiment lifetime without considering TTL
  • UPS doesn't account for changing user attributes
  • This contradicts CMAB's dynamic decision-making nature

Testing

  • ✅ All new tests pass (4/4)
  • ✅ All existing UPS/CMAB tests pass (7/7)
  • ✅ Regular experiments continue to use UPS normally

Related


🤖 Generated with Claude Code AI-FSSDK automation

- Add 'not experiment.cmab' condition to skip UPS lookup for CMAB experiments
- Add 'not experiment.cmab' condition to skip UPS updates for CMAB experiments
- CMAB requires dynamic decisions based on current user attributes and TTL
- UPS maintains decisions across experiment lifetime without considering these factors
- Add comprehensive unit tests to verify CMAB UPS exclusion
- Ensure regular experiments continue to use UPS normally

Related: https://optimizely-ext.atlassian.net/browse/FSSDK-12262
@jaeopt jaeopt closed this Feb 5, 2026
@jaeopt jaeopt deleted the ai/jaeopt/FSSDK-12262-cmab-ups branch February 5, 2026 00:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant