You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Test NativeAOT dashboard with .NET 11 daily signal-handler fix - #20269
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.
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?
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
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
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.
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
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
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
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.
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
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Draft testing PR; do not merge independently. Based on #19565 at
0061fe77a6c3f231855d7ab87614e5374c2c7d1d, including its NativeAOT/Fluent UI v5 changes. Targetsmainto produce standard PR CI and dogfood artifacts without changing the original branch.Updates the SDK to
11.0.100-rc.2.26470.103and all eight .NET 11 package pins to11.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
ActivationHandlerchecksSIG_DFL/SIG_IGNbefore selectingSA_SIGINFO, confirming the fix from dotnet/runtime#132900 is present.Sets
UseOptimizedPublish=falsealongside the repository's XML documentation setting: this daily's optimized AOT path skips copying documentation tobin, 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.0rather than requiring unpublished daily runtime images/packs; the nonexistent-tool test uses a unique package ID so cacheddotnet-efcannot make it succeed despite an invalid feed.The two shared test NuGet configurations now include the same approved dnceng
dotnet11feed 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 throughputsamples 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. Seedocs/specs/with-terminal.mdfor interpretation and disabling the filter.Validation
aspire.xml; clean Dashboard packaging produced the native executable, ZIP and NuGet package including XML documentation.xcodebuild requires Xcodediagnostic and native debug-symbol warnings; daily publishing nevertheless exited 0.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
<remarks />and<code />elements on your triple slash comments?