releases.shpreview
LaunchDarkly/.NET SDK

.NET SDK

Mon
Wed
Fri
JunJulAugSepOctNovDecJanFebMarAprMayJun
Less
More
Releases20Avg6/moVersionsLaunchDarkly.ClientSdk-v5.7.0 to LaunchDarkly.ServerSdk.Telemetry-v1.5.1
LaunchDarkly.ServerSdk.Ai-v0.11.0

0.11.0 (2026-06-11)

Features
  • Add AgentConfig, AgentConfigs, and JudgeConfig methods to ILdAiClient (#282) (34293ca)
  • Add Tools property to LdAiCompletionConfig — parses the same tools block agents use, exposes IReadOnlyDictionary<string, ToolConfig> (empty when absent) (69418c8)
  • Add TrackDurationOf, TrackMetricsOf, TrackJudgeResult, TrackToolCall (#287) (485976e)
Bug Fixes
  • Silently override 'ldctx' in user-supplied template variables instead of warning and discarding it — the SDK context always wins, matches cross-SDK behavior (69418c8)

This PR was generated with Release Please. See documentation.

<!-- CURSOR_SUMMARY -->
LaunchDarkly.ServerSdk.Ai-v0.10.0

0.10.0 (2026-06-05)

⚠ BREAKING CHANGES
  • Move Role from LaunchDarkly.Sdk.Server.Ai.DataModel into LdAiConfigTypes
  • Rename LdAiConfig.ModelConfiguration to LdAiConfigTypes.ModelConfig and LdAiConfig.ModelProvider to LdAiConfigTypes.ProviderConfig
  • Move shared types nested in LdAiConfig into static LdAiConfigTypes — Message, ModelConfiguration, and ModelProvider
  • Enforce at-most-once tracking — each metric type (duration, tokens, feedback, success/error, time-to-first-token) records once per tracker; duplicates are dropped with a warning
  • Add ResumptionToken on ILdAiConfigTracker and ILdAiClient.CreateTracker(resumptionToken, context) for cross-process tracker reconstruction with the original runId
  • Add per-execution runId on all AI track event payloads for billing isolation
  • Change CompletionConfig to return LdAiCompletionConfig instead of ILdAiConfigTracker — obtain a tracker via config.CreateTracker()
  • Default LdAiCompletionConfigDefault.Enabled to true per AISDK spec (was false on the LdAiConfig builder in 0.9.x)
  • Remove ILdAiConfigTracker.Config property — read config fields from the LdAiCompletionConfig the caller already holds
  • Make LdAiConfigTracker SDK-constructed only — the public constructor is removed; obtain trackers via config.CreateTracker() or ILdAiClient.CreateTracker(resumptionToken, context)
  • Convert LdAiCompletionConfig and LdAiCompletionConfigDefault from records to classes — equality is reference-based instead of structural
  • Remove LaunchDarkly.Sdk.Server.Ai.DataModel namespace — delete unused AiConfig, Meta, Model, Provider, and Message JSON DTO classes
  • Split unified LdAiConfig into LdAiCompletionConfig (SDK output) and LdAiCompletionConfigDefault (user input) — Builder, New(), and Disabled move to the Default type; introduce abstract LdAiConfig and LdAiConfigDefault base types for future agent/judge modes
Features
  • Add MetricSummary property on ILdAiConfigTracker summarizing recorded metrics (44ff485)
  • Add per-execution runId on all AI track event payloads for billing isolation (44ff485)
  • Add ResumptionToken on ILdAiConfigTracker and ILdAiClient.CreateTracker(resumptionToken, context) for cross-process tracker reconstruction with the original runId (44ff485)
  • Change CompletionConfig to return LdAiCompletionConfig instead of ILdAiConfigTracker — obtain a tracker via config.CreateTracker() (92f799f)
  • Convert LdAiCompletionConfig and LdAiCompletionConfigDefault from records to classes — equality is reference-based instead of structural (92f799f)
  • Default LdAiCompletionConfigDefault.Enabled to true per AISDK spec (was false on the LdAiConfig builder in 0.9.x) (92f799f)
  • Enforce at-most-once tracking — each metric type (duration, tokens, feedback, success/error, time-to-first-token) records once per tracker; duplicates are dropped with a warning (44ff485)
  • Make LdAiConfigTracker SDK-constructed only — the public constructor is removed; obtain trackers via config.CreateTracker() or ILdAiClient.CreateTracker(resumptionToken, context) (92f799f)
  • Mode-mismatch detection — log a warning and return the caller's default when the flag's _ldMeta.mode does not match the requested mode (per sdk-specs#229) (92f799f)
  • Move Role from LaunchDarkly.Sdk.Server.Ai.DataModel into LdAiConfigTypes (ac7fd06)
  • Move shared types nested in LdAiConfig into static LdAiConfigTypes — Message, ModelConfiguration, and ModelProvider (ac7fd06)
  • Non-object variation handling — log an error and return the caller's default when the variation result is not an object (92f799f)
  • Per-message interpolation fallback — a malformed Mustache template keeps raw content for that message rather than discarding the entire config (92f799f)
  • Remove ILdAiConfigTracker.Config property — read config fields from the LdAiCompletionConfig the caller already holds (92f799f)
  • Remove LaunchDarkly.Sdk.Server.Ai.DataModel namespace — delete unused AiConfig, Meta, Model, Provider, and Message JSON DTO classes (92f799f)
  • Rename LdAiConfig.ModelConfiguration to LdAiConfigTypes.ModelConfig and LdAiConfig.ModelProvider to LdAiConfigTypes.ProviderConfig (ac7fd06)
  • Split unified LdAiConfig into LdAiCompletionConfig (SDK output) and LdAiCompletionConfigDefault (user input) — Builder, New(), and Disabled move to the Default type; introduce abstract LdAiConfig and LdAiConfigDefault base types for future agent/judge modes (92f799f)
  • Tolerant LdValue parsing — missing or wrong-typed fields degrade to typed defaults instead of discarding the whole config (92f799f)

This PR was generated with Release Please. See documentation.

<!-- CURSOR_SUMMARY -->
Last Checked
1h ago
Latest
LaunchDarkly.ServerSdk.Ai-v0.11.0
Tracking since Aug 27, 2024