Bump the microsoft group with 19 updates - #5
Closed
dependabot[bot] wants to merge 11 commits into
Closed
Conversation
The assignment queries WeatherAPI as q=LAT,LON, so Location now carries a GeoPoint instead of relying on a city name the provider has to resolve. Coordinates are also what the territory map needs. Removes WeatherDashboard and Temperature.Format, neither of which had a caller. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…erride Adds GetRegionalWeatherQuery behind its own IRegionalWeatherProvider contract, kept separate from IWeatherProvider so the dashboard use case does not depend on the map feature. GetWeatherDashboardQuery gains optional coordinates. The configured location stays the default and the override only applies when both values are supplied, so a half-filled request can never silently move the forecast. Also fixes the local-time fallback: when the provider omits its own local time the handler now converts the injected clock into the configured zone instead of returning raw UTC, which would have filtered "remaining hours today" against the wrong hour on a UTC server. WeatherFailureKind gains an explicit Unknown = 0 so an unmapped value never reads as a known kind. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ry failure Two real defects found by calling the production API rather than by writing fixtures: - pressure_mb, humidity and chance_of_rain arrive as decimals (1013.0) even though they read like integers. Bound as Int32 they deserialised every hand-written fixture and failed against WeatherAPI. They are now double? and rounded on the way into the Domain. - A blank condition text is as absent as a null one, and was rendering as an empty label. Failure handling is now closed: ProviderFailureMapper turns Polly's BrokenCircuitException and TimeoutRejectedException, options validation errors, and transport exceptions into the Application taxonomy, so nothing untyped can reach the UI. Resilience is configured properly: HttpClient.Timeout is infinite and the budget lives in the pipeline, otherwise a hard client timeout fires across the whole retry sequence and surfaces as a raw TaskCanceledException. Circuit-breaker thresholds became configuration. Caching: keys are scoped per coordinates, and the stale read no longer poisons its own key with a null (HybridCache exposes only get-or-create, so the read needs DisableUnderlyingData). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The visible bug first: the error screen printed "failed.Message" verbatim. A string component parameter written as Message="failed.Message" is a literal in Razor and needs Message="@failed.Message" to be an expression. UI: - Design system rebuilt around three token layers and four themes (auto, light, dark, data-dense) persisted per browser; the theme is applied before first paint by a module, not an inline script, because the CSP forbids inline script. - Animated WebGL backdrop driven by the real condition code, written as a single fragment shader rather than pulling in a 3D engine for one background. Falls back to a CSS gradient without WebGL. - Intro curtain that doubles as the honest cold-start loading state; skippable, and skipped outright under prefers-reduced-motion. - Territory map on vendored Leaflet with OpenStreetMap tiles and the keyless RainViewer radar, loaded independently so a map failure never takes the dashboard down. - Hourly strip gains drag-to-scroll, wheel-to-horizontal and a hover readout, all in a JS module: on Blazor Server every DOM event is a circuit round trip, and a pointer crossing 33 cards would generate a burst of them. - Opt-in visitor geolocation; Moscow remains the default, as the assignment requires. - Auto-refresh of an open page, which reads the cache rather than the provider. - Shared formatting helpers replace three copies of the same temperature format. Platform: - Security headers including a CSP with no unsafe-inline and no unsafe-eval for scripts. - Rate limiting with a spec-compliant 429 and Retry-After, resolved per request so tests can configure it. - Readiness that validates configuration without calling the provider. - OpenTelemetry traces and metrics with a vendor-neutral exporter. - OpenAPI metadata plus a Scalar UI at /docs. - Data protection keys persisted to a configurable path, which is what allows the container to run with a read-only root filesystem. - The duplicate UseExceptionHandler registration is gone, and HTTPS redirection is applied only when an HTTPS endpoint actually exists. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…e found 124 tests across seven projects. The additions worth naming: - Contract tests run the real Infrastructure composition root against WireMock: mapping, query shape, status-code classification, retry policy, and a live-shaped fixture that reproduces the decimal-vs-integer deserialisation failure. - A contract test asserts the credential never reaches a log record, which is the only automated guard against leaking a secret that travels in a query string. - Architecture rules grew from five to twelve, including a ban on the system clock in business logic and a scan for credentials in committed configuration. - Component tests cover the page state machine: one provider query per open, retry that recovers, a double click that does not start a second request, and an unmapped exception that no longer tears down the circuit. - Integration tests assert stampede protection (50 concurrent readers, one upstream call), ProblemDetails without internal detail, rate limiting, security headers, and that health probes never touch the provider. - Real Playwright E2E against Kestrel with a stubbed provider, including the mobile scroll-width regression and a check that the app does not violate its own CSP. - Benchmarks for deserialisation, mapping and window selection, each guarded by a contract test so a benchmark cannot quietly start measuring the wrong thing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Container: non-root, all capabilities dropped, no privilege escalation, read-only root filesystem with explicit tmpfs mounts, and data protection keys on a volume. Redis is not published to the host and starts unprivileged, because with CAP_SETUID dropped its entrypoint cannot drop privileges itself. The build image now copies .editorconfig. Without it the container build enforced different analyzer severities than the local one and failed on rules that pass locally. CI splits into quality, fast tests with a coverage report, browser E2E, dependency scan, and container checks. The security job fails on any vulnerable package and asserts no credential is present in the working tree or baked into the image environment. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…made README leads with what the reviewer needs: screenshots, the architecture diagram, the engineering decisions worth defending, and an explicit list of what was deliberately not added and why. New ADRs for the territory map and the security posture; ADR-002 records the two live contract details that fixtures would never have caught, and ADR-005 records why timeouts belong to the resilience pipeline and how the stale read avoids poisoning its own key. docs/testing.md is organised as "what can break, and where it is caught" rather than as a list of frameworks, and calls out the WebApplicationFactory configuration ordering caveat that shaped two design choices. docs/performance.md publishes measured BenchmarkDotNet numbers with the machine named and the ShortRun caveat stated, and explains why provider call counts, not throughput, are the number that matters here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bumps Microsoft.AspNetCore.Mvc.Testing from 10.0.0 to 10.0.11 Bumps Microsoft.AspNetCore.OpenApi from 10.0.0 to 10.0.11 Bumps Microsoft.Extensions.Caching.Hybrid from 10.0.0 to 10.9.0 Bumps Microsoft.Extensions.Caching.StackExchangeRedis from 10.0.0 to 10.0.11 Bumps Microsoft.Extensions.Configuration from 10.0.10 to 10.0.11 Bumps Microsoft.Extensions.DependencyInjection from 10.0.10 to 10.0.11 Bumps Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.0 to 10.0.11 Bumps Microsoft.Extensions.Diagnostics.Testing from 10.0.0 to 10.9.0 Bumps Microsoft.Extensions.Http from 10.0.10 to 10.0.11 Bumps Microsoft.Extensions.Http.Resilience from 10.8.0 to 10.9.0 Bumps Microsoft.Extensions.Logging from 10.0.10 to 10.0.11 Bumps Microsoft.Extensions.Logging.Abstractions from 10.0.0 to 10.0.11 Bumps Microsoft.Extensions.Options from 10.0.0 to 10.0.11 Bumps Microsoft.Extensions.Options.ConfigurationExtensions from 10.0.10 to 10.0.11 Bumps Microsoft.Extensions.Options.DataAnnotations from 10.0.0 to 10.0.11 Bumps Microsoft.Extensions.TimeProvider.Testing from 10.0.0 to 10.9.0 Bumps Microsoft.NET.Test.Sdk from 18.8.1 to 18.9.0 Bumps Microsoft.OpenApi from 2.11.0 to 3.10.0 Bumps Microsoft.Playwright from 1.54.0 to 1.62.0 --- updated-dependencies: - dependency-name: Microsoft.AspNetCore.Mvc.Testing dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.AspNetCore.OpenApi dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Caching.Hybrid dependency-version: 10.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.Extensions.Caching.StackExchangeRedis dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Configuration dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.DependencyInjection.Abstractions dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Diagnostics.Testing dependency-version: 10.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Http dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Http.Resilience dependency-version: 10.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options.ConfigurationExtensions dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.Options.DataAnnotations dependency-version: 10.0.11 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: microsoft - dependency-name: Microsoft.Extensions.TimeProvider.Testing dependency-version: 10.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft - dependency-name: Microsoft.OpenApi dependency-version: 3.10.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: microsoft - dependency-name: Microsoft.Playwright dependency-version: 1.62.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: microsoft ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests. To ignore these dependencies, configure ignore rules in dependabot.yml |
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.
Updated Microsoft.AspNetCore.Mvc.Testing from 10.0.0 to 10.0.11.
Release notes
Sourced from Microsoft.AspNetCore.Mvc.Testing's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.AspNetCore.OpenApi from 10.0.0 to 10.0.11.
Release notes
Sourced from Microsoft.AspNetCore.OpenApi's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.Caching.Hybrid from 10.0.0 to 10.9.0.
Release notes
Sourced from Microsoft.Extensions.Caching.Hybrid's releases.
10.9.0
Version 10.9.0 is headlined by changes in these areas:
RoutingChatClientbase class, withSemanticRoutingChatClientas a concrete semantic-routing implementation. Separately, the abstractFailoverChatClientspecialization and its concreteOrderedFailoverChatClientimplementation add failover routing.Experimental API Changes
New Experimental APIs
EXTEXP0013) #7602MEAI001) #7662What's Changed
AI (
Microsoft.Extensions.AI,Microsoft.Extensions.AI.Abstractions, andMicrosoft.Extensions.AI.OpenAI)Note: Microsoft.Extensions.AI.OpenAI constrains its dependency for OpenAI to 2.12.x, preventing OpenAI updates to 2.13.0+ due to an incompatibility. We expect to release Microsoft.Extensions.AI.OpenAI version 10.9.1 during the week of August 17 to address this issue.
HTTP Resilience and Diagnostics (
Microsoft.Extensions.Http.ResilienceandMicrosoft.Extensions.Http.Diagnostics)ASP.NET Core Extensions (
Microsoft.AspNetCore.Diagnostics.Middleware)Logging Source Generator (
Microsoft.Gen.Logging)AI Evaluation (
Microsoft.Extensions.AI.Evaluation.Reporting)Project Templates (
Microsoft.McpServer.ProjectTemplates)... (truncated)
10.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 PlatformPackages in this release
What's Changed
Project templates
--provideroption is now required with no default (#7667).Aspire.Hosting.AppHostto13.4.6andCommunityToolkit.VectorData.SqliteVecto1.0.0-preview.4(alignedSystem.Linq.AsyncEnumerableto10.0.9), replacing earlier workaround package pins (#7639).Full Changelog
10.8.3
Packages in this release
Experimental API Changes
Experimental API behavior updates
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
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
List<AIContent>contexts compile and round-trip without requiring MEAI001 suppression (#7659).Full Changelog
10.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
Update: August 7, 2026
The Microsoft.Extensions.VectorData.Abstractions package was initially excluded from this release by mistake. Because Microsoft.Extensions.VectorData.ConformanceTests has a dependency on Microsoft.Extensions.VectorData.Abstractions, that led to failures when updating to Microsoft.Extensions.VectorData.ConformanceTests 10.8.2.
Microsoft.Extensions.VectorData.Abstractions was published August 7, 2026 to resolve that issue.
What's Changed
AI
Acknowledgements
Full Changelog: dotnet/extensions@v10.8.1...v10.8.2
10.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
What's Changed
AI
Acknowledgements
Full Changelog: dotnet/extensions@v10.8.0...v10.8.1
10.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
AIFunctionNameAttributeandAIParameterNameAttribute#7610 by @jozkee (co-authored by @jeffhandley @Copilot)ToolApprovalRequestContent.RequiresConfirmation(MEAI001) #7549 by @javiercn (co-authored by @Copilot)What's Changed
AI
Vector Data
Documentation Updates
Test Improvements
Repository Infrastructure Updates
... (truncated)
10.7.0
v10.7.0 graduates the Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes package to stable. The package registers a Kubernetes-aware
ResourceQuotaProviderthat reads the pod's CPU and memory requests and limits and exposes them toMicrosoft.Extensions.Diagnostics.ResourceMonitoringas baseline and maximum quotas, which then feed the request and limit dimensions of the published resource utilization metrics. The companionResourceQuotaandResourceQuotaProvidertypes inMicrosoft.Extensions.Diagnostics.ResourceMonitoringgraduate 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.OpenAImoves to OpenAI 2.11.0 and fixes a deserialization bug inToolJson.AdditionalPropertiesso that JSON SchemaadditionalPropertiesvalues shaped as sub-schema objects (for example{"type":"string"}) are preserved instead of throwing during deserialization.HostedFileContent.SizeInBytesandHostedFileContent.CreatedAtgraduate to stable since both values are consistently available across hosted-file providers, whilePurposeandScoperemain experimental as provider-shaped vocabulary.FunctionInvokingChatClientdrops a backward-compat path that auto-markedToolApprovalResponseContententries withInformationalOnly: true; consumers that need to continue accepting sessions serialized before #7468 can use the sampleApprovalHistoryNormalizingChatClientmiddleware added in the test project.Experimental API Changes
Now Stable
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetespackage is now stable #7253ResourceQuotaandResourceQuotaProviderAPIs are now stable (previouslyEXTEXP0008) #7253HostedFileContent.SizeInBytesandHostedFileContent.CreatedAtare now stable (previouslyMEAI001) #7513What's Changed
AI
Diagnostics, Health Checks, and Resource Monitoring
Repository Infrastructure Updates
Acknowledgements
Full Changelog: dotnet/extensions@v10.6.0...v10.7.0
10.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
MEAI001) #7512What's Changed
AI
Repository Infrastructure Updates
Acknowledgements
Full Changelog: dotnet/extensions@v10.5.2...v10.6.0
10.5.2
This patch release ships a single fix to
Microsoft.Extensions.VectorData.Abstractions, correctingStorageNameresolution when external serialization is enabled.Microsoft.Extensions.VectorData.ConformanceTests,Microsoft.Extensions.AI.Abstractions,Microsoft.Extensions.AI, andMicrosoft.Extensions.AI.OpenAIare published alongside it for version coherency — they contain no code changes from 10.5.1.Packages in this release
What's Changed
Microsoft.Extensions.VectorData.Abstractions
StorageNamebehavior when external serialization is enabled, and disable a warning fornet462. (by @roji in #7475)Full Changelog: dotnet/extensions@v10.5.1...v10.5.2
10.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
Experimental API Changes
Now Stable
The following types previously emitted the
MEAI001experimental diagnostic and are now stable.CodeInterpreterToolCallContentCodeInterpreterToolResultContentWebSearchToolCallContentWebSearchToolResultContentImageGenerationToolCallContentImageGenerationToolResultContentHostedImageGenerationToolImageGenerationOptionsImageGenerationResponseFormat(theHostedenum value remains experimental)IImageGeneratorand the rest of the image generation infrastructure also remain experimentalNew Experimental APIs
The following new APIs emit the
MEAI001experimental diagnostic.HostedToolSearchToolwithDeferredToolsfor tool-search-driven deferred tool loading #7471OpenAIRequestPoliciesextension hook for appendingSystem.ClientModel.PipelinePolicyinstances to outgoing OpenAI requests #7495Breaking 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.... (truncated)
10.5.0
HTTP Logging Middleware APIs in
Microsoft.AspNetCore.Diagnostics.Middlewareare now stable. This release also transfersMicrosoft.Extensions.VectorData.AbstractionsandMicrosoft.Extensions.VectorData.ConformanceTestsfrom 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
VectorStoreVectorAttributeconstructor parameter #7460Dimensionsparameter was renamed todimensions(lowercase). This is a source-breaking change only — binary compatibility is preserved.new VectorStoreVectorAttribute(Dimensions: 1536), update it tonew VectorStoreVectorAttribute(dimensions: 1536).Experimental API Changes
Now Stable
EXTEXP0013):AddHttpLogEnricher<T>,IHttpLogEnricher, andRequestHeadersLogEnricherOptions.HeadersDataClasses#7380What's Changed
AI
Vector Data
AI Evaluation
ASP.NET Core Extensions
Service Discovery
Documentation Updates
Test Improvements
... (truncated)
10.4.1
This release of the Microsoft.Extensions.AI packages adds new experimental APIs for Realtime client sessions and Text-to-Speech, along with OpenTelemetry and middleware improvements.
Packages in this release
Experimental API Changes
New Experimental APIs
Changes to Experimental APIs
NotSupportedException#7394What's Changed
AI
ITextToSpeechClientabstraction, middleware, and OpenAI implementation #7381 by @stephentoubVoiceActivityDetectionoptions to realtime session abstractions #7399 by @tarekghUriContentmediaTypeparameter optional with inference from URI file extension #7398 by @stephentoub (co-authored by @Copilot)gen_ai.client.operation.exceptionviaILogger LoggerMessageon OpenTelemetry instrumentation classes #7379 by @stephentoub (co-authored by @Copilot)invoke_workflowas an equivalent parent span toinvoke_agentinFunctionInvokingChatClient#7382 by @stephentoub (co-authored by @Copilot)HostedFileDownloadStreamexplicitly read-only #7394 by @stephentoub (co-authored by @Copilot)Documentation Updates
Test Improvements
Repository Infrastructure Updates
Acknowledgements
... (truncated)
10.4.0
This release advances the AI abstractions with new hosted file, web search, and reasoning content types, stabilizes MCP and tool approval APIs, adds streaming latency metrics to OpenTelemetry instrumentation, and delivers bug fixes across caching, data ingestion, and resource monitoring.
Experimental API Changes
Now Stable
MEAI001) #7299FakeLogCollector.GetLogsAsync(CancellationToken)is now stable (previouslyEXTEXP0003) #7332New Experimental APIs
AddExtendedHttpClientLoggingoverloads withwrapHandlersPipelineparameter (EXTEXP0013) #7231Removed Experimental APIs
MEAI001) #7353What's Changed
AI
Telemetry and Observability
HTTP Resilience and Diagnostics
... (truncated)
10.3.0
Experimental API Changes
Now Stable
IChatReducerinterface — graduated from experimental to stable. The interface is now stable; concrete implementations (MessageCountingChatReducer,SummarizingChatReducer,ReducingChatClient) remain experimental. #7235 by @jeffhandleyFunctionCallContentandFunctionResultContentunsealed — changed fromsealed classtoclass, enabling derivation. #7229 by @stephentoub (co-authored by @Copilot)Breaking Changes to Experimental APIs
MEAI001diagnostic ID was split into feature-specific constants. OpenAI-specific experimental APIs now useOPENAI001,OPENAI002, orSCME0001instead ofMEAI001. Consumers who suppressedMEAI001for OpenAI APIs may need to suppressOPENAI001/OPENAI002instead. #7116 by @jeffhandley (co-authored by @Copilot), #7235 by @jeffhandleyNew Experimental APIs
MessageCountingChatReducer,SummarizingChatReducer,ReducingChatClient, andUseChatReducerbuilder extension. #7235 by @jeffhandleyOPENAI001,OPENAI002). #7235 by @jeffhandleyImageGenerationToolCallContentandImageGenerationToolResultContent— added to JSON serialization infrastructure. #7275 by @stephentoub (co-authored by @Copilot)What's Changed
AI
Diagnostics, Health Checks, and Resource Monitoring
Service Discovery
... (truncated)
10.2.0
What's Changed
SummarizingChatReducerintegration tests by @MackinnonBuck in Fix expected conversation length inSummarizingChatReducerintegration tests dotnet/extensions#7119New Contributors
Full Changelog: dotnet/extensions@v10.1...v10.2.0
10.1.0
What's Changed
Microsoft.Extensions.DataIngestionin AI Chat Web template by @MackinnonBuck in UseMicrosoft.Extensions.DataIngestionin AI Chat Web template dotnet/extensions#7023... (truncated)
Commits viewable in compare view.
Updated Microsoft.Extensions.Caching.StackExchangeRedis from 10.0.0 to 10.0.11.
Release notes
Sourced from Microsoft.Extensions.Caching.StackExchangeRedis's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.Configuration from 10.0.10 to 10.0.11.
Release notes
Sourced from Microsoft.Extensions.Configuration's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.DependencyInjection from 10.0.10 to 10.0.11.
Release notes
Sourced from Microsoft.Extensions.DependencyInjection's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.0 to 10.0.11.
Release notes
Sourced from Microsoft.Extensions.DependencyInjection.Abstractions's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.Diagnostics.Testing from 10.0.0 to 10.9.0.
Release notes
Sourced from Microsoft.Extensions.Diagnostics.Testing's releases.
10.9.0
Version 10.9.0 is headlined by changes in these areas:
RoutingChatClientbase class, withSemanticRoutingChatClientas a concrete semantic-routing implementation. Separately, the abstractFailoverChatClientspecialization and its concreteOrderedFailoverChatClientimplementation add failover routing.Experimental API Changes
New Experimental APIs
EXTEXP0013) #7602MEAI001) #7662What's Changed
AI (
Microsoft.Extensions.AI,Microsoft.Extensions.AI.Abstractions, andMicrosoft.Extensions.AI.OpenAI)Note: Microsoft.Extensions.AI.OpenAI constrains its dependency for OpenAI to 2.12.x, preventing OpenAI updates to 2.13.0+ due to an incompatibility. We expect to release Microsoft.Extensions.AI.OpenAI version 10.9.1 during the week of August 17 to address this issue.
HTTP Resilience and Diagnostics (
Microsoft.Extensions.Http.ResilienceandMicrosoft.Extensions.Http.Diagnostics)ASP.NET Core Extensions (
Microsoft.AspNetCore.Diagnostics.Middleware)Logging Source Generator (
Microsoft.Gen.Logging)AI Evaluation (
Microsoft.Extensions.AI.Evaluation.Reporting)Project Templates (
Microsoft.McpServer.ProjectTemplates)... (truncated)
10.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 PlatformPackages in this release
What's Changed
Project templates
--provideroption is now required with no default (#7667).Aspire.Hosting.AppHostto13.4.6andCommunityToolkit.VectorData.SqliteVecto1.0.0-preview.4(alignedSystem.Linq.AsyncEnumerableto10.0.9), replacing earlier workaround package pins (#7639).Full Changelog
10.8.3
Packages in this release
Experimental API Changes
Experimental API behavior updates
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
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
List<AIContent>contexts compile and round-trip without requiring MEAI001 suppression (#7659).Full Changelog
10.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
Update: August 7, 2026
The Microsoft.Extensions.VectorData.Abstractions package was initially excluded from this release by mistake. Because Microsoft.Extensions.VectorData.ConformanceTests has a dependency on Microsoft.Extensions.VectorData.Abstractions, that led to failures when updating to Microsoft.Extensions.VectorData.ConformanceTests 10.8.2.
Microsoft.Extensions.VectorData.Abstractions was published August 7, 2026 to resolve that issue.
What's Changed
AI
Acknowledgements
Full Changelog: dotnet/extensions@v10.8.1...v10.8.2
10.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
What's Changed
AI
Acknowledgements
Full Changelog: dotnet/extensions@v10.8.0...v10.8.1
10.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
AIFunctionNameAttributeandAIParameterNameAttribute#7610 by @jozkee (co-authored by @jeffhandley @Copilot)ToolApprovalRequestContent.RequiresConfirmation(MEAI001) #7549 by @javiercn (co-authored by @Copilot)What's Changed
AI
Vector Data
Documentation Updates
Test Improvements
Repository Infrastructure Updates
... (truncated)
10.7.0
v10.7.0 graduates the Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes package to stable. The package registers a Kubernetes-aware
ResourceQuotaProviderthat reads the pod's CPU and memory requests and limits and exposes them toMicrosoft.Extensions.Diagnostics.ResourceMonitoringas baseline and maximum quotas, which then feed the request and limit dimensions of the published resource utilization metrics. The companionResourceQuotaandResourceQuotaProvidertypes inMicrosoft.Extensions.Diagnostics.ResourceMonitoringgraduate 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.OpenAImoves to OpenAI 2.11.0 and fixes a deserialization bug inToolJson.AdditionalPropertiesso that JSON SchemaadditionalPropertiesvalues shaped as sub-schema objects (for example{"type":"string"}) are preserved instead of throwing during deserialization.HostedFileContent.SizeInBytesandHostedFileContent.CreatedAtgraduate to stable since both values are consistently available across hosted-file providers, whilePurposeandScoperemain experimental as provider-shaped vocabulary.FunctionInvokingChatClientdrops a backward-compat path that auto-markedToolApprovalResponseContententries withInformationalOnly: true; consumers that need to continue accepting sessions serialized before #7468 can use the sampleApprovalHistoryNormalizingChatClientmiddleware added in the test project.Experimental API Changes
Now Stable
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetespackage is now stable #7253ResourceQuotaandResourceQuotaProviderAPIs are now stable (previouslyEXTEXP0008) #7253HostedFileContent.SizeInBytesandHostedFileContent.CreatedAtare now stable (previouslyMEAI001) #7513What's Changed
AI
Diagnostics, Health Checks, and Resource Monitoring
Repository Infrastructure Updates
Acknowledgements
Full Changelog: dotnet/extensions@v10.6.0...v10.7.0
10.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
MEAI001) #7512What's Changed
AI
Repository Infrastructure Updates
Acknowledgements
Full Changelog: dotnet/extensions@v10.5.2...v10.6.0
10.5.2
This patch release ships a single fix to
Microsoft.Extensions.VectorData.Abstractions, correctingStorageNameresolution when external serialization is enabled.Microsoft.Extensions.VectorData.ConformanceTests,Microsoft.Extensions.AI.Abstractions,Microsoft.Extensions.AI, andMicrosoft.Extensions.AI.OpenAIare published alongside it for version coherency — they contain no code changes from 10.5.1.Packages in this release
What's Changed
Microsoft.Extensions.VectorData.Abstractions
StorageNamebehavior when external serialization is enabled, and disable a warning fornet462. (by @roji in #7475)Full Changelog: dotnet/extensions@v10.5.1...v10.5.2
10.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
Experimental API Changes
Now Stable
The following types previously emitted the
MEAI001experimental diagnostic and are now stable.CodeInterpreterToolCallContentCodeInterpreterToolResultContentWebSearchToolCallContentWebSearchToolResultContentImageGenerationToolCallContentImageGenerationToolResultContentHostedImageGenerationToolImageGenerationOptionsImageGenerationResponseFormat(theHostedenum value remains experimental)IImageGeneratorand the rest of the image generation infrastructure also remain experimentalNew Experimental APIs
The following new APIs emit the
MEAI001experimental diagnostic.HostedToolSearchToolwithDeferredToolsfor tool-search-driven deferred tool loading #7471OpenAIRequestPoliciesextension hook for appendingSystem.ClientModel.PipelinePolicyinstances to outgoing OpenAI requests #7495Breaking 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.Description has been truncated