Repository navigation
Releases: microsoft/aspire
Release list
Aspire 13.6.4
What's New in Aspire 13.6.4
Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix.
🐛 Fixes
-
🖥️ Resources could fail to start after a DCP create request timed out — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature
FailedToStartstate when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured throughDcpPublisher:KubernetesApiTimeout,DcpPublisher:KubernetesInitializationAdditionalTimeout, andDcpPublisher:KubernetesCreateRecoveryTimeout. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes #20691. (#20868, backport of #20752, David Negstad (@danegsta)) -
☁️ TypeScript AppHosts could fail to publish parameterized Azure enum properties — Assigning a
bicep().parameter(...)expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. (#20767, backport of #20557, Sébastien Ros (@sebastienros)) -
🔒 CLI diagnostic logs now use owner-only permissions on Unix — Log files are restricted to owner read/write access (
0600), including reused files, and the dedicated Aspire logs directory uses owner-only access (0700), repairing existing permissions when needed. Newly created custom log directories also use0700; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. (#21282, backport of #21276, Mitch Denny (@mitchdenny))
Full Changelog: v13.6.3...v13.6.4
Full commit: c89352703f78ae46de90fbf751ed8b52b77b89bf
Aspire 13.6.3
What's New in Aspire 13.6.3
Patch release for Aspire 13.6 that improves resource orchestration reliability by preventing unread resource watches from stalling resource updates and operations.
🐛 Fixes
-
🖥️ Resource operations could stall when a watch stopped being read — AppHost now closes abandoned watch connections when setup is canceled and keeps reading resource events even when event handlers are slow. Resource event ordering, lifecycle callback dispatch, and the existing periodic reconnection safeguard are preserved. (#21002, backport of #20972, David Negstad (@danegsta))
-
🔄 Slow watchers could block other resource updates or watcher shutdown — The bundled Developer Control Plane (DCP) is updated to 0.26.6, which keeps internal lifecycle watches draining and uses bounded, asynchronous watch delivery to prevent unread watches from blocking resource-change publication and unrelated watcher shutdown. (#21215, David Negstad (@danegsta); includes microsoft/dcp#307)
Full Changelog: v13.6.2...v13.6.3
Full commit: 38294b1b31552dae42a516cffa0cbc737ec08976
Aspire 13.6.2
Full commit: af07e33f8d1ef733645138b3f8e36067d073148d
What's Changed
- [release/13.6] Bump version to 13.6.2 by David Negstad (@danegsta) with @Copilot in #20877
- [release/13.6] Pin MessagePack to 2.5.307 for security fixes by Eric Erhardt (@eerhardt) in #21156
Full Changelog: v13.6.1...v13.6.2
Aspire 13.6.1
What's New in Aspire 13.6.1
Patch release for Aspire 13.6 that reduces dashboard CPU usage during sustained metric ingestion, restores scrolling in the Metrics tree, improves dashboard navigation, fixes container exec watch failures, and ensures session-scoped containers are cleaned up when stopping .NET AppHosts on Windows.
🐛 Fixes
-
📊 Dashboard CPU usage could increase during long-running metric ingestion — Metric retention repeatedly scanned retained history on every insertion, causing steadily increasing CPU usage even with a fixed workload. Cleanup now skips dimensions below capacity and removes only the oldest surplus points when needed. Existing retention limits and exemplar behavior are unchanged, and no configuration changes are required. Regression introduced in 13.6. Fixes #20725. (#20747, backport of #20736, James Newton-King (@JamesNK))
-
📈 The Metrics tree could not be scrolled — The meter and instrument tree now scrolls when it exceeds the viewport, allowing you to reach and select instruments below the fold. Regression introduced in 13.6. Fixes #20728. (#20762, backport of #20758, Siri (@heyysiri))
-
🧭 Dashboard navigation could fail after a browser disconnect — Pending page-state updates now persist session state before navigating and skip navigation when the browser has disconnected, avoiding an unhandled navigation failure. The navigation rail's overflow button also has consistent sizing, icon alignment, and hover styling in expanded and collapsed layouts and both light and dark themes. (#20545, backport of #20527, James Newton-King (@JamesNK))
-
🖥️ Container exec watches could terminate shortly after AppHost startup — A stalled DCP watch connection could produce a critical
Watch task over Kubernetes ContainerExec resources terminated unexpectedlyerror and stop subsequent terminal state and log updates from being observed. Watch connection attempts now retry after timeouts, and periodic restarts correctly recreate connections without swallowing unrelated cancellation. Regression introduced in 13.6.0. (#20664, backport of #20466, Ankit Jain (@radical)) -
🪟 Session-scoped containers could remain running after stopping a .NET AppHost on Windows — AppHosts launched through
dotnet runordotnet watchnow allow DCP to finish resource cleanup during shutdown, including existing Ctrl+C andaspire stopflows. Persistent resources remain unaffected, while direct .NET launches and TypeScript/polyglot AppHosts retain their existing process protection. Fixes #20495. (#20514, backport of #20494, David Negstad (@danegsta))
Full Changelog: v13.6.0...v13.6.1
Full commit: 3751e615ad660621f2a7aa4c390ef48e08a0eed8
Aspire 13.6.0
Aspire 13.6.0
Aspire 13.6 brings persistent application history, a refreshed and more interactive dashboard, first-party Java and Rust hosting, and new Azure deployment options. Coordinated .NET builds, portable volume paths, sharper CLI workflows, and more capable editor tooling make it easier to build, debug, and deploy applications across languages.
Highlights
- 🗃️ Persistent, refreshed dashboard — SQLite-backed telemetry and resource snapshots let you revisit up to ten application runs, with read-only access to completed runs and default retention limits of 100,000 console log messages, structured logs, and traces each. The dashboard now ships as Native AOT and adopts Fluent UI v5 with a collapsible navigation rail.
- 🖥️ AppHost-owned terminals and database REPLs — Experimental terminal APIs let AppHosts create interactive sessions in a dashboard dock, dialog, or separate window. Opt-in
WithRepl()commands open bundled clients for PostgreSQL, MySQL, MongoDB, SQL Server, Redis, and Valkey, whileaspire terminal psandaspire terminal tape playsupport discovery and repeatable terminal interactions. - 🌐 First-party Java and Rust hosting — New
Aspire.Hosting.JavaandAspire.Hosting.Rustpackages bring Maven, Gradle, Spring Boot, Quarkus, and Cargo applications into the app model, with generated container builds and VS Code debugging. These integrations build on work that originated in the Aspire Community Toolkit. - 🛠️ More flexible AppHosts — The prerelease
Aspire.Hosting.Dotnetintegration coordinates compatible projects into shared restore and build groups and supports .NET SDK container publishing. Portable volume-path environment variables work across local execution and deployment, while TypeScript AppHosts gain standardappsettings.jsonconfiguration and Deno runtime support. - ⌨️ Sharper CLI workflows — Select launch profiles with
aspire runandaspire start, update repository-local CLI manifests withaspire update, create file-based C# AppHosts withaspire init --language csharp --file-based, and export TypeScript API data withaspire sdk export. Terminal commands no longer need a feature flag, Linux certificate trust includes Firefox NSS databases, andaspire stop --force --volumesadds explicit cleanup of Aspire-owned volumes. - 💻 More capable VS Code tooling — Coding agents can start and stop AppHosts through the extension, and the Aspire pane exposes deploy, publish, and pipeline actions. Multi-root discovery, worktree-scoped lifecycle operations, preserved launch arguments, clearer debug logs, and missing-debugger guidance make complex workspaces more predictable.
- ☁️ New Azure options in preview — Azure Connector Namespace models external-service connections and managed MCP server configurations. Azure Container Apps Sandboxes adds isolated sandbox deployments with configurable resource tiers and lifecycle policies, while Azure Container Apps Express offers a simplified environment option for rapid provisioning.
- ☸️ More expressive, reliable deployments — Experimental Azure Provisioning SDK proxies let polyglot AppHosts customize infrastructure. Deployment state is isolated under
ASPIRE_HOME, Kubernetes preserves inherited hostnames and embedded parameter values, and AKS gains persistent-volume provisioning and more reliable cleanup. - 🔌 Expanded integrations — Experimental Deno hosting and MongoDB replica sets join Foundry Toolboxes, remote Foundry Local endpoints, Blazor WebAssembly debugging, and configurable Dev Tunnel expiration. Azure Cosmos DB and AI Inference client integrations gain health checks, and the vNext Cosmos DB emulator sends its own telemetry to the dashboard.
⚠️ Breaking changes
Notable changes include automatic TLS for local MongoDB servers when a certificate is available, the Linux-based vNext Cosmos DB emulator becoming the default, new Azure Front Door origin names that can require cleanup of existing origins, portable connection-string environment-variable aliases on stricter deployment targets, and experimental terminal types moving from Aspire.Hosting.Terminals to Aspire.Hosting.ApplicationModel.
See the full list and migration guidance in the Aspire 13.6 breaking changes.
📖 Learn more
For complete details, examples, migration guidance, and everything new in this release, read What's new in Aspire 13.6.
Thank you to all the community contributors who helped make Aspire 13.6 possible! 💜
Full Changelog: v13.5.4...v13.6.0
Full commit: 56f3e9c0d216c0c7069dabb49dd0464e4827744f
Aspire 13.5.4
What's New in Aspire 13.5.4
Patch release for Aspire 13.5 that fixes Kafka health-check resource leaks, DevTunnel errors with automatically selected regions, misleading Azure emulator dashboard entries, and unintended changes to generated starter apps, plus Homebrew compatibility and Radius API diagnostic updates.
🐛 Fixes
-
📨 Kafka health checks leaked producers and polling threads — Each AppHost health-check execution created a new Kafka producer without disposing it, accumulating background threads over time. Health checks now reuse a producer per Kafka resource and dispose it with the AppHost, while keeping multiple Kafka resources independently configured. Fixes #20091. (#20094, backport of #20092, David Fowler (@davidfowl))
-
🌐 DevTunnels could fail when the region was selected automatically — Tunnel setup and health checks now use the cluster-qualified tunnel ID returned by the DevTunnel CLI for port operations and access queries. This fixes failures when a bare tunnel ID cannot be resolved for those operations. Regression introduced in 13.3. Fixes #18790. (#19853, backport of #19230, Vladyslav Danilchuk (@Vladipz))
-
☁️ Emulator-only AppHosts showed an unused Azure environment — The dashboard now hides the
azure-environmentresource when no Azure resources require cloud provisioning, instead of leaving it visible in Not started. It remains visible for apps that combine local emulators with resources requiring Azure provisioning. No AppHost changes are needed. Fixes #19617. (#19998, backport of #19843, Eric Erhardt (@eerhardt)) -
🧩 Starter app generation could alter unrelated JavaScript values — Dynamic port replacement could also replace matching numeric literals in bundled JavaScript, including Bootstrap timing values. Port substitutions are now restricted to
localhost:URLs, preserving the original library files while still configuring the requested ports. Fixes #20030. (#20110, backport of #20031, Bart Koelman (@bart-vmware), James Newton-King (@JamesNK)) -
🍎 Updated the Aspire Homebrew cask for Homebrew 6.x — Replaced deprecated cask URL and post-install syntax with the supported equivalents, resolving compatibility issues with current Homebrew while preserving install-channel metadata. (#20119, backport of #19965, André Silva (@askpt), Jose Perez Rodriguez (@joperezr))
-
🧪 Radius cloud-provider callback interfaces now carry the experimental diagnostic —
IAwsRadiusProviderBuilderandIAzureRadiusProviderBuilderare now marked withASPIRERADIUS003, matching the existingWithAwsProviderandWithAzureProvidermethods. Code referencing these interfaces directly must now acknowledge the same experimental API diagnostic. (#19874, Sébastien Ros (@sebastienros))
Full Changelog: v13.5.3...v13.5.4
Full commit: 9c1b401dd67746739044f68959cbf4d3d7af93a6
Aspire 13.5.3
What's New in Aspire 13.5.3
Patch release for Aspire 13.5 that fixes Dashboard Graph view crashes for resources with multi-path icons and restores missing public URLs for DevTunnel resources.
🐛 Fixes
-
📊 Dashboard Graph view could crash for Azure Blob resources — Resources such as those created with
AddBlobsuse icons containing multiple SVG paths, which caused an XML parsing exception and broke the dashboard circuit. The graph now combines multi-path icons correctly. Regression introduced in 13.5. Fixes #19489. (#19585, backport of #19579,@sebastienros) -
🌐 DevTunnel public URLs were missing from the Dashboard and MCP snapshots — DevTunnel port resources could report
RunningandHealthywhile showing no public URLs. Proxyless port allocation is now limited to compute and container resources, allowing DevTunnels to publish their actual public endpoints. Regression introduced in 13.5. Fixes #19496. (#19625, backport of #19590,@karolz-ms,@danegsta)
🏷️ Housekeeping
- 🚀 Bumped branding to 13.5.3
Full Changelog: v13.5.2...v13.5.3
Full commit: b5f143315ffb6968ea939a9978797a5b20e4c688
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