Skip to content

chore: Update sdk_metadata features#509

Merged
aaron-zeisler merged 3 commits intomainfrom
devin/1773423182-update-sdk-metadata-features
Mar 17, 2026
Merged

chore: Update sdk_metadata features#509
aaron-zeisler merged 3 commits intomainfrom
devin/1773423182-update-sdk-metadata-features

Conversation

@devin-ai-integration
Copy link
Copy Markdown
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

Note

Low Risk
Low risk metadata-only change; no runtime code paths are modified. Risk is limited to downstream tooling that consumes .sdk_metadata.json if feature keys/versions are incorrect.

Overview
Adds a features section to .sdk_metadata.json for both the C++ Client SDK and C++ Server SDK, listing supported feature keys with their introduced version.

This expands the SDK metadata beyond userAgents to include feature/version tracking (e.g., hooks, fileDataSource, offlineMode, variationDetail) for use by tooling/docs that consume this file.

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

Co-Authored-By: Aaron Zeisler <azeisler@launchdarkly.com>
@devin-ai-integration
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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.

@aaron-zeisler aaron-zeisler marked this pull request as ready for review March 16, 2026 18:46
@aaron-zeisler aaron-zeisler requested a review from a team as a code owner March 16, 2026 18:46
@aaron-zeisler aaron-zeisler merged commit 5292cb7 into main Mar 17, 2026
52 checks passed
@aaron-zeisler aaron-zeisler deleted the devin/1773423182-update-sdk-metadata-features branch March 17, 2026 15:29
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.

2 participants