Releases: microsoft/aspire
Aspire 13.4.2
What's New in Aspire 13.4.2
Patch release for Aspire 13.4 with a fix for Redis persistent container deadlock on startup when using TLS.
🐛 Fixes
- 🔴 Redis with
WithLifetime(ContainerLifetime.Persistent)could deadlock on startup — Redis TLS startup arguments used the public/allocated host ports instead of the internal target ports. When the public port differed from the target port (or was not yet allocated) the container would listen on an unexpected port and become unreachable. The TLS and non-TLS startup arguments now bind to target ports, matching what Redis expects internally. Fixes #17822. (#17827, backported via #17850,@danegsta)
🏷️ Housekeeping
- 🚀 Bumped branding to 13.4.2 (#17876)
Full Changelog: v13.4.1...v13.4.2
Full commit: d7d0b6759ce4b936c76bc4775814d27db560dd6d
Generated by Generate release notes for a new stable Aspire release · ● 5M
Aspire 13.4.1
What's New in Aspire 13.4.1
Patch release for Aspire 13.4 with fixes for explicit-start resource lifecycle callbacks, Redis persistent container startup, proxyless endpoint allocation, and a duplicated profiles block in the empty C# AppHost template.
🐛 Fixes
- ⏱️ Explicit-start resources triggered lifecycle callbacks too early — Session-scoped resources marked with
WithExplicitStart()were having their execution configuration callbacks (environment variables, arguments, certificates) evaluated at AppHost startup instead of at manual start. This meant user-interaction callbacks such asWithEnvironment(ctx => PromptForValueAsync(...))were called before the user triggered the resource. DCP registration is now deferred until the user manually starts the resource; persistent explicit-start resources still register immediately but patch the existing DCP record toStart = truerather than deleting and recreating it. Fixes #17813. (#17825, backported via #17826,@danegsta) - 🔴 Redis with
WithLifetime(ContainerLifetime.Persistent)could deadlock on startup — Redis TLS startup arguments used the public/allocated host ports instead of the internal target ports. When the public port differed from the target port (or was not yet allocated) the container would listen on an unexpected port and become unreachable. The TLS and non-TLS startup arguments now bind to target ports, matching what Redis expects internally. Fixes #17822. (#17827, backported via #17850,@danegsta) - 🔌 Proxyless container endpoint could hang when resolved before container creation — Referencing a proxyless container endpoint in an environment variable callback (before the container port spec was finalized) could deadlock. An on-demand allocation path now commits the target port as the fallback host port in that case; once
BuildContainerPortsruns, normal DCP dynamic port assignment takes over for any later resolution. (#17851, backported via #17859,@danegsta) - 📄 Empty C# AppHost template emitted duplicate
profilesblock —aspire new aspire-emptyon 13.4 produced anaspire.config.jsonwith aprofilesblock that duplicated the content already present inapphost.run.json, causing redundant launch configuration. The embedded template now contains only the requiredappHost.pathbinding; profile configuration lives exclusively inapphost.run.json. Fixes #17660. (#17781, backported via #17820,@mitchdenny)
🏷️ Housekeeping
- 📦 Added Aspire CLI npm package to the release pipeline so the npm distribution is published as part of stable releases. (#17297, backported via #17766,
@adamint) - 🚀 Bumped branding to 13.4.1 (#17819)
Full Changelog: v13.4.0...v13.4.1
Full commit: cf985fa817dd5863e7f62eb74fa1725ab5069ed2
Generated by Generate release notes for a new stable Aspire release · ● 1.0.40
Generated by Generate release notes for a new stable Aspire release · ● 3.9M
Aspire 13.4.0
Aspire 13.4.0
Aspire 13.4 brings major improvements to Foundry hosted agents, the Aspire skills system, CLI reliability, and TypeScript AppHost stability — with cross-compute-environment deployment now working end-to-end and TypeScript AppHost support — Aspire's polyglot story — reaching general availability (GA).
Highlights
- 🎉 TypeScript AppHost is now GA — First introduced as a preview in an earlier version of Aspire, the TypeScript AppHost — Aspire's polyglot story — has reached the quality bar for general availability and is now officially supported for production use alongside C#. As part of GA, the experimental markers on the Azure TypeScript AppHost (ATS) APIs have been removed and the ATS surface area is stable for 13.4.
- 🤖 Foundry hosted agents — Protocol selection (
responses/invocations) is now configurable from both C# and TypeScript AppHosts. Cross-compute-environment deployments (e.g., a Foundry hosted agent + an AKS consumer) now wire up correctly: endpoint resolution and the required Azure AI User RBAC role assignment on the Foundry account are generated automatically — no manualaz role assignment createsteps needed. - 🛠️ Aspire skills catalog from bundle —
aspire agent initnow drives its installable skill catalog from the bundle manifest, surfacing all six bundled skills (previously only three were visible). An embedded snapshot means the full catalog is available even in airgapped / disconnected environments. - 🔧 CLI reliability — Multiple CLI fixes: implicit-channel discovery restored,
aspire stopno longer falsely reports failure on Unix,aspire psno longer includes raw resource data (useaspire describefor detailed state),aspire newprefers the current CLI template version, friendly error foraspire do --list-stepswithout a step argument, and improved--searchoption description with documentation link. - ⌨️ TypeScript AppHost — Fixed a deadlock that occurred when lazy options callbacks invoked async methods; dev-localhost resource service URLs are now accepted for local development without extra configuration.
- 📊 Dashboard — Summary log formatting improved for readability,
dotnet watchdashboard auto-launch signal restored, and dynamic-port handling fixed forDistributedApplicationTestingBuilder. - ☸️ Kubernetes — The Helm CLI minimum version (≥ 4.2.0) is now validated before a Kubernetes deploy, giving a clear error instead of a cryptic failure.
⚠️ Aspire.Hosting.Blazorships as preview in 13.4 — A packaging issue with the Blazor gateway scripts means the package is intentionally marked preview for this release. Full stable support is targeted for 13.5.
⚠️ Notable changes
aspire psno longer includes raw resource data in its output. Useaspire describe <resource>to inspect detailed resource state.- Foundry hosted agent builder API shape updated — see #17545 and #17669 for the updated C# and TypeScript signatures.
Aspire.Hosting.Blazoris preview-versioned in 13.4 (SuppressFinalPackageVersion=true). A fix for theaddBlazorGatewaygateway script resolution error in TypeScript AppHosts is tracked in #17685.
📖 Learn more
For the full details on everything in this release, check out the What's new in Aspire 13.4 documentation.
Thank you to all the community contributors who helped make Aspire 13.4 possible! 💜
Full Changelog: v13.3.5...v13.4.0
Full commit: becb48e2d61099e35ae336d527d3875e928d6594
Generated by Generate release notes for a new stable Aspire release · ● 6.5M
Aspire 13.3.5
What's New in Aspire 13.3.5
Patch release for Aspire 13.3 with fixes for the Azure provisioning location prompt and an Aspire CLI named-pipe timeout on Linux with .NET SDK 10.0.300.
🐛 Fixes
- 📍 Azure provisioning location prompt not populated — Selecting an existing resource group during
aspire publishnow correctly populates dependent server-controlled fields (such as Location). Previously, server-provided values for disabled inputs were discarded, leaving those fields blank. (#17278, backported via #17291) - 🔧 Aspire CLI named-pipe timeout on Linux with .NET SDK 10.0.300 — The Aspire CLI was forcing
DOTNET_CLI_USE_MSBUILD_SERVER=1for alldotnet run/dotnet buildinvocations. On Linux with SDK 10.0.300 this caused a named-pipe timeout that preventedaspire runfrom building the AppHost. The forced override has been removed so the SDK chooses MSBuild server behavior. Fixes #16849. (#17313, backported via #17314)
🏷️ Housekeeping
- ⬆️ Skipped log publish for WinGet/Homebrew installer pipeline jobs to fix Prepare Installers stage failures (#17134)
- 🚀 Bumped branding to 13.3.5 (#17315)
Full Changelog: v13.3.4...v13.3.5
Full commit: 70b33bcb5f64c75e3ab6f57616545f35bd43dc81
Generated by Generate release notes for a new stable Aspire release · ● 4.3M
Aspire 13.3.4
What's New in Aspire 13.3.4
Patch release for Aspire 13.3 with a fix for the Aspire skill description exceeding agent host limits.
🐛 Fixes
- 📝 Aspire skill description too long for agent hosts — The
SKILL.mdgenerated byaspire agent initincluded a frontmatter description that exceeded the 1024-character limit enforced by agent hosts such as Codex and Copilot CLI, causing the Aspire skill to fail to load. The bundled skill description has been shortened to stay within the limit. (#17183, backported via #17188)
🏷️ Housekeeping
- 🚀 Bumped branding to 13.3.4 (#17215)
Full commit: 75080796af797483231a9da2d1642b5130617565
Generated by Generate release notes for a new stable Aspire release · ● 3.6M
Aspire 13.3.3
What's New in Aspire 13.3.3
Patch release for Aspire 13.3 with fixes for debug log level leaking into user resources, Keycloak HTTPS endpoint token invalidation, and endpoint materialization in HostResourceWithEndpoints.
🐛 Fixes
- 🔇 Debug log level leaking into user resources —
Logging__LogLevel__Default=Debugset by the app host was being inherited by all user resources, silently changing their logging verbosity. The app host now usesASPIRE_APPHOST_LOGLEVELinstead, which is scoped to Aspire processes only. (#17071, backported via #17078) - 🔑 Keycloak HTTPS primary endpoint — Fixed a regression where Keycloak tokens became invalid after an app host restart because the HTTPS endpoint port was dynamic. When developer certificates are enabled, Keycloak's primary endpoint is now upgraded to HTTPS directly, and the endpoint name is set to
httpto enable standardhttp+https://service discovery URLs. (#17058, backported via #17063) - 🔌 Endpoint materialization in
HostResourceWithEndpoints— Endpoints configured viaHostResourceWithEndpointsare now correctly materialized, ensuring endpoint resolution and service discovery work as expected. (#17091, backported via #17092)
🏷️ Housekeeping
- ⬆️ Bumped DCP (Microsoft.DeveloperControlPlane) from 0.23.5 → 0.23.6 — includes fixes for Kubernetes OpenAPI generator types that caused
[SHOULD NOT HAPPEN] failed to update managedFieldserrors. (#17070) - 🚀 Bumped branding to 13.3.3 (#17088)
Full commit: a4615e7c6def6cba4703cdbd84009cd3da9a261b
Aspire 13.3.2
What's New in Aspire 13.3.2
Patch release for Aspire 13.3 with a fix for container tunnel startup when tunnel-dependent containers use WaitFor().
🐛 Fixes
- 🚇 Fix
WaitFor()for tunnel-dependent containers — The container tunnel implementation that shipped in Aspire 13.3 deadlocked at startup when tunnel-using containers waited on other resources, because resource waits blockedResourceStartingbefore the tunnel initialization could complete. Container and tunnel startup have been refactored to cooperate correctly, and additional tunnel-dependent containers can now be started at any point during the application lifecycle. Also improves error reporting for container tunnel failures. (#16988, backported via #16993)
🏷️ Housekeeping
- 🚀 Bumped branding to 13.3.2 (#17053)
Aspire 13.3.1
Aspire 13.3.1
What's New in Aspire 13.3.1
Patch release for Aspire 13.3 with a regression fix for aspire run and a DCP bump.
🐛 Fixes
- 🏃
aspire runcompute environment validation — Skip compute environment validation in run mode so customers no longer hitResource '<name>' is configured to publish as an Azure Container App, but there are no 'AzureContainerAppEnvironmentResource' resources. Ensure you have added one by calling 'AddAzureContainerAppEnvironment'.errors during local runs. The check is now only performed in publish mode, matching pre-13.3 behavior. (#16945, backported via #16952)
🏷️ Housekeeping
Aspire 13.3.0
Aspire 13.3.0
Aspire 13.3 is here! 🚀 This release is packed with new ways to deploy, debug, and build distributed apps — including aspire destroy, browser telemetry in the dashboard, Kubernetes deployment, first-class JavaScript publishing, and major TypeScript AppHost parity
improvements.
Highlights
- 🧹 Clean teardown — New
aspire destroytears down Azure, Kubernetes, and Docker Compose deployments, and pipeline summaries make deploy/publish/destroy runs easier to follow. - 🔍 Frontend telemetry — Aspire.Hosting.Browsers captures browser console logs, network requests, and screenshots right in the Aspire dashboard.
- ☸️ Kubernetes deploy preview —
aspire deploycan now generate Helm-based Kubernetes deployments, with first-class Ingress and Gateway API routing. - 🟨 JavaScript publishing — New
PublishAs*methods support static sites, Node servers, npm-script apps, Next.js, Vite, Bun, Yarn, and pnpm. - 🌐 TypeScript AppHost parity — Unified
withEnvironment, Docker Compose hooks, endpoint expressions, Azure Container Apps domains, and more close the gap with C# AppHosts. - 🛠️ CLI upgrades — Run the standalone dashboard with
aspire dashboard run, install the CLI as a NativeAOTdotnet tool, and search API docs from the terminal. - ☁️ Azure goodness — New Azure Front Door, Network Security Perimeter, AKS, private endpoint, and Foundry Prompt Agent support.
- 🐳 Better containers — The Aspire container tunnel is now enabled by default for consistent host connectivity across Docker Desktop, Docker Engine, and Podman.
⚠️ Breaking changes
Notable breaking changes include --log-level becoming --pipeline-log-level, the dashboard MCP server being replaced by aspire agent init, dotnet new aspire-py-starter moving to aspire new aspire-py-starter, and several API shape updates across AKS,
Foundry, JavaScript diagnostics, and TypeScript AppHost helpers.
See the full list in the Aspire 13.3 breaking changes.
📖 Learn more
For the full details, examples, migration guidance, and everything new in this release, check out What's new in Aspire 13.3.
Thank you to all the community contributors who helped make Aspire 13.3 possible! 💜
Aspire 13.2.4
Aspire 13.2.4
What's New in Aspire 13.2.4
Patch release addressing a security advisory in OpenTelemetry dependencies.
🐛 Fixes
- 🔒 Bumped OpenTelemetry dependencies to address CVE-2026-40894 (#16420)
🏷️ Housekeeping
- 🚀 Bumped branding to
13.2.4 (#16436)