Skip to content

Test NativeAOT dashboard with .NET 11 daily signal-handler fix - #20269

Draft
Mitch Denny (mitchdenny) wants to merge 17 commits into
mainfrom
mitchdenny-daily-dotnet11-dashboard
Draft

Mitch Denny (mitchdenny) wants to merge 17 commits into
mainfrom
mitchdenny-daily-dotnet11-dashboard

Conversation

@mitchdenny

@mitchdenny Mitch Denny (mitchdenny) commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

Description

Draft testing PR; do not merge independently. Based on #19565 at 0061fe77a6c3f231855d7ab87614e5374c2c7d1d, including its NativeAOT/Fluent UI v5 changes. Targets main to produce standard PR CI and dogfood artifacts without changing the original branch.

Updates the SDK to 11.0.100-rc.2.26470.103 and all eight .NET 11 package pins to 11.0.0-rc.2.26470.103. Fluent UI and production target frameworks remain unchanged.

The osx-arm64 NativeAOT package's nuspec identifies dotnet/dotnet commit 68f63657247e6ddb48a93cae3dfc05776dec8838. Its ActivationHandler checks SIG_DFL/SIG_IGN before selecting SA_SIGINFO, confirming the fix from dotnet/runtime#132900 is present.

Sets UseOptimizedPublish=false alongside the repository's XML documentation setting: this daily's optimized AOT path skips copying documentation to bin, while publishing still expects it there. This affects both Dashboard and CLI native packaging. Keeping the full build preserves existing artifacts.

Adjusts two test assumptions: the file-app container test explicitly targets released net10.0 rather than requiring unpublished daily runtime images/packs; the nonexistent-tool test uses a unique package ID so cached dotnet-ef cannot make it succeed despite an invalid feed.

The two shared test NuGet configurations now include the same approved dnceng dotnet11 feed and mapping already present in the root config. Template restores run outside the root config and otherwise fail to locate daily OpenAPI/internal-assets packages. These test-only feed changes are explicitly approved for this experiment; no external feed or root configuration change is needed.

Adds per-view Dashboard terminal workload filters to investigate the reported disconnects. Information-level Terminal token throughput samples report output tokens/s, batches/s, maximum batch size and callback gap, last-output age, input token counts and total output tokens every five seconds and on disconnect. HMP display names include the connection ID for correlation. Logging happens outside the output pump, without retaining terminal content or adding a presentation filter. Callback gaps are wall-clock observations, not tokenization/application CPU timings. See docs/specs/with-terminal.md for interpretation and disabling the filter.

Validation

  • All six native CI archive builds and the package build passed after the publishing fix, along with the previously failing Hosting and DotnetTool jobs.
  • Locally: 566 dashboard component tests, 26 DotnetTool tests, the file-app container archive regression test and all 5 NuGet configuration tests passed.
  • Instrumentation: 66 focused Dashboard tests passed, including fake-clock rates/idle/final samples and UDS/gRPC browser-view regression coverage. The instrumented osx-arm64 Dashboard NativeAOT publish exited 0.
  • Empty-cache restores verified the exact daily OpenAPI/internal-assets packages resolve using the updated shared test configurations.
  • Fresh macOS ARM64 CLI NativeAOT publish includes aspire.xml; clean Dashboard packaging produced the native executable, ZIP and NuGet package including XML documentation.
  • This machine has CommandLineTools, not full Xcode. Dashboard publishing printed the xcodebuild requires Xcode diagnostic and native debug-symbol warnings; daily publishing nevertheless exited 0.
  • New CI results for the instrumentation commit are pending. An earlier run also encountered a separate Windows KeyVault runner DLL-initialization failure during cleanup/upload steps.
  • Neither the original terminal/popout crash nor the suspected UDS slow-consumer disconnect is claimed fixed. This PR supplies experimental artifacts and diagnostics; a separate Hex1b test-rig investigation is comparing JIT and NativeAOT consumption.

Screenshots / Recordings

