Skip to content

fix: migrate anonymous context namespace to general namespace#1312

Merged
joker23 merged 1 commit into
mainfrom
skz/sdk-1683/migrate-deprecated-method
Apr 23, 2026
Merged

fix: migrate anonymous context namespace to general namespace#1312
joker23 merged 1 commit into
mainfrom
skz/sdk-1683/migrate-deprecated-method

Conversation

@joker23

@joker23 joker23 commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

This PR will add logic to start migrating the old namespaces generated by namespaceForAnonymousGeneratedContextKey to the new general namespaces that are generated by namespaceForGeneratedContextKey.

We've deprecated the specific anonymous namespace for context keys for a while now, but never implemented a way to transition users to the new namespaces.


Note

Medium Risk
Changes how anonymous context keys are read/written in persistent storage by introducing an automatic migration path, which could affect identity continuity if storage behaviors differ across platforms. The migration includes a verification step before clearing legacy data, reducing but not eliminating risk of edge-case storage failures.

Overview
Anonymous contexts now look up generated keys in the general ContextKeys namespace, with an automatic fallback migration from the legacy AnonymousKeys namespace.

getOrGenerateKey accepts an optional legacy storage key: if the new key is missing but a legacy key exists, it copies the value, verifies the write, and only then clears the legacy entry; otherwise it generates a new UUID as before. Tests were added/updated to cover migration, no-op/failed writes, and the “new key already exists” path.

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

@joker23

joker23 commented Apr 22, 2026

Copy link
Copy Markdown
Contributor Author

@cursor review

@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: 25623 bytes
Compressed size limit: 29000
Uncompressed size: 125843 bytes

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/browser size report
This is the brotli compressed size of the ESM build.
Compressed size: 179331 bytes
Compressed size limit: 200000
Uncompressed size: 830513 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: 31753 bytes
Compressed size limit: 34000
Uncompressed size: 113324 bytes

@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: 37685 bytes
Compressed size limit: 38000
Uncompressed size: 207690 bytes

@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 35de7b0. Configure here.

@joker23 joker23 marked this pull request as ready for review April 22, 2026 21:38
@joker23 joker23 requested a review from a team as a code owner April 22, 2026 21:38

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional findings.

Open in Devin Review

@joker23 joker23 merged commit afbed0f into main Apr 23, 2026
48 checks passed
@joker23 joker23 deleted the skz/sdk-1683/migrate-deprecated-method branch April 23, 2026 14:40
@github-actions github-actions Bot mentioned this pull request Apr 23, 2026
joker23 pushed a commit that referenced this pull request Apr 23, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>browser: 0.1.17</summary>

##
[0.1.17](browser-v0.1.16...browser-v0.1.17)
(2026-04-23)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk bumped from 4.6.1 to 4.6.2
</details>

<details><summary>browser-telemetry: 1.0.33</summary>

##
[1.0.33](browser-telemetry-v1.0.32...browser-telemetry-v1.0.33)
(2026-04-23)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/js-client-sdk bumped from 4.6.1 to 4.6.2
</details>

<details><summary>jest: 1.0.11</summary>

##
[1.0.11](jest-v1.0.10...jest-v1.0.11)
(2026-04-23)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/react-native-client-sdk bumped from ~10.16.0 to ~10.17.0
</details>

<details><summary>js-client-sdk: 4.6.2</summary>

##
[4.6.2](js-client-sdk-v4.6.1...js-client-sdk-v4.6.2)
(2026-04-23)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.25.0 to 1.26.0
</details>

<details><summary>js-client-sdk-common: 1.26.0</summary>

##
[1.26.0](js-client-sdk-common-v1.25.0...js-client-sdk-common-v1.26.0)
(2026-04-23)


### Features

* support waitForNetworkResults in FDv2 data manager
([#1280](#1280))
([df7fa9e](df7fa9e))


### Bug Fixes

* FDv2 Only -- Adjust the behavior of initialization when only cache
initializers are available.
([#1304](#1304))
([9a2b25a](9a2b25a))
* migrate anonymous context namespace to general namespace
([#1312](#1312))
([afbed0f](afbed0f))
</details>

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

##
[6.2.24](node-server-sdk-dynamodb-v6.2.23...node-server-sdk-dynamodb-v6.2.24)
(2026-04-23)


### Bug Fixes

* **node-server-sdk-dynamodb:** remove unnecessary ioredis package
([#1306](#1306))
([5d6c86e](5d6c86e))
</details>

<details><summary>react-native-client-sdk: 10.17.0</summary>

##
[10.17.0](react-native-client-sdk-v10.16.0...react-native-client-sdk-v10.17.0)
(2026-04-23)


### Features

* **react-native:** no storage fallback to in-memory map
([#1281](#1281))
([cc86eab](cc86eab))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.25.0 to 1.26.0
</details>

<details><summary>react-sdk: 0.2.3</summary>

##
[0.2.3](react-sdk-v0.2.2...react-sdk-v0.2.3)
(2026-04-23)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk bumped from ^4.6.1 to ^4.6.2
</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]
> **Low Risk**
> Primarily a Release Please version bump across multiple packages with
dependency updates; only minimal runtime impact beyond consuming the new
`@launchdarkly/js-client-sdk-common` behavior changes pulled in by the
bumps.
> 
> **Overview**
> **Release automation update:** bumps workspace package versions and
changelogs for a coordinated release.
> 
> Updates `@launchdarkly/js-client-sdk` to `4.6.2` (and consumers
`@launchdarkly/browser`, `@launchdarkly/react-sdk`, and examples) plus
`@launchdarkly/js-client-sdk-common` to `1.26.0`. Also bumps
`@launchdarkly/react-native-client-sdk` to `10.17.0` (and
`@launchdarkly/jest` dependency), `@launchdarkly/browser-telemetry` to
`1.0.33`, and `@launchdarkly/node-server-sdk-dynamodb` to `6.2.24`,
along with manifest updates and wrapper/version constants.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
9c1a764. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/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