Merged
Conversation
Co-Authored-By: unknown <>
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: unknown <>
Co-Authored-By: unknown <>
…te Evaluate to track usage only once Co-Authored-By: unknown <>
…ion auto-update Co-Authored-By: unknown <>
kinyoklion
reviewed
Feb 25, 2026
Member
There was a problem hiding this comment.
Does the wording here need to change to match the naming? LaunchDarkly AI Completion Config or something?
Contributor
There was a problem hiding this comment.
Good call — updated the doc comments in both ILdAiClient.cs and LdAiClient.cs to use "AI Completion Config" naming consistently (summary, param descriptions, and return value docs). See 11e992f.
Co-Authored-By: unknown <>
kinyoklion
approved these changes
Feb 25, 2026
jsonbailey
pushed a commit
that referenced
this pull request
Feb 25, 2026
🤖 I have created a release *beep* *boop* --- ## [0.9.2](LaunchDarkly.ServerSdk.Ai-v0.9.1...LaunchDarkly.ServerSdk.Ai-v0.9.2) (2026-02-25) ### Bug Fixes * Improve usage reporting ([#228](#228)) ([376b6b0](376b6b0)) --- 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** > Release/version-metadata-only changes; no functional code paths are modified beyond the reported version string and changelog. > > **Overview** > Bumps `LaunchDarkly.ServerSdk.Ai` from `0.9.1` to `0.9.2` across release metadata (`.release-please-manifest.json`), package versioning (`LaunchDarkly.ServerSdk.Ai.csproj`), and runtime-reported version constants (`SdkInfo.Version`). > > Updates `pkgs/sdk/server-ai/CHANGELOG.md` with the `0.9.2` release entry, noting a bug fix to *improve usage reporting*. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 669f538. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requirements
Related issues
Describe the solution you've provided
Updates the .NET AI SDK's usage tracking to align with the updated spec. Key changes:
Renamed usage tracking event key from
$ld:ai:config:function:singleto$ld:ai:usage:completion-config, following the new$ld:ai:usage:*naming convention from the spec.Added SDK info tracking on initialization (
$ld:ai:sdk:info). WhenLdAiClientis constructed, it fires a tracking event withaiSdkName,aiSdkVersion, andaiSdkLanguageusing an anonymous context (kindld_ai, keyld-internal-tracking). SDK metadata lives in a newSdkInfostatic class (SdkInfo.cs) for reuse across the package.Renamed
Configmethod toCompletionConfigon bothILdAiClientandLdAiClient. The oldConfigmethod is preserved but marked[Obsolete]and proxies toCompletionConfig.Separated usage tracking from config evaluation. Following the pattern in the JS implementation,
CompletionConfig(public) handles usage tracking and delegates to a privateEvaluatemethod for the actual config retrieval. This prevents double-counting if higher-level entry methods (e.g.createChat) are added in the future.Added
SdkInfo.cstorelease-please-config.jsonextra-files so that theSdkInfo.Versionconstant is automatically bumped on release (flagged by Bugbot).Updated XML doc comments to use "AI Completion Config" wording consistently across
ILdAiClient.csandLdAiClient.cs(per reviewer feedback).Note: The .NET SDK does not currently have agent, judge, createChat, or createJudge methods, so only the single
completion-configusage event key needed updating.Human review checklist
$ld:ai:sdk:info,$ld:ai:usage:completion-config) exactly match the specld_ai, keyld-internal-tracking) matches spec requirement 1.2.2.1SdkInfo.Version = "0.9.1"matches the current version inLaunchDarkly.ServerSdk.Ai.csprojand that thex-release-please-versionannotation inSdkInfo.cswill be picked up correctly now that it's inextra-filesILdAiClientinterface change (addingCompletionConfig) is acceptable for a pre-release SDKLdAiClientinstantiation (rather than once globally) aligns with spec intentConfigmethod delegates toCompletionConfig, so it will also emit the$ld:ai:usage:completion-configtracking event — confirm this is desired behaviorAdditional context
Note
Medium Risk
Introduces an interface/API rename (with obsolete shim) and changes analytics event emission, which can affect downstream callers and telemetry volume/semantics.
Overview
Updates the .NET AI SDK's telemetry to match the latest spec:
LdAiClientnow emits$ld:ai:usage:completion-configwhen retrieving a config, and fires a one-time-per-instance$ld:ai:sdk:infoevent on construction containing SDK name/version/language.Renames the public API from
ConfigtoCompletionConfigonILdAiClient/LdAiClient, keepsConfigas an[Obsolete]shim, and factors config retrieval into a privateEvaluatemethod so future entry points can track usage without double-counting.Adds
SdkInfo(and includes it inrelease-please-config.jsonextra-files) and updates tests to useCompletionConfigplus new assertions for the tracking events.Written by Cursor Bugbot for commit 11e992f. This will update automatically on new commits. Configure here.