Skip to content

Conversation

@jeromelaban
Copy link
Member

GitHub Issue: closes #

PR Type:

What is the current behavior? πŸ€”

What is the new behavior? πŸš€

PR Checklist βœ…

Please check if your PR fulfills the following requirements:

Other information ℹ️

Copilot AI review requested due to automatic review settings December 2, 2025 19:33
@github-actions github-actions bot added area/build Categorizes an issue or PR as relevant to build infrastructure kind/documentation labels Dec 2, 2025
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

Copilot AI review requested due to automatic review settings December 3, 2025 01:22
Copilot finished reviewing on behalf of jeromelaban December 3, 2025 01:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 10 comments.

{
private static async Task<int> Main(string[] args)
{
Debugger.Launch();
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Debugger.Launch() should not be present in production code. This will prompt users to attach a debugger every time the program runs, which is disruptive and inappropriate for a released tool. Please remove this line before merging.

Suggested change
Debugger.Launch();

Copilot uses AI. Check for mistakes.
}
}

[Description("This tool MUST be called to before another uno app tools to initialize properly")]
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Grammatical error in the description attribute. The phrase "called to before another" should be "called before other".

Suggested change
[Description("This tool MUST be called to before another uno app tools to initialize properly")]
[Description("This tool MUST be called before other uno app tools to initialize properly")]

