Skip to content

feat: Add FDv2 data system support to NodeClient#1775

Open
joker23 wants to merge 4 commits into
mainfrom
skz/sdk-2195/node-client-sdk-next-fdv2-support
Open

feat: Add FDv2 data system support to NodeClient#1775
joker23 wants to merge 4 commits into
mainfrom
skz/sdk-2195/node-client-sdk-next-fdv2-support

Conversation

@joker23

@joker23 joker23 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

SDK-2468


Note

Medium Risk
Touches core flag data path and connection/offline/event-sending behavior when FDv2 is enabled; FDv1 path is largely preserved but shared connection-mode APIs changed implementation.

Overview
Adds FDv2 to the Node client when dataSystem is set: the data manager factory wires createFDv2DataManagerBase (desktop defaults/transition table) instead of NodeDataManager, with buildQueryParams for client-side ID (auth / h) and empty params plus hash warnings in mobile key mode.

Connection mode is tracked on NodeClient for both FDv1 and FDv2. FDv2 setConnectionMode validates modes, no-ops after close or when unchanged, serializes concurrent transitions (flush before offline, then event sending + data manager), and keeps the queue usable after a failed flush. getConnectionMode / isOffline read the cached mode rather than the FDv1 data manager.

CI runs FDv2 contract tests (harness v3.1.1-alpha.6) against the same long-lived test service (stop_service: 'false' on FDv1), with an FDv2 suppression list including one new skipped wrapper test. Unit coverage lives in NodeClientFDv2.test.ts.

Reviewed by Cursor Bugbot for commit f4a4c39. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/js-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 26365 bytes
Compressed size limit: 29000
Uncompressed size: 129044 bytes

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/js-client-sdk size report
This is the brotli compressed size of the ESM build.
Compressed size: 31978 bytes
Compressed size limit: 34000
Uncompressed size: 114243 bytes

@github-actions

Copy link
Copy Markdown
Contributor

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

@joker23

joker23 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

@cursor review

cursor[bot]

This comment was marked as resolved.

@joker23

joker23 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 14bd7e4. Configure here.

@joker23 joker23 force-pushed the skz/sdk-2195/node-client-sdk-next-fdv2-support branch from 2c4d81c to 65b044a Compare June 26, 2026 15:12
joker23 added 3 commits June 26, 2026 13:51
fix: Restore FDv2 connection mode when an offline transition fails

fix: Await in-flight FDv2 transition on duplicate-mode setConnectionMode
@joker23 joker23 force-pushed the skz/sdk-2195/node-client-sdk-next-fdv2-support branch from 65b044a to c4aa363 Compare June 26, 2026 17:51
@joker23 joker23 marked this pull request as ready for review June 26, 2026 17:57
@joker23 joker23 requested a review from a team as a code owner June 26, 2026 17:57
devin-ai-integration[bot]

This comment was marked as resolved.

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