From 5c41b97f63f47873ef46faa429d6fde13e7a8a34 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 17:28:41 +0000 Subject: [PATCH 1/2] Initial plan From 97d653805b259a30d7d2541703f0f4a5c5f43fce Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 17:42:36 +0000 Subject: [PATCH 2/2] Fix missing CMAB bucketing reasons in decision process Added merge of bucketing reasons for CMAB experiments to ensure traffic allocation information is included in decision responses. Co-authored-by: Mat001 <1386553+Mat001@users.noreply.github.com> --- .../main/java/com/optimizely/ab/bucketing/DecisionService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core-api/src/main/java/com/optimizely/ab/bucketing/DecisionService.java b/core-api/src/main/java/com/optimizely/ab/bucketing/DecisionService.java index 572d28981..58ca67d16 100644 --- a/core-api/src/main/java/com/optimizely/ab/bucketing/DecisionService.java +++ b/core-api/src/main/java/com/optimizely/ab/bucketing/DecisionService.java @@ -173,7 +173,8 @@ public DecisionResponse getVariation(@Nonnull Experiment experiment, decisionVariation = bucketer.bucket(experiment, bucketingId, projectConfig, decisionPath); if (decisionPath == DecisionPath.WITH_CMAB && isCmabExperiment(experiment) && decisionVariation.getResult() != null) { // group-allocation and traffic-allocation checking passed for cmab - // we need server decision overruling local bucketing for cmab + // we need server decision overruling local bucketing for cmab + reasons.merge(decisionVariation.getReasons()); DecisionResponse cmabDecision = getDecisionForCmabExperiment(projectConfig, experiment, user, bucketingId, options); reasons.merge(cmabDecision.getReasons());