Skip to content

Conversation

@joker23
Copy link
Contributor

@joker23 joker23 commented Feb 2, 2026

Requirements

  • I have added test coverage for new or changed functionality
  • I have followed the repository's pull request submission guidelines
  • I have validated my changes against all supported platform versions

Related issues

SDK-1802

Describe the solution you've provided

  • FDv1 fallback will now always be created
  • fixed contract tests for node server sdk so it will work with latest in feat/fdv2
  • enabled the basic initializer contract test for node server sdk

Note

Medium Risk
Touches data-source initialization/fallback logic and contract-test configuration, which can affect how SDKs fetch flags in FDv2 and during fallback. Changes are localized but impact runtime connectivity behavior and test coverage expectations.

Overview
Fixes an FDv2 configuration gap so the FDv1 fallback polling synchronizer is always added to the composite data source, even when using a custom dataSystem configuration.

Updates the Node contract-test service config builder to accept the newer FDv2 shape (lists of initializers/synchronizers with per-item streaming/polling configs) and emits the corresponding DataSourceOptions (PollingDataSourceConfiguration/StreamingDataSourceConfiguration). CI now runs the test harness directly from feat/fdv2, and one previously-suppressed initializer test is re-enabled by removing it from testharness-suppressions-fdv2.txt.

Written by Cursor Bugbot for commit e7a2241. This will update automatically on new commits. Configure here.

@joker23 joker23 requested a review from a team as a code owner February 2, 2026 21:56
@github-actions
Copy link
Contributor

github-actions bot commented Feb 2, 2026

@launchdarkly/js-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 25394 bytes
Compressed size limit: 26000
Uncompressed size: 124693 bytes

@github-actions
Copy link
Contributor

github-actions bot commented Feb 2, 2026

@launchdarkly/browser size report
This is the brotli compressed size of the ESM build.
Compressed size: 171171 bytes
Compressed size limit: 200000
Uncompressed size: 798176 bytes

@github-actions
Copy link
Contributor

github-actions bot commented Feb 2, 2026

@launchdarkly/js-client-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 18984 bytes
Compressed size limit: 20000
Uncompressed size: 98086 bytes

@github-actions
Copy link
Contributor

github-actions bot commented Feb 2, 2026

@launchdarkly/js-client-sdk size report
This is the brotli compressed size of the ESM build.
Compressed size: 23331 bytes
Compressed size limit: 25000
Uncompressed size: 81071 bytes

cf.stream = false;
cf.baseUri = dataSourcePollingOptions.baseUri;
cf.pollInterval = maybeTime(dataSourcePollingOptions.pollIntervalMs);
const dataSourceOptions: DataSourceOptions = {
Copy link
Contributor Author

@joker23 joker23 Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

converting the datasystem to only use custom which allows us to ingest a more free form array of initializers/synchronizers

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we not have a fallback synchronizer to configure somewhere?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, later.

);
}

// This is short term handling and will be removed once FDv2 adoption is sufficient.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is moving it out of the top conditional:

if (isCustomOptions(dataSystem.dataSource)) {...} else {...}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, do we not allow you to configure it? I guess we may want to see if we standardize. We allow configuration of the fallback in java/dotnet. In case it needs different endpoints, or need to be streaming or something.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created a task to track this. In general we don't have a way to customize uris for different synchronizer/initializer/fallback

cp ./contract-tests/testharness-suppressions-fdv2.txt /tmp/sdk-test-harness/testharness-suppressions-fdv2.txt
cd /tmp/sdk-test-harness
git checkout de833af990da23a89b66c5366809b5be8c27e3f8
git checkout feat/fdv2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could use the downloader script to download the v3 version instead. But I am fine with this as well.

polling/requests/URL path is computed correctly/environment_filter_key="encoding_not_necessary"/base URI has a trailing slash/GET

streaming/fdv2/reconnection state management/initializes from polling initializer
streaming/fdv2/reconnection state management/initializes from 2 polling initializers
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove any of these other suppressions with the updated config?

@joker23 joker23 merged commit 5111112 into main Feb 3, 2026
37 checks passed
@joker23 joker23 deleted the skz/node-server-contract-test branch February 3, 2026 19:33
@github-actions github-actions bot mentioned this pull request Feb 3, 2026
joker23 pushed a commit that referenced this pull request Feb 4, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>akamai-edgeworker-sdk-common: 2.0.13</summary>

##
[2.0.13](akamai-edgeworker-sdk-common-v2.0.12...akamai-edgeworker-sdk-common-v2.0.13)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from ^2.17.1 to ^2.17.2
</details>

<details><summary>akamai-server-base-sdk: 3.0.14</summary>

##
[3.0.14](akamai-server-base-sdk-v3.0.13...akamai-server-base-sdk-v3.0.14)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/akamai-edgeworker-sdk-common bumped from ^2.0.12 to
^2.0.13
    * @launchdarkly/js-server-sdk-common bumped from ^2.17.1 to ^2.17.2
</details>

<details><summary>akamai-server-edgekv-sdk: 1.4.16</summary>

##
[1.4.16](akamai-server-edgekv-sdk-v1.4.15...akamai-server-edgekv-sdk-v1.4.16)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/akamai-edgeworker-sdk-common bumped from ^2.0.12 to
^2.0.13
    * @launchdarkly/js-server-sdk-common bumped from ^2.17.1 to ^2.17.2
</details>

<details><summary>cloudflare-server-sdk: 2.7.13</summary>