Copilot uses AI. Check for mistakes.
// To avoid tool invocation failures, we wait for the tools to be available
// after the dev server has started.
if (_waitForTools
if ((!_forceRootsFallback || !clientSupportsRoots) &&
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

The condition logic appears incorrect. The expression (!_forceRootsFallback || !clientSupportsRoots) should likely be (_forceRootsFallback || !clientSupportsRoots) (without the negation on the first term).

Currently, when _forceRootsFallback is true AND clientSupportsRoots is true, the condition evaluates to false, which means we won't wait for tools. However, based on the code flow and the second part of the condition, it seems we should wait for tools in fallback mode OR when the client doesn't support roots. Please verify this logic is correct.

Suggested change
if ((!_forceRootsFallback || !clientSupportsRoots) &&
if ((_forceRootsFallback || !clientSupportsRoots) &&

Copilot uses AI. Check for mistakes.
Comment on lines 379 to 384
$openApiToken = $env:OPENAPI_TOKEN
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
Write-Log "OPENAPI_TOKEN not provided. Skipping Codex MCP integration test."
}
else {
Write-Log "OPENAPI_TOKEN detected. Starting Codex MCP integration test."
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

The environment variable name OPENAPI_TOKEN appears to be misspelled. Based on OpenAI's standard naming convention, this should likely be OPENAI_API_KEY or OPENAI_API_TOKEN. Please verify the correct variable name. This typo is also present in the Azure DevOps pipeline configuration.

Suggested change
$openApiToken = $env:OPENAPI_TOKEN
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
Write-Log "OPENAPI_TOKEN not provided. Skipping Codex MCP integration test."
}
else {
Write-Log "OPENAPI_TOKEN detected. Starting Codex MCP integration test."
$openApiToken = $env:OPENAI_API_KEY
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
Write-Log "OPENAI_API_KEY not provided. Skipping Codex MCP integration test."
}
else {
Write-Log "OPENAI_API_KEY detected. Starting Codex MCP integration test."

Copilot uses AI. Check for mistakes.
Comment on lines +24 to +27
if (_monitor is not null)
{
throw new InvalidOperationException("DevServerMonitor is already running");
}
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Potential race condition: The check if (_monitor is not null) on line 24 is not thread-safe. If StartMonitoring is called concurrently from multiple threads, both calls could pass the null check before either assigns to _monitor, resulting in multiple monitoring tasks. Consider using a lock or Interlocked.CompareExchange to ensure thread-safe initialization.

Copilot uses AI. Check for mistakes.
try
{
var clientTransport = new SseClientTransport(new()
var clientTransport = new HttpClientTransport(new()
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

The class name changed from SseClientTransport to HttpClientTransport. While this may be correct for the updated ModelContextProtocol library version, please verify this is the intended replacement class and that it provides equivalent functionality for SSE (Server-Sent Events) communication.

Copilot uses AI. Check for mistakes.
Comment on lines +104 to +108
if (_forceRootsFallback)
{
await SetRoots(ctx.Params.Arguments?["roots"].Deserialize<string[]>() ?? []);
return new CallToolResult() { Content = [new TextContentBlock() { Text = "Ok" }] };
}
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Redundant condition check: _forceRootsFallback is already checked on line 102, and the nested if (_forceRootsFallback) on line 104 is unnecessary. The inner condition will always be true if we reach line 106. Consider removing the redundant inner check.

Suggested change
if (_forceRootsFallback)
{
await SetRoots(ctx.Params.Arguments?["roots"].Deserialize<string[]>() ?? []);
return new CallToolResult() { Content = [new TextContentBlock() { Text = "Ok" }] };
}
await SetRoots(ctx.Params.Arguments?["roots"].Deserialize<string[]>() ?? []);
return new CallToolResult() { Content = [new TextContentBlock() { Text = "Ok" }] };

Copilot uses AI. Check for mistakes.
BUILD_SOURCESDIRECTORY: $(BUILD.SOURCESDIRECTORY)
NBGV_SemVer2: $(NBGV_SemVer2)
WasmCachePath: $(WasmCachePath)
OPENAPI_TOKEN: $(OPENAPI_TOKEN)
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

The environment variable name OPENAPI_TOKEN appears to be misspelled. Based on OpenAI's standard naming convention, this should likely be OPENAI_API_KEY or OPENAI_API_TOKEN. Please verify the correct variable name matches the PowerShell script usage.

Suggested change
OPENAPI_TOKEN: $(OPENAPI_TOKEN)
OPENAI_API_KEY: $(OPENAI_API_KEY)

Copilot uses AI. Check for mistakes.
private readonly CancellationTokenSource _disposeCts = new();

public IMcpClient? UpstreamClient { get; internal set; }
public McpClient? UpstreamClient { get; internal set; }
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Breaking change: The property type changed from IMcpClient? to McpClient?. This is a breaking change that reduces flexibility by depending on a concrete type instead of an interface. If this is intentional due to the ModelContextProtocol library update (v0.3.0 to v0.4.1), please document this as a breaking change in the PR description. If the interface is no longer available in the new version, this is acceptable, but should be noted.

Suggested change
public McpClient? UpstreamClient { get; internal set; }
public IMcpClient? UpstreamClient { get; internal set; }

Copilot uses AI. Check for mistakes.
## Check your environment

[!include[getting-help](includes/use-uno-check-inline-noheader.md)]

Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

This PR is missing a required GitHub issue reference. According to the coding guidelines, every PR MUST reference a proper GitHub issue using one of these formats:

  • Fixes https://github.com/unoplatform/uno/issues/#<ISSUE_NUMBER>
  • Closes https://github.com/unoplatform/uno/issues/#<ISSUE_NUMBER>
  • Related to https://github.com/unoplatform/uno/issues/#<ISSUE_NUMBER>

Please add the issue reference to the PR description, or if there is no issue, add a note explaining why (e.g., "Note: No related issue (Internal maintenance / Approved by Team member: @username)").

Copilot generated this review using guidance from organization custom instructions.
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@nventive-devops
Copy link
Contributor

The build 186066 found UI Test snapshots differences: android-28-net9: 14, android-28-net9-Snap: 35, ios: 5, ios-Snap: 46, skia-linux-screenshots: 70, skia-windows-screenshots: 270, wasm: 116, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 14, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 14 changed over 825

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • Detereminate_ProgressRing_Validation0_[#FF0000_#FF0000_#FF0000_#FF0000]_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIDeterminateProgressRing
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • WebView_NavigateToAnchor_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_SingleSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • android-28-net9-Snap: 35 changed over 1077

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage
    • Buttons_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage_UITests_Microsoft_UI_Xaml_Controls_RadioButtonsTests_RadioButtonsPage
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • TeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage
    • MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • WebView_WebView2_TargetBlank_UITests_Shared_Windows_UI_Xaml_WebView2_TargetBlank
    • TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout
    • UIElement_TransformToVisual_Simple_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Simple
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_FromStream_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_FromStream
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavOnlyPage_MUXControlsTestApp_NavigationViewTopNavOnlyPage
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavPage_MUXControlsTestApp_NavigationViewTopNavPage
  • ios: 5 changed over 255

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
  • ios-Snap: 46 changed over 995

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Brushes_ImageBrushWithScaleTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithScaleTransform
    • Microsoft_UI_Xaml_Media_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap_UITests_Windows_UI_Xaml_Media_ThemeShadowTests_ThemeShadow_Overlap
    • Pickers_TimePicker_TimePickerFlyoutStyle_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_TimePickerFlyoutStyle
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • GridView_GenericApp_Views_Samples_Shared_Content_UITests_GridViewGrouped_GenericApp_Views_Samples_Shared_Content_UITests_GridViewGrouped
    • SwipeControl_MUXControlsTestApp_SwipeControlPage2_MUXControlsTestApp_SwipeControlPage2
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider
    • ColorPicker_WinUIColorPickerPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ColorPickerTests_WinUIColorPickerPage
    • Flyouts_UITests_Windows_UI_Xaml_Controls_Flyout_Flyout_TemplatedParent_UITests_Windows_UI_Xaml_Controls_Flyout_Flyout_TemplatedParent
    • NavigationView_MUXControlsTestApp_NavigationViewMenuItemStretchPage_MUXControlsTestApp_NavigationViewMenuItemStretchPage
    • NavigationView_MUXControlsTestApp_NavigationViewMinimalPage_MUXControlsTestApp_NavigationViewMinimalPage
    • Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList
    • ContentControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • Performance_UITests_Windows_UI_Xaml_Performance_Performance_1000ButtonsContinuousRendering_UITests_Windows_UI_Xaml_Performance_Performance_1000ButtonsContinuousRendering
    • Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
  • skia-linux-screenshots: 70 changed over 2306

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DropDownButtonPage.png-dark
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_CurrentReading.png
    • ClipboardTests.png-dark
    • ClipboardTests.png
    • CalendarView_Theming.png-dark
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • CalendarView_Theming.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • BitmapIcon_Monochromatic.png
    • Examples.png
    • ImageIconPage.png-dark
  • skia-windows-screenshots: 270 changed over 2306

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Border_With_ScaleTransform.png
    • Border_With_TranslateTransform.png-dark
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • DoubleAnimation_BeginTime.png-dark
    • DoubleAnimation_BeginTime.png
    • DoubleAnimation_Cumulative.png-dark
    • DoubleAnimation_Cumulative.png
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • Grid_with_TextBlock_VerticalAlignment.png-dark
    • Grid_with_TextBlock_VerticalAlignment.png
    • Grid_with_Text_HorizontalAlignment_With_Margin.png-dark
    • Grid_with_Text_HorizontalAlignment_With_Margin.png
    • AutoSizedPathCentered.png-dark
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • GridWithColumnSpan.png-dark
    • GridWithColumnSpan.png
    • Grid_Auto_Center_Cell.png-dark
  • wasm: 116 changed over 1058

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • MUXControlsTestApp.NavigationViewSelectedItemEdgeCasePage
    • MUXControlsTestApp.PipsPagerPage
    • MUXControlsTestApp.SwipeControlPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Corners
    • UITests.Microsoft_UI_Xaml_Controls.InfoBadgeTests.InfoBadgePage
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • UITests.Shared.Windows_UI_Xaml.UIElementTests.TransformToVisual_Simple
    • UITests.Shared.Windows_UI_Xaml_Controls.MediaPlayerElement.MediaPlayerElement_Ogg_Extension
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml_Controls.AutoSuggestBoxTests.AutoSuggestBox_Reason
    • UITests.Windows_UI_Xaml_Controls.GridTestsControl.Grid_ScrollViewer
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_WithPadding_Focus
    • Uno.UI.Samples.Content.UITests.ContentControlTestsControl.ContentControl_Inheritance
    • SamplesApp.Windows_UI_Xaml_Shapes.ShapeControlsPage
    • UITests.Microsoft_UI_Xaml_Controls.TabViewTests.TabViewBasicPage
    • UITests.Shared.Windows_UI_Xaml.ViusalStateTests.VisualState_AdaptiveTrigger_Storyboard
    • GenericApp.Views.Samples.Shared.Content.UITests.GridViewMultipleSelectionMode
    • initial_state
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBoxTests.TextBox_Selection
    • UITests.Windows_ApplicationModel.ClipboardTests
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 14 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_StrokeThickness_MyEllipse
    • Default_StrokeThickness_MyPolygon
    • Default_StrokeThickness_MyLine
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • Default_StrokeThickness_MyPath
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • When_StretchAndAlignmentNone_ImageBrush-50-50-None-XLeft-YBottom
    • Default_StrokeThickness_MyPolyline
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • Default_StrokeThickness_MyRect
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-2: 0 changed over 1

Copilot AI review requested due to automatic review settings December 3, 2025 12:51
Copilot finished reviewing on behalf of jeromelaban December 3, 2025 12:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.

if (_roots.FirstOrDefault() is { } rootUri
&& Uri.TryCreate(rootUri, UriKind.RelativeOrAbsolute, out var root))
{
_devServerMonitor.StartMonitoring(root.LocalPath, _devServerPort, _forwardedArgs);
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Potential null reference exception. If _roots.FirstOrDefault() is not null but Uri.TryCreate returns false, the code continues without any handling. Additionally, if root.LocalPath throws an exception (e.g., for non-file URIs), it won't be caught. Consider adding null checks and error handling for the URI parsing.

Suggested change
_devServerMonitor.StartMonitoring(root.LocalPath, _devServerPort, _forwardedArgs);
try
{
if (root.IsFile)
{
_devServerMonitor.StartMonitoring(root.LocalPath, _devServerPort, _forwardedArgs);
}
else
{
_logger.LogError("Root URI is not a file URI: {RootUri}", rootUri);
}
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to process root URI: {RootUri}", rootUri);
}

Copilot uses AI. Check for mistakes.
Comment on lines 345 to 346
$openApiToken = $env:OPENAPI_TOKEN
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Variable name typo: $openApiToken should likely be $openAIToken based on the environment variable name OPENAPI_TOKEN. While technically the environment variable name is correct, the variable name is misleading as it appears to be for OpenAI (AI service), not OpenAPI (API specification standard).

Suggested change
$openApiToken = $env:OPENAPI_TOKEN
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
$openAIToken = $env:OPENAPI_TOKEN
if ([string]::IsNullOrWhiteSpace($openAIToken)) {

Copilot uses AI. Check for mistakes.
Comment on lines 4 to 8
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.Design.Serialization;
using System.Text.Json;
using System.Threading;
using Microsoft.AspNetCore.Routing;
Copy link

Copilot AI Dec 3, 2025

Choose a reason for hiding this comment

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

Unused imports detected. System.ComponentModel.DataAnnotations (line 4) and System.ComponentModel.Design.Serialization (line 5) and Microsoft.AspNetCore.Routing (line 8) are imported but not used in the file. Remove them to keep the code clean.

Suggested change
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.Design.Serialization;
using System.Text.Json;
using System.Threading;
using Microsoft.AspNetCore.Routing;
using System.Text.Json;
using System.Threading;

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

Copilot AI review requested due to automatic review settings December 5, 2025 00:45
Copilot finished reviewing on behalf of jeromelaban December 5, 2025 00:49
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 9 comments.

try
{
var clientTransport = new SseClientTransport(new()
var clientTransport = new HttpClientTransport(new()
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Breaking API change from SseClientTransport to HttpClientTransport. This changes the transport mechanism from Server-Sent Events to HTTP. Ensure this change is intentional and compatible with the MCP server implementation, as it may affect real-time communication capabilities.

Copilot uses AI. Check for mistakes.
Version = "1.0.0",
},
Capabilities = new()
Handlers = new()
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Breaking API change from Capabilities to Handlers. This reflects a structural change in the ModelContextProtocol API. Verify that this is the correct property name for version 0.4.1-preview.1 of the package.

Copilot uses AI. Check for mistakes.
Comment on lines +22 to +23
public Task<McpClient> UpstreamClient
=> _clientCompletionSource.Task;
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

The property UpstreamClient returns a Task<McpClient> instead of the client directly. This forces all callers to use await at the call site (e.g., await _mcpClientProxy.UpstreamClient), which can be confusing. Consider using a method name like GetUpstreamClientAsync() to make the async nature more explicit, or add XML documentation explaining this behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +9
using System.ComponentModel.Design.Serialization;
using System.IO;
using System.Text.Json;
using System.Threading;
using Microsoft.AspNetCore.Routing;
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Unused imports: System.ComponentModel.Design.Serialization (line 5) and Microsoft.AspNetCore.Routing (line 9) appear to be unused in this file. Consider removing them to keep the code clean.

Suggested change
using System.ComponentModel.Design.Serialization;
using System.IO;
using System.Text.Json;
using System.Threading;
using Microsoft.AspNetCore.Routing;
using System.IO;
using System.Text.Json;
using System.Threading;

Copilot uses AI. Check for mistakes.
Comment on lines +385 to +386
$openApiToken = $env:CODEX_API_KEY
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Variable name typo: $openApiToken should likely be $openAiToken (AI, not API) since it refers to OpenAI's Codex API. The environment variable is correctly named CODEX_API_KEY.

Suggested change
$openApiToken = $env:CODEX_API_KEY
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
$openAiToken = $env:CODEX_API_KEY
if ([string]::IsNullOrWhiteSpace($openAiToken)) {

Copilot uses AI. Check for mistakes.

Set-Content -Path $instructionsFile -Value $instructions -Encoding utf8

$model = if (-not [string]::IsNullOrWhiteSpace($env:CODEX_MODEL)) { $env:CODEX_MODEL } else { "gpt-5-mini" }
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Model name appears incorrect: gpt-5-mini should likely be gpt-4o-mini (the actual OpenAI model name). GPT-5 has not been released as of the current date.

Suggested change
$model = if (-not [string]::IsNullOrWhiteSpace($env:CODEX_MODEL)) { $env:CODEX_MODEL } else { "gpt-5-mini" }
$model = if (-not [string]::IsNullOrWhiteSpace($env:CODEX_MODEL)) { $env:CODEX_MODEL } else { "gpt-4o-mini" }

Copilot uses AI. Check for mistakes.

log.LogInformation("Connecting to upstream MCP at {Url}", url);
var client = await McpClientFactory.CreateAsync(clientTransport, options, cancellationToken: ct);
var client = await McpClient.CreateAsync(clientTransport, options, cancellationToken: ct);
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Breaking API change from McpClientFactory.CreateAsync() to McpClient.CreateAsync(). This is a significant architectural change in how clients are instantiated. Ensure this aligns with the 0.4.1-preview.1 package API.

Copilot uses AI. Check for mistakes.
await host.Services.GetRequiredService<McpServer>().SendNotificationAsync(
NotificationMethods.ToolListChangedNotification,
new ResourceUpdatedNotificationParams()
new ToolListChangedNotificationParams()
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Incorrect notification parameter type: Using ToolListChangedNotificationParams instead of ResourceUpdatedNotificationParams. Given the notification method is ToolListChangedNotification, the parameter type should match. Verify this is correct for the 0.4.1-preview.1 API.

Suggested change
new ToolListChangedNotificationParams()
new ResourceUpdatedNotificationParams()

Copilot uses AI. Check for mistakes.
Comment on lines +16 to +17
Debugger.Launch();

Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Debug code (Debugger.Launch()) should not be committed to the codebase. This will cause debugger prompts in production/release builds and CI environments.

Suggested change
Debugger.Launch();

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

Copilot AI review requested due to automatic review settings December 5, 2025 03:22
Copilot finished reviewing on behalf of jeromelaban December 5, 2025 03:26
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 6 comments.

Comment on lines +15 to +22
1. Install [Codex CLI](https://developers.openai.com/codex/cli) using the official commands, for example:

```bash
npm i -g @openai/codex
# or on macOS
brew install --cask codex
```

Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

The documentation refers to "official commands" but the provided examples show different installation methods (npm vs brew). Consider clarifying which method is recommended or under what circumstances each should be used. Additionally, the URL "https://developers.openai.com/codex/cli" should be verified as it may not be the correct documentation link for the Codex CLI installation instructions.

Suggested change
1. Install [Codex CLI](https://developers.openai.com/codex/cli) using the official commands, for example:
```bash
npm i -g @openai/codex
# or on macOS
brew install --cask codex
```
1. Install Codex CLI. The recommended installation method depends on your platform:
- **All platforms (recommended):**
Use [npm](https://www.npmjs.com/package/@openai/codex) (requires [Node.js](https://nodejs.org/)):
```bash
npm i -g @openai/codex
```
- **macOS only (alternative):**
You can also use [Homebrew](https://formulae.brew.sh/cask/codex):
```bash
brew install --cask codex
```
For the latest installation instructions, see the [official Codex CLI documentation](https://platform.openai.com/docs/assistants/tools/codex-cli).

Copilot uses AI. Check for mistakes.
Comment on lines +175 to +220
$stdOutFile = [System.IO.Path]::GetTempFileName()
$stdErrFile = [System.IO.Path]::GetTempFileName()
$instructionsFile = [System.IO.Path]::GetTempFileName()

Set-Content -Path $instructionsFile -Value $instructions -Encoding utf8

$model = if (-not [string]::IsNullOrWhiteSpace($env:CODEX_MODEL)) { $env:CODEX_MODEL } else { "gpt-5-mini" }

Write-Log "Invoking Codex CLI to enumerate MCP tools."
$codexArgs = @(
'--ask-for-approval','never',
'exec',
'-m',$model,
'--sandbox','workspace-write',
'-c','mcp_servers."uno-app".startup_timeout_sec=120',
'-c','features.web_search_request=true',
'-c','features.rmcp_client=true',
'-c','sandbox_workspace_write.network_access=true'
)

$codexExecutable = "codex"
$codexArguments = $codexArgs
if ($IsWindows) {
# npm exposes Codex CLI through a .cmd shim on Windows, so run it via cmd.exe
$codexExecutable = "cmd.exe"
$codexArguments = @("/c", "codex") + $codexArgs
}

$previousRustLog = $env:RUST_LOG
$env:RUST_LOG = 'debug'
try {
$process = Start-Process -FilePath $codexExecutable -ArgumentList $codexArguments -WorkingDirectory $WorkingDirectory -RedirectStandardOutput $stdOutFile -RedirectStandardError $stdErrFile -RedirectStandardInput $instructionsFile -PassThru

$timeoutMs = 300000
if (-not $process.WaitForExit($timeoutMs)) {
try { $process.Kill() } catch {}
$stdErrContent = Get-Content $stdErrFile -ErrorAction SilentlyContinue -Raw
throw "Codex CLI timed out after $($timeoutMs / 1000) seconds. STDERR:`n$stdErrContent"
}

$stdout = Get-Content $stdOutFile -ErrorAction SilentlyContinue -Raw
$stderr = Get-Content $stdErrFile -ErrorAction SilentlyContinue -Raw

Remove-Item $stdOutFile -ErrorAction SilentlyContinue
Remove-Item $stdErrFile -ErrorAction SilentlyContinue
Remove-Item $instructionsFile -ErrorAction SilentlyContinue
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

The temporary files created with [System.IO.Path]::GetTempFileName() are cleaned up in lines 218-220, but this cleanup only happens if the process exits normally. If an exception occurs before reaching the cleanup code (e.g., at line 206 during process start), these temp files will leak. Consider moving the cleanup into a finally block or using a try-finally pattern to ensure cleanup always occurs.

Copilot uses AI. Check for mistakes.
}
}

[Description("This tool MUST be called to before another uno app tools to initialize properly")]
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Grammar error in the description: "called to before another" should be "called before another".

Suggested change
[Description("This tool MUST be called to before another uno app tools to initialize properly")]
[Description("This tool MUST be called before another uno app tools to initialize properly")]

Copilot uses AI. Check for mistakes.

_ = Task.Run(() =>
{
if (tools?.Count != 0)
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

The condition tools?.Count != 0 will be true even when tools is null (null != 0 evaluates to true). This means the callback will be invoked even when there are no tools or when the tools list is null. Change this to tools?.Count > 0 or (tools?.Count ?? 0) > 0 to correctly handle the null case.

Suggested change
if (tools?.Count != 0)
if (tools?.Count > 0)

Copilot uses AI. Check for mistakes.
Comment on lines +390 to +391
$openApiToken = $env:CODEX_API_KEY
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

Variable naming inconsistency: the variable is named $openApiToken but it stores the value from $env:CODEX_API_KEY, and it's used to access the Codex API. The variable should be named $codexApiKey to match its purpose and source. Also note that the CI configuration uses OPENAPI_TOKEN (line 300 in .azure-devops-tests-templates.yml) which should be CODEX_API_KEY for consistency.

Suggested change
$openApiToken = $env:CODEX_API_KEY
if ([string]::IsNullOrWhiteSpace($openApiToken)) {
$codexApiKey = $env:CODEX_API_KEY
if ([string]::IsNullOrWhiteSpace($codexApiKey)) {

Copilot uses AI. Check for mistakes.
Comment on lines +96 to +116
private string? GetRootPath(string rootUri)
{
if (Uri.TryCreate(rootUri, UriKind.Absolute, out var absoluteUri) && absoluteUri.IsFile)
{
return absoluteUri.LocalPath;
}

if (Path.IsPathRooted(rootUri))
{
return Path.GetFullPath(rootUri);
}

if (!string.IsNullOrWhiteSpace(_currentDirectory))
{
var combined = Path.Combine(_currentDirectory, rootUri);
return Path.GetFullPath(combined);
}

_logger.LogWarning("Unable to resolve MCP root path from '{RootUri}'", rootUri);
return null;
}
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

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

The GetRootPath method accepts user-provided paths through the MCP protocol without proper validation. An attacker could potentially provide malicious paths (e.g., paths with directory traversal sequences like ../../sensitive-directory) that could escape the intended workspace. While Path.GetFullPath normalizes the path, it doesn't prevent access to locations outside the expected workspace. Consider adding validation to ensure the resolved path is within an expected workspace boundary, or add explicit checks against path traversal attempts.

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@nventive-devops
Copy link
Contributor

The build 186419 found UI Test snapshots differences: android-28-net9: 16, android-28-net9-Snap: 37, ios: 3, ios-Snap: 49, skia-linux-screenshots: 74, skia-windows-screenshots: 103, wasm: 127, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 9, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 16 changed over 825

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_NoSelection_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • WebView_NavigateToAnchor_Initial
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • android-28-net9-Snap: 37 changed over 1077

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Icons_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Icons
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller
    • MediaPlayerElement_Sources_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Sources
    • MediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_Extension
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • CommandBar_Examples_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Examples
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage
    • Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_Ellipse_Uno_UI_Samples_UITests_ImageBrushTestControl_Ellipse
    • Icons_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground
    • WebView_WebView_ChromeClient_Uno_UI_Samples_Content_UITests_WebView_WebView_ChromeClient
    • WebView_WebView_JavascriptInvoke_Uno_UI_Samples_Content_UITests_WebView_WebView_JavascriptInvoke
  • ios: 3 changed over 255

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • ios-Snap: 49 changed over 994

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Brushes_ImageBrushStretch_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch
    • Brushes_ImageBrushChangingCornerRadius_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushChangingCornerRadius
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider
    • Default_Uno_UI_Samples_UITests_Image_Image_Margin_Uno_UI_Samples_UITests_Image_Image_Margin
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Scrolling_MUXControlsTestApp_ScrollViewsWithSimpleContentsPage_MUXControlsTestApp_ScrollViewsWithSimpleContentsPage
    • Brushes_ImageBrushStretch2_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch2
    • ColorPicker_WinUIColorPickerPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ColorPickerTests_WinUIColorPickerPage
    • WebView_Javascript_AlertConfirmPrompt_Uno_UI_Samples_Content_UITests_WebView_WebViewControlJavaScriptAlertConfirmPrompt
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_NavigationProperties
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage
    • WebView_WebView2_ChromeClient_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ChromeClient
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats
    • TextBox_TextBox_WithPadding_Focus_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_WithPadding_Focus
    • WebView_WebView_JavascriptInvoke_Uno_UI_Samples_Content_UITests_WebView_WebView_JavascriptInvoke
    • Brushes_PathImageBrushfill_Uno_UI_Samples_UITests_ImageBrushTestControl_PathImageBrushfill
    • Brushes_UITests_Windows_UI_Xaml_Media_BrushesTests_RevealBrush_Fallback_UITests_Windows_UI_Xaml_Media_BrushesTests_RevealBrush_Fallback
  • skia-linux-screenshots: 74 changed over 2306

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ColorPickerSample.png
    • DisplayInformation.png-dark
    • CalendarView_Theming.png-dark
    • ClipboardTests.png
    • DoubleImageBrushInList.png
    • ImageBrushAlignmentXY2.png-dark
    • ImageBrushAlignmentXY2.png
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • ColorPickerSample.png-dark
    • DropDownButtonPage.png-dark
    • Image_Margin_Large.png
    • ClipboardTests.png-dark
    • ButtonClippingTestsControl.png-dark
    • ImagesInlineInFlipView.png-dark
    • ImagesInlineInFlipView.png
    • CompositionPath.png
    • BitmapIcon_Monochromatic.png
    • Popup_HVAlignments.png-dark
    • Popup_HVAlignments.png
  • skia-windows-screenshots: 103 changed over 2306

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • ClipboardTests.png-dark
    • ContentPresenter_NativeEmbedding_Android_FillType.png-dark
    • ContentPresenter_NativeEmbedding_Android_FillType.png
    • ContentPresenter_NativeEmbedding_ZIndex.png-dark
    • ContentPresenter_NativeEmbedding_ZIndex.png
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • Examples.png
    • ButtonClippingTestsControl.png-dark
    • ClipboardTests.png
    • ButtonClippingTestsControl.png
    • Buttons.png-dark
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • ContentPresenter_NativeEmbedding.png-dark
    • ContentPresenter_NativeEmbedding.png
    • Buttons.png
    • LargeImageList.png-dark
  • wasm: 127 changed over 1058

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • initial_state
    • MUXControlsTestApp.NavigationViewStretchPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_IsSelected
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_PlaceholderText
    • MUXControlsTestApp.RefreshVisualizerPage
    • SamplesApp.Wasm.Windows_UI_Xaml_Media.Transform.TransformToVisual_Translate2d
    • SamplesApp.Windows_UI_Xaml_Shapes.EllipsePage
    • UITests.Microsoft_UI_Xaml_Controls.InfoBadgeTests.InfoBadgePage
    • SamplesApp.Windows_UI_Xaml_Shapes.LinePage
    • UITests.Microsoft_UI_Xaml_Controls.RefreshContainerTests.RefreshContainerScrollTop
    • UITests.Toolkit.ElevatedViewTests
    • UITests.Windows_ApplicationModel.DataTransfer.DataTransferManagerTests
    • UITests.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Disabled
    • UITests.Windows_UI_Xaml_Controls.TextBlockControl.TextBlock_LayoutAlignment
    • UITests.Windows_UI_Xaml_Controls.TextBlockControl.TextBlock_MeasureCache
    • Uno.UI.Samples.Content.UITests.TextBoxControl.TextBox_Foreground
    • Uno.UI.Samples.Content.UITests.TextBoxControl.TextBox_Header
    • Uno.UI.Samples.Content.UITests.TextBoxControl.TextBox_HorizontalAlignment
    • UITests.Shared.Windows_UI_Xaml_Controls.ToggleSwitchControl.ToggleSwitchUnloadReload
    • Uno.UI.Samples.Content.UITests.Slider.Slider_Inside_ScrollViewer
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 9 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_StrokeThickness_MyEllipse
    • Default_StrokeThickness_MyPath
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_SingleSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Default_StrokeThickness_MyLine
    • When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • Default_StrokeThickness_MyPolyline
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-2: 0 changed over 1

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@nventive-devops
Copy link
Contributor

The build 186442 found UI Test snapshots differences: android-28-net9: 13, android-28-net9-Snap: 34, ios: 3, ios-Snap: 45, skia-linux-screenshots: 63, skia-windows-screenshots: 115, wasm: 129, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 11, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 13 changed over 825

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • WebView_NavigateToAnchor_Initial
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • FlyoutTest_When_NoOverlayInputPassThroughElement_Then_DontPassThrough_woOff_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_OverlayInputPassThroughElement
    • When_SingleSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
  • android-28-net9-Snap: 34 changed over 1077

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CommandBarFlyout_MUXControlsTestApp_CommandBarFlyoutPage_MUXControlsTestApp_CommandBarFlyoutPage
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage
    • TextBlock_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_Layout
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • RatingControl_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage_UITests_Microsoft_UI_Xaml_Controls_RatingControlTests_RatingControlPage
    • MediaPlayerElement_Using_3gp_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_3gp_Extension
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • NavigationView_MUXControlsTestApp_NavigationViewTopNavOnlyPage_MUXControlsTestApp_NavigationViewTopNavOnlyPage
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebViewTests_WebView_InvokeScriptAsync_UITests_Microsoft_UI_Xaml_Controls_WebViewTests_WebView_InvokeScriptAsync
    • Image_Image_Stretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_FromMsAppData_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_FromMsAppData
    • Scrolling_MUXControlsTestApp_ScrollViewWithScrollControllersPage_MUXControlsTestApp_ScrollViewWithScrollControllersPage
    • TeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • SwipeControl_MUXControlsTestApp_SwipeControlPage2_MUXControlsTestApp_SwipeControlPage2
    • Windows_Media_MediaPlayer_UITests_Windows_Media_MediaPlayerTests
  • ios: 3 changed over 255

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • ios-Snap: 45 changed over 994

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Brushes_ImageBrushStretch2_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch2
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • NavigationView_NavigationViewSample_SamplesApp_Samples_NavigationViewSample_NavigationViewSample
    • UIElement_TransformToVisual_Simple_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Simple
    • Buttons_Custom_Button_With_ContentTemplate_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Custom_Button_With_ContentTemplate
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal
    • NavigationView_MUXControlsTestApp_NavigationViewRS3Page_MUXControlsTestApp_NavigationViewRS3Page
    • WebView_WebView2_ChromeClient_SamplesApp_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ChromeClient
    • Clipping_UITests_Windows_UI_Xaml_Clipping_BorderVisualClipping_UITests_Windows_UI_Xaml_Clipping_BorderVisualClipping
    • WebView_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ExecuteScriptAsync_UITests_Microsoft_UI_Xaml_Controls_WebView2Tests_WebView2_ExecuteScriptAsync
    • WebView_WebView_JavascriptInvoke_Uno_UI_Samples_Content_UITests_WebView_WebView_JavascriptInvoke
    • Brushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrush
    • GridView_GenericApp_Views_Samples_Shared_Content_UITests_GridViewGrouped_GenericApp_Views_Samples_Shared_Content_UITests_GridViewGrouped
    • Icons_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground
    • ListView_ListView_Aligned_Left_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Aligned_Left
    • MediaPlayerElement_Sources_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Sources
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Bigger_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Bigger
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • WebView_Javascript_AlertConfirmPrompt_Uno_UI_Samples_Content_UITests_WebView_WebViewControlJavaScriptAlertConfirmPrompt
  • skia-linux-screenshots: 63 changed over 2306

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DropDownButtonPage.png-dark
    • ImageBrushAlignmentXY2.png-dark
    • ImageBrushAlignmentXY2.png
    • CalendarView_Theming.png-dark
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png
    • ClipboardTests.png
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • DoubleImageBrushInList.png
    • Buttons.png-dark
    • Gamepad_CurrentReading.png-dark
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • NetworkInformation.png-dark
    • Popup_HVAlignments.png-dark
    • Popup_HVAlignments.png
    • Examples.png
    • Popup_Simple.png-dark
  • skia-windows-screenshots: 115 changed over 2306

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Basics_Automated.png-dark
    • Basics_Automated.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • Border_With_CompositeTransform.png-dark
    • Border_With_CompositeTransform.png
    • Border_With_Off_Centre_RotateTransform.png-dark
    • Border_With_Off_Centre_RotateTransform.png
    • Border_With_RotateTransform.png
    • Border_With_ScaleTransform.png-dark
    • Border_With_ScaleTransform.png
    • Border_With_TranslateTransform.png-dark
    • ContentPresenter_NativeEmbedding_Android_FillType.png-dark
    • ImageIconPage.png-dark
    • ImageIconPage.png
    • Buttons.png
    • CalendarView_Theming.png-dark
    • DisplayInformation.png
    • Gamepad_Enumeration.png
    • Examples.png
  • wasm: 129 changed over 1058

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • UITests.Shared.Windows_UI_Xaml_Controls.WebView.WebView_Animated_Opacity
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBoxTests.TextBox_TextChanging
    • UITests.Shared.Windows_UI_Xaml_Controls.ToggleSwitchControl.ToggleSwitch_TemplateReuse
    • UITests.Windows_UI_Xaml_Controls.TimePicker.TimePicker_Header
    • UITests.Windows_UI_Xaml_Controls.TimePicker.TimePicker_TimePickerFlyoutStyle
    • Uno.UI.Samples.Content.UITests.GridTestsControl.Grid_InsideStackPanel_InsideButton
    • UITests.Shared.Windows_UI_Xaml.xBindTests.xBind_Functions
    • UITests.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Disabled
    • Uno.UI.Samples.Content.UITests.TextBoxControl.TextBox_TextAlignment
    • Uno.UI.Samples.Content.UITests.TextBoxControl.TextBox_TextProperty
    • SamplesApp.Samples.Windows_UI_Xaml_Controls.NavigationViewTests.NavigationView_Pane_Automated
    • UITests.Shared.Windows_UI_Xaml_Controls.ComboBox.ComboBox_MaxDropdownHeight
    • UITests.Shared.Windows_UI_Xaml_Controls.ListView.ListView_DataContext_Propagation
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBoxTests.TextBox_CharacterCasing
    • UITests.Shared.Windows_UI.Xaml_Automation.AutomationProperties_AutomationId
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml.FocusTests.Focus_FocusState
    • Uno.UI.Samples.Content.UITests.TextBlockControl.SimpleText_MaxLines_One
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_Wrapping
    • Uno.UI.Samples.Content.UITests.TextBlockControl.SimpleText_MaxLines_Two_With_Wrap
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 11 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Default_StrokeThickness_MyPolygon
    • When_StretchAndAlignmentNone_ImageBrush-50-50-None-XLeft-YBottom
    • Default_StrokeThickness_MyLine
    • Default_StrokeThickness_MyPath
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
    • Default_StrokeThickness_MyEllipse
    • Default_StrokeThickness_MyPolyline
    • Default_StrokeThickness_MyRect
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-2: 0 changed over 1

@unodevops
Copy link
Contributor

⚠️⚠️ The build 186442 has failed on Uno.UI - CI.

Copilot AI review requested due to automatic review settings December 7, 2025 03:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

_devServerMonitor.StartMonitoring(rootPath, _devServerPort, _forwardedArgs);
}
}
else if (!_forceRootsFallback)
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

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

The condition !_forceRootsFallback on line 90 appears incorrect. This warning will only be logged when roots are empty AND NOT in force fallback mode, but if _forceRootsFallback is true and there are no roots, no warning is logged. Consider whether this logic is intended, or if the condition should be removed to always warn when no roots are found.

Suggested change
else if (!_forceRootsFallback)
else

Copilot uses AI. Check for mistakes.
Comment on lines +197 to +201
if ($IsWindows) {
# npm exposes Codex CLI through a .cmd shim on Windows, so run it via cmd.exe
$codexExecutable = "cmd.exe"
$codexArguments = @("/c", "codex") + $codexArgs
}
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

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

This block builds a Codex CLI command using the CODEX_MODEL environment variable and, on Windows, executes it via cmd.exe /c codex ..., which allows shell metacharacters in CODEX_MODEL to be interpreted by cmd.exe. An attacker who can influence CODEX_MODEL (for example through CI variables or the process environment) can inject additional commands using characters like & or | and execute arbitrary code in the build agent context. To remediate this, avoid invoking codex via cmd.exe (execute the codex binary directly) or strictly whitelist/validate CODEX_MODEL and ensure it is passed as a single, safely quoted argument that cannot break out into the surrounding shell command.

Suggested change
if ($IsWindows) {
# npm exposes Codex CLI through a .cmd shim on Windows, so run it via cmd.exe
$codexExecutable = "cmd.exe"
$codexArguments = @("/c", "codex") + $codexArgs
}
# On Windows, PowerShell Start-Process can invoke .cmd shims directly, so we do not need to use cmd.exe /c.

Copilot uses AI. Check for mistakes.
@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

πŸ€– Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-22016/wasm-skia-net9/index.html

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

Labels

area/automation Categorizes an issue or PR as relevant to project automation area/build Categorizes an issue or PR as relevant to build infrastructure kind/documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants