From ff268caf81db227d01cde1178bd13e04c076a590 Mon Sep 17 00:00:00 2001 From: Jae Kim Date: Fri, 30 Oct 2026 11:30:01 -0700 Subject: [PATCH 1/2] [FSSDK-13375] update CHANGELOG for javascript v6.7.0 Co-Authored-By: Claude Opus 5.5 (1M context) --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a8d206f6..fe83612f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [6.7.0] - October 30, 2026 + +### Changed + +**Local Holdouts: rule evaluation continues after a holdout hit**: +When a user matches a local holdout on a rule, the SDK now excludes the user from that rule only +and continues evaluating the remaining rules, instead of returning the holdout variation and skipping +the rest of the flag. Each local holdout hit sends its own holdout impression event (using the +existing event format), regardless of `sendFlagDecisions`. Global holdouts are unchanged. + +- Continue rule evaluation after local holdout hit ([#1181](https://github.com/optimizely/javascript-sdk/pull/1181)) +- Skip the default browser event store when localStorage is unavailable ([#1184](https://github.com/optimizely/javascript-sdk/pull/1184)) +- Add React Native Metro tests for optional dependencies ([#1180](https://github.com/optimizely/javascript-sdk/pull/1180)) +- Make React Native polyfills optional and isolate optional requires ([#1179](https://github.com/optimizely/javascript-sdk/pull/1179)) +- Support AsyncStorage v3 in React Native ([#1178](https://github.com/optimizely/javascript-sdk/pull/1178)) + ## [6.6.1] - September 18, 2026 ### Bug Fixes From 0319fc7c10ea08e07b6e06c93a68b10b4d9e3843 Mon Sep 17 00:00:00 2001 From: Jae Kim Date: Fri, 30 Oct 2026 11:30:17 -0700 Subject: [PATCH 2/2] [FSSDK-13375] bump version to 6.7.0 Co-Authored-By: Claude Opus 5.5 (1M context) --- lib/utils/enums/index.ts | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/utils/enums/index.ts b/lib/utils/enums/index.ts index 202c74b4a..4beef2f60 100644 --- a/lib/utils/enums/index.ts +++ b/lib/utils/enums/index.ts @@ -44,7 +44,7 @@ export const CONTROL_ATTRIBUTES = { export const JAVASCRIPT_CLIENT_ENGINE = 'javascript-sdk'; export const NODE_CLIENT_ENGINE = 'node-sdk'; export const REACT_NATIVE_JS_CLIENT_ENGINE = 'react-native-js-sdk'; -export const CLIENT_VERSION = '6.6.1'; +export const CLIENT_VERSION = '6.7.0'; /* * Represents the source of a decision for feature management. When a feature diff --git a/package-lock.json b/package-lock.json index df7474636..b6dbe29ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@optimizely/optimizely-sdk", - "version": "6.6.1", + "version": "6.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@optimizely/optimizely-sdk", - "version": "6.6.1", + "version": "6.7.0", "license": "Apache-2.0", "dependencies": { "decompress-response": "^7.0.0", diff --git a/package.json b/package.json index a35802d9d..8bdece775 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@optimizely/optimizely-sdk", - "version": "6.6.1", + "version": "6.7.0", "description": "JavaScript SDK for Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts", "main": "./dist/index.node.min.js", "browser": "./dist/index.browser.es.min.js",