Releases: microsoft/aspire
Release list
Aspire 13.5.2
What's New in Aspire 13.5.2
Patch release for Aspire 13.5 that removes an unused native helper binary from the Windows CLI archives so 13.5 servicing releases stay publishable to WinGet.
🐛 Fixes
- 🪟 Windows CLI archives shipped an unused ~4.9 MB
hex1bpty.exe— The Windows CLI archives (aspire-cli-win-{x64,arm64}-*.zip) bundled Hex1b's out-of-process PTY host, which Aspire never executes (DCP owns every pseudo-terminal Aspire surfaces). Besides the wasted download, the extra unexplained executable stalled the WinGet publish, since every binary in the archive goes through executable and malware validation. A build-only MSBuild target now drops the file from the CLI publish output; Unix native assets are unaffected. Regression new in 13.5. ([#19557](#19557), backport of #19554,@mitchdenny)
🏷️ Housekeeping
- 🚀 Bumped branding to 13.5.2
Full Changelog: [v13.5.1...v13.5.2](v13.5.1...v13.5.2)
Full commit: [a22cec24d76e764b3681977e314ab4a0aeed0240](a22cec2)
Aspire 13.5.1
What's New in Aspire 13.5.1
Patch release for Aspire 13.5 fixing a TypeScript/Java polyglot AppHost compatibility regression when running the 13.5 SDK under an older (13.4.x) CLI, plus a DCP update and release-pipeline housekeeping.
🐛 Fixes
-
🍎 Polyglot AppHosts could crash on startup on macOS — On macOS, polyglot (TypeScript/Python/Java/Go/Rust) AppHosts could crash during startup due to an interaction between how DCP's Go runtime forks detached processes and how .NET Native AOT installs its signal handlers. Updated DCP (Developer Control Plane) to 0.25.13 to resolve the crash. ([#19528](#19528))
-
🔗 Polyglot AppHosts on the 13.5 SDK crashed under an older CLI with
MissingMethodException— A TypeScript or Java AppHost built with the 13.5 SDK failed to start when launched by an older (13.4.x) CLI, because the newer codegen calledAspire.TypeSystemmembers that don't exist in the CLI's older contract. Code generation now probes for these additive capabilities before using them, so older CLIs skip only the unsupported feature and startup succeeds. Regression introduced in 13.5 by #19365. Fixes #19503. ([#19524](#19524), backport of #19506,@adamint)
🏷️ Housekeeping
-
📦 Updated DCP (Developer Control Plane) to 0.25.13 ([#19528](#19528))
-
🔧 Restored WinGet publication using .NET 9
wingetcreate([#19509](#19509)) -
🧹 Removed the pipeline-scoped
Publish-Build-Assetsgroup from the release pipeline ([#19523](#19523), [#19163](#19163))
Full Changelog: [v13.5.0...v13.5.1](v13.5.0...v13.5.1)
Full commit: [69db530a4816698cf1d5fa4557933e0ac4f127c6](69db530)
Aspire 13.5.0
Aspire 13.5.0
Aspire 13.5 is a developer-experience release focused on a richer, more interactive AppHost, closer C# and TypeScript parity, sharper tooling, more flexible deployment modeling, and a broad set of runtime-stability improvements.
Highlights
- 💬 Richer AppHost interactions — The Interaction Service now works across C# and TypeScript AppHosts with stable prompts and dynamic inputs, file uploads, progress dialogs, notifications, and user-defined resource command arguments that surface as dashboard controls and CLI options.
- 🖥️ Interactive terminal sessions — The experimental
WithTerminal()API lets resources host REPLs, shells, TUIs, and other interactive programs directly in the dashboard, with an opt-inaspire terminalCLI command for attaching from your shell. - 🌐 TypeScript AppHost is generally available — Polyglot AppHosts no longer require the
ASPIREATS001experimental diagnostic and gain custom health checks, container file copying, HTTPS developer certificates, faster startup, and several reliability fixes that further close the gap with C#. - 🛠️ CLI installation and reliability — The Aspire CLI is available through npm and Nix alongside Homebrew, WinGet, mise, and NuGet. New C# AppHosts enable the CLI bundle by default, while
aspire stop --force,aspire update --migrate,aspire doctor, docs search, signal handling, and stale-socket cleanup all improve day-to-day workflows. - 🎨 Refreshed dashboard — The dashboard adopts official Aspire branding and a new accessible design-token system, with timestamp and exact numeric telemetry filters, console-log text search, clearer reconnect and health-check experiences, and correct telemetry streaming while filters are active.
- 💻 Rebranded VS Code extension — The extension is now named Aspire and adds an in-editor dashboard, Bun and MAUI debugging, resource commands in the tree view, discovered AppHosts, improved parameter handling, and more efficient workspace discovery.
- ☸️ More expressive deployments — Kubernetes and AKS gain first-class persistent volumes, Azure Container Apps adds deterministic unique resource naming, Azure environments support delegated subnets, and Docker Compose can publish Blazor gateways and configure shared memory.
- ☁️ Expanded hosting integrations — Azure resources can be referenced across resource groups, subscriptions, and tenants; the new
Aspire.Hosting.Dotnetpackage models .NET projects by path; Radius deployment arrives in preview; and Foundry Local, Redis modules, dev tunnels, Go debugging, and other integrations gain new capabilities.
⚠️ Breaking changes
Notable changes include hosting context ServiceProvider properties being renamed to Services, PublishAsConnectionString becoming obsolete in favor of AddConnectionString, removal of aspire ps --resources and --include-hidden in favor of aspire describe, earlier proxyless endpoint port allocation, deprecation of the GitHub Models integration, removal of the dashboard AI Assistant, and opt-in rather than automatic dashboard launch from the VS Code extension.
See the full list and migration guidance in the Aspire 13.5 breaking changes.
📖 Learn more
For complete details, examples, migration guidance, and everything new in this release, read What's new in Aspire 13.5.
Thank you to all the community contributors who helped make Aspire 13.5 possible! 💜
Full Changelog: v13.4.6...v13.5.0
Full commit: e076d8e427cb3afb528dbd605acd74c3aea69f94
Aspire 13.4.6
What's New in Aspire 13.4.6
Patch release for Aspire 13.4 fixing polyglot AppHost code generation binding when CLI and SDK versions diverge, resource service port collision in --isolated mode, and a MongoDB.Driver dependency update.
🐛 Fixes
-
🔗 Polyglot AppHost code generation silently failed when CLI and SDK versions diverged —
Aspire.TypeSystemused a floating strong-nameAssemblyVersionthat changed with every build. When the installed Aspire CLI was built at a different version than the AppHost's SDK, the CLR couldn't satisfy the strong-name bind and every code generator (TypeScript, Python, Java, Go, Rust) was silently dropped, surfacing asNo code generator found for language: <lang>. TheAssemblyVersionis now frozen at a stable constant so any compatible CLI/SDK pair on 13.4 binds successfully. Relates to #18110 and #17910. (#18160,@sebastienros) -
🔌 Multiple AppHosts started with
--isolatedcollided on the resource service port — Both instances tried to bind to the same fixed port fromASPIRE_RESOURCE_SERVICE_ENDPOINT_URL, causing an "address already in use" error on the second instance.DashboardServiceHostnow binds to port 0 on loopback whenRandomizePortsis true (set by--isolated), letting the OS assign a unique port per instance. (#18341,@JamesNK) -
🍃 MongoDB.Driver updated to 3.9.0 — Removes a wrongly pinned
SharpCompresstransitive dependency and uses the correctedSnappiertransitive. Fixes #17981. (#18279,@Falco20019)
🏷️ Housekeeping
- 🚀 Bumped branding to 13.4.6 (#18343)
Full Changelog: v13.4.5...v13.4.6
Full commit: 87fe259e4fc244c599019a7b1304c85a1488f248
Generated by Generate release notes for a new stable Aspire release · 131 AIC · ⌖ 13.5 AIC · ⊞ 37.4K
Aspire 13.4.5
What's New in Aspire 13.4.5
Patch release for Aspire 13.4 clearing a transitive MessagePack security advisory, tightening CLI validation for Playwright configuration, and adding coding-agent detection to CLI telemetry.
🐛 Fixes
- 🛡️ Bumped StreamJsonRpc to 2.25.29 to clear the MessagePack GHSA-hv8m-jj95-wg3x (CVE-2026-48109) NU1903 advisory — The transitive MessagePack 2.5.192 dependency pulled in via StreamJsonRpc 2.22.23 fell within the advisory's vulnerable LZ4 decompression range. Aspire does not use
MessagePackFormatteror LZ4 — all StreamJsonRpc calls useSystemTextJsonFormatterover local Unix sockets — so the vulnerability was not reachable in practice. The bump clears the NU1903 warning for consumers of theAspire.Hostingpackage. (#18204,@mitchdenny) - 🎭
playwrightCliVersionvalues that are not valid SemVer 2.0 now fail fast with a clear diagnostic — Previously an invalid override (range expression, dist-tag likelatest, or av-prefixed string) would surface as a generic npm resolution failure. The value is now validated with strict SemVer parsing at startup; an error naming the configuration key and the offending value is emitted immediately. (#18205,@mitchdenny) - 🤖 CLI telemetry now detects and reports the calling coding agent — When the Aspire CLI is invoked from inside a known coding agent environment (GitHub Copilot CLI, VS Code Copilot agent, etc.) the agent name is included in the main CLI telemetry event. GitHub Copilot CLI is specifically identified as
copilot-cli. (#18240,@damianedwards)
🏷️ Housekeeping
- 📄 Refreshed the
@microsoft/aspire-clinpm package README to be TypeScript-only — updated examples to the currentts-startertemplate (apphost.mts/aspire.mjs), added a backing-services snippet showingaspire addfor PostgreSQL and Redis, and documentedaspire dashboard runas a standalone dashboard option. (#18221,@adamint)
Full Changelog: v13.4.4...v13.4.5
Full commit: 73114e86c64aeb9f3f3c7da8e37df1ae4281b27e
Generated by Generate release notes for a new stable Aspire release · ● 4.4M
Aspire 13.4.4
What's New in Aspire 13.4.4
Patch release for Aspire 13.4 with improved DCP connection reliability during request execution and consistent ExcludeFromMcp() filtering across all CLI MCP tools.
🐛 Fixes
- 🔌 DCP requests could fail permanently when the connection dropped mid-request — If the underlying DCP channel closed while a request was in flight, the error was surfaced directly instead of being retried. Reconnection is now attempted as part of the DCP request retry path so transient disconnections recover automatically without surfacing errors. (#18096,
@karolz-ms) - 🔍 Resources marked with
ExcludeFromMcp()were not consistently filtered from CLI MCP tools — Resources with theresource.excludeFromMcpproperty were not excluded uniformly from all CLI MCP tool results.list_resources,list_console_logs,execute_resource_command,list_structured_logs,list_traces, andlist_trace_structured_logsall now honor the exclusion, preventing excluded resources and their telemetry from appearing in agent context. (#18150,@JamesNK)
🏷️ Housekeeping
- 📦 Improved npm CLI package metadata and hardened npm publish validation in the release pipeline. (#18093,
@adamratzman)
Full Changelog: v13.4.3...v13.4.4
Full commit: ccc566c5ab3285c9beb8f38ede34734bb477c029
Aspire 13.4.3
What's New in Aspire 13.4.3
Patch release for Aspire 13.4 with a fix for persistent container endpoint allocation regressions introduced in 13.4.
🐛 Fixes
- 🔌 Persistent container endpoints had incorrect default behavior — Persistent containers were defaulting to proxyless endpoint behavior instead of the proxied behavior used by normal containers. This caused integrations that depend on endpoint allocation before resource startup (such as the KeyVault emulator) to fail. Persistent containers now default to proxied endpoints matching normal container behavior; opt out with
isProxied: falseorWithEndpointProxySupport(false). Proxyless container endpoints with only atargetPortspecified now also resolve immediately to that port instead of waiting for delayed allocation. (#17960,@danegsta)
🏷️ Housekeeping
- 🛠️ Unblocked WinGet manifest publishing on locked-down 1ES agents and updated manifest tags (#17958)
Full Changelog: v13.4.2...v13.4.3
Full commit: 4f218933552e18ff2874d1b6d5dc3fe671e3b6d9
Generated by Generate release notes for a new stable Aspire release · ● 4.7M
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