We are excited to share that our 9.5.0 release of Aspire has shipped! All of the packages are available in NuGet.org now. Head over to https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9.5 to find what's new in 9.5.0!
What's Changed
- Update AzureSqlServerResource to use the new AzurePowerShellScript provisioning feature by @eerhardt in #10290
- Add dashboard telemetry to interaction service by @JamesNK in #10272
- Add missing end quote for Outputs declaration by @benwitmanmsft in #10289
- Add option to console logs to wrap log lines by @JamesNK in #10271
- Refactor Azure Storage API by @sebastienros in #10241
- Branding updates for 9.5.0 by @joperezr in #10302
- Add logs to trace details by @JamesNK in #10281
- Add ContainerBuildOptions support to ResourceContainerImageBuilder for customizing dotnet publish by @Copilot in #10074
- Move IInteractionService and related types to Aspire.Hosting namespace by @Copilot in #10267
- [CI] Improve overall PR Tests time by @radical in #10309
- Add GitHub Models integration by @sebastienros in #10170
- Improve span details percentage calculation by @JamesNK in #10310
- [release/9.4] Add GitHub Models integration (#10170) (#10313) by @danmoseley in #10316
- Aspire cli: Add AOT builds for Linux, and macOS by @radical in #10275
- Add CTRL-C guidance message to aspire run command output by @Copilot in #10203
- Improve parameter resolution logging and exception handling in ParameterProcessor by @Copilot in #10320
- Make parameters and connection strings visible in dashboard by @Copilot in #10336
- Add Azure provisioning command handling and settings configuration by @davidfowl in #10038
- Fix hiding dismiss on inputs dialog by @JamesNK in #10349
- Fix missing 'name' property in TableService Bicep generation by @Copilot in #10334
- Improved Kubernetes publisher labels by @hewe-saxo in #10208
- Made changes to how parameter.Value works by @davidfowl in #10354
- Create appmodel.md by @davidfowl in #10358
- Force async execution of resource startup by @davidfowl in #10359
- Refactor ParameterResource to use Lazy initialization for value retrieval by @davidfowl in #10361
- Match name with ResourceCommandService by @JamesNK in #10370
- Share more package checking code between CLI and app host by @JamesNK in #10372
- Support uninstrumented peer visualization for parameters, and resources with connection strings and github models by @Copilot in #10340
- bump version of
Azure.Provisioning
by @ArcturusZhang in #10374 - Add xmldocs to generated metadata projects by @MattKotsenas in #9868
- Remove SqlServerScriptProvisioningResource by @eerhardt in #10385
- Update xunit.v3 to 3.0.0 stable by @Youssef1313 in #10371
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10390
- Add non-localhost URLs by @DamianEdwards in #10232
- Update contributing.md by @danespinosa in #10394
- Throw if container runtime is unhealthy during image build by @captainsafia in #10399
- Fix the update dependencies action by installing .NET 9 as well by @eerhardt in #10397
- Optimize trace detail page performance by @JamesNK in #10308
- Add quotation marks in dashboard around arguments with spaces in them by @adamint in #10404
- Harden Docker container runtime health check by @captainsafia in #10402
- Fix TryMatchAgainstResources to return false for multiple resource matches by @Copilot in #10411
- Fallback to previous DNS service discovery by @rzikm in #10140
- Simplify GH Models API keys experience by @sebastienros in #10424
- Fix parameter substitution in GitHub Models by @sebastienros in #10428
- Add scripts to download aspire-cli by @radical in #10254
- Ensure all YARP env vars are strings by @eerhardt in #10434
- Refactor async task handling to use WaitAsync for cancellation support by @davidfowl in #10425
- get-aspire-cli.ps1: Prepend the installation path to PATH instead of by @radical in #10437
- chore: drop Aspire.Cli.Tests unwanted dependencies by @DeagleGross in #10422
- Use CreateEmptyApplicationBuilder in Aspire.Cli by @eerhardt in #10441
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2750920 by @dotnet-bot in #10325
- Add support for parameter description & custom input rendering by @DamianEdwards in #10440
- Rename MessageBar interaction to Notification by @JamesNK in #10449
- Update dependencies to latest by @eerhardt in #10401
- Fix CLI install script printing unexpected '0' when executed via iex by @Copilot in #10459
- Remove PingAsync RPC method from backchannel interfaces and implementations by @Copilot in #10454
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10467
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10471
- Remove deprecated parameterless GetDashboardUrlsAsync method from AppHostRpcTarget by @Copilot in #10453
- Revert peer matching logic to fix database resource resolution regression by @Copilot in #10456
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10475
- Change CompleteInteractionAsync answers to object by @JamesNK in #10480
- Template name strings, default prompts, and template version selection changes. by @mitchdenny in #10444
- Improve friendly name generation for
aspire add
command add introduce pre-release package sub-menu. by @Copilot in #10485 - Fix WithHealthCheck method for ExternalServiceResource to access parameter values asynchronously by @Copilot in #10469
- Make sure logs are suppressed for health checks by @davidfowl in #10495
- Add markup escaping to ConsoleInteractionService to fix rendering issues by @Copilot in #10462
- Fix IInteractionService API limitations in CLI by making unsupported interactions fail instead of silently returning by @Copilot in #10499
- Specify names of parameters with default values by @DamianEdwards in #10502
- Fix interaction provider in dashboard handling duplicate messages by @JamesNK in #10500
- Update resource list in console logs after _showHiddenResources value changes by @adamint in #10406
- Add purple styling for default values in CLI prompts by @Copilot in #10474
- Force en-US for template install by @adamint in #10508
- Add EmulatorResourceAnnotation to Azure emulator resources for consistent tooling support by @Copilot in #10523
- Add preview indicator to 'aspire exec' command help text by @Copilot in #10522
- Update AddSecret extension methods to use consistent parameter names by @Copilot in #10521
- using-latest-daily.md: Update instructions to get cli by @radical in #10506
- Make container runtime health check conditional based on resource requirements by @Copilot in #10393
- Add aspire extension to nightly devcontainer by @adamint in #10445
- Revert "Fix IInteractionService API limitations in CLI by making unsu… by @davidfowl in #10538
- Update scripts to use the new Quality mappings to urls by @radical in #10479
- using-latest-daily.md: fix instructions for getting daily cli by @radical in #10544
- Add Experimental attribute to WithCustomInput method by @Copilot in #10535
- Add user-friendly error handling for
aspire new
when directory contains existing files by @Copilot in #10496 - update
Azure.Provisioning.Storage
to1.1.2
by @ArcturusZhang in #10414 - Add .NET SDK availability check to Aspire CLI commands by @Copilot in #10525
- Add runtime information to dashboard exception telemetry by @JamesNK in #10446
- Add server validation of interaction inputs by @JamesNK in #10527
- Properly handle specific IP endpoint TargetHost by @danegsta in #10517
- aspire-cli: Fix linux-arm64 and linux-musl-x64 to produce tarballs and not zip files by @radical in #10545
- get-aspire-cli: Some fixes and cleanup by @radical in #10578
- Fix telemetry opt out by @JamesNK in #10581
- Fix ShowDismiss setting not being used with message boxs or confirmations by @JamesNK in #10580
- Use proxied endpoints for aspire dashboard by @davidfowl in #10576
- Fire ResourceEndpointsAllocatedEvent event once for each logical app model resource by @danegsta in #10548
- Clean up publish/deploy command infrastructure and add context-sensitive completion messages by @Copilot in #10501
- Include .NET 10 global install in copilot setup steps by @danmoseley in #10577
- Rename AddBlobService to GetBlobService by @sebastienros in #10556
- Fix CLI hanging when dashboard fails to start by implementing ResourceFailedException by @Copilot in #10567
- DashboardHealthy = true (by default) by @mitchdenny in #10622
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2756050 by @dotnet-bot in #10604
- Fix GitHubModels health check dependency on IHttpClientFactory by @Copilot in #10624
- Update
WithOtlpExporter
XML Docs by @afscrome in #10603 - chore:
aspire exec --help
improvements by @DeagleGross in #10598 - fix:
aspire exec
fail fast improvements by @DeagleGross in #10606 - fix: aspire exec fails in AOT for
CommandOutput
serialization by @DeagleGross in #10625 - Update using-latest-daily.md by @davidfowl in #10631
- Move hardcoded cli strings to resx by @adamint in #10504
- Fix AddBlobs and AddBlobContainer when using default name by @eerhardt in #10635
- Update YARP container tag by @benjaminpetit in #10639
- Always set MSBUILDTERMINALLOGGER=false for all dotnet command executions in DotNetCliRunner by @Copilot in #10627
- Update FluentUI to 4.12.1 by @JamesNK in #10477
- Improve display of error log entries on trace details by @JamesNK in #10481
- cli-scripts README.md: fix the Quality value from 'ga' to 'release' by @radical in #10659
- Use specific classes for fluent menu items when styling to prevent text overflow by @adamint in #9827
- [CI] Enable Native AOT for Cli on linux-arm64, and linux-musl-x64 by @radical in #10663
- Add feature flag control for ExecCommand with default disabled by @Copilot in #10664
- Multi target projects that would otherwise cause issues when restored in higher TFMs by @joperezr in #10658
- Add ServiceDefaults to Yarp playground by @eerhardt in #10641
- Update README.md with new discord by @maddymontaquila in #10660
- Update Aspire.Hosting README.md with comprehensive Application Model Overview by @Copilot in #10554
- Remove duplicate startup logging from DashboardLifecycleHook by @Copilot in #10691
- Fix url for parameter sample by @maddymontaquila in #10679
- Rename EventingExtensions class to DistributedApplicationEventingExtensions by @Copilot in #10688
- aspire config set writes appHostPath to ~/.aspire/settings.json globally, causing incorrect path resolution by @Copilot in #10700
- Clarify working directory assignment for project launch configurations by @karolz-ms in #10681
- Mark ParameterResource.Value as obsolete in favor of GetValueAsync and direct usage by @Copilot in #10363
- Add filter grouping labels for resource filters by @adamint in #10713
- Always update resource list in console logs after hidden bool changes by @adamint in #10705
- Change resource details view header to heading element by @adamint in #10708
- Ensure idempotency for AddAsExistingResource across all Azure resource implementations by @Copilot in #10562
- Enhance orphan detection in Aspire AppHost to be robust against PID reuse by @Copilot in #10673
- Update YARP README to reflect current implementation and API patterns by @Copilot in #10706
- [release/9.4] Mark Aspire.CLI as stable by @joperezr in #10724
- Add Aspire CLI installation instructions to main README by @Copilot in #10732
- Improve parameter description display by @JamesNK in #10696
- Update mobile and desktop toolbars by @adamint in #10407
- Update README.md with new Aspire overview and useful links section by @Copilot in #10733
- Workaround for fluent select keyboard enter bug by @adamint in #10729
- Don't run expensive build/test workflows for markdown-only changes by @Copilot in #10737
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2760978 by @dotnet-bot in #10739
- feat(cli): aspire exec against container by @DeagleGross in #10380
- [Automated] Update API Surface Area by @github-actions[bot] in #9359
- Add AppHost debug support by @adamint in #10369
- Add SSH Remote support for Aspire port forwarding settings by @Copilot in #10715
- Update total items text to Showing X {item}, show for resources. Announce when # of shown items changes by @adamint in #10712
- Don't show (None) on console logs if there is only one resource by @adamint in #10725
- Add links between telemetry and resources in grid values by @JamesNK in #10648
- Fix 6648 by @mitchdenny in #10769
- Update gitignore to ignore Aspire CLI files by @JamesNK in #10768
- Fix span link attributes not displayed by @JamesNK in #10747
- Error traces and spans are displayed with error color by @JamesNK in #10742
- Add more icons to dashboard property values by @JamesNK in #10767
- Fix update dependencies workflow issue by generating a temporary sln file by @joperezr in #10781
- [Automated] Update Playground Manifests by @github-actions[bot] in #10249
- Fix exemplars that have no tracing information by @JamesNK in #10745
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2762294 by @dotnet-bot in #10766
- Exe, ext service, + param icon updates for dashboard resource view + graph by @maddymontaquila in #10762
- External Services with URL Parameter fails to generate manifests by @eerhardt in #10790
- Whats new generation by @davidfowl in #10775
- Unquarantine UseOrFindAppHostProjectFilePromptsWhenMultipleFilesFound test. by @mitchdenny in #10795
- Allow resources to specify custom icons to use when displayed in the dashboard by @Copilot in #10760
- Replace
BicepFormatString
with realFormattableString
by @ArcturusZhang in #10773 - Add unique 8-character GUID to screenshot filename in template tests by @Copilot in #10787
- [CI] Build Cli native archives on GH runs by @radical in #10741
- Set up Azure deployer and provisioning context prompting by @captainsafia in #10792
- Add policy bot automation to assign milestones to pull requests based on target branch by @Copilot in #10684
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10812
- Fixed properties override when publishing an update in external service by @MermaidIsla in #10822
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2763918 by @dotnet-bot in #10807
- Simplify Aspire CLI project name validation to only reject path separators by @Copilot in #10714
- Fix GH Models lifetime by @sebastienros in #10842
- Fix navigating to resources with a selected resource by @JamesNK in #10848
- Initial app host localization by @JamesNK in #10295
- bump extension version by @adamint in #10788
- Fix automatic scrolling to the bottom of main page content by @JamesNK in #10740
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2766537 by @dotnet-bot in #10857
- Fix competing resource generation on shared file by @JamesNK in #10870
- Adding Resource to
CommandLineArgsCallbackContext
by @aaronpowell in #10864 - Merge changes from release/9.4 branch by @joperezr in #10728
- Bump Package Baseline validation to 9.4.0 by @joperezr in #10730
- Remove page logging by @JamesNK in #10862
- [CI] Add a top-level ci.yml which runs tests and build cli archives by @radical in #10810
- Making arg non-nullable on CommandLineArgsCallbackContext by @aaronpowell in #10878
- Do not match
pipe
as port separator by @jnyrup in #10884 - Add Aspire.Hosting.OpenAI integration by @sebastienros in #10830
- Fix endpoint resolution for individual Host/Port properties in WithEnvironment by @Copilot in #10892
- Add Package Channel Service API for Aspire CLI by @Copilot in #10801
- Fix TemporaryNuGetConfig to include AllPackages ("*") mappings by @Copilot in #10894
- Add localhive.sh script for building NuGet packages and managing Aspire CLI hives by @davidfowl in #10905
- upgrade extension npm packages by @adamint in #10854
- Truncate large messages displayed in log grid by @JamesNK in #10882
- Fix incorrect XML documentation in database AddDatabase methods for PostgreSQL, MySQL, and SQL Server by @Copilot in #10866
- Remove all references to the Aspire workload by @Copilot in #10904
- Bump tmp from 0.2.3 to 0.2.4 in /extension by @dependabot[bot] in #10853
- Add LaunchProfile property to project details pane by @davidfowl in #10906
- Update appmodel.md by @davidfowl in #10865
- Add Visual Studio setup instructions to contributing documentation by @Copilot in #10918
- Update Aspire.Cli README.md to reflect current implemented CLI surface by @Copilot in #10553
- Add IResourceWithEndpoints interface to Azure resource classes by @davidfowl in #10898
- Comprehensive validation and enhancement of whats-new-95.md release notes following README documentation process by @Copilot in #10794
- Add new scripts to install
aspire
cli from PRs by @radical in #10922 - feat(exec): support
--workdir
for aspire exec against container by @DeagleGross in #10912 - Add health check for Azure App Config component by @zhiyuanliang-ms in #10797
- Update 'components' references to 'integrations' across src/Components with selective terminology refinements by @Copilot in #10915
- Update automation so merged PRs get assigned to 9.4.2 by @joperezr in #10936
- Fix CognitiveService integration compatibility with Aspire.Azure.AI.Inference by @sebastienros in #10938
- Update using-latest-daily.md by @davidfowl in #10942
- Refactor AddCommand to use PackagingService with simplified channel discovery by @Copilot in #10899
- Improve resources action menu by @JamesNK in #10869
- Rename Application to Resource in dashboard OTLP functionality by @Copilot in #10868
- Update copilot-instructions.md by @danmoseley in #10950
- Add comprehensive markdown rendering support to Aspire CLI with extended syntax coverage and multiline handling by @Copilot in #10815
- Make grid value component more reusable by @JamesNK in #10945
- Hook up Azure Deployer to BicepProvisioner by @captainsafia in #10845
- Add WaitForStart methods to support waiting for resource start without health checks by @Copilot in #10948
- Fix log message visualizer by @JamesNK in #10964
- Quarantine flaky test DependentResourceWaitsForOpenAIModelResourceWithHealthCheckToBeHealthy by @Copilot in #10974
- Fix CTRL-C stall issue. by @mitchdenny in #10962
- Localize DefaultProvisioningContextProvider interaction strings by @Copilot in #10961
- Fix version checking with mixed state by @JamesNK in #10956
- Update Azure.AI.OpenAI by @ericstj in #10928
- Quarantine flaky test NewCommandDoesNotPromptForTemplateIfSpecifiedOnCommandLine by @Copilot in #10980
- Quarantine: BrowserToken_LoginPage_Success_RedirectToResources by @mitchdenny in #10978
- Add documentation for dogfooding pull requests with navigation links by @Copilot in #10952
- Contribution guidelines: use local copy of dotnet CLI by @karolz-ms in #10984
- serve blazor.web.js from wwwroot instead of setting up new endpoint to serve it by @adamint in #10954
- Unsubscribe once with multiple dispose calls by @JamesNK in #10971
- Quarantine flaky test NewCommandDerivesOutputPathFromProjectNameForStarterTemplate by @Copilot in #10989
- Install .NET 8 globally in copilot setup steps by @danmoseley in #10982
- Fix parameter tests with localized values by @JamesNK in #10959
- Long input option in sample by @JamesNK in #10999
- Bump azurite to latest release for azure storage emulator by @jeremy-vm in #10972
- Make InteractionInput.Name required and Label optional by @Copilot in #10835
- Add "All" option for multi-resource Console Logs viewing with colored prefixes and smart timestamp behavior by @Copilot in #10981
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2775220 by @dotnet-bot in #11005
- Fix referencing existing keyvault resources as references by @davidfowl in #10991
- Add WithPassword method to MySQL hosting extensions by @Copilot in #11007
- fix for wrong OpenAIClientOptions used with keyed OpenAIClient(s) by @Steinblock in #11003
- Fix grammar in AddX method responsibilities docs by @brettcannon in #11014
- Fix creating projects with GB18030 chars by @danmoseley in #11015
- Generate classes methods for model catalog in Azure AI Foundry integration by @davidfowl in #10986
- Fix up error handling for Azure deployer errors by @captainsafia in #11013
- Replace hardcoded version check notification strings with resource strings by @Copilot in #11017
- Add emulator support for azure app configuration by @zhiyuanliang-ms in #10796
- Remove IResourceWithoutLifetime on everything by @davidfowl in #10851
- Updated Dashboard to accept/map forwarded headers by @danespinosa in #10388
- Follow up to AppConfiguration Emulator by @eerhardt in #11023
- [Automated] Update Playground Manifests by @github-actions[bot] in #11025
- Fix AddAsExistingResource to respect ExistingAzureResourceAnnotation by @Copilot in #11010
- Quarantine flaky test NewCommandDoesNotPromptForProjectNameIfSpecifiedOnCommandLine by @Copilot in #11036
- Fix Azure AI Foundry resource name by @sebastienros in #10934
- Use AIFoundryModel constant in Foundry E2E by @sebastienros in #11039
- Add top-level notification when container runtime is unhealthy with auto-dismissal by @Copilot in #11008
- Add notification for when no container runtime is installed with consistent messaging by @Copilot in #11041
- Allow requiring OpenTelemetry protocol if needed by @twsouthwick in #10507
- Fix TransportOptionsValidator to accept valid Kestrel binding addresses by @Copilot in #10595
- [Automated] Update Playground Manifests by @github-actions[bot] in #11052
- Update NuGet packages to latest stable versions by @Copilot in #11029
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #10274
- [CI] Bump timeout for Hosting tests on linux to 25m by @radical in #11058
- Add automated workflow to update AI Foundry models daily by @Copilot in #11040
- Support deploying compute images and resources by @captainsafia in #11030
- Revert "[main] Update dependencies from dotnet/arcade (#10274)" by @Copilot in #11066
- Revert deployment connection string changes by @sebastienros in #11063
- Update release notes for .NET Aspire 9.5 with new features, enhanceme… by @davidfowl in #11053
- Bump form-data from 4.0.2 to 4.0.4 in /extension by @dependabot[bot] in #10599
- Update templates for 9.5 by @DamianEdwards in #11064
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2778234 by @dotnet-bot in #11073
- Add "Collapse all"/"Expand all" functionality in trace detail page with structured logs integration and root span preservation by @Copilot in #9474
- Fix NuGet package prefetching causing UI lag in aspire new on macOS by @Copilot in #11069
- Expose HostName, UserName, and Password reference properties for AzurePostgresFlexibleServerResource by @Copilot in #11051
- Add HostName and Password reference properties to AzureRedisCacheResource by @Copilot in #11070
- [Automated] Update Playground Manifests by @github-actions[bot] in #11079
- Details padding consistency by @JamesNK in #11082
- Improve displaying durations by @JamesNK in #11078
- Trace details header clean up by @JamesNK in #11085
- Tweak displaying (All) console logs content by @JamesNK in #11087
- Add resource column to trace detail by @JamesNK in #11089
aspire update
command by @mitchdenny in #11019- Add sdk.paths and sdk.errorMessage to global.json by @Copilot in #11074
- Add more tests infra for Azure deployer by @captainsafia in #11093
- Update CODEOWNERS to include @captainsafia by @captainsafia in #11097
- Build ServiceDiscovery library and tests against netstandard2.0 by @twsouthwick in #10470
- Add WithForwardedHeaders method to configure forwarded headers for Aspire dashboard by @davidfowl in #11080
- Use AppHost's runtimeconfig.json to determine dashboard framework versions and fix executable path handling by @Copilot in #11095
- Quarantine flaky tests: DeployAsync_EmitsPublishedResources and NewCommandInteractiveFlowSmokeTest by @Copilot in #11109
- Verify multi-compute environment deployment for Azure by @captainsafia in #11100
- Add strongly typed github models classes to make them more discoverable by @davidfowl in #11101
- Update Aspire CLI update command description string format by @Copilot in #11104
- Add ResourceStoppedEvent with ResourceEvent state for enhanced lifecycle management by @Copilot in #11103
- Verify Functions deployment via aspire deploy by @captainsafia in #11117
- Implement clean debug logging for aspire CLI using Spectre Console with reduced category noise by @Copilot in #11125
- Fix dashboard UI to show no message for cancelled commands and handle OperationCanceledException by @Copilot in #10893
- Refactor NuGet package prefetching to use command-aware architecture by @Copilot in #11120
- Fix typos in getting-perf-traces.md by @bart-vmware in #11137
- Add showDeprecatedPackages feature flag to control deprecated NuGet package visibility by @Copilot in #11131
- Standardize AI integration connection strings to eliminate dual keys and naming inconsistencies by @Copilot in #11067
- Add relative path to apphost status messages and TUI dashboard by @Copilot in #11132
- Fix null-handling in AzureResourcePreparer.ProcessAzureReferences to prevent NullReferenceException by @Copilot in #11136
- Support running projects through VS code extension by @adamint in #10877
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #11088
- Use the Model property when using Foundry Local deployments by @sebastienros in #11113
- Split up provisioning context between run-mode and publish-mode by @captainsafia in #11094
- [CI] Fix signing with Arcade by @radical in #11147
- Fix diamond dependency duplicate updates in aspire update command by @Copilot in #11145
- Add localhive.ps1 for windows by @davidfowl in #10907
- Improve visual presentation of aspire update command with enhanced formatting by @Copilot in #11148
- [Automated] Update Playground Manifests by @github-actions[bot] in #11157
- Deploy individual modules instead of main.bicep by @captainsafia in #11098
- Add automated dogfooding comment workflow with manual trigger support for new pull requests by @Copilot in #11149
- Add unofficial pipeline by @wtgodbe in #11161
- Fix unofficial pipeline by @wtgodbe in #11163
- Fix invalid directive format in GenModel.cs tool scripts by @Copilot in #11168
- Make copying project templates incremental by @KirillOsenkov in #11164
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2782591 by @dotnet-bot in #11176
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #11178
- Add suppressions for test credentials in CredScan by @danmoseley in #11179
- Quarantine flaky tests RunCommand_SkipsBuild_WhenExtensionDevKitCapabilityIsAvailable and NewCommandDoesNotPromptForTemplateVersionIfSpecifiedOnCommandLine by @Copilot in #11171
- [Automated] Update Playground Manifests by @github-actions[bot] in #11177
- Update dogfooding workflow to ensure idempotency and handle PR reopen events by @Copilot in #11185
- Fix localhive pack syntax by @davidfowl in #11186
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2782967 by @dotnet-bot in #11190
- Fix Docker Swarm deployment labels serialization to use correct YAML structure by @Copilot in #11204
- Reorder template version prompting before template options in aspire new command by @Copilot in #11006
- Set ASPIRE_VERSION_CHECK_DISABLED when UpdateNotificationsEnabled feature is disabled by @Copilot in #10687
- Fix Azure Functions port mismatch in Visual Studio by enhancing launch profile resolution by @Copilot in #10958
- Fix NuGet package source functionality when aspire CLI creates packageSourceMapping for the first time by @Copilot in #11207
- Use mssql instead of azure-sql-edge for ServiceBus Emulator by @martincostello in #10378
- Add net462 target to ServiceDiscovery by @twsouthwick in #11114
- Bump form-data from 4.0.2 to 4.0.4 in /extension by @dependabot[bot] in #11180
- Bump tmp from 0.2.3 to 0.2.5 in /extension by @dependabot[bot] in #11181
- Caitie/update test templates by @CaitieM20 in #10662
- Add synchronize trigger to dogfood-comment workflow by @Copilot in #11211
- Split up publish and deploy and unify graphs by @captainsafia in #11175
- Update wording in templates by @danmoseley in #11182
- Fix volume and bind mount naming collision when publishing Azure Container Apps by @Copilot in #11210
- Update docker container tags by @joperezr in #10473
- Update release notes for .NET Aspire 9.5 with new CLI improvements by @davidfowl in #11198
- [CI] Add a QuarantineTool for tests by @radical in #11192
- Fix NuGet.config handling to only modify target directory in subdirectory creation scenarios by @Copilot in #11213
- Add initial version of Aspire.Hosting.Azure.Kusto by @MattKotsenas in #10935
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #11229
- Make ResourceNotificationService.WaitForResourceHealthyAsync wait for ResourceReadyEvent by @Copilot in #11228
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2785249 by @dotnet-bot in #11219
- Add port customization support for Azure Kusto emulator by @Copilot in #11226
- Support multiple debug sessions (disambiguate RPC connections) and fix run exception for non-
aspire run
commands by @adamint in #11221 - Revise update instructions for Aspire projects by @davidfowl in #11235
- Standardizes log message parameter names for consistency by @Meir017 in #11233
- Standardizes logging parameter names for resources - p2 by @Meir017 in #11236
- [Automated] Update Playground Manifests by @github-actions[bot] in #11242
- Add types for adding openssl compatible certificate files to containers by @danegsta in #11220
- Add publishing step/task for fetch sub IDs and regions by @captainsafia in #11241
- Remove unused VerifyExtensions.cs file by @Copilot in #11240
- Add support for Azure Redis enterprise by @eerhardt in #10726
- Remove ingestion endpoint from Kusto emulator by @MattKotsenas in #11247
- Mark Aspire.Hosting.Azure.Kusto as a preview package by @MattKotsenas in #11246
- Support prompting for unresolved parameters during deploy by @captainsafia in #11160
- Enhance copilot-instructions.md with comprehensive repository onboarding and standard dotnet command usage by @Copilot in #11191
- Mark Kusto db as FailedToStart if creation fails by @MattKotsenas in #11249
- Modify connection string example in README by @eerhardt in #11258
- [Automated] Update Playground Manifests by @github-actions[bot] in #11259
aspire update
supports central package management by @Copilot in #11252- Add timestamp display to SpectreConsoleLoggerProvider showing only time (HH:mm:ss) for debugging by @Copilot in #11261
- Add type filter to tracing by @JamesNK in #11262
- Use MEAI for AI telemetry by @JamesNK in #11237
- [CI] Add new
Outerloop
workflow for infrequent test runs by @Copilot in #11250 - Move executable command / working directory to be annotation based by @afscrome in #11135
- Fix ResourceSelect component to display "Resource" instead of "ResourceLabel" in dashboard by @Copilot in #11273
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2787919 by @dotnet-bot in #11268
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #11199
- Add WithStaticFiles extension methods to YARP resources by @Copilot in #11275
- Remove integration Markdown scheme allow list by @JamesNK in #11279
- [Automated] Update dependencies by @github-actions[bot] in #10828
- [CI] Fix outerloop and quarantine workflows by @radical in #11282
- Improve dashboard GenAI telemetry UI by @JamesNK in #11227
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2789082 by @dotnet-bot in #11278
- Only capitalize start of title by @JamesNK in #11287
- Add warning logging and JSON error responses for unsupported OTLP requests by @Copilot in #11254
- Explicit CTRL-C handling in Aspire CLI. by @mitchdenny in #11295
- [Automated] Update Github Models by @github-actions[bot] in #11289
- Parallelize more deployment steps by @captainsafia in #11248
- Improve GenAI and interactions Markdown rendering by @JamesNK in #11286
- Set OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT to true in local development by @JamesNK in #11304
- Build aspire extension and allow acquisition from pr cli shell script by @adamint in #11245
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2790424 by @dotnet-bot in #11293
- Improve instance id matching by @JamesNK in #11305
- Fix default output behavior for aspire publish command to use subdirectory by @Copilot in #11297
- Allow menus to overflow vertically to avoid blocking off content by @adamint in #11317
- Support prompting and steps/tasks in debug mode by @captainsafia in #11314
- Adjust markdown heading level by @JamesNK in #11321
- Fix rendering of Markdown links in CLI by @captainsafia in #11320
- Hide resource footer on graph view by @JamesNK in #11323
- Enhance aspire update command resilience with XML fallback parsing for unresolvable AppHost SDKs by @Copilot in #11291
- Dev tunnels by @DamianEdwards in #11251
- Always display .NET runtime version in dashboard settings by @JamesNK in #11330
- Update Dockerfile to use Python 3.8-slim from netaspireci.azurecr.io registry by @Copilot in #11334
- Disable guardian analyzer auto injection. by @mitchdenny in #11331
- only apply overflow-y to mobile nav menu by @adamint in #11338
- Add safety warnings to dogfooding workflow documentation and GitHub comments by @Copilot in #11344
- Disable Roslyn new rulesets by @joperezr in #11340
- Look for operation in GenAI filter by @JamesNK in #11325
- Use unique tag for each image deployment by @captainsafia in #11355
- Move tag and push APIs to IResourceContainerImageBuilder by @captainsafia in #11336
- Workaround for dashboard scroll bug on .NET 9 and 10 by @JamesNK in #11348
- Refactor console logs page to use item provider, shared channel for writing logs by @JamesNK in #11308
- Make KnownResourceCommands public with streamlined implementation by @Copilot in #11328
- Fixing CLI strings to standardize one word for apphost by @maddymontaquila in #11057
- Add javascript, node, and python samples from aspire samples by @adamint in #11372
- Add single-file apphost feature flag with elevated .NET SDK requirements by @Copilot in #11360
- Support for container app job by @eerhardt in #11302
- Add README.md documentation for Aspire.Hosting.DevTunnels library by @Copilot in #11327
- What's new updates by @davidfowl in #11380
- Automatically apply WithUrl with relative URL to all URLs by @DamianEdwards in #11216
- Add single-file apphost discovery to Aspire CLI ProjectLocator with feature flag by @Copilot in #11362
- Update whats-new-95.md by @afscrome in #11387
- Fix Docker build failures with trailing slashes in context paths by @Copilot in #11374
- Add PublishAsAzureContainerAppJob overloads for scheduled and manual jobs by @Copilot in #11385
- Prevent state propagation to child resources with their own lifetime in ApplicationOrchestrator for specific resource types. by @davidfowl in #11388
- Fix CLI "Stopping Aspire." message formatting for better visual appearance by @Copilot in #11359
- Add comprehensive path normalization for consistent volume naming across platforms by @Copilot in #10717
- Add tooltip to selects with long content by @JamesNK in #11395
- Added "probe" support to project and container resources by @Dona278 in #11081
- Add method to create YarpCluster with a list of string as addresses by @benjaminpetit in #11368
- Quarantine flaky test PublishCommandWithoutOutputPathUsesDefaultSubdirectory by @Copilot in #11398
- Fail if PublishAsAzureContainerAppJob is called without AddAzureContainerAppEnvironment by @eerhardt in #11409
- Properly compare tokens using timingSafeEqual in extension and remove token parameter from extension rpc target by @adamint in #11283
- Don't add timestamp disambugation to deployment name by @captainsafia in #11319
- Add cloud type filter to tracing pages by @JamesNK in #11324
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2794115 by @dotnet-bot in #11396
- Add span details action menu with GenAI link by @JamesNK in #11361
- GenAI visualizer improvements and bug fixes by @JamesNK in #11402
- Improve display of replica instances in resource selector by @JamesNK in #11416
- Add extension-compatible aspire config command implementation by @adamint in #10231
- Configure default HTTP/HTTPS endpoints for Docker container with target port set to 8080 by @davidfowl in #11420
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2794432 by @dotnet-bot in #11418
- Filter launch profiles by commandName to ignore unsupported profiles like IISExpress by @Copilot in #11426
- Delete and recreate devtunnels if they already exist & add configurable retries by @DamianEdwards in #11423
- Add Aspire.Microsoft.Azure.StackExchangeRedis component for Azure Cache for Redis with Azure AD authentication by @Copilot in #11141
- Update to latest runtime, aspnetcore, and extensions by @eerhardt in #11419
- Improve DeploymentImageTagAnnotation: rename to DeploymentImageTagCallbackAnnotation and add async callback support with service provider access and execution context by @Copilot in #11406
- Remove left over source build artifacts by @eerhardt in #11431
- [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #11411
- Ensure devtunnels CLI is at least minimum required version by @DamianEdwards in #11439
- Implement disk caching mechanism with expiry, version-aware cleanup, cache management commands, selective caching control, and testable IDiskCache interface for NuGet package search operations in Aspire CLI by @Copilot in #11394
- Keyed redis distributed cache by @eerhardt in #11417
- Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2794723 by @dotnet-bot in #11436
- Fix text visualizer dialog max height by @JamesNK in #11446
- Add destination to span details by @JamesNK in #11424
- Fix up passing Dockerfile build arguments and secrets by @captainsafia in #11352
- Fix az acr login with podman container runtime by @Copilot in #11442
- Various extension bug fixes/improvements by @adamint in #11421
- Use obj instead of string for destinations by @benjaminpetit in #11438
- Implement Aspire Single-File AppHost template with CLI feature flag integration by @Copilot in #11393
- Implement feature flag validation and cleanup for single file AppHost support in RunCommand by @Copilot in #11397
- Show deployment errors on a per-resource basis by @captainsafia in #11455
- [release/9.5] Add auto activation feature to Redis and RabbitMQ connections by @github-actions[bot] in #11461
- [release/9.5] Prioritize AzCliCredential for Azure deployment scenarios by @github-actions[bot] in #11466
- [release/9.5] Refactor Program.cs to use app.UseStaticFiles() and update WebFrontEnd.csproj to target DefaultTargetFramework by @github-actions[bot] in #11477
- [release/9.5] Update Aspire.AppHost.Sdk to support simpler file-based app AppHosts by @github-actions[bot] in #11472
- Stabilizing package versions by @joperezr in #11491
- [release/9.5] Update return value for compute resources check by @github-actions[bot] in #11489
- [release/9.5] Support prompting for generated values during deploy by @captainsafia in #11497
- [release/9.5] Add provisioning support to Aspire.Hosting.Azure.Kusto by @github-actions[bot] in #11506
- [release/9.5] Add single-file support for
aspire deploy
andaspire publish
by @github-actions[bot] in #11476 - [release/9.5] Enable aspire add command for single-file AppHost (apphost.cs) by @github-actions[bot] in #11475
- [release/9.5] 9.5 API Review Feedback Round 1 by @github-actions[bot] in #11522
- [release/9.5] Ensure devtunnel URLs are updated when started by @github-actions[bot] in #11526
- [release/9.5] Fix 9.5 option in templates & update 9.4 option to 9.4.1 by @github-actions[bot] in #11533
- [release/9.5] Fix remove logs error by @github-actions[bot] in #11531
- [release/9.5] Don't add reference to devtunnel endpoint when publishing by @github-actions[bot] in #11575
- [release/9.5] Fix ai foundry model gen by @github-actions[bot] in #11578
- [release/9.5] Remove IServiceProvider from ContainerImageReference by @eerhardt in #11585
- [release/9.5] Backport of Dev tunnel improvements (#11547) by @DamianEdwards in #11591
- [release/9.5] Prompt for NuGet.config updates by @github-actions[bot] in #11598
- [release/9.5] Fix thread safety issue in OutputCollector causing ArgumentOutOfRangeException in aspire new by @github-actions[bot] in #11586
- [release/9.5] Add staging channel support to Aspire CLI for dogfooding staging builds by @github-actions[bot] in #11612
- [release/9.5] Upgrade App Configuration dependency by @github-actions[bot] in #11597
- [release/9.5] Update dependencies from microsoft/usvc-apiserver by @github-actions[bot] in #11623
- [release/9.5] Ensure that the Tool form of the Aspire CLI is platform-independent, framework-dependent. by @github-actions[bot] in #11645
New Contributors
- @benwitmanmsft made their first contribution in #10289
- @MattKotsenas made their first contribution in #9868
- @danespinosa made their first contribution in #10394
- @jnyrup made their first contribution in #10884
- @ericstj made their first contribution in #10928
- @jeremy-vm made their first contribution in #10972
- @Steinblock made their first contribution in #11003
- @brettcannon made their first contribution in #11014
- @twsouthwick made their first contribution in #10507
- @KirillOsenkov made their first contribution in #11164
- @CaitieM20 made their first contribution in #10662
Full Changelog: v9.4.0...v9.5.0