##
[2.7.13](cloudflare-server-sdk-v2.7.12...cloudflare-server-sdk-v2.7.13)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/js-server-sdk-common-edge bumped from 2.6.11 to 2.6.12
</details>

<details><summary>fastly-server-sdk: 0.2.5</summary>

##
[0.2.5](fastly-server-sdk-v0.2.4...fastly-server-sdk-v0.2.5)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.17.1 to 2.17.2
</details>

<details><summary>jest: 1.0.0</summary>

##
[1.0.0](jest-v0.2.2...jest-v1.0.0)
(2026-02-03)


### ⚠ BREAKING CHANGES

* updating to major version 1
([#1089](#1089))

### Bug Fixes

* updating to major version 1
([#1089](#1089))
([4c194d8](4c194d8))
</details>

<details><summary>js-server-sdk-common: 2.17.2</summary>

##
[2.17.2](js-server-sdk-common-v2.17.1...js-server-sdk-common-v2.17.2)
(2026-02-03)


### Bug Fixes

* **node-server-sdk:** No FDv1 fallback when using custom datasystem
([#1088](#1088))
([5111112](5111112))
</details>

<details><summary>js-server-sdk-common-edge: 2.6.12</summary>

##
[2.6.12](js-server-sdk-common-edge-v2.6.11...js-server-sdk-common-edge-v2.6.12)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.17.1 to 2.17.2
</details>

<details><summary>node-server-sdk: 9.10.6</summary>

##
[9.10.6](node-server-sdk-v9.10.5...node-server-sdk-v9.10.6)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.17.1 to 2.17.2
</details>

<details><summary>node-server-sdk-dynamodb: 6.2.18</summary>

##
[6.2.18](node-server-sdk-dynamodb-v6.2.17...node-server-sdk-dynamodb-v6.2.18)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.10.5 to 9.10.6
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.10.6
</details>

<details><summary>node-server-sdk-otel: 1.3.6</summary>

##
[1.3.6](node-server-sdk-otel-v1.3.5...node-server-sdk-otel-v1.3.6)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.10.5 to 9.10.6
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.10.6
</details>

<details><summary>node-server-sdk-redis: 4.2.18</summary>

##
[4.2.18](node-server-sdk-redis-v4.2.17...node-server-sdk-redis-v4.2.18)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.10.5 to 9.10.6
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.4.3 to >=9.10.6
</details>

<details><summary>server-sdk-ai: 0.16.1</summary>

##
[0.16.1](server-sdk-ai-v0.16.0...server-sdk-ai-v0.16.1)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.17.1 to 2.17.2
  * peerDependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.x to 2.17.2
</details>

<details><summary>server-sdk-ai-langchain: 0.4.4</summary>

##
[0.4.4](server-sdk-ai-langchain-v0.4.3...server-sdk-ai-langchain-v0.4.4)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/server-sdk-ai bumped from ^0.16.0 to ^0.16.1
  * peerDependencies
    * @launchdarkly/server-sdk-ai bumped from ^0.15.0 to ^0.16.1
</details>

<details><summary>server-sdk-ai-openai: 0.4.4</summary>

##
[0.4.4](server-sdk-ai-openai-v0.4.3...server-sdk-ai-openai-v0.4.4)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.17.1 to 2.17.2
    * @launchdarkly/server-sdk-ai bumped from ^0.16.0 to ^0.16.1
  * peerDependencies
    * @launchdarkly/server-sdk-ai bumped from ^0.15.0 to ^0.16.1
</details>

<details><summary>server-sdk-ai-vercel: 0.4.4</summary>

##
[0.4.4](server-sdk-ai-vercel-v0.4.3...server-sdk-ai-vercel-v0.4.4)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/server-sdk-ai bumped from ^0.16.0 to ^0.16.1
  * peerDependencies
    * @launchdarkly/server-sdk-ai bumped from ^0.15.0 to ^0.16.1
</details>

<details><summary>shopify-oxygen-sdk: 0.1.3</summary>

##
[0.1.3](shopify-oxygen-sdk-v0.1.2...shopify-oxygen-sdk-v0.1.3)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.17.1 to 2.17.2
</details>

<details><summary>vercel-server-sdk: 1.3.38</summary>

##
[1.3.38](vercel-server-sdk-v1.3.37...vercel-server-sdk-v1.3.38)
(2026-02-03)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/js-server-sdk-common-edge bumped from 2.6.11 to 2.6.12
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Mostly automated version/changelog updates, but it ships a bug-fix
update to shared server SDK common code and includes a major-version
bump of `@launchdarkly/jest`, which could affect downstream consumers.
> 
> **Overview**
> This PR is a release-please publish/update across the monorepo,
updating `.release-please-manifest.json`, package versions, and
changelogs for AI providers, edge/server SDKs, feature-store
integrations, and tooling.
> 
> Most changes are dependency/version propagation (including updating
embedded `sdkVersion` constants in platform info) to pick up
`@launchdarkly/js-server-sdk-common` `2.17.2` (noted bug fix: no FDv1
fallback with a custom datasystem) and `js-server-sdk-common-edge`
`2.6.12`, plus bumps to `@launchdarkly/server-sdk-ai` `0.16.1` and
downstream AI provider packages.
> 
> Notable: `@launchdarkly/jest` is released as **v1.0.0** (*breaking
change via major version bump*), with no code changes shown here beyond
the version/changelog updates.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a09fa84. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

2 participants