Skip to content

13.5 Change log

github-actions[bot] edited this page Jun 4, 2026 · 165 revisions

Table of Contents

7 new features, 18 improvements, 16 bug fixes

โ„น๏ธ This changelog is automatically generated from merged pull requests and may contain inaccuracies. For official release notes, see https://aka.ms/aspire/update-latest.

What's New

๐Ÿ  AppHost

9 improvements, 3 bug fixes

Improvements

  1. ๐Ÿค– Foundry Local integration updated to use foundry CLI
    The Foundry Local integration (RunAsFoundryLocal) now uses the installed foundry CLI for service lifecycle management instead of internal SDK APIs, ensuring compatibility with Foundry Local 1.1.0. The AppHost API is unchanged, but the foundry CLI must be installed and available on PATH.
    Owner: @sebastienros
    Changes: #17889
    ๐Ÿ“ Documentation required

  2. โธ๏ธ Defer explicit-start resource configuration
    Session-scoped resources marked with WithExplicitStart() no longer run their execution configuration callbacks (arguments, environment variables, certificates) until the user manually starts them. Previously these callbacks ran at AppHost startup, which could prompt for user input prematurely.
    Owner: @danegsta
    Changes: #17825

  3. ๐ŸŒ DevTunnel region configuration
    Added a Region property to DevTunnelOptions, allowing you to specify the region where the dev tunnel is created. The fully qualified tunnel ID now includes the region.
    Owner: @DamianEdwards
    Changes: #14112
    ๐Ÿ“ Documentation required
    ๐ŸŒ Community contribution by @kola-tm

  4. ๐Ÿค– Updated Foundry hosted agent builder APIs
    The Aspire.Hosting.Foundry hosted-agent builder APIs have been updated with a cleaner project-first API (AsHostedAgent). Publish-mode agents now attach the Foundry project reference to the correct deployment target resource, and Azure Container Registry is only added for publish/deploy scenarios.
    Owner: @tommasodotNET
    Changes: #17545, #17687
    Docs: microsoft/aspire.dev#1130
    ๐Ÿ“ Documentation required

  5. ๐ŸŽ‰ TypeScript/polyglot AppHost support is GA
    TypeScript/polyglot AppHost support is now generally available. The ASPIREATS001 experimental diagnostic has been removed, so projects no longer need to suppress it.
    Owner: @sebastienros
    Changes: #17600
    ๐Ÿ“ Documentation required

  6. โš™๏ธ Standardize resource service endpoint URL config name
    The resource service endpoint URL is now resolved using KnownConfigNames (ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL) with a legacy fallback to DOTNET_RESOURCE_SERVICE_ENDPOINT_URL, improving consistency with Aspire naming conventions.
    Owner: @JamesNK
    Changes: #17385

  7. โš“ Helm v4.2.0+ version validation for Kubernetes deploy
    Aspire now validates that Helm v4.2.0 or later is installed before running Kubernetes deployments. Previously, missing or outdated Helm produced cryptic low-level errors; users now see a clear, actionable message.
    Owner: @mitchdenny
    Changes: #17491
    Docs: microsoft/aspire.dev#1090, microsoft/aspire.dev#1097
    ๐Ÿ“ Documentation required

  8. ๐ŸŒ Blazor gateway Docker Compose publish support
    Adds Docker Compose publish support for the Blazor gateway and addresses various review feedback items including resource name attributes and improved OTLP warning placement.
    Owner: @davidfowl
    Changes: #17384
    ๐Ÿ“ Documentation required
    ๐ŸŒ Community contribution by @javiercn

  9. ๐Ÿ”Œ Backchannel property compatibility improvements
    Preserves auxiliary backchannel backward compatibility while enabling rich JSON property values (numbers, booleans, arrays) for clients that advertise the new aux.v4 capability. The CLI now sends its client capabilities when using v2 resource snapshots.
    Owner: @adamint
    Changes: #17507

