Weekly GitHub Report for Maui: January 16, 2026 - January 23, 2026 (21:04:46)
Weekly GitHub Report for Maui
Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.
Table of Contents
I. News
1.1 Recent Version Releases:
The current version of this repository is 9.0.90
1.2 Version Information:
The .NET MAUI 9.0.90 SR9 release, published on July 11, 2025, includes over 141 commits primarily focused on critical product fixes across iOS, Android, and Windows platforms, testing enhancements, infrastructure updates, and dependency version bumps. Key highlights include numerous bug fixes addressing UI behavior, threading issues, and control improvements, alongside expanded automated testing coverage and housekeeping updates to improve stability and maintainability.
II. Issues
2.1 Top 5 Active Issues:
We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.
-
[T/BUG] [PLATFORM/ANDROID] [AREA-NAVIGATION] [S/VERIFIED] [S/TRIAGED] NET10 - Crash when bringing app to foreground: This issue describes a crash occurring in .NET MAUI version 10.0.20 on Android when the app is brought back to the foreground after being closed or minimized, resulting in a JavaProxyThrowable caused by accessing a disposed IServiceProvider object. The problem persists despite previous fixes and is reproducible by navigating backward and reopening the app, with no known workaround currently available.
- The comments confirm the issue reproduces in multiple .NET MAUI versions, with some disagreement about whether it occurs in 10.0.30; users provide detailed error logs, reproduction steps, and sample projects, and note the crash happens when the Android activity is recreated causing the IServiceProvider to be disposed, with hopes for a fix or workaround.
- Number of comments this week: 7
-
[S/TRIAGED] [PLATFORM/MACOS] [AREA-XAML] [PLATFORM/IOS] [S/VERIFIED] [XSG] Setter with OnPlatform without Default generates invalid code when platform doesn't match: This issue describes a problem in the SourceGen code generation for MAUI when a Setter uses an
{OnPlatform}markup extension without specifying aDefaultvalue, resulting in invalid C# code during compilation for platforms that do not match any specified platform. The generated code incorrectly attempts to callProvideValueon a type rather than an instance, causing compilation errors, and the recommended workaround is to always include aDefaultvalue in theOnPlatformexpression.- The comments clarify that a related but distinct runtime exception occurs with a different
OnPlatformsyntax, suggesting separate issues for compile-time and runtime problems; users confirm the bug reproduces on macOS and iOS with MAUI 10.0.30, and a pull request addressing the compile-time error is referenced. - Number of comments this week: 5
- The comments clarify that a related but distinct runtime exception occurs with a different
-
[T/BUG] [PLATFORM/WINDOWS] [AREA-BLAZOR] [S/VERIFIED] [S/TRIAGED] Blazor Hybrid MAUI unpackaged single-file apps do not extract Application.styles.css (scoped CSS) at runtime: This issue describes a problem where Blazor scoped CSS files, specifically the Application.styles.css, are not extracted at runtime when publishing a .NET 10 MAUI Blazor Hybrid app as a single-file, self-contained Windows executable, resulting in missing styles during execution. The root cause appears to be related to how static web assets and scoped CSS bundles are handled in the publish pipeline, with the styles file not being included in the resolved files for publishing and thus not copied to the runtime extraction directory as expected.
- The comments confirm the issue is reproducible on Windows with various MAUI versions and explain the underlying cause involving the Static Web Assets SDK removing static assets incorrectly; a detailed analysis suggests the styles file is treated differently in the publish process and is not copied to the extraction directory, with a proposed fix to include these styles in the resolved publish items, likely via a MAUI SDK update.
- Number of comments this week: 3
-
[T/BUG] [S/NEEDS-ATTENTION] [Windows] ObjectDisposedException after closing window: This issue describes a problem on Windows where closing a window created via Application.Current.OpenWindow results in frequent ObjectDisposedException errors related to accessing a disposed IServiceProvider, causing application crashes after updating to .NET 10. The user suspects that the window still listens to CollectionChanged events after disposal, possibly due to missing cleanup like DisconnectHandler, and shares a workaround involving clearing the page's ControlTemplate and BindingContext during the window's Destroying event to prevent these exceptions.
- The comments include requests for a reproducible sample, discussion about the window being disposed but still listening to events, and a shared workaround that detaches the ControlTemplate and BindingContext on window destruction to avoid the exceptions, highlighting a probable bug in MAUI's disposal handling.
- Number of comments this week: 3
-
[T/BUG] [AREA-XAML] [PLATFORM/WINDOWS] [S/VERIFIED] [S/TRIAGED] [AREA-TOOLING] XAML Does Not Warn or Obsolete FontSize: This issue reports that XAML does not provide warnings or mark the use of obsolete named
FontSizevalues such as "Large" or "Small" as deprecated, even though these values are obsolete. While enabling SourceGen in the project file triggers warnings in the generated C# code, no warnings appear directly in the XAML editor, leading to potential unnoticed usage of deprecated font sizes.- The comments confirm the issue is reproducible in Visual Studio with MAUI versions 10.0.0 and 10.0.30, showing that IntelliSense suggests obsolete string values without warnings in XAML, but SourceGen generates warnings in C# code. It is suggested that the XLS tooling should be improved to flag deprecated API usage directly in XAML to prevent this oversight.
- Number of comments this week: 3
2.2 Top 5 Stale Issues:
We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.
As of our latest update, there are no stale issues for the project this week.
2.3 Open Issues
This section lists, groups, and then summarizes issues that were created within the last week in the repository.
Issues Opened This Week: 30
Summarized Issues:
- Material 3 Visual Design System Updates: Multiple controls including Label, Slider, TimePicker, ImageButton, DatePicker, Image, Picker, and Entry require updates to fully support the Material 3 visual design system when the
UseMaterial3MSBuild property is enabled. These updates involve adopting Material 3-specific styling, colors, state behaviors, theme resources, and layout improvements to ensure visual consistency and modern design compliance across the controls. - [issues/33598, issues/33601, issues/33645, issues/33648, issues/33650, issues/33660, issues/33665, issues/33672]
- Control Behavior and Rendering Bugs: Several controls exhibit functional bugs such as the Android DatePicker not updating MinimumDate and MaximumDate on subsequent openings, the CollectionView Scrolled event reporting incorrect indices on iOS and MacCatalyst, and the Android FlyOutPage title not updating correctly after navigation changes. These issues cause inconsistent UI behavior and incorrect data presentation across platforms.
- [issues/33583, issues/33614, issues/33615]
- App Crashes and Exceptions on Lifecycle Events: Crashes occur on iOS 18.6 when navigating to certain ContentPages with specific layouts, and on Android when reopening apps after backgrounding or activity recreation due to disposed IServiceProvider access. Additionally, closing windows on Windows triggers ObjectDisposedException errors related to disposed IServiceProvider objects, indicating lifecycle management regressions in .NET 10.
- [issues/33595, issues/33597, issues/33607]
- Accessibility and Screen Reader Issues: Accessibility focus and interaction inconsistencies exist across iOS, macOS, Windows, and Android platforms in BindableLayout collections, and a security/privacy bug exposes password characters to Windows Narrator when Entry controls have IsPassword=true. These issues affect usability and violate expected privacy standards.
- [issues/33612, issues/33577]
- Build and Development Environment Challenges: Extremely long build times on iOS release builds after upgrading to .NET 10 and complexities in manually setting up the .NET MAUI development environment on macOS or with Visual Studio Code hinder developer productivity and increase setup difficulty.
- [issues/33581, issues/33634]
- Map Control Rendering and Update Issues on Android: The Microsoft.Maui.Controls.Maps.Map control on Android fails to remove native polygons when cleared and does not reflect polygon property changes like FillColor and StrokeColor, indicating that updates are not properly forwarded to the native map implementation.
- [issues/33635]
- Graphics Rendering Inconsistencies on Android: Changing the stroke color of a circle at runtime incorrectly updates the fill color instead of the stroke color on Android, differing from the expected behavior observed on iOS, causing visual inconsistencies.
- [issues/33642]
- Image Loading Failures on Android: Local images fail to load on Android devices while working on iPhone, and remote images intermittently fail on Android after upgrading to .NET 10, affecting Android 16 on devices like the Google Pixel 6a.
- [issues/33657]
- XAML and SourceGen Issues: XAML does not emit warnings for obsolete named FontSize values despite generated C# code showing warnings with SourceGen enabled, and a compile-time error occurs when a Setter uses an OnPlatform value without a Default, causing invalid code generation and compilation failures.
- [issues/33623, issues/33676]
- Shell and Navigation Bar Display Issues on Android: The edge-to-edge display feature combined with the Shell navigation bar on Android prevents page content from being placed underneath the navigation bar as on iOS, causing content to be blocked until the navigation bar is hidden.
- [issues/33678]
- Pointer Gesture Recognition Limitations on Android: The PointerGestureRecognizer does not trigger the PointerMoved event on Android devices, although it works correctly on iOS, preventing pointer movement tracking on Android.
- [issues/33690]
2.4 Closed Issues
This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.
Issues Closed This Week: 6
Summarized Issues:
- XAML and Source Generation Warnings: IntelliSense in XAML suggests obsolete named FontSize values like "Large" and "Medium," which trigger warnings when using source generation. Additionally, automatically generated event handlers incorrectly use a non-nullable
object senderparameter instead of a nullableobject? sender, causing build warnings in MAUI projects. - issues/33560, issues/33596
- App Crashes and UI Issues on Mobile Devices: Crashes occur on iPad devices when opening a TabbedPage in portrait orientation with a narrow window width, resulting in a System.NullReferenceException during app launch. Android applications also crash in Release mode due to assembly embedding conflicts, which require project setting adjustments to resolve.
- issues/33586, issues/33664
- UI Layout and Interaction Problems in MAUI Blazor and Navigation: MAUI Blazor Hybrid templates under .NET 10 do not account for safe areas on Android, causing the top bar to be overlaid by the status bar and disabling the hamburger menu. Also, the BackButtonBehavior fails to trigger on ContentPages with CollectionView when the ItemsSource changes, preventing back button commands from executing on iOS and Android.
- issues/33619, issues/33688
2.5 Issue Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.
III. Pull Requests
3.1 Open Pull Requests
This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.
Pull Requests Opened This Week: 32
Key Open Pull Requests
1. Add a PR-Comment Skill: This pull request introduces a comprehensive PR-Comment Skill that posts a single, self-contained, and well-structured comment on GitHub pull requests to document review phases with expandable sections, prevents duplicate comments, removes dependencies on external state files by embedding all content internally, improves visual formatting and readability, and supports updating comments as review phases progress for clearer and more professional communication.
- URL: pull/33585
- Associated Commits: 6a236, e55dd, a028c, f18be, 7f53d, 27508, 0a20c, 4854f, aeaff, 3a3db, fb7f0, 1e0bd, 2d86a, 5c71c, 3deea, 34f4d, cece5, cd93e, 7926f, 90cd9, dfe09, 38eeb, c60cf, 497c2, 32cb7, 45b64, 1b8da, fb9bc, d30f2, 79ab5, e5b16, 26eb7, d3e0b, 8b1cf, 8177e
2. [Android] Implemented Material3 support for DatePicker: This pull request implements support for a new Material 3-based DatePicker handler on Android by introducing an internal DatePickerHandler2 that leverages Google's Material 3 MaterialDatePicker for an updated UI and functionality, while preserving compatibility with the existing handler on other platforms, and updates the handler registration logic to conditionally use the new handler when Material 3 is enabled.
- URL: pull/33651
- Associated Commits: 96447, c4b3c, 2f816, 9b534, 94722, e78b0, 33e96, 98bad, 3867c, 80e57, 0c33d, 065bb, 92d24, 9dd19, 3c77b, 8fcb9
3. [net11.0][XSG] Trimmable EventTrigger: This pull request enhances the EventTrigger class in the .NET MAUI framework to be Ahead-Of-Time (AOT) and trimming safe by introducing new factory methods that use compile-time static event subscription instead of reflection, integrates these methods into the XAML source generator for safer and more efficient event handling, and maintains backward compatibility with existing reflection-based usage while addressing known edge cases and adding comprehensive tests.
- URL: pull/33611
- Associated Commits: afa60, 017aa, e5fa9, 6dd6e, d95d8, adeb8, a8243, 03e52, c75c6, 6436e, ec764, f07cb
Other Open Pull Requests
- Material3 Support for Android Controls: Multiple pull requests introduce Material3 support for various Android UI controls including Slider, TimePicker, Picker, ImageButton, Entry, Label, and Image. These PRs add new handler classes, update handler registration to be conditional on feature flags, enhance platform-specific extensions, and ensure backward compatibility while preparing for future .NET releases.
- [pull/33603, pull/33646, pull/33668, pull/33649, pull/33673, pull/33599, pull/33661]
- AI Integration Enhancements: Several pull requests add support for on-device AI chat and embedding capabilities on Android and Windows platforms through new clients like GeminiNanoChatClient and PhiSilicaChatClient. These PRs also introduce a sample app demonstrating advanced AI integration patterns and update dependencies and tests to support these new AI features.
- [pull/33609, pull/33605, pull/33610]
- Performance and Memory Optimizations: Pull requests focus on improving performance and reducing memory usage in various areas such as BindableObject property access, TypedBinding and SourceGeneratedBinding value propagation, and Android image loading memory consumption. These changes include micro-optimizations, caching improvements, and preventing image upscaling to maintain consistent memory usage.
- [pull/33584, pull/33582, pull/33656]
- UI Test Infrastructure and Reliability: Multiple PRs enhance UI test capabilities by adding a new integration test runner skill with automation scripts, enabling UI tests on specific platforms, improving test reliability with retries and synchronization, and re-enabling previously disabled tests after fixes.
- [pull/33654, pull/33622, pull/33689, pull/33606, pull/33689]
- Bug Fixes and Cleanup: Several pull requests address specific bugs such as dynamic date constraints in Android DatePicker, accessibility improvements for password Entry on Windows, invalid C# code generation in source generators, and removal of obsolete build configuration workarounds. These fixes improve stability, accessibility, and build correctness.
- [pull/33687, pull/33600, pull/33624, pull/33681]
3.2 Closed Pull Requests
This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.
Pull Requests Closed This Week: 41
Key Closed Pull Requests
1. [WIP] Essentials AI: This pull request introduces initial support for Essentials.AI by adding new related projects, updating solution and project files to include these projects with organized folder structures, configuring build and platform targets, and managing dependencies such as Microsoft.Extensions.AI and Microsoft.Extensions.Http to integrate Essentials.AI into the codebase.
- URL: pull/33076
- Associated Commits: 1d4d9, d4797, f9dd7, 30d05, b8fb8, f9230, 0ce1a, 58341, 760ec, 1560e, cb9e4, 00fa3, e6298, 9dbcb, af4b4, 2b073, d97b2, c636b, 9e6de, 3f0b4, a64db, 15b20, 128f4, bdffc, 14fd4, bfb1f, 636b4, 4ba04, f56c5, 959aa, f36dd
- Associated Commits: 1d4d9, d4797, f9dd7, 30d05, b8fb8, f9230, 0ce1a, 58341, 760ec, 1560e, cb9e4, 00fa3, e6298, 9dbcb, af4b4, 2b073, d97b2, c636b, 9e6de, 3f0b4, a64db, 15b20, 128f4, bdffc, 14fd4, bfb1f, 636b4, 4ba04, f56c5, 959aa, f36dd
2. Add learn-from-pr agent and enhance skills framework structure: This pull request adds a new learn-from-pr agent and skill to enhance the skills framework structure, removes the temporary SUMMARY.md helper file by adding it to .gitignore to prevent accidental commits, and refines the code review instructions to avoid circular dependencies by specifying that the pr-finalize skill should only run on PRs that change functional code.
- URL: pull/33579
- Associated Commits: 75114, 3b8a1, 60fc1, 6cc38, 7ec13, 6309b, 7a682, 0ebc8, 81c74, 874a5, f0880, 4a63e, 17624, be07a, b30ab, d9280
- Associated Commits: 75114, 3b8a1, 60fc1, 6cc38, 7ec13, 6309b, 7a682, 0ebc8, 81c74, 874a5, f0880, 4a63e, 17624, be07a, b30ab, d9280
3. Move Windows device tests to Helix queues: This pull request migrates the Windows device tests from running directly on Azure DevOps agents to running on Helix queues by adding Windows-specific Helix queue targets, updating build and test pipelines to use Helix stages, creating wrapper scripts for test execution, and implementing necessary fixes to support Windows tests in the Helix environment consistent with how iOS, Android, and MacCatalyst tests are handled.
- URL: pull/33328
- Associated Commits: 9115d, d9808, eec7b, 26635, b169b, eb7e0, 3c7cf, 08a8f, 0a716, 131c1, 99d4a, 9301b, 6e284
- Associated Commits: 9115d, d9808, eec7b, 26635, b169b, eb7e0, 3c7cf, 08a8f, 0a716, 131c1, 99d4a, 9301b, 6e284
Other Closed Pull Requests
- Test fixes and stability improvements: Multiple pull requests address test failures and improve test stability across platforms by resaving UI test snapshots, fixing integration tests for .NET 10.0 templates on .NET 11.0, and enhancing UI test utilities for iOS 26. These changes include platform-specific fixes for Android and Windows, improved keyboard dismissal in Appium tests, and updates to PowerShell scripts for Windows and MacCatalyst compatibility.
- Test framework migration and CI pipeline updates: The NUnit integration tests in Microsoft.Maui were converted to XUnit, including project and pipeline configuration updates to support XUnit filtering syntax. Additionally, the CI pipeline was standardized to use ARM64-based macOS build agents for better consistency and compatibility.
- Gesture and navigation event fixes: Fixes were made to iOS CollectionView SelectionChanged event handling inside a Grid with TapGestureRecognizer by adjusting gesture recognition logic. On Android 13+, back navigation in BlazorWebView was improved by adding a lifecycle handler to navigate back within the WebView instead of popping the page, also preventing memory leaks by properly removing handlers.
- Accessibility and UI component improvements: A new ChartDataSemanticConverter was introduced to generate semantic descriptions for CategoryChart, enhancing screen reader accessibility. The Mac Catalyst Picker was improved with proper unfocus support, refactored dismissal logic, and consistent focus state management aligned with Android behavior.
- XAML source generator and code generation fixes: Issues with Style Setters referencing source-generated bindable properties causing failures were fixed by adding a fallback mechanism for property metadata. Additionally, invalid C# code generation using bare
NaNwas corrected by qualifying special floating-point values properly, with new unit tests added for verification.
- Documentation enhancements and API coverage: Comprehensive XML API documentation was added across multiple projects including Microsoft.Maui.Maps, Microsoft.Maui.Controls.Xaml, and Microsoft.Maui.Controls.Core.Design, with CS1591 warnings enforced as errors to ensure documentation completeness. API docs were migrated inline from external XML files, obsolete files deleted, and build configurations updated to generate documentation files.
- Logging and output improvements in tests: Logging was improved in integration tests by replacing
Console.WriteLinewithITestOutputHelperusage, adding methods to extract build errors, and enabling live output display in CI. These changes propagate output helpers through platform-specific utilities and update test invocations accordingly.
- Agent instructions and automated fix enhancements: Detailed Android handler development guidelines were added along with improvements to the try-fix skill for iterative diagnosis and resolution of compile errors, enabling more effective automated code fixes for Android platform files.
- CoreCLR UI test enablement on Apple platforms: CoreCLR UI tests were enabled on iOS and MacCatalyst by adding corresponding test stages to the pipeline, mirroring the existing Android CoreCLR test implementation.
- Crash fixes and obsolete feature removal: A crash caused by an ObjectDisposedException on MacCatalyst exit was fixed by disabling obsolete theme handling in the TraitCollectionDidChange method, resolving a known issue.
- Pull request review tooling addition: The
find-reviewable-prskill was added to provide a PowerShell script and documentation for identifying and prioritizing open pull requests based on multiple criteria, supporting various output formats and enhanced filtering options.
3.3 Pull Request Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.
IV. Contributors
4.1 Contributors
Active Contributors:
We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.
If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.
| Contributor | Commits | Pull Requests | Issues | Comments |
|---|---|---|---|---|
| Copilot | 71 | 6 | 0 | 94 |
| PureWeen | 100 | 6 | 0 | 4 |
| mattleibow | 72 | 6 | 0 | 5 |
| rmarinho | 65 | 12 | 0 | 5 |
| kubaflo | 60 | 5 | 0 | 6 |
| TamilarasanSF4853 | 41 | 5 | 1 | 0 |
| simonrozsival | 36 | 3 | 1 | 2 |
| Dhivya-SF4094 | 29 | 4 | 8 | 0 |
| HarishwaranVijayakumar | 34 | 4 | 0 | 0 |
| StephaneDelcroix | 26 | 3 | 2 | 6 |