Releases: dotnet/extensions
Release list
v10.8.4
This servicing update refreshes the .NET AI project templates ahead of the July 30, 2026 retirement of GitHub Models — removing the GitHub Models provider option and updating template dependencies.
As a result, both the AI Chat Web (aichatweb) and AI Agent Web API (aiagent-webapi) templates now require the AI service provider to be chosen explicitly via --provider; there is no longer a default. One of the following must be selected:
--provider azureopenai— Azure OpenAI--provider ollama— Ollama (for local development)--provider openai— OpenAI Platform
Packages in this release
| Package | Version |
|---|---|
| Microsoft.Extensions.AI.Templates | 10.8.4-preview.3.26379.3 |
| Microsoft.Agents.AI.ProjectTemplates | 1.13.0-preview.1.26379.3 |
What's Changed
Project templates
- Removed the GitHub Models provider from the AI Chat Web and AI Agent Web API templates, ahead of GitHub Models being fully retired on July 30, 2026. The
--provideroption is now required with no default (#7667). - Updated AI template dependencies — bumped
Aspire.Hosting.AppHostto13.4.6andCommunityToolkit.VectorData.SqliteVecto1.0.0-preview.4(alignedSystem.Linq.AsyncEnumerableto10.0.9), replacing earlier workaround package pins (#7639).
Full Changelog
v10.8.3
Packages in this release
| Package | Version |
|---|---|
| Microsoft.Extensions.AI | 10.8.3 |
| Microsoft.Extensions.AI.Abstractions | 10.8.3 |
| Microsoft.Extensions.AI.OpenAI | 10.8.3 |
Experimental API Changes
Experimental API behavior updates
- Updated serialization behavior for experimental
ToolApprovalRequestContent.RequiresConfirmationso it no longer leaks into consumer source-generatedAIContentJSON metadata unless approval APIs are intentionally used (#7659).
What's Changed
AI abstractions and serialization
- Fixed MEAI001 leakage from
RequiresConfirmationin source-generatedAIContentcontexts by using an internal JSON-included backing member while keeping the public experimental member ignored for source-generation metadata (#7659).
Test Improvements
- Added stabilization regression coverage to verify consumer source-generated
List<AIContent>contexts compile and round-trip without requiring MEAI001 suppression (#7659).
Full Changelog
v10.8.2
This servicing release updates Microsoft.Extensions.VectorData.ConformanceTests to 10.8.2 and includes targeted test framework migration fixes.
Packages in this release
| Package | Version |
|---|---|
| Microsoft.Extensions.VectorData.ConformanceTests | 10.8.2 |
What's Changed
AI
- Move Microsoft.Extensions.VectorData.ConformanceTests to xUnit 3 #7636 by @adamsitnik (co-authored by @Copilot)
Acknowledgements
- @roji reviewed pull requests
Full Changelog: v10.8.1...v10.8.2
v10.8.1
This servicing release updates the Microsoft.Extensions.AI, Microsoft.Extensions.AI.Abstractions, and Microsoft.Extensions.AI.OpenAI packages to 10.8.1 with two targeted fixes: correct tool-call/tool-result ordering when resuming approval-gated functions with service-managed chat history, and preservation of the OpenAI Responses reasoning item id for stateless (store=false) encrypted reasoning.
Packages in this release
| Package | Version |
|---|---|
| Microsoft.Extensions.AI | 10.8.1 |
| Microsoft.Extensions.AI.Abstractions | 10.8.1 |
| Microsoft.Extensions.AI.OpenAI | 10.8.1 |
What's Changed
AI
- Fix FICC tool_calls/tool ordering with approvals and service-managed chat history #7617 by @westey-m
- Roundtrip OpenAI Responses reasoning item id for stateless (store=false) encrypted reasoning #7629 by @rogerbarreto (co-authored by @tarekgh)
Acknowledgements
- @jozkee reviewed pull requests
Full Changelog: v10.8.0...v10.8.1
v10.8.0
This release adds new experimental APIs to Microsoft.Extensions.AI.Abstractions and updates the OpenAI dependency to 2.12.0, alongside documentation, test, and repository maintenance.
Experimental API Changes
New Experimental APIs
- New experimental API:
AIFunctionNameAttributeandAIParameterNameAttribute#7610 by @jozkee (co-authored by @jeffhandley @Copilot) - New experimental API:
ToolApprovalRequestContent.RequiresConfirmation(MEAI001) #7549 by @javiercn (co-authored by @Copilot)
What's Changed
AI
- Upgrade OpenAI dependency to 2.12.0 #7608 by @jozkee (co-authored by @Copilot)
- Auto-detect audio format in OpenAISpeechToTextClient #7575 by @jozkee (co-authored by @Copilot)
- Fix ImageGeneratingChatClient duplicating preceding content and dropping following content #7624 by @jozkee (co-authored by @Copilot)
Vector Data
- Make all test methods virtual in VectorData.ConformanceTests #7606 by @adamsitnik (co-authored by @Copilot)
Documentation Updates
- Remove links to ai-samples repo #7574 by @gewarren
- Fix up docs with Copilot (MEVD) #7597 by @gewarren
- Fix up docs with Copilot (M.E.ServiceDiscovery) #7598 by @gewarren (co-authored by @Copilot)
- Fix up docs with Copilot (MEAI) #7600 by @gewarren
- Fix up docs with Copilot #7601 by @gewarren
Test Improvements
- Fix flaky StampedeTests and harden related test waits #7572 by @jeffhandley (co-authored by @Copilot)
- Fix SQLitePCLRaw.lib.e_sqlite3 vulnerability by replacing SemanticKernel connectors with CommunityToolkit #7579 by @adamsitnik (co-authored by @Copilot)
- Removing SemanticKernel Connectors dependency and replacing it #7584 by @adamsitnik (co-authored by @Copilot)
- Migrate to xUnit v3 #7607 by @adamsitnik (co-authored by @shyamnamboodiripad @Copilot)
Repository Infrastructure Updates
- Update OTel GenAI conventions skill for standalone semconv-genai repo #7519 by @jeffhandley (co-authored by @Copilot)
- Bump dotnet-coverage from 18.7.0 to 18.8.0 #7552
- [main] Update dependencies from dotnet/arcade #7559
- Fix transitive MessagePack vulnerability in AI template AppHost projects #7561 by @adamsitnik (co-authored by @Copilot)
- Bump esbuild, @vitejs/plugin-react and vite in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7564
- Bump tmp from 0.2.6 to 0.2.7 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7569
- Bump js-yaml from 4.1.1 to 4.2.0 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7570
- Bump PowerShell from 7.6.2 to 7.6.3 #7576
- Remove duplicate 'WebAPI' classification from template #7577 by @danroth27
- [main] Update dependencies from dotnet/arcade #7590
- Eliminate redundant Correctness CI stage by merging into Build #7594 by @adamsitnik (co-authored by @Copilot)
- Update Agent Framework to 1.13.0 #7613 by @jeffhandley (co-authored by @Copilot)
- Bump dotnet-coverage from 18.8.0 to 18.9.0 #7615
Acknowledgements
- @wtgodbe @tarekgh @eiriktsarpalis @peterwald @PranavSenthilnathan @stephentoub @evgenyfedorov2 @roji @DeagleGross reviewed pull requests
Full Changelog: v10.7.0...v10.8.0
v10.7.0
v10.7.0 graduates the Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes package to stable. The package registers a Kubernetes-aware ResourceQuotaProvider that reads the pod's CPU and memory requests and limits and exposes them to Microsoft.Extensions.Diagnostics.ResourceMonitoring as baseline and maximum quotas, which then feed the request and limit dimensions of the published resource utilization metrics. The companion ResourceQuota and ResourceQuotaProvider types in Microsoft.Extensions.Diagnostics.ResourceMonitoring graduate to stable in the same change so that consumers can implement custom quota providers without taking an experimental dependency.
On the AI side, Microsoft.Extensions.AI.OpenAI moves to OpenAI 2.11.0 and fixes a deserialization bug in ToolJson.AdditionalProperties so that JSON Schema additionalProperties values shaped as sub-schema objects (for example {"type":"string"}) are preserved instead of throwing during deserialization. HostedFileContent.SizeInBytes and HostedFileContent.CreatedAt graduate to stable since both values are consistently available across hosted-file providers, while Purpose and Scope remain experimental as provider-shaped vocabulary. FunctionInvokingChatClient drops a backward-compat path that auto-marked ToolApprovalResponseContent entries with InformationalOnly: true; consumers that need to continue accepting sessions serialized before #7468 can use the sample ApprovalHistoryNormalizingChatClient middleware added in the test project.
Experimental API Changes
Now Stable
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetespackage is now stable #7253- Resource Monitoring
ResourceQuotaandResourceQuotaProviderAPIs are now stable (previouslyEXTEXP0008) #7253 HostedFileContent.SizeInBytesandHostedFileContent.CreatedAtare now stable (previouslyMEAI001) #7513
What's Changed
AI
- Graduate HostedFileContent.SizeInBytes and HostedFileContent.CreatedAt #7513 by @jozkee (co-authored by @Copilot)
- Remove backward-compat InformationalOnly case from FICC; suggest middleware workaround #7538 by @jozkee (co-authored by @Copilot)
- Upgrade OpenAI package from 2.10.0 to 2.11.0 #7544 by @jozkee (co-authored by @Copilot)
- Fix ToolJson.AdditionalProperties to accept sub-schema objects #7546 by @jozkee (co-authored by @Copilot)
Diagnostics, Health Checks, and Resource Monitoring
- Move Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes to stable #7253 by @amadeuszl (co-authored by @Copilot)
Repository Infrastructure Updates
- [main] Update dependencies from dotnet/arcade #7521
- Bump dotnet-reportgenerator-globaltool from 5.5.9 to 5.5.10 #7522
- Bump dotnet-coverage from 18.6.2 to 18.7.0 #7530
- Bump PowerShell from 7.6.1 to 7.6.2 #7531
- Bump qs from 6.15.1 to 6.15.2 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7532
- [main] Update dependencies from dotnet/arcade #7534
- Bump tmp from 0.2.5 to 0.2.6 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7537
Acknowledgements
- @ericstj submitted issue #7509 (resolved by #7544)
- @scottt732 submitted issue #7540 (resolved by #7546)
- @DeagleGross @wtgodbe @dariusclay @evgenyfedorov2 @peterwald @PranavSenthilnathan @shyamnamboodiripad @stephentoub @tarekgh reviewed pull requests
Full Changelog: v10.6.0...v10.7.0
v10.6.0
Version 10.6.0 stabilizes the response continuation token and background-response APIs in Microsoft.Extensions.AI.Abstractions. Most other AI work for May shipped in 10.5.1; this monthly release rolls those changes up alongside dependency updates and a small Resource Monitoring cleanup.
Experimental API Changes
Now Stable
- ResponseContinuationToken and background-response APIs are now stable (previously
MEAI001) #7512
What's Changed
AI
- Stabilize ResponseContinuationToken / background-response APIs #7512 by @jozkee (co-authored by @Copilot)
Repository Infrastructure Updates
- Update version to 10.6.0 #7458 by @jeffhandley
- [main] Update dependencies from dotnet/arcade #7451
- Bump follow-redirects from 1.15.11 to 1.16.0 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript/azure-devops-report/tasks/PublishAIEvaluationReport #7469
- Merge release/10.5 into main #7470 by @jeffhandley
- Bump microsoft.visualstudio.slngen.tool from 12.0.13 to 12.0.32 #7484
- Bump postcss from 8.5.9 to 8.5.12 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7494
- Bump dotnet-reportgenerator-globaltool from 5.5.7 to 5.5.9 #7504
- Rename release-notes skill to write-release-notes #7511 by @jeffhandley (co-authored by @Copilot)
Acknowledgements
- @wtgodbe @tarekgh @peterwald @JeremyLikness @eiriktsarpalis @ericstj @evgenyfedorov2 reviewed pull requests
Full Changelog: v10.5.2...v10.6.0
v10.5.2
This patch release ships a single fix to Microsoft.Extensions.VectorData.Abstractions, correcting StorageName resolution when external serialization is enabled. Microsoft.Extensions.VectorData.ConformanceTests, Microsoft.Extensions.AI.Abstractions, Microsoft.Extensions.AI, and Microsoft.Extensions.AI.OpenAI are published alongside it for version coherency — they contain no code changes from 10.5.1.
Packages in this release
| Package | Version |
|---|---|
| Microsoft.Extensions.VectorData.Abstractions | 10.5.2 |
| Microsoft.Extensions.VectorData.ConformanceTests | 10.5.2 |
| Microsoft.Extensions.AI.Abstractions | 10.5.2 |
| Microsoft.Extensions.AI | 10.5.2 |
| Microsoft.Extensions.AI.OpenAI | 10.5.2 |
What's Changed
Microsoft.Extensions.VectorData.Abstractions
- Minor fixes to MEVD.Abstractions: correct
StorageNamebehavior when external serialization is enabled, and disable a warning fornet462. (by @roji in #7475)
Full Changelog: v10.5.1...v10.5.2
v10.5.1
Version 10.5.1 of the Microsoft.Extensions.AI packages stabilizes CodeInterpreter, WebSearch, and ImageGeneration tool content types. The release adds new experimental tool search and OpenAI request policy hooks. And the OpenTelemetry gen-ai semantic conventions are updated to align with v1.41.
The 'aiagent-webapi' project template in Microsoft.Agents.AI.ProjectTemplates is updated to align with v1.3.0 of Agent Framework, updating the OpenTelemetry dependencies within the template projects as well.
Packages in this release
| Package | Version |
|---|---|
| Microsoft.Extensions.AI | 10.5.1 |
| Microsoft.Extensions.AI.Abstractions | 10.5.1 |
| Microsoft.Extensions.AI.OpenAI | 10.5.1 |
| Microsoft.Extensions.AI.Templates | 10.5.1-preview.3.26251.3 |
| Microsoft.Agents.AI.ProjectTemplates | 1.3.0-preview.1.26251.3 |
Experimental API Changes
Now Stable
The following types previously emitted the MEAI001 experimental diagnostic and are now stable.
- CodeInterpreter and WebSearch tool content types are now stable #7493
CodeInterpreterToolCallContentCodeInterpreterToolResultContentWebSearchToolCallContentWebSearchToolResultContent
- ImageGeneration tool content types and tool are now stable #7476
ImageGenerationToolCallContentImageGenerationToolResultContentHostedImageGenerationToolImageGenerationOptionsImageGenerationResponseFormat(theHostedenum value remains experimental)IImageGeneratorand the rest of the image generation infrastructure also remain experimental
New Experimental APIs
The following new APIs emit the MEAI001 experimental diagnostic.
- New experimental API:
HostedToolSearchToolwithDeferredToolsfor tool-search-driven deferred tool loading #7471 - New experimental API:
OpenAIRequestPoliciesextension hook for appendingSystem.ClientModel.PipelinePolicyinstances to outgoing OpenAI requests #7495
Breaking Changes to Experimental APIs
-
WebSearchToolResultContent.Resultswas renamed toOutputsas part of the stabilization in #7493, aligning withCodeInterpreterToolResultContent.Outputs. The originalResultsproperty was included in version 10.4.0 and 10.5.0; this is a binary breaking change and consumers need to update to consume the updated property.WebSearchToolResultContent content = ...; - IList<AIContent>? items = content.Results; + IList<AIContent>? items = content.Outputs;
What's Changed
AI
- Stabilize CodeInterpreter and WebSearch content types #7493 by @jozkee (co-authored by @Copilot)
- Stabilize ImageGeneration content types and HostedImageGenerationTool #7476 by @jozkee (co-authored by @Copilot)
- HostedToolSearchTool with DeferredTools in the type #7471 by @jozkee (co-authored by @Copilot @stephentoub)
- Add OpenAIRequestPolicies extension hook for MEAI OpenAI clients #7495 by @rogerbarreto
- Update OpenTelemetry gen-ai conventions through v1.41 #7497 by @jeffhandley (co-authored by @Copilot)
- Bump the project template package reference versions for OpenTelemetry and Agent Framework #7491 by @jeffhandley
- Honor UnmappedMemberHandling in AIFunctionFactory parameter binding #7474 by @eiriktsarpalis (co-authored by @Copilot)
- Fix Namespace gaps in HostedToolSearchTool #7500 by @jozkee (co-authored by @Copilot)
- Fix: Mark both TARC and TAResp FunctionCallContent as InformationalOnly after approval processing #7468 by @westey-m (co-authored by @Copilot)
Test Improvements
- Fix flaky tests: remove process-wide
Directory.SetCurrentDirectoryand anchor cwd assertions to absolute paths #7487 by @jozkee (co-authored by @Copilot)
Repository Infrastructure Updates
- Bump dotnet-reportgenerator-globaltool from 5.1.19 to 5.5.7 #7489
- Bump dotnet-coverage from 17.8.2 to 18.6.2 #7481
- Bump Microsoft.Build.Traversal from 3.2.0 to 4.1.82 #7483
- Bump PowerShell from 7.3.3 to 7.6.1 #7485
Acknowledgements
- @peterwald @ericstj @tarekgh @wtgodbe @evgenyfedorov2 @lokitoth @mikekistler reviewed pull requests
Full Changelog: v10.5.0...v10.5.1
v10.5.0
HTTP Logging Middleware APIs in Microsoft.AspNetCore.Diagnostics.Middleware are now stable. This release also transfers Microsoft.Extensions.VectorData.Abstractions and Microsoft.Extensions.VectorData.ConformanceTests from the Semantic Kernel repository into dotnet/extensions, jumping from 10.1.0 to 10.5.0 for consistent versioning. The release also delivers fixes across the AI libraries, AI Evaluation, and Service Discovery.
Breaking Changes
- Rename
VectorStoreVectorAttributeconstructor parameter #7460- The
Dimensionsparameter was renamed todimensions(lowercase). This is a source-breaking change only — binary compatibility is preserved. - If you use the named argument syntax
new VectorStoreVectorAttribute(Dimensions: 1536), update it tonew VectorStoreVectorAttribute(dimensions: 1536).
- The
Experimental API Changes
Now Stable
- HTTP Logging Middleware APIs are now stable (previously
EXTEXP0013):AddHttpLogEnricher<T>,IHttpLogEnricher, andRequestHeadersLogEnricherOptions.HeadersDataClasses#7380
What's Changed
AI
- Fix OpenAIResponsesChatClient to respect "store":false in responses #7417 by @stephentoub
- Fix InvalidOperationException in CoalesceWebSearchToolCallContent #7419 by @stephentoub
- Handle F# optional parameters in AIFunctionFactory schema generation #7439 by @eiriktsarpalis
- Fix ComputerCallResponseItem using Item.Id instead of CallId #7446 by @jozkee
- Fix HostedFileContent with image MIME type sent as input_file instead of input_image #7438 by @stephentoub (co-authored by @copilot)
- Guard Activity.Current restore with null check in OpenTelemetry streaming clients #7443 by @stephentoub (co-authored by @copilot)
- Enable stateless mode in remote MCP server template (released as v1.2.0 on 2026-04-01) #7441 by @jeffhandley
Vector Data
- Move Microsoft.Extensions.VectorData.Abstractions over from Semantic Kernel #7434 by @roji
- Rename VectorStoreVectorAttribute dimensions constructor parameter #7460 by @roji
AI Evaluation
- Add Path Validation for DiskBasedResponseCache and DiskBasedResultStore #7397 by @peterwald
- Update brace-expansion for CVE-2026-33750 #7457 by @SamMonoRT
ASP.NET Core Extensions
- Removing experimental attribute from Http logging middleware #7380 by @mariamgerges
Service Discovery
Documentation Updates
- Remove per-library CHANGELOG.md files #7413 by @jeffhandley
Test Improvements
- Fix SqliteVectorStoreWriterTests hang: reduce test record count and use conditional MaxTopCount #7360 by @stephentoub (co-authored by @copilot)
Repository Infrastructure Updates
- Bump minimatch and azure-pipelines-task-lib in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7361
- Remove stale user-level .npmrc instead of npmAuthenticate #7366 by @ilonatommy
- [main] Update dependencies from dotnet/arcade #7374
- Use env vars in build.ps1 to bypass stale agent npm config #7376 by @ilonatommy
- Add a Release-Notes skill #7390 by @jeffhandley
- Enable CFSClean* policies for extensions-ci-official pipeline #7403 by @mmitche
- Fix CG alerts for Microsoft.Bcl.Memory #7418 by @wtgodbe
- Bump flatted from 3.3.3 to 3.4.2 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7421
- [main] Update dependencies from dotnet/arcade #7422
- Bump picomatch from 2.3.1 to 2.3.2 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7427
- Bump picomatch in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7429
- Stop using Mariner 2 images #7431 by @wtgodbe
- [main] Update dependencies from dotnet/arcade #7435
- Bump brace-expansion from 1.1.12 to 1.1.13 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7440
- Bump lodash from 4.17.23 to 4.18.1 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7455
- Bump vite from 6.4.1 to 6.4.2 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7456
- Correctly publish MEVD.ConformanceTests as nuget packages #7459 by @roji
- Update ApiChief baselines for MEAI and MEVD #7461 by @jeffhandley
- Upgrade to OpenAI 2.10.0 #7450 by @stephentoub
- Use shared DiagnosticIds constants for MEVD experimental APIs #7462 by @jeffhandley
Acknowledgements
- @shyamnamboodiripad @rogerbarreto @ReubenBond @evgenyfedorov2 @tarekgh reviewed pull requests
Full Changelog: v10.4.1...v10.5.0