Bug fixes

  1. ๐Ÿ”— Fix proxyless endpoint on-demand allocation
    Fixed failures when proxyless container endpoint references were accessed before container creation. Endpoint allocation now uses dependency analysis to distinguish circular or unsafe references from safe lazy ones, so only truly unsafe references trigger early fallback allocation.
    Owner: @danegsta
    Changes: #17851, #17879

  2. ๐Ÿ”“ Fix TypeScript AppHost async callback deadlock
    Fixed a deadlock in TypeScript AppHosts where async callbacks stored in IOptions.Configure were invoked on the StreamJsonRpc non-concurrent dispatcher during BeforeStartEvent, causing the AppHost to hang.
    Owner: @IEvangelist
    Changes: #17575

  3. ๐ŸŒ Fix aspire run with .dev.localhost resource service URLs
    Fixed aspire run failing for polyglot AppHosts that use *.dev.localhost URLs. The resource service endpoint validation now accepts localhost subdomains in addition to loopback IPs.
    Owner: @danegsta
    Changes: #17639

๐Ÿ’ป CLI

2 new features, 6 improvements, 7 bug fixes

New features

  1. ๐Ÿ“ฆ Aspire CLI available via npm
    The Aspire CLI is now available as an npm package (@microsoft/aspire-cli), providing an alternative installation method. The update command and update notifier now detect and handle npm-installed versions.
    Owner: @adamint
    Changes: #17297
    ๐Ÿ“ Documentation required

  2. ๐Ÿ“ฆ Embedded Aspire skills bundle fallback
    The Aspire skills bundle is now embedded in the CLI as a reliable fallback. When GitHub release asset acquisition is unavailable, the CLI uses the embedded bundle and shows a non-fatal warning instead of failing the entire command.
    Owner: @IEvangelist
    Changes: #17537, #17547
    Docs: microsoft/aspire.dev#1137
    ๐Ÿ“ Documentation required

Improvements

  1. ๐Ÿ”€ dotnet run delegates to aspire run for bundled AppHosts
    When AspireUseCliBundle is enabled, running dotnet run on an AppHost project now automatically delegates to aspire run, ensuring bundled CLI behavior is used consistently. This means aspire run orchestration is applied even when developers use the familiar dotnet run command.
    Owner: @davidfowl
    Changes: #17748
    ๐Ÿ“ Documentation required

  2. ๐Ÿ“š Aspire skills catalog loaded from bundle manifest
    The aspire agent init skill catalog is now loaded dynamically from the bundle manifest instead of being hardcoded to three skills. All skills published in the microsoft/aspire-skills bundle are now discoverable by the CLI.
    Owner: @IEvangelist
    Changes: #17553
    Docs: microsoft/aspire.dev#1077
    ๐Ÿ“ Documentation required

  3. ๐Ÿ—‘๏ธ aspire ps --resources flag removed
    The --resources flag (and --include-hidden) has been removed from aspire ps, which now focuses on AppHost-level summaries. Use aspire describe to stream detailed resource data.
    Owner: @mitchdenny
    Changes: #17479
    โš ๏ธ Breaking change
    ๐Ÿ“ Documentation required

  4. ๐Ÿ”Ž Updated --search option help text
    The --search option in aspire logs and telemetry commands now includes a link to aka.ms/aspire/cli-search and clarifies support for both full-text search and field filters.
    Owner: @JamesNK
    Changes: #17544
    Docs: microsoft/aspire.dev#948, microsoft/aspire.dev#1081, microsoft/aspire.dev#1121

  5. ๐Ÿ” Enriched AppHost codegen TypeLoadException diagnostics
    When AppHost code generation fails due to a TypeLoadException (typically caused by a version mismatch between the CLI and the user project), the CLI now provides enriched diagnostic output to help identify the cause.
    Owner: @IEvangelist
    Changes: #17262
    Docs: microsoft/aspire.dev#1101, microsoft/aspire.dev#1103
    ๐Ÿ“ Documentation required

  6. ๐ŸŽจ Improved aspire agent init install output
    The aspire agent init command now collects updated skill/location pairs and prints one compact summary instead of repeating a success line for every skill at every install target.
    Owner: @IEvangelist
    Changes: #17519