UI changes are inherited from #19565; this follow-up adds no UI behavior changes. TODO: visual validation of the inherited Fluent UI v5 changes remains with the parent PR.

Fixes # (issue)

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Add a routed-component preservation guard to catch pages missing Native AOT dependencies.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c32fdd1f-1378-4d53-b8b5-e83187e28730
Pin SDK and .NET 11 packages to the RC2 daily containing the NativeAOT signal-handler fix. Keep full Dashboard publish builds so XML documentation is available to native packaging.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
@mitchdenny
Mitch Denny (mitchdenny) changed the base branch from jamesnk/fluent-v5-native-aot to main September 21, 2026 02:23
The PR was initially created against its stacked parent and then retargeted to main. Trigger the synchronize event required by the main-filtered CI workflow.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20269

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20269"

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

It is an explicitly non-mergeable draft spanning runtime, Native AOT, packaging, UI, and cross-platform CI, with the target crash still unvalidated.

Review effort: Balanced
Findings: None

What changed in this PR

This draft layers a .NET 11 daily runtime onto #19565’s Native AOT Dashboard work to generate experimental cross-platform artifacts and exercise the signal-handler fix.

Changes:

  • Updates the .NET 11 SDK and framework package pins.
  • Converts the Dashboard into a separately packaged Native AOT bundle component.
  • Adds AOT/Fluent UI compatibility changes plus packaging, CI, and regression coverage.
