Skip to content

chore: Update sdk_metadata features#509

Draft
devin-ai-integration[bot] wants to merge 3 commits intomainfrom
devin/1773423182-update-sdk-metadata-features
Draft

chore: Update sdk_metadata features#509
devin-ai-integration[bot] wants to merge 3 commits intomainfrom
devin/1773423182-update-sdk-metadata-features

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Mar 13, 2026

Summary

Adds features metadata to .sdk_metadata.json for both the C++ Client SDK and C++ Server SDK. Feature names use canonical camelCase keys from sdk-meta/products/feature_info.json, and introduction versions are sourced from the SDK features documentation table and verified against the repo's CHANGELOGs where applicable.

For features that predate the cpp-sdks monorepo (3.x), introduction versions were cross-referenced against the legacy c-client-sdk and c-server-sdk CHANGELOGs.

C++ Client SDK (12 features): allFlags, appMetadata, bigSegments, contexts, experimentation, flagChanges, inlineContextCustomEvents, offlineMode, privateAttrs, relayProxyProxy, track, variationDetail

C++ Server SDK (16 features): allFlags, appMetadata, contexts, experimentation, fileDataSource, hooks, inlineContextCustomEvents, offlineMode, privateAttrs, relayProxyDaemon, relayProxyProxy, storingData, storingDataRedis, testDataSource, track, variationDetail

Updates since last revision

Added features (verified against repo CHANGELOGs):

  • hooks added to server SDK at 3.10 — confirmed via libs/server-sdk/CHANGELOG.md entry "Add support for hooks" under ## [3.10.0]
  • offlineMode added to client SDK at 1.0 — see version correction below

Version corrections based on legacy c-client-sdk analysis (per reviewer feedback to check pre-3.x repos):

  • offlineMode (client SDK): 3.01.0 — offline mode existed in the legacy c-client-sdk from its initial release. The cpp-sdks monorepo re-added it in prerelease 0.2.0, but since the feature was available in the SDK lineage since 1.0, that version is used.
  • variationDetail (client SDK): 1.01.1 — the legacy c-client-sdk explicitly added evaluation reasons / VariationDetail in version 1.1.0.

Legacy repo analysis notes:

  • All server SDK versions checked out correctly against c-server-sdk (fileDataSource, testDataSource at 2.6; storingData/storingDataRedis/relayProxyDaemon at 1.2; experimentation at 2.4).
  • multiEnv was present in c-client-sdk 1.2.0 but does not appear to be supported in the current cpp-sdks client SDK (no matching code found), so it was not added.

Review & Testing Checklist for Human

  • Verify variationDetail: "1.1" for client SDK vs "1.0" for server SDK — the asymmetry is because c-client-sdk explicitly added evaluation reasons in 1.1.0, while the c-server-sdk appears to have had it from 1.0.0. Confirm this is correct, or whether both should be the same.
  • Verify offlineMode: "1.0" for client SDK — changed from "3.0" based on legacy c-client-sdk analysis. Confirm using the legacy version (rather than the cpp-sdks monorepo version) is the desired convention.
  • Validate bigSegments: "1.0" for client SDK — the docs say "All" (meaning all versions). "1.0" was used as the first stable release version. The earliest git tag is launchdarkly-cpp-client-v0.0.0, so confirm "1.0" is the correct first stable version.
  • Confirm storingData and storingDataRedis both at "1.2" — the docs say "1.2 (Redis)" for C++ server storing data. Verify Redis was the only store supported and that "1.2" is correct for both.
  • Check for any remaining missing features — features like pluginSupport, omitAnonContexts, and pollingResponseCompression are not included. Verify none of these have been added in recent releases.
  • Validate JSON is well-formed and features are in alphabetical order.

Notes

  • This is part of a batch update across 9 SDK repositories.
  • Requested by: Aaron Zeisler
  • Link to Devin session

Co-Authored-By: Aaron Zeisler <azeisler@launchdarkly.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Co-Authored-By: Aaron Zeisler <azeisler@launchdarkly.com>
@kinyoklion
Copy link
Member

For support before client-side 3.x check this repository: https://github.com/launchdarkly/c-client-sdk
For server-side before 3.x check this repository: https://github.com/launchdarkly/c-server-sdk

Use its git commit history and changelogs for those repositories.

- offlineMode: 3.0 -> 1.0 (existed in legacy c-client-sdk from initial release)
- variationDetail: 1.0 -> 1.1 (added in c-client-sdk 1.1.0)

Co-Authored-By: Aaron Zeisler <azeisler@launchdarkly.com>
@devin-ai-integration
Copy link
Contributor Author

@kinyoklion Thanks for the pointer! I cloned both legacy repos and cross-referenced their CHANGELOGs against the features in this PR. Here's what I found and changed:

Corrections made (client SDK):

  • offlineMode: 3.01.0 — offline mode existed in the legacy c-client-sdk from its initial release
  • variationDetail: 1.01.1 — c-client-sdk explicitly added evaluation reasons / VariationDetail in version 1.1.0

Server SDK — all versions verified correct:

  • fileDataSource at 2.6 (c-server-sdk 2.6.0: "Added integrations/file_data.h")
  • testDataSource at 2.6 (c-server-sdk 2.6.0: "Added integrations/test_data.h")
  • storingData / storingDataRedis / relayProxyDaemon at 1.2 (c-server-sdk 1.2.0)
  • experimentation at 2.4 (c-server-sdk 2.4.0)

Other notes:

  • multiEnv was present in c-client-sdk 1.2.0 (LDConfigAddSecondaryMobileKey) but I couldn't find any matching code in the current cpp-sdks client SDK, so it was not added.
  • The asymmetry between variationDetail: "1.1" (client) vs "1.0" (server) is because c-client-sdk added it in 1.1.0 while c-server-sdk appears to have had it from 1.0.0. Please verify this is correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant