launchdarkly-ai-server: v0.2.0
Immutable
release. Only release title and notes can be modified.
0.2.0 (2026-09-08)
⚠ BREAKING CHANGES
- client: once the handlers move onto this layer, prompt and completion content will be absent from spans unless the caller passes capture_content=True. Anyone reading gen_ai.prompt.0.content today will need to opt in.
Features
- add evaluations module scaffold, credentials, LD API client, result types (80fd4e4)
- AIC-3230: emit evaluation context identity (#65) (ca30e83)
- client: cache-aware token accounting and a reusable span lifecycle (f54ef59)
- client: end spans a cancelled run would otherwise strand (dff27f6)
- client: put conversation content on spans behind an opt-in flag (2bb8310)
- client: tell a cancelled stream apart from an abandoned one (14ed066)
- emit $ld:ai:sdk:info event per AI package (#62) (65136a3)
- emit conversation id and judge evals (1b0f5bd)
- emit evaluation context identity on feature_flag spans (97528e3)
- emit gen_ai.conversation.id (#42) (c372e56)
- evaluations: configure run link UI base (4cbcbd6)
- evaluations: emit generation events (311b012)
- evaluations: event-based offline evaluations runner (#39) (4239739)
- evaluations: make summary poll interval and timeout configurable per run (cd84352)
- evaluations: print event emission timestamps (0079289)
- evaluations: require an SDK key and fail fast when it is missing (a1ba71e)
- gate evaluation generation result ingest (0ea442f)
- gate the judge explanation on capture_content (8a66365)
- record judge scores as gen_ai.evaluation.result (2604816)
- record judge scores as gen_ai.evaluation.result (#43) (7c8b0c9)
- run client-side evaluations from the SDK (50fee37)
Bug Fixes
- AIC-3230: align user context canonical identity (68a5c2b)
- align evaluations with staging dataset and run APIs (28f8eb1)
- bind conversation id at stream() call time (bda8393)
- client: a tool that returned nothing does not return null (eb61eb2)
- client: carry the cache breakdown into the public UsageDict (c60fa7c)
- client: guard the fourth content writer, and assert the family rule (d637b95)
- client: keep the plain text a LangChain message holds in a list (c11adca)
- client: make end_span_once a no-op on a None span (a1772c1)
- client: read a LangChain ChatMessage's own speaker (d56103a)
- client: read a LangChain message's role from the field, not only the method (641f8e1)
- client: stop the content carriers disagreeing, and stop them crashing (b32d3fc)
- delay only LaunchDarkly invoke_agent spans during judge evals (af5a92c)
- evaluations: accept a BYOC client without an SDK key and reject NaN poll values (ab5a4e5)
- evaluations: avoid replaying non-idempotent POSTs and blocking the event loop (485dc85)
- evaluations: derive result from summary (a7acc68)
- evaluations: emit direct generation output (b98b643)
- evaluations: flatten generation event payload (a0254d0)
- evaluations: include evaluation run event ID (8cae0e4)
- evaluations: nest generation usage tokens (c88e9ae)
- evaluations: poll run summary to terminal state (75d3072)
- evaluations: return pending summaries promptly (ec3e290)
- evaluations: use API run source (433273a)
- return JudgeResult objects from inline judges (c9e20a2)
- scope the processor, keep streaming parenting, accept a nullish id (9794d36)
- stop exporting judge reasoning, validate the score, freeze the end time (8fa4f6f)
- use tool keys in tool call telemetry (841ba77)
- use tool keys in tool call telemetry (#56) (ae3130f)