Skip to content

Commit dd1e69c

Browse files
Mat001claude
andauthored
[FSSDK-12877] Prepare Agent release v4.5.0 (#466)
Add CHANGELOG entry for 4.5.0: local (per-rule) holdouts and Feature Rollout support via the go-sdk v2.3.0 -> v2.5.0 upgrade, plus the maintenance/dependency changes since 4.4.0. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent bc5fb95 commit dd1e69c

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,37 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
66

77
## [Unreleased]
88

9+
## [4.5.0] - July 14, 2026
10+
11+
This release adds support for **local (per-rule) holdouts** and **Feature Rollouts**, delivered by upgrading the embedded go-sdk from v2.3.0 to v2.5.0. It builds on the global holdouts support introduced in 4.4.0.
12+
13+
### New Features
14+
15+
* **Local Holdouts Support** ([#464](https://github.com/optimizely/agent/pull/464)): Agent now supports local (per-rule) holdouts in addition to global holdouts, via go-sdk v2.5.0. Local holdouts target specific rules and are evaluated per-rule, after forced decisions and before audience/traffic checks. Held-out decisions return `enabled: false`, `variationKey: "ho_off_key"`, and `ruleKey` set to the holdout identifier, with impression `rule_type: "holdout"`. As with global holdouts, all decision logic is handled by go-sdk — no Agent code changes are required beyond updating the `ProjectConfig` test mock.
16+
* **Feature Rollout Support** ([#463](https://github.com/optimizely/agent/pull/463)): Via go-sdk v2.4.0, Agent now supports Feature Rollouts — a rule type combining Targeted Delivery with A/B test measurement capabilities.
17+
18+
### Behavior Changes
19+
20+
These changes come from the go-sdk v2.4.0 → v2.5.0 upgrade:
21+
22+
* **Decision event ID normalization**: decision event `campaign_id` and `entity_id` fall back to `experiment_id` when empty, and `variation_id` serializes as `null` when non-numeric, for cross-SDK consistency.
23+
* **ODP identify guard**: ODP identify events carrying only a single identifier are now blocked.
24+
* **Removed legacy flag-level holdout fields** from datafile parsing.
25+
26+
### Maintenance
27+
28+
* Upgrade go-sdk v2.3.0 → v2.5.0 ([#459](https://github.com/optimizely/agent/pull/459), [#463](https://github.com/optimizely/agent/pull/463), [#464](https://github.com/optimizely/agent/pull/464))
29+
* Add Dependabot to auto-update the go-sdk dependency ([#458](https://github.com/optimizely/agent/pull/458))
30+
* Remove Coveralls from CI checks ([#462](https://github.com/optimizely/agent/pull/462))
31+
* Add Agent developer documentation ([#461](https://github.com/optimizely/agent/pull/461))
32+
* Fix Arnica security vulnerabilities ([#460](https://github.com/optimizely/agent/pull/460))
33+
* Synchronize linters between go-sdk and agent ([#457](https://github.com/optimizely/agent/pull/457))
34+
* Fix Dependabot alerts ([#455](https://github.com/optimizely/agent/pull/455), [#456](https://github.com/optimizely/agent/pull/456))
35+
36+
### Dependencies
37+
38+
* Upgraded `github.com/optimizely/go-sdk/v2` from v2.3.0 to **v2.5.0**
39+
940
## [4.4.0] - December 18, 2025
1041

1142
This release adds support for Holdouts, allowing you to measure the incremental impact of feature flags and experiments by holding back a percentage of users from seeing any changes.

0 commit comments

Comments
 (0)