Bug fixes

  1. ๐Ÿ›‘ Fix CLI Ctrl+C/SIGTERM shutdown responsiveness
    Multiple CLI shutdown improvements: fixed Ctrl+C responsiveness during AppHost startup, fixed a double-signal bug causing immediate force-kill, and added an immediate "Stopping Aspire..." message after 200ms when shutdown is in progress.
    Owner: @JamesNK
    Changes: #17588, #17652

  2. ๐Ÿ› Fix duplicate profiles block in empty AppHost template
    Fixed a bug where the empty C# AppHost template generated an aspire.config.json with a duplicated profiles block.
    Owner: @mitchdenny
    Changes: #17781

  3. ๐Ÿ“‹ Fix aspire ls discovery and settings bugs
    Fixed five bugs in aspire ls related to the settings discovery pipeline: settings.json compatibility, aspire.config.json handling, parallel discovery races, macOS symlink resolution, and discovery path normalization.
    Owner: @adamint
    Changes: #17631

  4. ๐Ÿ”ง Fix localhive.sh CLI install with subdirectories
    Fixed localhive.sh CLI installation failing when the publish output contains subdirectories such as culture-specific resource folders. The script now uses cp -r to correctly copy all files and directories.
    Owner: @sebastienros
    Changes: #17670
    Docs: microsoft/aspire.dev#1128

  5. ๐Ÿ› Fix aspire stop false failure on Unix
    Fixed a bug where aspire stop falsely reported failure on Unix because the AppHost process was orphaned during the shutdown cascade instead of being properly reaped.
    Owner: @danegsta
    Changes: #17612

  6. ๐Ÿ’ฌ Friendly error for aspire do --list-steps without a step
    Running aspire do --list-steps without specifying a step now gives a clear validation error instead of launching the AppHost and crashing with an obscure exception.
    Owner: @mitchdenny
    Changes: #17535
    Docs: microsoft/aspire.dev#1091
    ๐Ÿ“ Documentation required

  7. ๐Ÿ”’ Fix Aspire skills attestation verification
    Fixed a bug where aspire agent init failed to install the Aspire skills bundle because the attestation verifier used a stale SLSA build type URL. The verifier now accepts the current GitHub Actions build type URL.
    Owner: @IEvangelist
    Changes: #17521

๐Ÿ“Š Dashboard

1 new feature, 2 improvements, 1 bug fix

New features

  1. ๐Ÿ• Timestamp filter for telemetry
    You can now filter telemetry logs and traces by timestamp using a dedicated timestamp search qualifier in the Aspire Dashboard filter dialog.
    Owner: @JamesNK
    Changes: #17816
    ๐Ÿ“ Documentation required

Improvements

  1. ๐Ÿ”ข Equality operators in numeric telemetry filter
    The telemetry filter dialog now includes == and != operators for numeric fields, making it easier to filter for exact values in logs and traces.
    Owner: @JamesNK
    Changes: #17708
    ๐ŸŒ Community contribution by @ellahathaway

  2. ๐Ÿ“‹ Dashboard startup log formatting improvements
    Dashboard startup log output now uses indented bullet formatting for URLs and emits the container access warning as a separate log entry. The legacy login URL line is also restored so dotnet watch can detect AppHost readiness and auto-launch the browser.
    Owner: @JamesNK
    Changes: #17595, #17610

Bug fixes

  1. ๐Ÿ”„ Fix telemetry streaming with resource filter
    Fixed a bug where streaming telemetry (spans/logs) with a resource filter would return empty immediately if the resource had not yet emitted any telemetry. The stream now waits for the resource to appear before returning results.
    Owner: @JamesNK
    Changes: #17821

๐Ÿงฉ Extensions

4 new features, 1 improvement, 3 bug fixes

