github dotnet/extensions v10.3.0

latest releases: v10.4.1, v10.4.0
one month ago

Experimental API Changes

Now Stable

  • IChatReducer interface — graduated from experimental to stable. The interface is now stable; concrete implementations (MessageCountingChatReducer, SummarizingChatReducer, ReducingChatClient) remain experimental. #7235 by @jeffhandley
  • FunctionCallContent and FunctionResultContent unsealed — changed from sealed class to class, enabling derivation. #7229 by @stephentoub (co-authored by @Copilot)

Breaking Changes to Experimental APIs

  • Experimental diagnostic ID reorganization — the blanket MEAI001 diagnostic ID was split into feature-specific constants. OpenAI-specific experimental APIs now use OPENAI001, OPENAI002, or SCME0001 instead of MEAI001. Consumers who suppressed MEAI001 for OpenAI APIs may need to suppress OPENAI001/OPENAI002 instead. #7116 by @jeffhandley (co-authored by @Copilot), #7235 by @jeffhandley

New Experimental APIs

  • Chat reduction implementationsMessageCountingChatReducer, SummarizingChatReducer, ReducingChatClient, and UseChatReducer builder extension. #7235 by @jeffhandley
  • OpenAI Responses/Assistants/Realtime/Image/Audio integrations — assigned feature-specific experimental diagnostic IDs (OPENAI001, OPENAI002). #7235 by @jeffhandley
  • ImageGenerationToolCallContent and ImageGenerationToolResultContent — added to JSON serialization infrastructure. #7275 by @stephentoub (co-authored by @Copilot)

What's Changed

AI

  • Add ReasoningOptions to ChatOptions #7252 by @stephentoub (co-authored by @Copilot)
  • Add LoadFromAsync and SaveToAsync helper methods to DataContent #7159 by @stephentoub (co-authored by @Copilot)
  • Add FunctionCallContent.InformationalOnly property #7126, #7262 by @stephentoub (co-authored by @Copilot)
  • Add server tool call support to OpenTelemetryChatClient per semantic conventions #7240 by @stephentoub (co-authored by @Copilot)
  • Add ImageGenerationToolCallContent and ImageGenerationToolResultContent to JSON serialization infrastructure #7275 by @stephentoub (co-authored by @Copilot)
  • Add logging to FunctionInvokingChatClient for approval flow, error handling, and loop control #7228 by @stephentoub (co-authored by @Copilot)
  • Allow FunctionResultContent pass-through when CallId matches #7229 by @stephentoub (co-authored by @Copilot)
  • Remove AIFunctionDeclaration tools on last iteration in FunctionInvokingChatClient #7207 by @stephentoub (co-authored by @Copilot)
  • Propagate CachedInputTokenCount in OpenTelemetry telemetry #7234 by @stephentoub (co-authored by @Copilot)
  • Categorize MEAI001 experimental APIs #7116 by @jeffhandley (co-authored by @Copilot)
  • MEAI: Update Experimental / Preview Features #7235 by @jeffhandley
  • ToChatResponse: Merge AdditionalProperties into ChatMessage instead of ChatResponse #7194 by @stephentoub (co-authored by @Copilot)
  • Fix FunctionInvokingChatClient to respect ChatOptions.Tools modifications by function tools #7218 by @stephentoub (co-authored by @Copilot)
  • Fix FunctionInvokingChatClient invoke_agent span detection with exact match or space delimiter #7224 by @stephentoub (co-authored by @Copilot)
  • Fix approval request/response correlation in FunctionInvokingChatClient #7261 by @stephentoub (co-authored by @Copilot)
  • Fix DataUriParser to default to text/plain;charset=US-ASCII per RFC 2397 #7247 by @stephentoub (co-authored by @Copilot)
  • Fix NRT resolution for AIFunction parameters #7200 by @eiriktsarpalis
  • Preserve extra JSON schema properties in ToolJson serialization #7250 by @stephentoub (co-authored by @Copilot)
  • Fix token metric unit to use UCUM format {token} #7241 by @stephentoub
  • Fix OpenAI responses streaming to preserve encrypted reasoning content #7266 by @stephentoub
  • Update OpenAIResponsesChatClient to handle streaming code interpreter content #7267 by @stephentoub

Diagnostics, Health Checks, and Resource Monitoring

Service Discovery

  • Fix deadlock in ServiceEndpointWatcher when disposing change token registration #7255 by @ReubenBond

Compliance, Redaction, and Data Classification

AI Evaluation

  • Escape the JSON data before embedding in Evaluation reports #7238 by @peterwald

Documentation Updates

Test Improvements

  • Fix race condition in UnreliableL2Tests.WriteFailureInvisible #7075 by @stephentoub (co-authored by @Copilot)

Repository Infrastructure Updates

  • Add .npmrc next to package.json and add lockfile for PublishAIEvaluationReport #7108 by @akoeplinger
  • Set Microsoft.McpServer.ProjectTemplates version to align with MCP packages #7170 by @jeffhandley
  • Enable package validation for M.E.AmbientMetadata.Build #7213 by @evgenyfedorov2
  • Set network isolation policy for extensions-ci #7221 by @wtgodbe
  • Update mcpserver template to ModelContextProtocol 0.7.0-preview.1 #7236 by @jeffhandley (co-authored by @Copilot)
  • Update aiagent-webapi template to Agent Framework 1.0.0-preview.260127.1 #7237 by @jeffhandley (co-authored by @Copilot)
  • Bump js-yaml from 4.1.0 to 4.1.1 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7054
  • Bump validator from 13.15.20 to 13.15.23 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7103
  • Bump qs from 6.14.0 to 6.14.1 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7189
  • Bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7198
  • Bump lodash from 4.17.21 to 4.17.23 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7227

Acknowledgements

Full Changelog: v10.2.0...v10.3.0

Don't miss a new extensions release

NewReleases is sending notifications on new releases.