Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
2a88a74
Enable CFSClean* policies for dotnet-maui pipeline
mmitche Mar 18, 2026
794a9fa
Add standalone code-review skill with maintainer-sourced review rules…
PureWeen Apr 2, 2026
e02aa6b
[Windows] Fixed CollectionView with grouping fails to add items when…
NirmalKumarYuvaraj Mar 12, 2026
e24051b
[iOS] Permissions.RequestAsync<Permissions.Sensors> does not return a…
kubaflo Mar 12, 2026
960b466
[Android] Button with corner radius shadow broken on Android device -…
kubaflo Mar 12, 2026
ec1bb6d
[iOS] Label LinebreakMode (TailTruncation) for FormattedText does't w…
kubaflo Mar 12, 2026
1de5348
[Android] Fixed SelectionLength Not Updated Correctly for Right-to-Le…
Dhivya-SF4094 Mar 13, 2026
1bb6e95
[iOS] Fix Flyout icon visibility when popping page using PopAsync or …
Vignesh-SF3580 Mar 13, 2026
c0a6d03
[iOS] Fix CollectionView excessive height when ObservableCollection s…
Vignesh-SF3580 Mar 14, 2026
7d97c5d
[Android] Implemented Material3 support for SearchBar (#33948)
Dhivya-SF4094 Mar 14, 2026
05b4e3d
[Android] Fix CollectionView sizing when wrapped in RefreshView (#34387)
Dhivya-SF4094 Mar 14, 2026
a292d18
[Shell] Fix OnNavigatingFrom reporting wrong DestinationPage (#34404)
SubhikshaSf4851 Mar 14, 2026
5549651
[Android] Fix GraphicsView dirtyRect mismatch when display density ch…
praveenkumarkarunanithi Mar 14, 2026
dfa9b6f
[iOS] Fix Scrollbar does not align with FlowDirection=RightToLeft in …
devanathan-vaithiyanathan Mar 14, 2026
0744933
[Android] Fix picked images end up with unexpected "_processed" suffi…
devanathan-vaithiyanathan Mar 14, 2026
f9cd13a
[iOS] Fix CollectionView horizontal scroll when empty inside Refres…
praveenkumarkarunanithi Mar 14, 2026
7883a08
[iOS/Mac] CollectionView: Fix incorrect ItemsViewScrolledEventArgs in…
SyedAbdulAzeemSF4852 Mar 14, 2026
db47732
[iOS] Fix Label background not clipped when Clip property is set (#34…
Shalini-Ashokan Mar 14, 2026
3432e35
[iOS] Fix MediaPicker.PickPhotosAsync returning empty list when selec…
Vignesh-SF3580 Mar 14, 2026
ee02b31
[iOS] Fix SearchBar.CancelButtonColor not applied on iOS 26 (#34291)
Vignesh-SF3580 Mar 14, 2026
f495680
[Testing] Feature Matrix UITest Cases for Shell Navigation Page (#34…
NafeelaNazhir Mar 14, 2026
6e35ddc
[iOS] Fix for CollectionView.Measure() returning incorrect height whe…
BagavathiPerumal Mar 14, 2026
16901c8
[iOS][Android] Shell: Fix tab bar visibility and selection after firs…
Shalini-Ashokan Mar 14, 2026
57da273
[Android] Fix for CollectionView EmptyView swaps reusing stale Recycl…
BagavathiPerumal Mar 14, 2026
e4d6f96
[Android] CollectionView: Fix item spacing applied on outer edges cau…
kubaflo Mar 15, 2026
36d8c23
[Android] Fix SearchHandler displays both Expanded and Collapsible vi…
Tamilarasan-Paranthaman Mar 15, 2026
f34ed80
[Android, iOS] Fix for ContentView not clearing its Background when s…
SyedAbdulAzeemSF4852 Mar 15, 2026
e3119e6
[Android] Tabs briefly display wrong background color when navigating…
KarthikRajaKalaimani Mar 15, 2026
1963aa7
[iOS] Shell: Fix 'More' tab navigation bar not applying Shell appeara…
kubaflo Mar 15, 2026
ef92104
[Shell] Fix InvalidCastException when using QueryPropertyAttribute wi…
kubaflo Mar 15, 2026
1531714
[iOS] - Fixed SearchBar Dimension Handling to Respect WidthRequest an…
prakashKannanSf3972 Mar 15, 2026
116e944
[iOS][Android] Label: Fix RTL padding not mirroring (#32333)
kubaflo Mar 15, 2026
465ca69
[iOS 26] Fix NavigationPage hang after rapidly pushing and popping pa…
mduchev Mar 15, 2026
0fd3c6b
[iOS] Preserve AlwaysTemplate rendering mode in Button.ResizeImageIfN…
kubaflo Mar 15, 2026
6cc8352
Fix for Shell back navigation using GoToAsync not triggering page tra…
SyedAbdulAzeemSF4852 Mar 16, 2026
3a110b3
Refactored ShellFlyoutTemplatedContentRenderer InsetListener (#32471)
NirmalKumarYuvaraj Mar 16, 2026
22068a0
[Android] Shell: Implement Material 3 theming support (#33427)
Dhivya-SF4094 Mar 16, 2026
e0aded9
[iOS 26] Fixed Placeholder text of SearchHandler is not displayed (#3…
Dhivya-SF4094 Mar 16, 2026
c0a56c7
[iOS] Fixed ProgressBar Flow Direction on iOS26 (#34015)
SubhikshaSf4851 Mar 16, 2026
020bd40
[iOS, Mac] Fix for TabbedPage FlowDirection Property Renders Opposite…
BagavathiPerumal Mar 16, 2026
20dd3db
[iOS] Fix FlyoutPage toolbar items visibility and ordering (#31067)
Shalini-Ashokan Mar 16, 2026
db0852a
[iOS 26] Stepper: Fix not reaching min/max when increment exceeds rem…
SyedAbdulAzeemSF4852 Mar 16, 2026
09e6db1
[iOS] Fix PickContactAsync blocking subsequent dialog presentation (#…
Vignesh-SF3580 Mar 16, 2026
f79d587
[Android] Fix for Android TalkBack announcing CollectionView items as…
praveenkumarkarunanithi Mar 16, 2026
06adcf8
[Android] Fixed TabbedPage bar background visual bug when using gradi…
SubhikshaSf4851 Mar 16, 2026
43343cb
Fix CharacterSpacing Set on Label Does Not Apply to Spans in Formatte…
SyedAbdulAzeemSF4852 Mar 16, 2026
06bf209
[Android] Fix for Automatic Flow Direction change in Graphics View (#…
HarishwaranVijayakumar Mar 16, 2026
a51b7aa
[Android] Fix Java.Lang.IllegalArgumentException crash in Entry with …
Vignesh-SF3580 Mar 16, 2026
6ee4d7e
[iOS] Fix indicator dots not rendering when using indicator size with…
Shalini-Ashokan Mar 16, 2026
f62c998
[MacCatalyst] Shell: Fix ShellContent tab titles not rendering when e…
KarthikRajaKalaimani Mar 16, 2026
75e9af3
Fix conflicts and build failures in inflight/current branch (#34495)
devanathan-vaithiyanathan Mar 16, 2026
3c19071
[Android] Prevent tabs from being removed during Disappearing (#32878)
jfversluis Mar 16, 2026
2a1c709
[iOS, Android] Fix for Incorrect Orientation in HEIC and JPG Images D…
HarishwaranVijayakumar Mar 16, 2026
ac7bd8b
[iOS & MacCatalyst] Fixed Flowdirection in Stepper (#34005)
SubhikshaSf4851 Mar 16, 2026
578b464
[iOS] Shell: Fix page viewport offset when Entry focused on page load…
BagavathiPerumal Mar 16, 2026
5bb6e2b
[Testing] Refactoring Feature Matrix UITest Cases for BoxView Control…
HarishKumarSF4517 Mar 16, 2026
c5eb856
[iOS] SwipeGestureRecognizer: Fix swipe direction detection on rotate…
BagavathiPerumal Mar 16, 2026
ab8f0b2
[iOS/Mac] Shell: Prevent double back-navigation on rapid push/pop in …
SubhikshaSf4851 Mar 16, 2026
5f48260
Fix Android/iOS map polygon clearing issue by resetting MapElementId …
Copilot Mar 16, 2026
9d26401
SwipeView: Fix scroll parent detection race condition in DataTemplate…
kubaflo Mar 16, 2026
e5cfb73
[Testing] Refactoring Feature Matrix UITest Cases for Border Control …
HarishKumarSF4517 Mar 16, 2026
9c738a5
[Android, iOS] Fix for Shell flyout navigation fires NavigatedTo befo…
praveenkumarkarunanithi Mar 16, 2026
8c8633e
[Android] Essentials: Cancel pending picker tasks when IntermediateAc…
KarthikRajaKalaimani Mar 16, 2026
8f7452d
[Android] Fix for ArgumentOutOfRangeException thrown by ScrollTo when…
SyedAbdulAzeemSF4852 Mar 17, 2026
458877e
[Housekeeping] Refactor iOS large titles sample (#33084)
kubaflo Mar 17, 2026
db70501
[Android, iOS, macOS] Fixed Shell SearchHandler Command Not Executed …
NanthiniMahalingam Mar 17, 2026
6874c80
[Android, iOS] Throw exceptions consistently for invalid StaticResour…
Vignesh-SF3580 Mar 17, 2026
15e1690
Fix for Binding failure in RadioButton after .NET 10 upgrade (#34285)
BagavathiPerumal Mar 17, 2026
51488f4
Fix: Replace double.IsFinite to resolve compilation errors in SwipeGe…
Vignesh-SF3580 Mar 17, 2026
c8fdb99
[Windows/Android] Fix RadioButton TextTransform Property not working …
devanathan-vaithiyanathan Mar 17, 2026
83001f9
Shell: Update flyout behavior when items are dynamically replaced (#2…
Vignesh-SF3580 Mar 17, 2026
09d13be
[Android] - Fix Inconsistent Footer Scrolling Behaviour in Collection…
prakashKannanSf3972 Mar 17, 2026
ec5e715
[Android] Switch: Add opt-in Material3 support (#33132)
NirmalKumarYuvaraj Mar 17, 2026
734a9d9
[Android] CollectionView: Defer RemainingItemsThresholdReached to avo…
NirmalKumarYuvaraj Mar 17, 2026
5bdc10f
[iOS/MacCatalyst] Fix Shell TabBarDisabledColor not working on disabl…
praveenkumarkarunanithi Mar 17, 2026
61a3371
[iOS] - Fixed ImageSource.FromFile fails when image in subfolder (#31…
NirmalKumarYuvaraj Mar 17, 2026
516b990
[Android][iOS] SearchBar: Fix UserInteractionEnabled not respecting I…
NirmalKumarYuvaraj Mar 17, 2026
99b7ca6
[blazorwebview] align `SupportedOSPlatform` attribute with templates …
jonathanpeppers Mar 17, 2026
f496691
Fix Changing Shell.NavBarIsVisible does not update the nav bar (#30339)
devanathan-vaithiyanathan Mar 17, 2026
3f49597
[Android] Fix for Shell custom FlyoutIcon display problem (#27502)
Ahamed-Ali Mar 17, 2026
6dfc145
Refactor image rotation and PNG format logic (#33140)
kubaflo Mar 17, 2026
e6ee831
[iOS/Mac] SwipeGestureRecognizer: Avoid firing parent swipes during c…
KarthikRajaKalaimani Mar 18, 2026
7d5e552
[iOS] Fix incorrect FirstVisibleItemIndex reported by CollectionView.…
Shalini-Ashokan Mar 18, 2026
1ffa1cd
[Android] Implemented Material3 support for ImageButton (#33649)
Dhivya-SF4094 Mar 18, 2026
93b5bf9
Fix LayoutCycleException from nested Borders on Windows (#34337)
Oxymoron290 Mar 18, 2026
438d3b6
[Android, iOS] - Flyout icon should remain visible when a page is pus…
praveenkumarkarunanithi Mar 18, 2026
8b68eb3
[Android] Implement material3 support for Slider (#33603)
HarishwaranVijayakumar Mar 18, 2026
d7b5a89
Fix Compiled Bindings with explicit sources inside DataTemplates (#34…
SubhikshaSf4851 Mar 18, 2026
8919754
[Android] CarouselView incorrectly reads out "double tap to activate"…
kubaflo Mar 18, 2026
dea74d5
[Android] Implemented Material3 support for DatePicker (#33651)
Dhivya-SF4094 Mar 18, 2026
8a28afd
Fix CS0246: Replace MauiMaterialSlider with Slider in SliderExtension…
sheiksyedm Mar 18, 2026
af543bf
[Android] Implement material3 support for Entry (#33673)
HarishwaranVijayakumar Mar 18, 2026
4274358
Fix incorrect access modifier in Slider extension (#34553)
HarishwaranVijayakumar Mar 19, 2026
738b540
Fix FlexLayout items with dynamic WidthRequest not updating on Androi…
Oxymoron290 Mar 19, 2026
62decfc
[XAML] Fix type resolver incorrectly matching static Extension classe…
Shalini-Ashokan Mar 19, 2026
2b71759
[iOS, Windows] GraphicsView: Fix GetStringSize() returning inaccurate…
Dhivya-SF4094 Mar 19, 2026
4a58ef9
IndicatorView: Fix MaximumVisible not respected when using custom Ind…
SyedAbdulAzeemSF4852 Mar 19, 2026
555b4ad
[iOS] Fix for CarouselView remains interactive when disabled (#32794)
SyedAbdulAzeemSF4852 Mar 19, 2026
158afef
Fixed Shell TitleView disappears when switching between tabs on Andro…
KarthikRajaKalaimani Mar 19, 2026
4fe733b
[Android/iOS/MacCatalyst] Shell.ForegroundColor: Reset back button co…
SubhikshaSf4851 Mar 19, 2026
87dd0fe
[Android] Fix SwipeItem FontImageSource.Size being ignored (#34505)
Shalini-Ashokan Mar 19, 2026
f84acd6
[Windows] Fix TitleBar color not applied to the Flyout icon backgroun…
Tamilarasan-Paranthaman Mar 19, 2026
4e430d5
[Windows] Fix for Shell.FlyoutVerticalScrollMode="Disabled" does not …
HarishwaranVijayakumar Mar 19, 2026
b9d46d9
[Android/iOS] Fix CollectionView not respecting SafeAreaEdges setting…
praveenkumarkarunanithi Mar 19, 2026
9993f11
[Testing] Additional Feature Matrix Test Cases for CollectionView - 2…
TamilarasanSF4853 Mar 19, 2026
2c617d1
[Testing] Fix for flaky UITests in CI - 2 (#33470)
TamilarasanSF4853 Mar 20, 2026
0fae13a
Fixed SourceGen with invalid x:DataType or invalid bindings does not …
KarthikRajaKalaimani Mar 20, 2026
868a461
[Android, Windows] Fix CollectionView handler cleanup when DataTempla…
Vignesh-SF3580 Mar 20, 2026
12c4053
[Windows] Fix for inconsistent PanGestureRecognizer behavior on Windo…
HarishwaranVijayakumar Mar 20, 2026
9d619ef
[Windows] Fix Narrator announcing typed characters for password Entry…
Vignesh-SF3580 Mar 20, 2026
0a73261
[Windows] Fix for crash when navigating to an existing page using Set…
BagavathiPerumal Mar 20, 2026
cbde58c
[Testing] Additional Feature Matrix Event Test Cases for Stepper, Ref…
nivetha-nagalingam Mar 20, 2026
6c999e0
[iOS] Trigger OnNavigatedTo method when hide the nav bar and using sw…
kubaflo Mar 20, 2026
209182a
[Windows] Fixed COMException when changing Image Aspect to Fill (#34033)
SubhikshaSf4851 Mar 20, 2026
d03ab8b
[iOS, Mac] Fix exponential event handler accumulation in CollectionVi…
Vignesh-SF3580 Mar 20, 2026
8ebeb5a
[Windows]Fix for AdaptiveTrigger Not Firing When Changing Window Widt…
BagavathiPerumal Mar 20, 2026
a7a6c76
[iOS][Windows] ScrollView: Fix ScrollToAsync hanging when already at …
KarthikRajaKalaimani Mar 20, 2026
8368edc
SelectionLength property update when entry is focused - fix (#26213)
kubaflo Mar 20, 2026
fc549c8
[Android] ScrollView - Setting SetClipChildren to false (#26475)
kubaflo Mar 20, 2026
935c0a9
[Android] Fix for disabled Picker prevents the parent container's Ges…
SyedAbdulAzeemSF4852 Mar 21, 2026
f190e6b
[Windows] Fixed Setting a ContentView with a content of StaticResourc…
Ahamed-Ali Mar 21, 2026
08cf224
[Android] Fix for Shadows disappearing permanently in Android after L…
BagavathiPerumal Mar 21, 2026
1802f17
[Windows] Fix for NavigationPage transitions still animating when pas…
SyedAbdulAzeemSF4852 Mar 21, 2026
2f02ca2
[PR-Agent] Fix ApplyQueryAttributes called with empty dictionary on b…
kubaflo Mar 21, 2026
ebc3af0
[Windows] FontImageSource: Fix center alignment inside Image (#30068)
Shalini-Ashokan Mar 21, 2026
d710d25
[Android] Fix the Setting Content of ContentView through style would …
Ahamed-Ali Mar 21, 2026
ebe7bc7
Removed SearchHandler Style Definitions (#29955)
NirmalKumarYuvaraj Mar 21, 2026
8c281d2
[Regression][Windows]Fix Exception thrown on .NET 10 Windows when cal…
devanathan-vaithiyanathan Mar 21, 2026
366258e
[iOS] Fix SearchBar Black Background Issue When Setting Transparent B…
devanathan-vaithiyanathan Mar 21, 2026
88370e6
[Android] Fixed CollectionView MeasureFirstItem ItemSizingStrategy No…
NanthiniMahalingam Mar 21, 2026
518a265
Fixed - Grouped CollectionView items not rendered properly on Android…
KarthikRajaKalaimani Mar 21, 2026
741b362
[Windows] Fix for TimePicker rendering a default time when its value …
SyedAbdulAzeemSF4852 Mar 21, 2026
e5c66f1
[Windows] Fixed : Switch control default width issue (#30538)
Tamilarasan-Paranthaman Mar 21, 2026
bf5c02f
[Windows] Fixed: Setting BackgroundColor for Slider updates the Maxim…
Tamilarasan-Paranthaman Mar 21, 2026
ae06e05
Fixed Query parameters not passed on Shell navigation (#30034)
Vignesh-SF3580 Mar 21, 2026
ab1e64a
[Windows] Fixed Horizontal Spacing for Horizontal List (#28311)
SubhikshaSf4851 Mar 22, 2026
47615fd
[iOS] Fixed the flyout icon and content page disappeared when focus o…
NanthiniMahalingam Mar 22, 2026
177bd42
Bugfix/26633 grid layout manager (#26641)
maonaoda Mar 22, 2026
9c9e23f
Fixed the Label height nested VerticalStackLayout is truncated when w…
NanthiniMahalingam Mar 22, 2026
389afef
Fix FlexLayout Grow causes measured child sizes to be ignored (#34535)
devanathan-vaithiyanathan Mar 22, 2026
c358989
Windows: Fix PanGestureRecognizer not starting when drag begins near …
jpd21122012 Mar 22, 2026
74dfcf3
Removed PhotosAddOnly permission request within MediaPicker.ios (#34287)
Kyranio Mar 22, 2026
02a0b8e
[Windows, MAC] - Fix Selected State Not Being Retained in CollectionV…
prakashKannanSf3972 Mar 22, 2026
a192cf5
Fix pan & swipe update event values on Windows (#33540)
jeremy-visionaid Mar 22, 2026
0785642
[iOS] BackButtonBehavior IsEnabled - fix (#28734)
kubaflo Mar 23, 2026
9a07787
Fix CollectionView grid spacing updates for first row and column (#34…
KarthikRajaKalaimani Mar 23, 2026
c3b4eeb
Fix CollectionView grid spacing updates for first row and column (#34…
KarthikRajaKalaimani Mar 23, 2026
a695ed0
Fixed Early casting in Entry bound to double for negative decimal inp…
Dhivya-SF4094 Mar 23, 2026
79c2f76
[Android] Navigation bar - left margin fix (#20967)
kubaflo Mar 23, 2026
70dcbb3
[Android] ToolbarItems Tooltip text color (#28427)
kubaflo Mar 23, 2026
7fede99
[iOS 26] Fix NavigationPage blank screen after rapidly pushing and po…
mduchev Mar 23, 2026
2d84d8e
[Android] Flyout IsGestureEnabled fix (#21686)
kubaflo Mar 23, 2026
0713273
[Testing] Feature Matrix UITest Cases for TabbedPage (#31572)
TamilarasanSF4853 Mar 23, 2026
8d0ce62
[Issue-Resolver] Fix alert dialogs not displaying after dismissing mo…
kubaflo Mar 23, 2026
68d415e
[Android] ItemsUpdatingScrollMode in CarouselView (#30106)
kubaflo Mar 23, 2026
c6a72ac
[Android] Fix crash when shared swipe actions are used across multipl…
Shalini-Ashokan Mar 23, 2026
63b85bb
Fix: missing style file in single file bundle (#33692)
ilonatommy Mar 23, 2026
235e969
[Testing] Resolved build error in CollectionView scrolling feature te…
TamilarasanSF4853 Mar 24, 2026
de71b71
[Windows] Fix DatePicker CharacterSpacing Property Not Working (#30495)
devanathan-vaithiyanathan Mar 24, 2026
c6a8517
[Windows] Fix image shift in CarouselView when resizing the window (#…
Vignesh-SF3580 Mar 24, 2026
958b5f1
[MacOS] Fixed NullReferenceException when using ImagePaint (#28726)
NirmalKumarYuvaraj Mar 24, 2026
e7fda82
[Android] Fix MapElements.Clear() not removing native elements from G…
KarthikRajaKalaimani Mar 24, 2026
9b85b4b
[iOS] Fixed the ConnectivityChanged event is not triggered when toggl…
KarthikRajaKalaimani Mar 24, 2026
ac5cd05
[Android] [Windows] Fixed text deletion via the clear icon in SearchB…
Tamilarasan-Paranthaman Mar 24, 2026
355bf6c
[Windows] Fixed CollectionView throws NRE when value of IsGrouped pro…
NirmalKumarYuvaraj Mar 24, 2026
92221c5
[Testing] Resolved build error in inflight/current branch (#34616)
TamilarasanSF4853 Mar 24, 2026
effcd4c
[Testing] Fixed Build error on inflight/ candidate PR 34617 (#34639)
TamilarasanSF4853 Mar 25, 2026
25722bd
Fix CI failures for Convert and ConvertIsCultureAware tests (#34643)
Dhivya-SF4094 Mar 25, 2026
cdd5725
Fix CI failure [WebView] FlowDirection is set correctly(flowDirection…
devanathan-vaithiyanathan Mar 25, 2026
ac6e7d5
Fix CI failure for NavBarIsVisibleUpdates unit test (#34648)
devanathan-vaithiyanathan Mar 25, 2026
c4d4f3f
code revert and test update
praveenkumarkarunanithi Mar 25, 2026
71af14d
fix update.
praveenkumarkarunanithi Mar 26, 2026
9235fd5
Fix for CV1 and test name updates.
praveenkumarkarunanithi Mar 26, 2026
62eb7f5
Update CollectionViewTests.iOS.cs
praveenkumarkarunanithi Mar 26, 2026
29911a8
fix moved to common file.
praveenkumarkarunanithi Mar 26, 2026
8a1c06b
Revert accidental fix commits from inflight/candidate
praveenkumarkarunanithi Mar 26, 2026
e9651e9
Fixed CI failure : Restore BackButtonBehavior IsEnabled after CanExec…
Shalini-Ashokan Mar 26, 2026
3ad4f79
Fix CI failure for NavigatingAwayFromTabbedPageResizesContentPage dev…
devanathan-vaithiyanathan Mar 26, 2026
8fb2d1f
[Windows] Fix the control overlap issue in the AppThemeFeatureMatrix …
Vignesh-SF3580 Mar 27, 2026
d61d7e2
[iOS/Mac] Fix CI failure for label gradient background UI tests (#34732)
Shalini-Ashokan Mar 30, 2026
9f67807
[Testing] Fixed UI test image failure in PR 34617 - [30/03/2026] Cand…
TamilarasanSF4853 Mar 30, 2026
8862a33
[Android] Fix CI failure for LifeCycleEventsFireWhenNavigatingTopTabs…
praveenkumarkarunanithi Mar 30, 2026
039f4ad
[Android] Fix the CarouselView ScrollTo issue in the candidate branch…
Ahamed-Ali Mar 30, 2026
8174600
[iOS/MacCatalyst] Fix CollectionView cell misalignment regression on …
praveenkumarkarunanithi Mar 31, 2026
44dbf2c
[iOS] Fix Issue23377ItemSpacing test failure on candidate branch (#34…
Vignesh-SF3580 Mar 31, 2026
95f5dfe
Revert "SelectionLength property update when entry is focused - fix (…
Copilot Mar 31, 2026
e30e6d2
[iOS] Fix GitHubIssue6184 regression on candidate — TabBarDisabledCol…
praveenkumarkarunanithi Mar 31, 2026
712f615
[Windows] Fix FlexLayoutCycleException test failure on candidate bran…
Vignesh-SF3580 Mar 31, 2026
5081760
[Android] Fix CollectionView LinearItemsLayout first/last items clipp…
Shalini-Ashokan Mar 31, 2026
aa87bf0
[iOS 26] Fix Issue20706.ChangeIncrementValue test failure regression …
SyedAbdulAzeemSF4852 Apr 1, 2026
4d12205
[Testing][Windows] Fix SearchBar device test failure in candidate bra…
Tamilarasan-Paranthaman Apr 2, 2026
13b9eea
[iOS, MacOS] [Candidate branch]Fix ShellFlyoutNavigationEventOrderSho…
praveenkumarkarunanithi Apr 2, 2026
c1dbfe6
[iOS] Fix Label with TailTruncation not rendering after empty-to-non-…
SyedAbdulAzeemSF4852 Apr 2, 2026
e4f0968
[Testing] Fixed test failure in PR 34617 - [30/03/2026] Candidate (#3…
TamilarasanSF4853 Apr 3, 2026
ba59eaf
Revert "[iOS] Fix Label with TailTruncation not rendering after empty…
kubaflo Apr 3, 2026
da3b0a0
Improve try-fix skill: add eval.yaml and fix prompt issues (#34807)
PureWeen Apr 6, 2026
fdd42f7
Use batched trigger for ui-tests/device-tests pipelines (#34849)
akoeplinger Apr 7, 2026
d15ca06
Enable CFSClean* policies for dotnet-maui pipeline (#34540)
mmitche Apr 7, 2026
a38e0bb
Add eval.yaml for verify-tests-fail-without-fix skill (#34815)
PureWeen Apr 7, 2026
61d7d94
March 30th, Inflight Candidate (#34617)
PureWeen Apr 8, 2026
b43bdad
[iOS] Fix ObjectDisposedException in ContentView.RemoveContentMask (#…
Oxymoron290 Apr 8, 2026
63d534a
Skip simulator install in official pack pipeline (#34802)
PureWeen Apr 9, 2026
857e11c
Add x:Code directive support for inline C# in XAML (#34715)
StephaneDelcroix Apr 9, 2026
a9b817f
[Android] Fix CollectionView dynamic item sizing reset after scroll (…
Vignesh-SF3580 Apr 10, 2026
e85007e
Update Controls.ManualTest project: changes the android SupportedOSPl…
CathyZhu0110 Apr 13, 2026
ec43ab0
Fix: MauiView.DidUpdateFocus only clears IsFocused if it was the one …
Copilot Apr 13, 2026
f250a76
Consolidate file path resolution for WebView controls (#34620)
mattleibow Apr 13, 2026
d5e39b0
Update PatchVersion from 60 to 70 (#34943)
PureWeen Apr 14, 2026
5fef66d
[CI] Extend gate to all test types and decouple from PR review (#34705)
kubaflo Apr 15, 2026
eb0b82f
Improve evaluate-pr-tests workflow: slash_command + workflow_dispatch…
PureWeen Apr 15, 2026
3c06583
Add automated milestone management with Versions.props detection (#34…
PureWeen Apr 16, 2026
f4fb086
Add preview/RC milestone support with release branch detection (#34999)
PureWeen Apr 16, 2026
b5f9079
Add daily PR review queue workflow with actionability detection (#34818)
kubaflo Apr 16, 2026
10924fb
Reset files to net11.0
github-actions[bot] Apr 16, 2026
426cc92
Merge remote-tracking branch 'origin/net11.0' into merge/main-to-net11.0
github-actions[bot] Apr 16, 2026
12a3909
Fix merge conflicts: combine XmlName fields and resolve MAUIX2015 ID …
github-actions[bot] Apr 16, 2026
faacdcc
Fix merge build errors: duplicate class, missing braces, ShellItemRen…
github-actions[bot] Apr 17, 2026
f796ef8
Cache Gradle downloads between CI runs to avoid transient failures (#…
PureWeen Apr 17, 2026
f05e84e
Fix merge test failures: update MAUIX2015→MAUIX2017 in tests, align M…
github-actions[bot] Apr 17, 2026
d9501f2
Fix TestCategory.Map ordering to match net11.0 and prevent duplicate …
github-actions[bot] Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
107 changes: 50 additions & 57 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,26 +138,6 @@ When working with public API changes:
- **Use `dotnet format analyzers`** if having trouble
- **If files are incorrect**: Revert all changes, then add only the necessary new API entries

**🚨 CRITICAL: `#nullable enable` must be line 1**

Every `PublicAPI.Unshipped.txt` file starts with `#nullable enable` (often BOM-prefixed: `#nullable enable`) on the **first line**. If this line is moved or removed, the analyzer treats it as a declared API symbol and emits **RS0017** errors.

**Never sort these files with plain `sort`** — the BOM bytes (`0xEF 0xBB 0xBF`) sort after ASCII characters under `LC_ALL=C`, pushing `#nullable enable` to the bottom of the file.

When resolving merge conflicts or adding entries, use this safe pattern that preserves line 1:
```bash
for f in $(git diff --name-only --diff-filter=U | grep "PublicAPI.Unshipped.txt"); do
# Extract and preserve the #nullable enable line (with or without BOM)
HEADER=$(head -1 "$f" | grep -o '.*#nullable enable' || echo '#nullable enable')
# Strip conflict markers, remove all #nullable lines, sort+dedup the API entries
grep -v '^<<<<<<\|^======\|^>>>>>>\|#nullable enable' "$f" | LC_ALL=C sort -u | sed '/^$/d' > /tmp/api_fix.txt
# Reassemble: header first, then sorted entries
printf '%s\n' "$HEADER" > "$f"
cat /tmp/api_fix.txt >> "$f"
git add "$f"
done
```

### Branching
- `main` - For bug fixes without API changes
- `net10.0` - For new features and API changes
Expand Down Expand Up @@ -201,16 +181,23 @@ git commit -m "Fix: Description of the change"
2. Exception: If the user's instructions explicitly include pushing, proceed without asking.

### Documentation

- Update XML documentation for public APIs
- Follow existing code documentation patterns
- Update relevant docs in `docs/` folder when needed

**Platform-Specific Documentation:**
- `.github/instructions/safe-area-ios.instructions.md` - Safe area investigation (iOS/macCatalyst)
- `.github/instructions/uitests.instructions.md` - UI test guidelines (includes safe area testing section)
- `.github/instructions/android.instructions.md` - Android handler implementation
- `.github/instructions/xaml-unittests.instructions.md` - XAML unit test guidelines
### Opening PRs

All PRs are required to have this at the top of the description:

```
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from this PR and let us know in a comment if this change resolves your issue. Thank you!
```

Always put that at the top, without the block quotes. Without it, users will NOT be able to try the PR and your work will have been in vain!



## Custom Agents and Skills
Expand All @@ -228,18 +215,24 @@ The repository includes specialized custom agents and reusable skills for specif

### Available Custom Agents

1. **write-tests-agent** - Agent for writing tests. Determines test type (UI vs XAML) and invokes the appropriate skill (`write-ui-tests`, `write-xaml-tests`)
1. **pr** - Sequential 4-phase workflow for reviewing and working on PRs
- **Use when**: A PR already exists and needs review or work, OR an issue needs a fix
- **Capabilities**: PR review, test verification, fix exploration, alternative comparison
- **Trigger phrases**: "review PR #XXXXX", "work on PR #XXXXX", "fix issue #XXXXX", "continue PR #XXXXX"
- **Do NOT use for**: Just running tests manually → Use `sandbox-agent`

2. **write-tests-agent** - Agent for writing tests. Determines test type (UI vs XAML) and invokes the appropriate skill (`write-ui-tests`, `write-xaml-tests`)
- **Use when**: Creating new tests for issues or PRs
- **Capabilities**: Test type determination (UI and XAML), skill invocation, test verification
- **Trigger phrases**: "write tests for #XXXXX", "create tests", "add test coverage"

2. **sandbox-agent** - Specialized agent for working with the Sandbox app for testing, validation, and experimentation
3. **sandbox-agent** - Specialized agent for working with the Sandbox app for testing, validation, and experimentation
- **Use when**: User wants to manually test PR functionality or reproduce issues
- **Capabilities**: Sandbox app setup, Appium-based manual testing, PR functional validation
- **Trigger phrases**: "test this PR", "validate PR #XXXXX in Sandbox", "reproduce issue #XXXXX", "try out in Sandbox"
- **Do NOT use for**: Code review (use `pr-review` skill), writing automated tests (use write-tests-agent)
- **Do NOT use for**: Code review (use pr agent), writing automated tests (use write-tests-agent)

3. **learn-from-pr** - Extracts lessons from PRs and applies improvements to the repository
4. **learn-from-pr** - Extracts lessons from PRs and applies improvements to the repository
- **Use when**: After complex PR, want to improve instruction files/skills based on lessons learned
- **Capabilities**: Analyzes PR, identifies failure modes, applies improvements to instruction files, skills, code comments
- **Trigger phrases**: "learn from PR #XXXXX and apply improvements", "improve repo based on what we learned", "update skills based on PR"
Expand All @@ -253,89 +246,89 @@ Skills are modular capabilities that can be invoked directly or used by agents.
#### User-Facing Skills

1. **pr-review** (`.github/skills/pr-review/SKILL.md`)
- **Purpose**: End-to-end PR review orchestrator — follows phase instructions: pr-preflight, pr-gate, try-fix, pr-report
- **Purpose**: End-to-end PR review orchestrator — 3 phases: pr-preflight, try-fix, pr-report. Gate runs separately before this skill via Review-PR.ps1.
- **Trigger phrases**: "review PR #XXXXX", "work on PR #XXXXX", "fix issue #XXXXX", "continue PR #XXXXX"
- **Capabilities**: Multi-model fix exploration, test verification, alternative comparison, PR review recommendation
- **Capabilities**: Multi-model fix exploration, alternative comparison, PR review recommendation
- **Do NOT use for**: Just running tests manually → Use `sandbox-agent`
- **Phase instructions** (in `.github/pr-review/`):
- `pr-preflight.md` — Context gathering from issue/PR
- `pr-gate.md` — Verify tests FAIL without fix, PASS with fix
- `pr-report.md` — Final recommendation
- **Phase skill**: `try-fix` — Multi-model fix exploration
- **Note**: Gate (test verification) runs as a script step in `Review-PR.ps1` before this skill is invoked. Gate result is passed in the prompt.

3. **issue-triage** (`.github/skills/issue-triage/SKILL.md`)
2. **issue-triage** (`.github/skills/issue-triage/SKILL.md`)
- **Purpose**: Query and triage open issues that need milestones, labels, or investigation
- **Trigger phrases**: "find issues to triage", "show me old Android issues", "what issues need attention"
- **Scripts**: `init-triage-session.ps1`, `query-issues.ps1`, `record-triage.ps1`

4. **find-reviewable-pr** (`.github/skills/find-reviewable-pr/SKILL.md`)
2. **find-reviewable-pr** (`.github/skills/find-reviewable-pr/SKILL.md`)
- **Purpose**: Finds open PRs in dotnet/maui and dotnet/docs-maui that need review
- **Trigger phrases**: "find PRs to review", "show milestoned PRs", "find partner PRs"
- **Scripts**: `query-reviewable-prs.ps1`
- **Categories**: P/0, milestoned, partner, community, recent, docs-maui

5. **pr-finalize** (`.github/skills/pr-finalize/SKILL.md`)
3. **pr-finalize** (`.github/skills/pr-finalize/SKILL.md`)
- **Purpose**: Verifies PR title and description match actual implementation, AND performs code review for best practices before merge.
- **Trigger phrases**: "finalize PR #XXXXX", "check PR description for #XXXXX", "review commit message"
- **Used by**: Before merging any PR, when description may be stale
- **Note**: Does NOT require agent involvement or session markdown - works on any PR
- **🚨 CRITICAL**: NEVER use `--approve` or `--request-changes` - only post comments. Approval is a human decision.

6. **learn-from-pr** (`.github/skills/learn-from-pr/SKILL.md`)
4. **code-review** (`.github/skills/code-review/SKILL.md`)
- **Purpose**: Reviews PR code changes for correctness, safety, and consistency with MAUI conventions. Walks through a MAUI-specific checklist covering handler lifecycle, platform code, safe area, threading, public API, and test patterns.
- **Trigger phrases**: "review code for PR #XXXXX", "code review PR #XXXXX", "review this PR's code"
- **Note**: Standalone skill — uses independence-first assessment (reads code before PR description to avoid anchoring bias). Can be used by any agent or invoked directly.
- **🚨 CRITICAL**: NEVER use `--approve` or `--request-changes` — only post comments. Approval is a human decision.

5. **learn-from-pr** (`.github/skills/learn-from-pr/SKILL.md`)
- **Purpose**: Analyzes completed PR to identify repository improvements (analysis only, no changes applied)
- **Trigger phrases**: "what can we learn from PR #XXXXX?", "how can we improve agents based on PR #XXXXX?"
- **Used by**: After complex PRs, when agent struggled to find solution
- **Output**: Prioritized recommendations for instruction files, skills, code comments
- **Note**: For applying changes automatically, use the learn-from-pr agent instead

7. **write-ui-tests** (`.github/skills/write-ui-tests/SKILL.md`)
6. **write-ui-tests** (`.github/skills/write-ui-tests/SKILL.md`)
- **Purpose**: Creates UI tests for GitHub issues and verifies they reproduce the bug
- **Trigger phrases**: "write UI tests for #XXXXX", "create UI test for issue", "add UI test coverage"
- **Output**: Test files that fail without fix, pass with fix

8. **write-xaml-tests** (`.github/skills/write-xaml-tests/SKILL.md`)
7. **write-xaml-tests** (`.github/skills/write-xaml-tests/SKILL.md`)
- **Purpose**: Creates XAML unit tests for XAML parsing, compilation, and source generation
- **Trigger phrases**: "write XAML tests for #XXXXX", "test XamlC behavior", "reproduce XAML parsing bug"
- **Output**: Test files for Controls.Xaml.UnitTests

9. **verify-tests-fail-without-fix** (`.github/skills/verify-tests-fail-without-fix/SKILL.md`)
- **Purpose**: Verifies UI tests catch the bug before fix and pass with fix
- **Purpose**: Verifies tests catch the bug before fix and pass with fix. Auto-detects test type (UI, device, unit, XAML) and dispatches to the appropriate runner.
- **Two modes**: Verify failure only (test creation) or full verification (test + fix)
- **Used by**: After creating tests, before considering PR complete

10. **azdo-build-investigator** (`.github/skills/azdo-build-investigator/SKILL.md`)
- **Purpose**: Investigates CI failures for PRs build errors, Helix test logs, and binlog analysis. Delegates to the `ci-analysis` skill from the dotnet/arcade-skills plugin.
- **Trigger phrases**: "check build for PR #XXXXX", "why did PR build fail", "get build status", "what's failing on PR", "Helix failures"
9. **pr-build-status** (`.github/skills/pr-build-status/SKILL.md`)
- **Purpose**: Retrieves Azure DevOps build information for PRs (build IDs, stage status, failed jobs)
- **Trigger phrases**: "check build for PR #XXXXX", "why did PR build fail", "get build status"
- **Used by**: When investigating CI failures

11. **run-integration-tests** (`.github/skills/run-integration-tests/SKILL.md`)
10. **run-integration-tests** (`.github/skills/run-integration-tests/SKILL.md`)
- **Purpose**: Build, pack, and run .NET MAUI integration tests locally
- **Trigger phrases**: "run integration tests", "test templates locally", "run macOSTemplates tests", "run RunOniOS tests"
- **Categories**: Build, WindowsTemplates, macOSTemplates, Blazor, MultiProject, Samples, AOT, RunOnAndroid, RunOniOS
- **Note**: **ALWAYS use this skill** instead of manual `dotnet test` commands for integration tests

12. **evaluate-pr-tests** (`.github/skills/evaluate-pr-tests/SKILL.md`)
- **Purpose**: Evaluates tests added in a PR for coverage, quality, edge cases, and test type appropriateness
- **Trigger phrases**: "evaluate tests in PR #XXXXX", "review test quality", "are these tests good enough", "check test coverage"
- **Scripts**: `Gather-TestContext.ps1`
- **Checks**: Fix coverage, edge case gaps, test type preference (unit > device > UI), conventions, flakiness risk, duplicate coverage, platform scope, assertion quality

#### Internal Skills (Used by Skills/Agents)
#### Internal Skills (Used by Agents)

12. **try-fix** (`.github/skills/try-fix/SKILL.md`)
11. **try-fix** (`.github/skills/try-fix/SKILL.md`)
- **Purpose**: Proposes ONE independent fix approach, applies it, tests, records result with failure analysis, then reverts
- **Used by**: `pr-review` skill Phase 3 (Try-Fix phase) - rarely invoked directly by users
- **Used by**: pr agent Phase 3 (Fix phase) - rarely invoked directly by users
- **Behavior**: Reads prior attempts to learn from failures. Max 5 attempts per session.
- **Output**: Updates session markdown with attempt results and failure analysis

### Using Custom Agents and Skills
### Using Custom Agents

**Delegation Policy**: When user request matches skill/agent trigger phrases, **ALWAYS invoke the appropriate skill or delegate to the agent immediately**. Do not ask for permission or explain alternatives unless the request is ambiguous.
**Delegation Policy**: When user request matches agent trigger phrases, **ALWAYS delegate to the appropriate agent immediately**. Do not ask for permission or explain alternatives unless the request is ambiguous.

**Examples of correct delegation**:
- User: "Review PR #12345" → Immediately invoke **pr-review** skill
- User: "Review PR #12345" → Immediately invoke **pr** agent
- User: "Test this PR" → Immediately invoke **sandbox-agent**
- User: "Fix issue #67890" → Immediately invoke **pr-review** skill
- User: "Fix issue #67890" (no PR exists) → Suggest using `/delegate` command
- User: "Write tests for issue #12345" → Immediately invoke **write-tests-agent**

**When NOT to delegate**:
Expand Down
Loading
Loading