File Description
.github/​actions/​select-tests/​action.yml Updates conditional test selection.
.github/​workflows/​build-cli-native-archives.yml Builds and uploads native Dashboard archives.
.github/​workflows/​native-dashboard-validation.yml Adds native Dashboard smoke validation.
.github/​workflows/​tests.yml Wires cross-platform Dashboard validation jobs.
Directory.Build.props Updates shared build properties.
Directory.Packages.props Updates .NET 11 and AOT dependencies.
NuGet.config Configures the approved package source.
benchmarks/​Aspire.Dashboard.Benchmarks/​Aspire.Dashboard.Benchmarks.csproj Retargets Dashboard benchmarks.
docs/​ci/​test-trigger-map.md Documents native Dashboard test routing.
docs/​specs/​bundle.md Documents the separate Dashboard component.
eng/​Bundle.proj Publishes the Dashboard per runtime identifier.
eng/​Signing.props Adds signing rules for shipped binaries.
eng/​Versions.props Updates shared package versions.
eng/​clipack/​Common.projitems Includes Dashboard packages in CLI artifacts.
eng/​dashboardpack/​Common.projitems Defines Dashboard package contents.
eng/​dashboardpack/​Sdk.targets Implements Dashboard SDK packaging.
eng/​github-ci/​test-trigger-map.yml Routes affected changes to Dashboard validation.
eng/​pipelines/​azure-pipelines.yml Integrates Dashboard artifacts into internal builds.
eng/​pipelines/​templates/​build_sign_native.yml Builds and signs native Dashboard outputs.
eng/​scripts/​download-native-archives.ps1 Downloads Dashboard packages and archives.
eng/​scripts/​test-native-dashboard.ps1 Smoke-tests packaged Dashboard artifacts.
global.json Pins the .NET 11 daily SDK.
playground/​Directory.Build.targets Updates playground Dashboard discovery.
src/​Aspire.Cli/​Bundles/​BundleService.cs Handles the Dashboard bundle component.
src/​Aspire.Cli/​Commands/​DashboardRunCommand.cs Launches the standalone Dashboard executable.
src/​Aspire.Cli/​Layout/​LayoutConfiguration.cs Selects compatible Dashboard launch paths.
src/​Aspire.Cli/​Layout/​LayoutDiscovery.cs Validates the new bundle layout.
src/​Aspire.Cli/​Profiling/​ProfileCaptureService.cs Uses the standalone Dashboard for profiling.
src/​Aspire.Cli/​Projects/​DotNetAppHostProject.cs Supplies the compatible Dashboard path.
src/​Aspire.Cli/​Projects/​DotNetBasedAppHostServerProject.cs Updates Dashboard launch integration.
src/​Aspire.Cli/​Projects/​PrebuiltAppHostServer.cs Supports native and legacy Dashboard layouts.
src/​Aspire.Cli/​Resources/​DashboardCommandStrings.resx Updates Dashboard command messages.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.cs.xlf Updates Czech localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.de.xlf Updates German localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.es.xlf Updates Spanish localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.fr.xlf Updates French localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.it.xlf Updates Italian localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.ja.xlf Updates Japanese localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.ko.xlf Updates Korean localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.pl.xlf Updates Polish localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.pt-BR.xlf Updates Portuguese localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.ru.xlf Updates Russian localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.tr.xlf Updates Turkish localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.zh-Hans.xlf Updates simplified Chinese localization.
src/​Aspire.Cli/​Resources/​xlf/​DashboardCommandStrings.zh-Hant.xlf Updates traditional Chinese localization.
src/​Aspire.Dashboard/​Api/​TelemetryApiService.cs Uses generated telemetry serialization metadata.
src/​Aspire.Dashboard/​Aspire.Dashboard.csproj Enables Native AOT and Dapper AOT.
src/​Aspire.Dashboard/​BlazorAssets.targets Resolves published Blazor assets.
src/​Aspire.Dashboard/​Components/​App.razor Uses mapped static assets.
src/​Aspire.Dashboard/​Components/​BlazorScript.razor Loads the fingerprinted Blazor script.
src/​Aspire.Dashboard/​Components/​Controls/​Chart/​ChartFilters.razor Adapts chart filters to Fluent UI v5.
src/​Aspire.Dashboard/​Components/​Controls/​Chart/​MetricTable.razor Updates metric-grid rendering.
src/​Aspire.Dashboard/​Components/​Controls/​Chart/​MetricTable.razor.cs Updates metric sorting and paging.
src/​Aspire.Dashboard/​Components/​Controls/​Chart/​PlotlyChart.razor.cs Updates chart interoperability.
src/​Aspire.Dashboard/​Components/​Controls/​Grid/​AspireFluentDataGrid.cs Adds delegate-based grid operations.
src/​Aspire.Dashboard/​Components/​Controls/​IconCheckbox.razor.cs Updates Fluent UI component integration.
src/​Aspire.Dashboard/​Components/​Controls/​LogViewer.razor Updates log-viewer rendering.
src/​Aspire.Dashboard/​Components/​Controls/​LogViewer.razor.cs Adds end-anchored virtualization support.
src/​Aspire.Dashboard/​Components/​Controls/​MarkdownRenderer.razor.cs Preserves markdown behavior under trimming.
src/​Aspire.Dashboard/​Components/​Controls/​PropertyGrid.razor Updates property-grid rendering.
src/​Aspire.Dashboard/​Components/​Controls/​PropertyGrid.razor.cs Updates property-grid behavior.
src/​Aspire.Dashboard/​Components/​Controls/​ResourceDetails.razor Updates resource details UI.
src/​Aspire.Dashboard/​Components/​Controls/​ResourceDetails.razor.cs Updates resource details logic.
src/​Aspire.Dashboard/​Components/​Controls/​SpanDetails.razor Updates trace span details UI.
src/​Aspire.Dashboard/​Components/​Controls/​SpanDetails.razor.cs Updates span details behavior.
src/​Aspire.Dashboard/​Components/​Controls/​StructuredLogDetails.razor.cs Updates structured-log details behavior.
src/​Aspire.Dashboard/​Components/​Controls/​TerminalView.razor.cs Updates terminal UI integration.
src/​Aspire.Dashboard/​Components/​Controls/​TerminalWindowButton.razor.cs Updates terminal pop-out behavior.
src/​Aspire.Dashboard/​Components/​Controls/​TextVisualizer.razor Updates text visualization UI.
src/​Aspire.Dashboard/​Components/​Controls/​TextVisualizer.razor.cs Updates text visualization logic.
src/​Aspire.Dashboard/​Components/​Dialogs/​ExemplarsDialog.razor Updates exemplar dialog rendering.
src/​Aspire.Dashboard/​Components/​Dialogs/​ExemplarsDialog.razor.cs Updates exemplar dialog behavior.
src/​Aspire.Dashboard/​Components/​Dialogs/​FilterDialog.razor.cs Removes expression-dependent filtering.
src/​Aspire.Dashboard/​Components/​Dialogs/​GenAIVisualizerDialog.razor Updates GenAI dialog rendering.
src/​Aspire.Dashboard/​Components/​Dialogs/​InteractionsInputDialog.razor.cs Updates interaction input handling.
src/​Aspire.Dashboard/​Components/​Dialogs/​ManageDataDialog.razor Updates data-management UI.
src/​Aspire.Dashboard/​Components/​Dialogs/​ManageDataDialog.razor.cs Updates data-management behavior.
src/​Aspire.Dashboard/​Components/​Dialogs/​SettingsDialog.razor Updates settings dialog rendering.
src/​Aspire.Dashboard/​Components/​EndAnchorItemsProviderState.cs Implements end-anchor virtualization state.
src/​Aspire.Dashboard/​Components/​Layout/​MainLayout.razor.cs Updates layout notification behavior.
src/​Aspire.Dashboard/​Components/​Layout/​TerminalDock.razor.cs Updates terminal dock behavior.
src/​Aspire.Dashboard/​Components/​Pages/​Login.razor Updates login rendering.
src/​Aspire.Dashboard/​Components/​Pages/​Login.razor.cs Updates login logic.
src/​Aspire.Dashboard/​Components/​Pages/​Metrics.razor Updates metrics page rendering.
src/​Aspire.Dashboard/​Components/​Pages/​Metrics.razor.cs Updates metrics paging and sorting.
src/​Aspire.Dashboard/​Components/​Pages/​Resources.razor Updates resources page rendering.
src/​Aspire.Dashboard/​Components/​Pages/​Resources.razor.cs Updates resource-grid behavior.
src/​Aspire.Dashboard/​Components/​Pages/​StructuredLogs.razor Updates structured-log rendering.
src/​Aspire.Dashboard/​Components/​Pages/​StructuredLogs.razor.cs Updates log paging and comparison.
src/​Aspire.Dashboard/​Components/​Pages/​TerminalWindow.razor.cs Updates standalone terminal behavior.
src/​Aspire.Dashboard/​Components/​Pages/​TraceDetail.razor Updates trace-detail rendering.
src/​Aspire.Dashboard/​Components/​Pages/​TraceDetail.razor.cs Updates trace-detail behavior.
src/​Aspire.Dashboard/​Components/​Pages/​Traces.razor Updates traces page rendering.
src/​Aspire.Dashboard/​Components/​Pages/​Traces.razor.cs Updates trace paging and comparison.
src/​Aspire.Dashboard/​Configuration/​DashboardOptions.cs Makes option binding AOT-compatible.
src/​Aspire.Dashboard/​DashboardWebApplication.cs Updates native startup and endpoint metadata.
src/​Aspire.Dashboard/​GlobalSuppressions.cs Scopes known trimming diagnostics.
src/​Aspire.Dashboard/​Model/​BrowserStorage/​BrowserStorageBase.cs Uses generated browser-storage metadata.
src/​Aspire.Dashboard/​Model/​BrowserStorage/​LocalBrowserStorage.cs Composes source-generated JSON resolvers.
src/​Aspire.Dashboard/​Model/​ComponentMetadata.cs Adds component metadata required by AOT.
src/​Aspire.Dashboard/​Model/​DashboardDialogService.cs Updates dialog APIs for Fluent UI v5.
src/​Aspire.Dashboard/​Model/​GenAI/​GenAIMessages.cs Adds serializable GenAI payload types.
src/​Aspire.Dashboard/​Model/​IconResolver.cs Replaces reflection-based icon construction.
src/​Aspire.Dashboard/​Model/​Interaction/​InputViewModel.cs Uses generated file-reference serialization.
src/​Aspire.Dashboard/​Model/​NavigationDialogService.cs Updates navigation dialog integration.
src/​Aspire.Dashboard/​Model/​Otlp/​FilterDialogFormModel.cs Makes filter models AOT-compatible.
src/​Aspire.Dashboard/​Model/​PlotlyTrace.cs Adds explicit chart serialization metadata.
src/​Aspire.Dashboard/​Model/​ResourceGraph/​IconDto.cs Adds serializable resource-graph icon data.
src/​Aspire.Dashboard/​Model/​Serialization/​ResourceJsonSerializerContext.cs Generates resource graph JSON metadata.
src/​Aspire.Dashboard/​Model/​TelemetryExportService.cs Uses generated telemetry export metadata.
src/​Aspire.Dashboard/​Model/​TelemetryImportService.cs Uses generated telemetry import metadata.
src/​Aspire.Dashboard/​Model/​TerminalWindowLauncher.cs Updates terminal-window launch state.
src/​Aspire.Dashboard/​Otlp/​Grpc/​OtlpGrpcLogsService.cs Preserves OTLP error behavior without MVC metadata.
src/​Aspire.Dashboard/​Otlp/​Grpc/​OtlpGrpcMetricsService.cs Preserves metric endpoint status handling.
src/​Aspire.Dashboard/​Otlp/​Grpc/​OtlpGrpcTraceService.cs Preserves trace endpoint status handling.
src/​Aspire.Dashboard/​Otlp/​Http/​OtlpHttpEndpointsBuilder.cs Adds local status-page suppression metadata.
src/​Aspire.Dashboard/​Otlp/​OtlpLogsService.cs Updates Dapper AOT log queries.
src/​Aspire.Dashboard/​Otlp/​OtlpMetricsService.cs Updates Dapper AOT metric queries.
src/​Aspire.Dashboard/​Otlp/​OtlpTraceService.cs Updates Dapper AOT trace queries.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Caching.cs Updates AOT-compatible cache queries.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Logs.cs Updates generated log mappings.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Metrics.Reads.cs Updates generated metric reads.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Metrics.Writes.cs Updates generated metric writes.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Resources.cs Updates generated resource queries.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Traces.Reads.cs Updates generated trace reads.
src/​Aspire.Dashboard/​Otlp/​Storage/​SqliteTelemetryRepository.Traces.Writes.cs Updates generated trace writes.
src/​Aspire.Dashboard/​Otlp/​Storage/​TraceSummary.cs Exposes trace mapping to the generator.
src/​Aspire.Dashboard/​Program.cs Adds native process lifecycle and bundle leasing.
src/​Aspire.Dashboard/​README.md Documents native deployment constraints.
src/​Aspire.Dashboard/​Serialization/​DashboardJsonSerializerContext.cs Centralizes generated Dashboard JSON metadata.
src/​Aspire.Dashboard/​ServiceClient/​DashboardClient.cs Updates client serialization and certificates.
src/​Aspire.Dashboard/​ServiceClient/​DashboardRunStore.cs Uses explicit persisted metadata serialization.
src/​Aspire.Dashboard/​ServiceClient/​DashboardSqliteDatabase.cs Updates SQLite initialization for AOT.
src/​Aspire.Dashboard/​ServiceClient/​SqliteResourceRepository.Storage.cs Updates generated resource storage queries.
src/​Aspire.Dashboard/​ServiceClient/​SqliteResourceRepository.cs Updates generated resource mappings.
src/​Aspire.Dashboard/​ServiceClient/​TracingSqliteConnection.cs Updates traced SQLite command handling.
src/​Aspire.Dashboard/​Telemetry/​DashboardTelemetryJsonSerializerContext.cs Generates Dashboard telemetry metadata.
src/​Aspire.Dashboard/​Telemetry/​DashboardTelemetrySender.cs Uses generated telemetry serialization.
src/​Aspire.Dashboard/​Telemetry/​DashboardTelemetryService.cs Uses explicit telemetry payloads.
src/​Aspire.Dashboard/​Telemetry/​VisualStudioTelemetryTypes.cs Adds serializable telemetry DTOs.
src/​Aspire.Dashboard/​Utils/​MaxItemCountHelper.cs Updates paging limits for new grids.
src/​Aspire.Dashboard/​Utils/​RoutingExtensions.cs Adds AOT-safe route handling.
src/​Aspire.Dashboard/​Utils/​VersionHelpers.cs Reports JIT versus AOT runtime mode.
src/​Aspire.Dashboard/​wwwroot/​js/​app.js Updates browser interoperability.
src/​Aspire.Hosting.Tasks/​ResolveAspireCliBundle.cs Resolves native, transitional, and legacy layouts.
src/​Aspire.Hosting/​Dashboard/​DashboardEventHandlers.cs Launches the resolved Dashboard executable.
src/​Aspire.Hosting/​Dcp/​DcpOptions.cs Updates Dashboard path configuration.
src/​Aspire.Managed/​Aspire.Managed.csproj Removes embedded Dashboard hosting dependencies.
src/​Aspire.Managed/​Program.cs Retains a compatibility Dashboard forwarder.
src/​Shared/​BundleDiscovery.cs Defines Dashboard bundle paths.
src/​Shared/​IConfigurationExtensions.cs Adds AOT-compatible configuration binding.
src/​Shared/​Otlp/​Serialization/​OtlpJsonSerializerContext.cs Generates OTLP JSON metadata.
tests/​Aspire.Cli.EndToEnd.Tests/​Helpers/​CliE2EAutomatorHelpers.cs Supports native Dashboard E2E startup.
tests/​Aspire.Cli.EndToEnd.Tests/​Helpers/​CliE2ETestHelpers.cs Updates Dashboard artifact helpers.
tests/​Aspire.Cli.EndToEnd.Tests/​Helpers/​TerminalRun.cs Tracks cancellable terminal sessions.
tests/​Aspire.Cli.EndToEnd.Tests/​SmokeTests.cs Covers the native Dashboard bundle.
tests/​Aspire.Cli.Tests/​BundleServiceIntegrationTests.cs Tests native Dashboard bundle installation.
tests/​Aspire.Cli.Tests/​BundleServiceTests.cs Tests Dashboard component resolution.
tests/​Aspire.Cli.Tests/​Commands/​DashboardRunCommandTests.cs Tests standalone Dashboard launching.
tests/​Aspire.Cli.Tests/​Layout/​LayoutConfigurationTests.cs Tests version-based Dashboard compatibility.
tests/​Aspire.Cli.Tests/​Layout/​LayoutDiscoveryReparsePointTests.cs Tests Dashboard layout path safety.
tests/​Aspire.Cli.Tests/​Layout/​LayoutProcessRunnerTests.cs Tests Dashboard process environment.
tests/​Aspire.Cli.Tests/​ProfileCaptureOptionsTests.cs Updates profiling option coverage.
tests/​Aspire.Cli.Tests/​ProfileCaptureServiceTests.cs Tests native Dashboard profiling.
tests/​Aspire.Cli.Tests/​Projects/​DotNetAppHostProjectTests.cs Tests compatible Dashboard path selection.
tests/​Aspire.Cli.Tests/​Projects/​PrebuiltAppHostServerTests.cs Tests prebuilt AppHost compatibility.
tests/​Aspire.Dashboard.Components.Tests/​Aspire.Dashboard.Components.Tests.csproj Updates component-test dependencies.
tests/​Aspire.Dashboard.Components.Tests/​Controls/​AspireFluentDataGridTests.cs Tests delegate sorting and loading UI.
tests/​Aspire.Dashboard.Components.Tests/​Controls/​LogViewerTests.cs Tests end-anchored log virtualization.
tests/​Aspire.Dashboard.Components.Tests/​Dialogs/​FilterDialogTests.cs Tests updated filter behavior.
tests/​Aspire.Dashboard.Components.Tests/​Pages/​ConsoleLogsTests.cs Updates console-log component coverage.
tests/​Aspire.Dashboard.Components.Tests/​Pages/​ResourcesTests.cs Updates resources-grid coverage.
tests/​Aspire.Dashboard.Components.Tests/​Pages/​StructuredLogsTests.cs Updates structured-log coverage.
tests/​Aspire.Dashboard.Components.Tests/​Pages/​TraceDetailsTests.cs Updates trace-detail coverage.
tests/​Aspire.Dashboard.Components.Tests/​Pages/​TracesTests.cs Updates traces-grid coverage.
tests/​Aspire.Dashboard.Components.Tests/​RoutedComponentTrimmingTests.cs Tests preservation of routed components.
tests/​Aspire.Dashboard.Components.Tests/​Shared/​DashboardPageTestContext.cs Updates shared Fluent UI test setup.
tests/​Aspire.Dashboard.Tests/​Aspire.Dashboard.Tests.csproj Updates Dashboard test dependencies.
tests/​Aspire.Dashboard.Tests/​BlazorAssetsTests.cs Tests mapped static assets.
tests/​Aspire.Dashboard.Tests/​DashboardJsonSerializerContextTests.cs Verifies generated JSON metadata.
tests/​Aspire.Dashboard.Tests/​DashboardOptionsTests.cs Tests AOT-compatible option binding.
tests/​Aspire.Dashboard.Tests/​Integration/​FrontendBrowserTokenAuthTests.cs Updates browser token authentication coverage.
tests/​Aspire.Dashboard.Tests/​Integration/​MockOpenIdAuthority.cs Uses explicit authentication payloads.
tests/​Aspire.Dashboard.Tests/​Integration/​OtlpGrpcServiceTests.cs Verifies gRPC status-page behavior.
tests/​Aspire.Dashboard.Tests/​Integration/​OtlpHttpServiceTests.cs Verifies HTTP status-page behavior.
tests/​Aspire.Dashboard.Tests/​Integration/​Playwright/​NativeAotDashboardTests.cs Exercises the packaged Native AOT Dashboard.
tests/​Aspire.Dashboard.Tests/​Integration/​StartupTests.cs Updates native startup coverage.
tests/​Aspire.Dashboard.Tests/​Integration/​TelemetryApiTests.cs Updates telemetry API serialization coverage.
tests/​Aspire.Dashboard.Tests/​LocalBrowserStorageTests.cs Tests generated browser-storage serialization.
tests/​Aspire.Dashboard.Tests/​Model/​DashboardClientTests.cs Tests updated client certificates and serialization.
tests/​Aspire.Dashboard.Tests/​Model/​IconResolverTests.cs Audits AOT-safe icon resolution.
tests/​Aspire.Dashboard.Tests/​Model/​InputViewModelTests.cs Tests exact file-reference serialization.
tests/​Aspire.Dashboard.Tests/​SecurityOptionsBindingTests.cs Tests security option binding.
tests/​Aspire.Dashboard.Tests/​Telemetry/​DashboardTelemetryServiceTests.cs Updates telemetry service tests.
tests/​Aspire.Dashboard.Tests/​TelemetryApiServiceTests.cs Adds Unicode log serialization coverage.
tests/​Aspire.Dashboard.Tests/​VersionHelpersTests.cs Tests AOT runtime labels.
tests/​Aspire.Hosting.JavaScript.Tests/​Aspire.Hosting.JavaScript.Tests.csproj Builds Dashboard with its own framework.
tests/​Aspire.Hosting.Sdk.Tests.FakeCommand/​Program.cs Creates a fake Dashboard bundle component.
tests/​Aspire.Hosting.Sdk.Tests/​AppHostSdkTargetsTests.cs Tests Dashboard SDK target behavior.
tests/​Aspire.Hosting.Testing.Tests/​Aspire.Hosting.Testing.Tests.csproj Builds Dashboard independently for tests.
tests/​Aspire.Hosting.Tests/​Dashboard/​DashboardEventHandlersTests.cs Tests native Dashboard event handling.
tests/​Aspire.Hosting.Tests/​Dashboard/​DashboardResourceTests.cs Tests valid managed Dashboard fixtures.
tests/​Aspire.Hosting.Tests/​MSBuildTests.cs Updates Dashboard build integration coverage.
tests/​Infrastructure.Tests/​CreateLayout/​CreateLayoutTests.cs Tests native Dashboard layout validation.
tests/​Infrastructure.Tests/​Hex1bNativePublishingTests.cs Tests terminal native publishing.
tests/​Infrastructure.Tests/​PowerShellScripts/​DownloadNativeArchivesTests.cs Tests Dashboard artifact downloads.
tests/​Infrastructure.Tests/​TestTriggerMap/​SelectTestsWorkflowTests.cs Tests Dashboard CI selection outputs.
tests/​Infrastructure.Tests/​TestTriggerMap/​TestTriggerMapTests.cs Tests native Dashboard routing rules.
tests/​Infrastructure.Tests/​WorkflowScripts/​ExtensionWorkflowTests.cs Updates final-results skip assertions.
tools/​CreateLayout/​CreateLayout.csproj Exposes layout internals to tests.
tools/​CreateLayout/​Program.cs Validates and copies the native Dashboard.
tools/​CreateLayout/​README.md Documents the Dashboard layout input.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Apply the XML documentation publish workaround to all repository AOT projects, including the CLI. Target a released runtime in the file-app container test and use an uncached nonexistent package for the tool failure test.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Dashboard path validation regresses for nonexistent paths, and the PR is explicitly an experimental draft that must not merge independently.

