github dotnet/aspire v9.4.0
Aspire 9.4.0 Release

latest releases: v9.4.2, v9.4.1
one month ago

We are excited to share that our 9.4.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.4 to find what's new in 9.4.0!

What's Changed

  • API review: Add Services property to ResourceEndpointsAllocatedEvent by @DamianEdwards in #9270
  • Fix visibility updates during resource upserts by @adamint in #9264
  • Accept null value in Redis WithPassword to ensure password dosen't set in redis-server by @Alirexaa in #9278
  • Make sure the publisher example supports azd by @davidfowl in #9277
  • API review: WithHostPort should accept null for port param by @Alirexaa in #9282
  • Refactor database explorer resource builders to not prefix their names the name of the first resource they are added to. by @paulomorgado in #8237
  • Test that ensures legacy dashboard token env var is honored by @DamianEdwards in #9296
  • Refactor solution file from .sln to .slnx format and update related d… by @davidfowl in #9295
  • Minor dashboard improvements and clean up by @JamesNK in #9301
  • Minor improvements to resource changed log by @JamesNK in #9303
  • Fix Blazor error logging to telemetry by @JamesNK in #9304
  • Don't throw from component telemetry context dispose if not initialized by @JamesNK in #9306
  • [CI] Add PR validation on macOS by @radical in #9287
  • Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2709142 by @dotnet-bot in #9302
  • Ignore case on FormatDateTime_WithMilliseconds_NewZealandCulture by @adamint in #9316
  • Changing default SKU for App Service Plan to P0V3 by @ShilpiRachna1 in #9280
  • Branding updates for 9.4 by @joperezr in #9331
  • Increase retry time in AppBar_Change_Theme_ReloadPage by @adamint in #9317
  • Update xUnit.v3 to support MTP tests by @peterwald in #9261
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9333
  • Add tracing support for Azure App Configuration component by @zhiyuanliang-ms in #9323
  • Revert "Update xUnit.v3 to support MTP tests (#9261)" by @radical in #9336
  • Remove the workaround to explicitly set the container runtime for tests now that the orchestrator is updated by @danegsta in #9339
  • [Automated] Update API Surface Area by @github-actions[bot] in #8736
  • Revert "Revert "Update xUnit.v3 to support MTP tests (#9261)" (#9336)" by @radical in #9337
  • TestsReportGenerator: Always show the error message, and truncate only the stdout by @radical in #9335
  • [CI] Fix azdo builds for main by @radical in #9338
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9347
  • Fully qualify OutputPath for PublishingContext by @captainsafia in #9351
  • Fix typo in doccomment in ContainerResourceBuilderExtensions.cs by @KuraiAndras in #9342
  • Update health check to ensure blob containers created at right time by @RussKie in #9159
  • Re-apply quarantined test for validation by @sebastienros in #9364
  • Update telemetry doc for AzureAppConfiguration by @sebastienros in #9365
  • Enable MTP tests via MSBuild property by @captainsafia in #9361
  • catch json error by @danmoseley in #9369
  • Refactor a common TempDirectory test class by @eerhardt in #9370
  • Centralize Verify convention by @sebastienros in #9371
  • Update Aspire to stable Microsoft.Extensions.AI.Abstractions by @stephentoub in #9356
  • Update RunCommand.cs by @IEvangelist in #9360
  • Add support for copying existing files via WithContainerFiles API by @danegsta in #8908
  • Do not fail on partial trust warning. by @mitchdenny in #9384
  • markdown lint by @danmoseley in #9389
  • Merge branch release/9.3 into main by @joperezr in #9394
  • Fix failure in MongoDbFunctionalTests.VerifyWithInitFiles by @danegsta in #9391
  • Ensure all grid columns have tooltips by @adamint in #9401
  • Remove test from quarantine by @danegsta in #9402
  • copilot setup steps by @danmoseley in #9409
  • docs update by @danmoseley in #9408
  • Add health column to Aspire CLI resources table by @Copilot in #9400
  • [CI] Fix copilot setup steps by @radical in #9414
  • Prevent text overflow in resource action URLs by @adamint in #9314
  • Support setting existing app identity on compute resources by @captainsafia in #9404
  • Update FluentUI to 4.11.9 by @JamesNK in #9417
  • Fix commands left in a disabled state by @JamesNK in #9383
  • Add a counter to Stress app by @adamint in #9432
  • Fix error in json in README.md by @ikkentim in #9415
  • Add Tests badge for rolling builds on github workflows by @radical in #9416
  • Add test coverage for --aspire-version template option by @Copilot in #9433
  • [CI] Change AzDO public pipeline to run weekly instead of per-commit by @Copilot in #9437
  • Trace detail improvements by @JamesNK in #9443
  • Make RpcResourceState internal in Aspire.Cli and Aspire.Hosting packages by @Copilot in #9456
  • Remove --prerelease switches from aspire CLI commands by @Copilot in #9447
  • Graceful error handling for offline scenarios in 'aspire new' and 'aspire add' commands by @Copilot in #9458
  • More logging in flaky pause console logs test by @JamesNK in #9435
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9460
  • Remove ACA Environment Contributor role assignment by @eerhardt in #9405
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9477
  • Use ProcessSpec for invoking dotnet publish by @mitchdenny in #9479
  • Further cleanup the GetContainerId logic for tests by @danegsta in #9481
  • Increase timeout for applicaton start in DistributedApplicationTests by @karolz-ms in #9473
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9489
  • Implement IDistributedApplicationResourceEvent on ResourceEndpointsAllocatedEvent by @afscrome in #9495
  • Fix Blob Container Connection String Format Exception by @sebastienros in #9472
  • Automate refreshing manifests with GitHub Action by @Copilot in #9503
  • [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #9507
  • The --source argument is not preserved when running aspire add -s by @Copilot in #9509
  • Change .dotnet/aspire to .aspire in temporary working files by @Copilot in #9505
  • Fix malformed table output in aspire run command when no resources are present by @Copilot in #9498
  • Update refresh-manifests.yml by @davidfowl in #9514
  • TestShop: Add IsRunMode check for database key by @DamianEdwards in #9522
  • Expose the NameOutputReference property on AzureResources by @Copilot in #9501
  • Force SqlDatabase resource api version by @sebastienros in #9530
  • [Automated] Update Manifests by @github-actions[bot] in #9525
  • Allow mounting the docker socket using WithBindMount by @Copilot in #9511
  • Drop support for hybrid mode Azure Container Apps by @davidfowl in #9500
  • AppHost disambiguation and selection. by @mitchdenny in #9542
  • Split Azure tests by resource in Aspire.Hosting.Azure.Tests by @Copilot in #9527
  • [Automated] Update Manifests by @github-actions[bot] in #9548
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9549
  • Update the WithInitFiles implementations to use bind mounts in publish mode by @danegsta in #9528
  • Repo MCP tools by @mitchdenny in #9506
  • Improve app host search messaging and add spacing for better UX by @Copilot in #9552
  • Add SupportsDetailedTelemetry to protocol and opt resources using Microsoft Open public key into it by @adamint in #9531
  • Support hierarchical partition keys for Azure Cosmos by @Kumima in #9513
  • [Automated] Update Manifests by @github-actions[bot] in #9562
  • [WIP] Aspire CLI ctrl+c error message by @Copilot in #9491
  • Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2719391 by @dotnet-bot in #9469
  • Remove leftover ElasticSearch references after moving ElasticSearch out of repo by @Copilot in #9494
  • Remove 37 unused resources from .resx files by @Copilot in #9573
  • ci: set commit-message in refresh-manifests workflow by @Copilot in #9574
  • [CI] Collect dcp logs on Outerloop workflow by @radical in #9584
  • Remove a few auto injected known parameters by @davidfowl in #9590
  • Add definitions for new log streaming options by @karolz-ms in #9593
  • Revert "Add definitions for new log streaming options (#9593)" by @davidfowl in #9601
  • Initialize telemetry context in UpdateTelemetryProperties if not already initialized by @adamint in #9553
  • Add WithDashboard() method to allow opting out of Aspire dashboard in Azure Container App environments by @Copilot in #9600
  • Allow scheme to be specified when configuring Azurite by @MatthewSteeples in #9570
  • [Automated] Update Playground Manifests by @github-actions[bot] in #9610
  • Add support for containers with Dockerfile to AzureAppServiceEnvironmentResource by @Copilot in #9620
  • Externalize unknown parameters in ContainerApps and AppServiceWebSite by @Copilot in #9619
  • Only expose endpoint port in docker compose if external is set to true by @Copilot in #9604
  • Add dashboard resource to AddDockerComposeEnvironment by @Copilot in #9597
  • change 2->8 cores for copilot setup build by @danmoseley in #9626
  • [CI] Use the local test report generator for Outerloop workflow by @Copilot in #9439
  • Update verify and remove AddTextExtension by @SimonCropp in #9625
  • Add definitions for new log streaming options by @karolz-ms in #9644
  • Add support for existing Log Analytics Workspace when publishing into a Container App Environment by @amilochau in #9624
  • Use orchestrator container delay start feature for better WithExplictStart + ContainerLifetime.Persistent support by @danegsta in #9471
  • Add GetSecret convenience API and WithSecret methods for AzureKeyVaultResource by @Copilot in #9615
  • Prompting for additional template args. by @mitchdenny in #9558
  • Rename WithBrowserPort to WithHostPort for consistency with other hosting packages by @Copilot in #9657
  • Update using-latest-daily.md by @davidfowl in #9658
  • [CI] Use ⚠️emoji for zero tests run by @radical in #9654
  • Quarantine Aspire.Cli.Tests.Projects.ProjectLocatorTests.UseOrFindAppHostProjectFilePromptsWhenMultipleFilesFound by @radical in #9669
  • Initial Aspire extension code by @adamint in #9578
  • Add missing imports, move rpc server test file by @adamint in #9678
  • Add additional interaction service tests, clean up by @adamint in #9679
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9689
  • bump version of azure.provisioning to 1.0.1 by @ArcturusZhang in #9680
  • Fix two common dashboard errors by @JamesNK in #9699
  • Fix the state propagation for azure resources by @davidfowl in #9686
  • Quarantine some flaky tests by @radical in #9675
  • Remove dependencies on AfterEndpointsAllocatedEvent by @danegsta in #9598
  • [CI] Fail tests validation run if vscode extensions tests fail by @radical in #9691
  • Skip role assignment handling for emulators by @davidfowl in #9705
  • Rename Aspire.Components.Common.Tests to Aspire.Components.Common.TestUtilities by @Youssef1313 in #9547
  • Speed up/robustify copilot setup step by @danmoseley in #9710
  • Use a persistent container network if there are persistent container resources by @danegsta in #9715
  • Quarantine flaky test CanOverrideLaunchProfileViaArgsAdHocBuilder by @Copilot in #9721
  • more instructions by @danmoseley in #9726
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9720
  • Add IAzureComputeEnvironmentResource interface for Azure-backed compute by @Copilot in #9700
  • Disable failing test WithHttpCommand_ResultsInExpectedResultForHttpMethod by @Copilot in #9730
  • Launch cli with proper params, remove unused strings and old command logic by @adamint in #9684
  • Add .NET 10 support to dashboard by @JamesNK in #9733
  • Add generic WithEnvironment overload for IValueProvider and IManifestExpressionProvider by @Copilot in #9748
  • Fix error CSS by @JamesNK in #9750
  • Make verify tool accessible to the coding agent by @Copilot in #9753
  • Fix Azure Container Apps deployment failure with uppercase resource names by @Copilot in #9752
  • [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #9760
  • Fix dashboard selecting resources with dashes in instance ids by @JamesNK in #9759
  • CosmosDB: Add the 'EnableServerless' capability to accounts by @Pilchie in #9692
  • Revert "Make verify tool accessible to the coding agent (#9753)" by @davidfowl in #9775
  • Make verify tool accessible to the coding agent by @radical in #9778
  • Default to single resource on console logs and metrics pages by @JamesNK in #9757
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9780
  • Default ACA autoConfigureDataProtection to true for .NET projects by @eerhardt in #9777
  • Quarantine flaky test WithHttpCommand_CallsGetResponseCallback_AfterSendingRequest by @Copilot in #9776
  • Improve/Fix hierarchical partition keys for Azure Cosmos by @Kumima in #9758
  • Fix ACA DataProtection by @eerhardt in #9786
  • Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2727100 by @dotnet-bot in #9761
  • Update Docker Image tags by @joperezr in #9674
  • Quarantine flaky test WithHttpCommand_CallsPrepareRequestCallback_BeforeSendingRequest by @Copilot in #9791
  • Update fluentui packages by @adamint in #9794
  • [Automated] Update Playground Manifests by @github-actions[bot] in #9788
  • Add aspire config commands for managing configuration settings by @Copilot in #9676
  • Set functionapp kind on Azure Functions projects by @eerhardt in #9779
  • Allow YARP to be configured in a programmatic way by @benjaminpetit in #9766
  • Simplify AzureProvisioner and make it testable by removing unnecessary abstraction layers by @Copilot in #9737
  • Disable local auth on Azure EventHubs and WebPubSub by @eerhardt in #9799
  • Quarantine flaky test WithHttpCommand_UsesNamedHttpClient by @Copilot in #9802
  • Use default colors for prompts in CLI. by @mitchdenny in #9810
  • Fix thread safety issue in FindAppHostProjectFilesAsync by switching to ConcurrentBag by @Copilot in #9655
  • ParallelOptions not being passed to Parallel.ForEachAsync in FindAppHostProjectFilesAsync by @SimonCropp in #9661
  • Style dashboard blazor reconnect modal by @JamesNK in #9809
  • Menu button concurrency fix by @JamesNK in #9806
  • Rename unset so that it gets re-translated by @adamint in #9793
  • Fix user secrets duplication issue by normalizing to flat configuration format by @Copilot in #9815
  • Add ResourceCommandService by @JamesNK in #9805
  • Fix CLI to automatically fallback when apphost file in settings doesn't exist by @Copilot in #9814
  • Quarantine flaky test WithHttpCommand_EnablesCommandUsingCustomUpdateStateCallback by @Copilot in #9813
  • Show/hide hidden resources on dashboard by @adamint in #9180
  • [Automated] Update Playground Manifests by @github-actions[bot] in #9830
  • Quarantine flaky ResourceCommandServiceTests by @Copilot in #9836
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9840
  • Add support for DeployCommand and DeployingCallbackAnnotation by @captainsafia in #9792
  • Fail on publish/deploy if nothing happened. by @davidfowl in #9850
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9864
  • Use custom ConnectionStringBuilder when mutating connection strings by @sebastienros in #9839
  • Add Kubernetes publisher Workload and Resource extension points by @hewe-saxo in #9819
  • Cleanup error handling conditions for ACA compute environment by @eerhardt in #9838
  • Enhance AppHostExitsWhenCliProcessPidDies test diagnostics and add quarantined test filtering documentation by @Copilot in #9816
  • Revert "update fluentui packages (#9794)" by @JamesNK in #9873
  • Add connection string to resource details by @sebastienros in #9882
  • Improve compatibility error message to include Aspire.Hosting package version by @Copilot in #9875
  • Quarantine flaky test PublishCommandSucceedsEndToEnd by @Copilot in #9872
  • Update xunit.v3 to 2.0.3 by @Youssef1313 in #9876
  • Use single ActivitySource across CLI components by @Copilot in #9848
  • Fix Dev Container / Codespaces support for non-default usernames by @Copilot in #9538
  • Consolidate Aspire CLI config subcommands into single command with verb argument by @Copilot in #9849
  • Add linux-musl-amd64 (Alpine linux) specific build support by @danegsta in #9901
  • Fix Outerloop Tests workflow failing on forks by @Copilot in #9903
  • Fix Kubernetes publisher Kubernetes and Helm resource names by @hewe-saxo in #9898
  • Start localizing CLI by @adamint in #9741
  • rename InteractionService to ConsoleInteractionService by @adamint in #9908
  • Fix dashboard URL display in Aspire CLI after localization changes. by @mitchdenny in #9909
  • clean up rpc server connection logic, update string by @adamint in #9907
  • Template updates for Aspire 9.4 and .NET 10 by @DamianEdwards in #9883
  • Quarantine flaky test TracingEnablesTheRightActivitySource_Keyed by @Copilot in #9918
  • [CI] Publish binaries for Aspire.Cli by @radical in #9695
  • Disable local auth on Azure SignalR by @vicancy in #9891
  • Start the beginning of AOT'ing the Aspire.Cli. by @eerhardt in #9841
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9923
  • Emit Int32OrStringV1 as int from Kubernetes publisher. by @hewe-saxo in #9933
  • bump versions of azure.provisioning libraries by @ArcturusZhang in #9915
  • Add a section on requirements for building the repo on Alpine Linux by @danegsta in #9924
  • Add k8s tooling. by @mitchdenny in #9925
  • Fix console logs clear not going back to a blank state by @JamesNK in #9910
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9944
  • Fix SqlServer PowerShell module version to avoid breaking changes in 22.4.5.1 by @Copilot in #9939
  • [Automated] Update Playground Manifests by @github-actions[bot] in #9936
  • bump the version of azure.provisioning.operationalinsights by @ArcturusZhang in #9947
  • Fix glob pattern so it includes tests/Directory.Packages.props in update-dependencies workflow by @joperezr in #9940
  • Update launchSettings.json to support manifest generation by @sebastienros in #9959
  • [build] Fix versions of arcade dependencies by @radical in #9941
  • Reorder & don't remember Aspire version in IDE's by @DamianEdwards in #9961
  • Main by @joperezr in #9920
  • [Automated] Update dependencies by @github-actions[bot] in #9252
  • Update .NET dependencies by @joperezr in #9962
  • Update MTP to 1.7.2 by @Youssef1313 in #9895
  • Update xunit.v3 to 3.0.0-pre.25 by @Youssef1313 in #9894
  • Ensure resource non-endpoint URLs are active when initialized by @DamianEdwards in #9696
  • Add .http file to ApiService in starter template by @DamianEdwards in #9973
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #9975
  • Update PublishingActivityProgressReporter to support step/task views by @captainsafia in #9971
  • Add isError parameter to CompleteStepAsync method in PublishingActivityProgressReporter by @Copilot in #9979
  • Bump System.CommandLine. by @mitchdenny in #9968
  • Interaction service by @JamesNK in #9943
  • Refactor settings file path handling by @pdekkers in #9951
  • Inject DOTNET_CLI_USE_MSBUILD_SERVER env var for apphost builds and runs, using configuration for value by @Copilot in #9946
  • Revert to FluentUI 4.11.9 again by @JamesNK in #9987
  • Clean up extension by @adamint in #9988
  • More interaction service by @JamesNK in #9986
  • Use a digit in resx string which is passed to string.Format by @eerhardt in #9996
  • Improve the publish/deploy output by @davidfowl in #9981
  • Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2736020 by @dotnet-bot in #10006
  • Fix TFM/Aspire version selection in templates by @DamianEdwards in #10009
  • Use STJ source generation in Cli backchannel by @eerhardt in #9993
  • Add interaction validation by @JamesNK in #9989
  • [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #10021
  • Exclude FluentUI from update dependencies by @eerhardt in #9998
  • Stream apphost logs across backchannel. by @mitchdenny in #9990
  • Add extension methods to PublishingStep & PublishingTask for direct Complete/Update operations by @Copilot in #9995
  • Improve console logs error handling by @JamesNK in #10012
  • Initial extension interaction service by @adamint in #9927
  • Revert "Initial extension interaction service (#9927)" by @radical in #10030
  • Quick fix to codespaces dashboard link. by @mitchdenny in #10033
  • Update manifest-spec.md by @davidfowl in #10025
  • Managed implementation of DNS resolver by @rzikm in #6104
  • Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2737112 by @dotnet-bot in #10028
  • Increase BrowserTokenAuthenticationTests timeouts by @adamint in #10007
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10031
  • Add new YARP fluent configuration by @benjaminpetit in #10040
  • Reenable extensions interaction service by @eerhardt in #10047
  • [CI] Reduce Outerloop tests workflow to run once every 6 hours, instead of every 2 by @radical in #10044
  • [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #10055
  • Rename interaction inputs, improve input dialog UX by @JamesNK in #10056
  • Increase name column width on the trace detail page by @JamesNK in #10032
  • Only ask for distinct package names in aspire add by @adamint in #10052
  • Refactor publishing state model and CLI protocol to aggregate CompletionState at all levels by @Copilot in #10037
  • Fix YarpCluster construction and add constructor that takes IResourceWithServiceDiscovery by @benjaminpetit in #10060
  • Add ProgressReporter property to DeployingContext by @Copilot in #10067
  • Add Azure AI Foundry support by @sebastienros in #9974
  • Yarp: defer configuration generation by @benjaminpetit in #10072
  • Handle interaction service unimplemented and tests by @JamesNK in #10014
  • Add dot notation support for aspire config commands by @Copilot in #10035
  • Fix DevcontainerSettingsWriter directory creation in clean codespace environments by @Copilot in #10059
  • Fix output when publish completes with warning by @Copilot in #10077
  • Migrate to slnx, but also add missing project references by @IEvangelist in #10092
  • bump provisioning libraries to latest versions by @ArcturusZhang in #10042
  • Enable PublishAot where available by @eerhardt in #10053
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10096
  • Update to .NET 10 SDK and Arcade 10 by @joperezr in #10075
  • Fix tests failing on Azdo by @radical in #10095
  • Fix failing PublishAsAzureContainerApp_ThrowsIfNoEnvironment test by @radical in #10104
  • [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #10100
  • Implement CLI prompting on top of InteractionService by @captainsafia in #10101
  • Revert "Update dependencies from https://github.com/microsoft/usvc-ap… by @davidfowl in #10110
  • [Automated] Update Playground Manifests by @github-actions[bot] in #10070
  • Fix usability issues with IPublishingActivityProgressReporter by @Copilot in #10108
  • More extension cleanup by @adamint in #10054
  • Quarantine flaky test StartResourceForcesStart by @Copilot in #10089
  • Reapply "Update dependencies from https://github.com/microsoft/usvc-a… by @davidfowl in #10112
  • Add Value property to PublishingPromptInput to enable default value flow by @Copilot in #10111
  • Fix Typos in TalkingClockResource by @afscrome in #10117
  • Kubernetes Publisher connection strings fix by @hewe-saxo in #10091
  • Interaction service improvements by @JamesNK in #10131
  • Fix space between header and content in trace detail by @JamesNK in #10132
  • Update devcontainer to use .NET 10.0 preview image by @Copilot in #10115
  • Add console output after choice selection in publish command by @Copilot in #10120
  • Drop "sample" from aspire new description by @eerhardt in #10143
  • Fix console logs pause/resume flaky test by @JamesNK in #10134
  • Improve telemetry logging by @JamesNK in #10133
  • Telemetry fixes by @JamesNK in #10080
  • Cleanup error handling conditions for compute environments by @eerhardt in #10078
  • Fix support for non-localhost endpoint targets by @danegsta in #9977
  • Fix AzurePublishingContext to ignore resources with ManifestPublishingCallbackAnnotation.Ignore by @Copilot in #10064
  • Remove HTML escaping option from interaction service by @JamesNK in #10135
  • Fix promptText formatting in selection output by @captainsafia in #10148
  • Add IResourceBuilder<T> extension method for event subscriptions by @afscrome in #10097
  • Add CLI version update notifications to Aspire CLI by @Copilot in #9992
  • Remove deployCommandEnabled feature flag from Aspire CLI by @Copilot in #10155
  • Add Aspire upgrade check by @JamesNK in #10034
  • Fix logic for filtering packages coming back from GetPackagesAsync. by @mitchdenny in #10164
  • Fix dependabot alert by bumping version of braces resolved by yarn by @joperezr in #10153
  • Fix Debug.Assert with side effects in ExtensionInteractionService by @Copilot in #10172
  • Rename and refactor steps/tasks-related publishing APIs by @Copilot in #10145
  • Add package ID filtering to VersionFetcher.GetLatestVersion for robustness by @Copilot in #10166
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10178
  • Ignore NU1510 warnings by @JamesNK in #10176
  • Code clean up in VersionFetcher by @JamesNK in #10180
  • Fix Foundry Local setup link by @adityamandaleeka in #10179
  • Redirect cli logger output to output channel and improve extension logging. Recreate terminal on first command run & then reuse by @adamint in #10071
  • Add NameOutputReference and AddAsExistingResource to AzureAppServiceEnvironmentResource by @Copilot in #10152
  • Add ExternalServiceResource for modeling external services with service discovery support by @Copilot in #9965
  • Update Event Subscriptions in tests to use new OnXYZ methods by @afscrome in #10171
  • Update package.json, add extension logo and license by @adamint in #10190
  • Clear status after error by @adamint in #10187
  • [Automated] Update Playground Manifests by @github-actions[bot] in #10214
  • update extension readme, add contributing.md by @adamint in #10215
  • Dedupe shared backchannel types by @captainsafia in #10058
  • [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #10216
  • Fix starvs.cmd script by @joperezr in #10219
  • feat: aspire exec by @DeagleGross in #10061
  • Remove warning on publish of external service with parameterized URL by @DamianEdwards in #10222
  • Suppress CS9881 in generated project/apphost metadata types by @DamianEdwards in #10223
  • Revert "feat: aspire exec (#10061)" by @BrennanConroy in #10227
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10230
  • Fix ready event subscription for Foundry resource by @adityamandaleeka in #10229
  • Installs aspire extension on codespaces automatically by @adamint in #10217
  • Move InteractionResult to right file by @JamesNK in #10226
  • Parameter Improvements by @afscrome in #10094
  • Configure YARP with environment variables by @benjaminpetit in #10210
  • Add user-friendly message when AddCommand search returns no results by @Copilot in #10209
  • Add support for interaction input validation to CLI by @JamesNK in #10194
  • Decrease message bar button text size by @JamesNK in #10234
  • Subscribe to this specific resource, not all. by @davidfowl in #10238
  • Added support for prompting for parameter values in run mode by @davidfowl in #10235
  • YARP: do not defer configuration generation when using env variable by @benjaminpetit in #10242
  • Add VS Code instructions to contributing gudelines by @karolz-ms in #10250
  • Refine aspire CLI run command grid display with right-aligned labels and padding by @Copilot in #10207
  • Don't throw in interaction service when no inputs by @JamesNK in #10257
  • feat: aspire exec 2 by @DeagleGross in #10240
  • Use log output channel and remove abstraction by @adamint in #10256
  • send basic telemetry (command invocation) by @adamint in #10246
  • Throw on no input in ExtensionBackchannel by @adamint in #10114
  • Add check to not show an empty message in extension interaction service by @adamint in #10188
  • Add support for markdown formatting in interaction message by @JamesNK in #10189
  • Option to persist parameters to secrets by @JamesNK in #10260
  • Replace french_fries emoji with check_mark in CLI template output by @Copilot in #10237
  • Rename IPublishingActivityProgressReporter to IPublishingActivityReporter by @Copilot in #10253
  • Use different names for persistent and session scoped networks by @danegsta in #10278
  • chore: aspire exec report error when executable failed to start by @DeagleGross in #10277
  • Refactor Endpoint bicep references in AI Foundry resource by @sebastienros in #10193
  • bump the version of azure.provisioning by @ArcturusZhang in #10284
  • [main] Update dependencies from microsoft/usvc-apiserver by @dotnet-maestro[bot] in #10291
  • Fix race error in text visualizer by @JamesNK in #10273
  • Fix thread safety issue in Razor view by @JamesNK in #10270
  • Add role support to Azure AI Foundry by @eerhardt in #10292
  • Localized file check-in by OneLocBuild Task: Build definition ID 1309: Build ID 2746004 by @dotnet-bot in #10264
  • Change Azure OpenAI to use CognitiveServicesOpenAIUser role by default by @eerhardt in #10293
  • Fix typo in TalkingClockResource comment by @afscrome in #10269
  • Bump to latest azure-functions-core-tools by @captainsafia in #9267
  • [release/9.4] Refactor Azure Storage API by @github-actions[bot] in #10303
  • [release/9.4] Add ContainerBuildOptions support to ResourceContainerImageBuilder for customizing dotnet publish by @github-actions[bot] in #10312
  • [release/9.4] Add GitHub Models integration (#10170) by @eerhardt in #10313
  • [release/9.4] Add option to console logs to wrap log lines by @github-actions[bot] in #10314
  • [release/9.4] Move IInteractionService and related types to Aspire.Hosting namespace by @github-actions[bot] in #10307
  • [release/9.4] Add dashboard telemetry to interaction service by @github-actions[bot] in #10315
  • [release/9.4] Improve parameter resolution logging and exception handling in ParameterProcessor by @github-actions[bot] in #10329
  • [release/9.4] Make parameters and connection strings visible in dashboard by @github-actions[bot] in #10342
  • [release/9.4] Aspire cli: Add AOT builds for Linux, and macOS by @github-actions[bot] in #10337
  • [release/9.4] Fix missing 'name' property in TableService Bicep generation by @github-actions[bot] in #10348
  • [release/9.4] Add Azure provisioning command handling and settings configuration by @github-actions[bot] in #10350
  • [release/9.4] Fix hiding dismiss on inputs dialog by @github-actions[bot] in #10351
  • [release/9.4] Backport 10203: Add CTRL-C message back into aspire run command by @mitchdenny in #10324
  • [release/9.4] Made changes to how parameter.Value works by @github-actions[bot] in #10357
  • [release/9.4] Match name with ResourceCommandService by @github-actions[bot] in #10373
  • [release/9.4] bump version of Azure.Provisioning by @github-actions[bot] in #10384
  • [release/9.4] Share more package checking code between CLI and app host by @github-actions[bot] in #10381
  • [release/9.4] Support uninstrumented peer visualization for parameters, and resources with connection strings and github models by @github-actions[bot] in #10382
  • [release/9.4] Add non-localhost URLs by @github-actions[bot] in #10396
  • [release/9.4] Force async execution of resource startup by @github-actions[bot] in #10360
  • [release/9.4] Fix TryMatchAgainstResources to return false for multiple resource matches by @github-actions[bot] in #10412
  • [release/9.4] Harden Docker container runtime health check by @github-actions[bot] in #10408
  • [release/9.4] Throw if container runtime is unhealthy during image build by @github-actions[bot] in #10400
  • [release/9.4] Simplify GH Models API keys experience by @github-actions[bot] in #10426
  • [release/9.4] Update dependencies to latest by @github-actions[bot] in #10430
  • [release/9.4] Add scripts to download aspire-cli by @github-actions[bot] in #10436
  • [release/9.4] Ensure all YARP env vars are strings by @github-actions[bot] in #10435
  • [release/9.4] Refactor async task handling to use WaitAsync for cancellation support by @github-actions[bot] in #10438
  • [release/9.4] Use CreateEmptyApplicationBuilder in Aspire.Cli by @github-actions[bot] in #10442
  • [release/9.4] Add support for parameter description & custom input rendering by @github-actions[bot] in #10447
  • [release/9.4] Rename MessageBar interaction to Notification by @github-actions[bot] in #10451
  • [release/9.4] Fix CLI install script printing unexpected '0' when executed via iex by @github-actions[bot] in #10464
  • [release/9.4] Remove PingAsync RPC method from backchannel interfaces and implementations by @github-actions[bot] in #10466
  • [release/9.4] Revert peer matching logic to fix database resource resolution regression by @github-actions[bot] in #10476
  • [release/9.4] Change CompleteInteractionAsync answers to object by @github-actions[bot] in #10482
  • [release/9.4] Template name strings, default prompts, and template version selection changes. by @github-actions[bot] in #10484
  • [release/9.4] Backport 10453 (remove obsolete RPC API) by @mitchdenny in #10478
  • [release/9.4] Improve friendly name generation for aspire add command add introduce pre-release package sub-menu. by @github-actions[bot] in #10491
  • [release/9.4] Update dependencies from https://github.com/microsoft/usvc-apiserver build 0.15.19 by @danegsta in #10472
  • [release/9.4] Fix IInteractionService API limitations in CLI by making unsupported interactions fail instead of silently returning by @github-actions[bot] in #10505
  • [release 9.4] [backport] markup escaping to ConsoleInteractionService by @DeagleGross in #10509
  • [release/9.4] Add purple styling for default values in CLI prompts (#10474) by @mitchdenny in #10515
  • [release/9.4] Force en-US for template install by @github-actions[bot] in #10518
  • [release/9.4]: Fix WithHealthCheck method for ExternalServiceResource to access parameter values asynchronously by @davidfowl in #10493
  • [release/9.4] Fix interaction provider in dashboard handling duplicate messages by @github-actions[bot] in #10511
  • [release/9.4] Add preview indicator to 'aspire exec' command help text by @github-actions[bot] in #10532
  • [release/9.4] Update AddSecret extension methods to use consistent parameter names by @github-actions[bot] in #10533
  • [release/9.4] Revert "Fix IInteractionService API limitations in CLI by making unsu… by @github-actions[bot] in #10539
  • [release/9.4] Backport a fix to add .dotnet to PATH on windows by @radical in #10540
  • [release/9.4] Make container runtime health check conditional based on resource requirements by @github-actions[bot] in #10536
  • [release/9.4] Add EmulatorResourceAnnotation to Azure emulator resources for consistent tooling support by @github-actions[bot] in #10530
  • [release/9.4] Add Experimental attribute to WithCustomInput method by @github-actions[bot] in #10546
  • [release/9.4] Update resource list in console logs after _showHiddenResources value changes by @github-actions[bot] in #10512
  • [release/9.4] update Azure.Provisioning.Storage to 1.1.2 by @github-actions[bot] in #10543
  • [release/9.4] Add user-friendly error handling for aspire new when directory contains existing files by @github-actions[bot] in #10550
  • [release/9.4] Backport of 10422 by @mitchdenny in #10555
  • [release/9.4] Add .NET SDK availability check to Aspire CLI commands by @github-actions[bot] in #10552
  • [release/9.4] Add server validation of interaction inputs by @github-actions[bot] in #10557
  • [release/9.4] aspire-cli: Fix linux-arm64 and linux-musl-x64 to produce tarballs and not zip files by @github-actions[bot] in #10575
  • [release/9.4] Fix telemetry opt out by @github-actions[bot] in #10582
  • [release/9.4] Fix ShowDismiss setting not being used with message boxs or confirmations by @github-actions[bot] in #10583
  • [release/9.4] Use proxied endpoints for aspire dashboard by @github-actions[bot] in #10587
  • [release/9.4] Backporting a few get-aspire-cli script PRs by @radical in #10586
  • [release/9.4] Properly handle specific IP endpoint TargetHost by @github-actions[bot] in #10574
  • [release/9.4] Fire ResourceEndpointsAllocatedEvent event once for each logical app model resource by @github-actions[bot] in #10588
  • Clean up publish cmd infra and add context-sensitive messages by @captainsafia in #10602
  • [release/9.4] Remove AddBlobService and Revert to 9.3 Azure Storage APIs (#10556) by @eerhardt in #10612
  • Put DeployCommand behind a feature flag by @captainsafia in #10613
  • [release/9.4] Fix CLI hanging when dashboard fails to start by implementing ResourceFailedException by @github-actions[bot] in #10614
  • [backport 9.4] aspire exec fixes by @DeagleGross in #10628
  • [release/9.4] Fix GitHubModels health check dependency on IHttpClientFactory by @Copilot in #10626
  • [release/9.4] Update using-latest-daily.md by @github-actions[bot] in #10632
  • [release/9.4] Stabilize package versions by @joperezr in #10346
  • [release/9.4] Always set MSBUILDTERMINALLOGGER=false for all dotnet command executions in DotNetCliRunner by @github-actions[bot] in #10643
  • [release/9.4] Multi target projects that would otherwise cause issues when restored in higher TFMs by @github-actions[bot] in #10661
  • [release/9.4] Update YARP container tag by @github-actions[bot] in #10640
  • [release/9.4] Add feature flag control for ExecCommand with default disabled (#10664) by @mitchdenny in #10669
  • [release/9.4] Rename EventingExtensions class to DistributedApplicationEventingExtensions by @github-actions[bot] in #10690
  • [release/9.4] Remove duplicate startup logging from DashboardLifecycleHook by @github-actions[bot] in #10692
  • [release/9.4] Update YARP README to reflect current implementation and API patterns by @github-actions[bot] in #10709
  • [release/9.4] Mark ParameterResource.Value as obsolete in favor of GetValueAsync and direct usage by @github-actions[bot] in #10701

New Contributors

Full Changelog: v9.3.0...v9.4.0

Don't miss a new aspire release

NewReleases is sending notifications on new releases.