You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Prepare FDv2 EAP for browser and React Native SDKs (#1419)
## Summary
Prepares the FDv2 data system for Early Access on the browser and React
Native client SDKs, bringing them in line with the server EAP.
- **Make FDv2 configurable.** Removes the `@internal` annotation from
the user-facing FDv2 config surface -- the `dataSystem` option
(sdk-client, browser, React Native), `setConnectionMode`, and the FDv2
`getConnectionMode` overload -- so applications can opt in. FDv2
implementation internals (initializers, synchronizers, bases, etc.) stay
`@internal`, matching the server SDK.
- **EAP wording.** Replaces the "experimental / UNSUPPORTED" notices on
those members with the standard EAP wording already used by the shared
FDv2 interfaces.
- **Examples.** Removes the now-unnecessary `@ts-ignore` comments from
the browser and React Native FDv2 example apps (the fields they
suppressed are now public).
- **CI contract tests.** Runs the FDv2 contract tests alongside the
existing FDv1 runs for both SDKs, using a floating `v3` test-harness
version:
- Browser: a second `contract-tests` run (`version: v3`) reusing the
existing `suppressions_datamode_changes.txt` baseline; the FDv1 run no
longer stops the service so both runs share one instance.
- React Native: downloads both the v2 and latest v3 harness binaries and
runs both passes; adds `dataSystem` translation to the React Native
contract-test entity (mirroring the browser entity, which already had
it) and a placeholder `suppressions-fdv2.txt`.
Follows the server-node FDv2 CI pattern and the android-client-sdk
client-side FDv2 work (PR #369).
The `v3` harness resolves to the latest `v3.x` release at run time
(currently `v3.1.0-alpha.6`, the first with client-side FDv2 support).
The React Native FDv2 suppression list starts empty and may need tuning
once CI reports which cases to skip.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Exposes unstable FDv2 configuration on public TypeScript surfaces and
adds CI that depends on floating v3 harness releases; runtime
flag-delivery behavior is unchanged unless customers opt into
`dataSystem`.
>
> **Overview**
> Prepares **FDv2 (data-saving mode)** for Early Access on the browser
and React Native client SDKs by making the opt-in API public and
aligning docs with the shared EAP wording.
>
> **Public API & docs:** `@internal` / “experimental unsupported”
notices are removed from user-facing `dataSystem`, `setConnectionMode`,
and FDv2 `getConnectionMode` overloads in shared `LDOptions`, browser,
and React Native types. Those members now document **early access** (no
semver guarantees) and link to the data-saving-mode docs. FDv2 example
apps drop `@ts-ignore` comments that were only hiding those options.
>
> **CI contract tests:** Browser workflow runs **FDv1** then **FDv2**
harness passes on one test service (`stop_service: false` on v1; v3
harness with `suppressions_datamode_changes.txt`). React Native CI
downloads **v2 and latest v3** harness binaries, runs both from
`run-ci-contract-tests.sh`, and adds **`dataSystem` harness → SDK config
translation** in the RN contract-test entity (same pattern as browser).
An empty `suppressions-fdv2.txt` placeholder is included for future
skips.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
fcd9a0c. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
0 commit comments