Skip to content

Aspire 9.4.0 Release

Compare
Choose a tag to compare
@joperezr joperezr released this 29 Jul 18:09
· 483 commits to main since this release
3661f04

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