New features

  1. ๐ŸŽฎ Resource commands in VS Code tree view
    Resource commands (such as Start, Stop, and custom commands) are now displayed as child items under each resource in the Aspire VS Code extension tree view. Both enabled and disabled commands are shown.
    Owner: @adamint
    Changes: #17698
    ๐Ÿ“ Documentation required
    ๐ŸŒ Community contribution by @shivamgoel008

  2. ๐Ÿ“ก VS Code extension telemetry
    The VS Code extension now collects telemetry signals including extension activation, debug session start/stop, and dashboard interactions to help improve the product. Data collection follows Microsoft privacy policies.
    Owner: @adamint
    Changes: #17723
    ๐Ÿ“ Documentation required

  3. ๐Ÿ”— Support launchUrl in launchSettings.json
    The VS Code extension now respects the launchUrl property in launchSettings.json, using it as the serverReadyAction URI format when launching the debugger.
    Owner: @adamint
    Changes: #17634
    ๐Ÿ“ Documentation required
    ๐ŸŒ Community contribution by @neoGeneva

  4. ๐Ÿ—‚๏ธ Show discovered AppHosts in VS Code Aspire pane
    The VS Code Aspire pane now displays idle (non-running) AppHosts discovered via aspire ls, with right-click context menu actions to Run, Debug, Open Source, or Copy Path.
    Owner: @adamint
    Changes: #17506
    ๐Ÿ“ Documentation required
    ๐ŸŒ Community contribution by @ellahathaway

Improvements

  1. ๐Ÿท๏ธ VS Code extension renamed to Aspire
    The VS Code extension has been rebranded from ".NET Aspire" to "Aspire". Users will see the updated display name and icon in the VS Code marketplace and extension panel.
    Owner: @adamint
    Changes: #17843

Bug fixes

  1. ๐Ÿ”’ Security fixes in VS Code extension dependencies
    Upgraded the undici dependency in the VS Code extension to 7.27.0 to address three security vulnerabilities: CRLF injection via the upgrade option, a WebSocket 64-bit length parser crash, and HTTP request/response smuggling.
    Owner: @IEvangelist
    Changes: #17868

  2. ๐Ÿ”’ Security update: tmp package path traversal fix
    Updated the tmp npm package to 0.2.6 in the VS Code extension to resolve a path traversal vulnerability (GHSA-ph9p-34f9-6g65).
    Owner: @IEvangelist
    Changes: #17594
    Docs: microsoft/aspire.dev#1123

  3. ๐Ÿ› ๏ธ Fix VS Code AppHost launch path resolution
    Fixed an issue in the VS Code extension where starting an Aspire debug session from a source file (e.g., Program.cs) would pass the source path to the CLI instead of the project file path, causing the session to fail.
    Owner: @davidfowl
    Changes: #17408

๐Ÿ”Œ Integrations

2 bug fixes

Bug fixes

  1. ๐Ÿ”’ Fix Redis TLS persistent container startup deadlock
    Fixed a deadlock that could occur during Redis container startup when TLS was enabled and the container used a persistent lifetime. The TLS startup arguments now correctly use target-port bindings instead of allocated ports.
    Owner: @danegsta
    Changes: #17827

  2. ๐Ÿ› Fix EF Hosting migration pipeline step handling
    Fixed issues in the Entity Framework hosting integration migration pipeline where migration steps were unconditionally added to the bundle-generate step. Improves reliability of EF migration orchestration in AppHost.
    Owner: @AndriySvyryd
    Changes: #16966


To provide feedback, comment on the Changelog feedback issue (e.g., "Exclude PR #1234", "Rename: X โ†’ Y", "Merge PRs #1234 and #5678").

PRs processed: โœ… 46 included ยท โŒ 36 excluded ยท โณ 0 unprocessed ยท 82 total merged in milestone (View full PR tracker) Docs PRs: โœ… 13 included ยท โŒ 44 excluded ยท โณ 0 unprocessed ยท 57 total from microsoft/aspire.dev (View docs PR tracker) PRs analyzed through: #17889 merged 2026-06-03 23:48 UTC

Clone this wiki locally