Review effort: Balanced
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Medium severity Validate configured DashboardPath before classifying as native AOT

src/​Aspire.Hosting/​Dashboard/​DashboardEventHandlers.cs:136

A non-empty but nonexistent DashboardPath now falls into this branch because GetManagedDashboardAssemblyPath returns null, so it is classified as a Native AOT executable and only fails later when DCP tries to launch it. Preserve the previous early, actionable validation by checking that the configured path itself exists before using the absence of a sibling DLL to identify a native executable.

Template tests restore outside the repository NuGet configuration and need the approved daily feed for the pinned OpenAPI and internal assets packages. Cover both shared test source mappings.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
Restore the shared test NuGet configurations and corresponding assertions until the user explicitly approves their modification.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
Enable the existing dnceng dotnet11 feed in both shared test configurations with source mapping coverage. The user explicitly approved feed changes for this experimental PR.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Dashboard lease metadata currently persists the first configuration argument as its command name, potentially duplicating sensitive command-line data.

Review effort: Balanced
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Medium severity Dashboard persists the first configuration argument as the command name

src/​Aspire.Dashboard/​Program.cs:13

The standalone Dashboard has no command token, so args.FirstOrDefault() is actually its first configuration argument (normally --ASPNETCORE_URLS=..., but it may contain a user-supplied token or key). BundleVersionLease persists this value as CommandName in the .leases metadata, making diagnostics incorrect and potentially copying sensitive command-line configuration into another file. Use a fixed command name instead.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 03243b40-e6da-472e-9072-94ab1ec47019
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching '.github/actions/select-tests/action.yml' selects ALL


Selection computed for commit 5acfdd4.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Native Dashboard validation is not selected for future changes limited to eng/Bundle.proj or tools/CreateLayout/**.

Review effort: Balanced
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Medium severity Add native dashboard validation job to bundle path selectors

eng/​Bundle.proj:108

This makes eng/Bundle.proj a direct producer of the Native AOT Dashboard archive, but its selector rule still expands only to CLI_BUNDLE; tools/CreateLayout/** has the same omission. A later PR changing only either input will therefore skip all six native_dashboard_validation_* jobs. Add job:native-dashboard-validation to those path rules and update the audited exact-consumer assertions in TestTriggerMapTests.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants