Weekly Project News

Archives
Subscribe

Weekly GitHub Report for Maui: August 24, 2026 - August 31, 2026 (21:13:29)

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
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

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, and infrastructure updates. Key highlights include numerous bug fixes addressing UI behavior, threading issues, and control improvements, alongside dependency version bumps and expanded automated testing coverage to improve stability and performance.

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.

  1. [T/ENHANCEMENT ☀️] [AREA-BLAZOR] [PARTNER/WEBVIEW2] [BLOCKED] [EXTERNAL] [DISCUSSED] [PRIORITY:1] BlazorWebView drag and drop does not work with MAUI Templates: This issue reports that drag and drop functionality within BlazorWebView does not work correctly when using .NET MAUI templates, particularly on Android and Windows platforms. Although drag start events fire, the actual drag and drop behavior is either missing, extremely slow, or causes application crashes, and this problem appears to stem from underlying WebView2 and Android WebView limitations rather than Blazor or MAUI themselves.

    • The comments include reproduction attempts, confirmation of the issue on multiple platforms, discussion of related bugs in WebView2 and Android WebView, suggestions of partial workarounds using native MAUI drag and drop or third-party libraries, and ongoing investigation with no complete fix yet; users express frustration over the long-standing nature of the bug and its impact on app reliability and development.
    • Number of comments this week: 4
  2. [T/BUG] [PLATFORM/ANDROID] [AREA-PUBLISHING] Clean MAUI project crashes on start in release mode on Android: This issue describes a crash occurring when launching a clean MAUI project in release mode on Android, caused by a java.lang.UnsatisfiedLinkError indicating that a native method implementation is missing, likely due to a library not being loaded properly. The problem appears to be more prevalent when using the Rider IDE, with some users reporting that setting AndroidEnableMarshalMethods=False or building via the command line works around the issue, while others note it also affects Visual Studio on certain Android versions and release builds.

    • The comments reveal that multiple users experience the same crash linked to missing native method implementations in release mode, primarily when using Rider, with some workarounds involving IDE settings or command-line builds; others report similar issues in Visual Studio on newer Android versions, and the discussion points to a possible IDE-specific problem rather than a core MAUI bug.
    • Number of comments this week: 4
  3. [T/BUG] [PLATFORM/ANDROID] [PLATFORM/IOS] [AREA-CONTROLS-COLLECTIONVIEW] [S/VERIFIED] [S/TRIAGED] CollectionView (grouped): EmptyView handling is wrong when groups become empty: This issue addresses inconsistent behavior of the EmptyView in a grouped CollectionView when groups become empty or are removed dynamically, specifically on iOS and Android platforms. On iOS, the EmptyView incorrectly appears over the list when groups exist but have no items, while on Android, the EmptyView fails to show after the last group is removed at runtime, despite the collection being empty.

    • The comments confirm the issue was reproduced on both platforms and a fix was developed and tested, resolving the problem by correctly defining when a grouped source is empty; subsequent testing by the reporter verified the fix works perfectly, and the fix is planned for release in .NET 10 SR11.
    • Number of comments this week: 4
  4. [T/BUG] [AREA-CORE-LIFECYCLE] [PLATFORM/IOS] [S/NEEDS-ATTENTION] [iOs] [crash] App in the background is crashed [EXC_BAD_ACCESS (SIGSEGV)] [KERN_INVALID_ADDRESS]: This issue reports that the iOS app built with .NET MAUI crashes with an EXC_BAD_ACCESS (SIGSEGV) error when it is put into the background, which is a regression from a previous working version. The crash logs indicate an invalid memory access at address zero, and no workaround has been found so far for the latest MAUI and iOS versions.

    • The comments provide additional crash reports from the same user showing similar crashes occurring in the background, but no reproduction steps or fixes have been identified yet; the issue remains unresolved with detailed crash logs shared for investigation.
    • Number of comments this week: 3
  5. [T/BUG] [PLATFORM/ANDROID] [S/NEEDS-INFO] [AREA-SETUP] [S/NEEDS-REPRO] Maui version upgrade breaks runtime code 10.0.20 -> 10.0.100: This issue describes a problem encountered when upgrading a .NET MAUI project from version 10.0.20 to 10.0.100, where the application compiles successfully but fails to run on the Android emulator due to a missing method error related to the Maui Material3 theme. The error appears to be a regression from previous behavior, and users report that the issue persists even after updating workloads and SDKs, causing runtime crashes on Android.

    • The comments reveal that the issue was initially thought to be resolved but was reopened after further reports of the same error following upgrades to .NET 10 and related workloads; one user could not reproduce the problem and suggested it might be caused by stale build artifacts, recommending cleaning the project and sharing a reproducible sample to aid investigation.
    • 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:

  • Rendering and Visual Issues on Windows and Android: Multiple issues affect rendering and visual behavior on Windows and Android platforms, including MAUI WinUI apps failing to render ControlTemplates with ContentPresenter controls on Windows, image rotation causing visual corruption and crashes, and SwipeMenuItems rendering incorrectly across Android, iOS, and macOS. Additionally, background color settings for IndicatorView do not apply on Windows, and Android status bar text color cannot be changed with Target API 35+.
  • issues/37798, issues/37834, issues/37839, issues/37844, issues/37881, issues/37886
  • iOS-Specific Crashes and UI Bugs: Several issues on iOS include a crash when the app is backgrounded causing EXC_BAD_ACCESS, a regression where the editor control does not become editable after enabling, and a MediaPicker bug causing the native photo picker to remain open indefinitely. There is also a regression causing MediaPicker.PickPhotosAsync to throw a UIKitThreadAccessException when selecting multiple photos.
  • issues/37800, issues/37815, issues/37838, issues/37878
  • XAML Hot Reload and Data Binding Issues: Problems with XAML Hot Reload include live binding values clearing when editing StringFormat on x:Reference bindings, CollectionView DataTemplate edits not updating realized cells, and Hot Reload failing with error 0x80131500 on Windows 10 Starter projects. These issues disrupt the expected live update and data binding workflows during development.
  • issues/37889, issues/37890, issues/37977
  • Navigation and Back Button Behavior on Android and iOS: Navigation issues include the back button and navigation buttons ceasing to function when switching between NavigationPage and Shell on Android, a regression where OnBackButtonPressed override no longer works on Android FlyoutPage causing app closure, and incorrect bicycling navigation mode launching car mode on iOS maps.
  • issues/37937, issues/38026, issues/38030
  • Memory Leaks and Performance Degradation on Android: Animating opacity of views with shadows on Android causes a memory leak due to Java peer allocations every frame, exhausting JNI global references and severely degrading UI thread performance. This issue leads to significant resource exhaustion and UI responsiveness problems.
  • issues/38003
  • Drag-and-Drop and WebView Configuration Issues: Drag-and-drop functionality is broken in BlazorWebView on Windows because WebView2.AllowDrop is not enabled by default, and Android BlazorWebView apps lack automatic configuration of AndroidX WebKit DropDataContentProvider, causing drag previews and drop interactions to fail without manual setup.
  • issues/37903, issues/37971
  • Windows Shell and TabBar Crashes: Selecting a Shell Tab with multiple nested ShellContent items from the TabBar overflow menu on Windows causes an unhandled E_BOUNDS exception due to invalid vector subscripts, resulting in application crashes only when both nested content and overflow selection conditions are met.
  • issues/37985
  • Build and Runtime Errors After Upgrades or Compilation: Upgrading from .NET MAUI 10.0.20 to 10.0.100 causes runtime errors on Android due to missing methods, and using OnPlatform without matching entries causes XAML compiler errors or runtime crashes when T is abstract. These issues prevent successful builds or app execution.
  • issues/37936, issues/37993
  • Accessibility and UI Automation Inconsistencies: On iOS, child Labels with AutomationId and accessibility enabled are not exposed as separate accessibility elements, causing inconsistent UI automation support compared to Android where these elements are discoverable.
  • issues/38023
  • App Lifecycle and Restart Issues on Android: Pressing the back button to minimize and then reopening the app causes unexpected restarts on Android, despite using the default single-top launch mode. This behavior is reproducible on Android 16 and suspected to be related to OS or launcher specifics.
  • issues/38020
  • Infinite Measure Looping and UI Responsiveness on iOS: An infinite measure looping bug on iOS devices running .NET MAUI 10.0.100+ causes unresponsiveness due to repeated size change events, with a temporary workaround implemented by limiting measure iterations via height request adjustments.
  • issues/37892
  • Grid Layout Synchronization Feature Request: A proposal to add Grid.IsSharedSizeScope and SharedSizeGroup properties for ColumnDefinition and RowDefinition aims to synchronize column widths or row heights across multiple Grid instances automatically, improving layout consistency without hardcoded sizes or manual calculations.
  • issues/37832
  • GitHub Actions Workflow Blocked by Conditional Access: The /review GitHub Actions workflow is blocked by Microsoft Entra Conditional Access policies during workload-identity exchange for Azure DevOps tokens, causing review triggers to fail and requiring manual pipeline queuing.
  • issues/37951
  • Windows Device Test Regressions: Several Windows device tests fail in candidate PR 37393 due to regressions introduced by a previous fix in PR 36430, impacting .NET MAUI functionality.
  • issues/37958

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: 28

Summarized Issues:

  • ScrollView sizing and scrolling issues on iOS: Multiple issues describe problems with ScrollView behavior on iOS, including incomplete scrolling to the bottom when placed inside a dynamically sized Grid row and failure to update viewport size when content changes in a vertically unconstrained layout. These issues cause inconsistent scrolling experiences compared to other platforms like Android and Windows, with no current definitive workarounds.
  • issues/15288, issues/15374
  • Runtime property updates in Label control with HTML text: The .NET MAUI Label control does not update certain properties at runtime when the TextType is set to "Html." Specifically, the LineHeight and TextDecorations properties fail to update, causing line spacing and text decoration changes to not reflect in rendered HTML text, unlike when using plain text.
  • issues/29672, issues/29674
  • Android regressions affecting UI and navigation in version 10.0.90+: Several regressions in Android were reported starting with version 10.0.90, including an indefinitely pending photo picker operation, ActivityIndicator not stopping correctly, memory leaks on Shell page navigation, blank rendering of DI-registered Singleton pages after navigation stack reset, and lost UI event propagation causing visual state update failures. These regressions degrade app stability and user experience.
  • issues/36523, issues/36735, issues/36852, issues/36853, issues/36942
  • Android map clustering and icon rendering problems: Multiple issues affect map clustering on Android, including loss of custom pin icons when pins leave clusters due to Glide exceptions, clusters not updating after small zoom changes, redundant reloading of pin icons causing flickering, and shared limited icon cache between pins and clusters leading to performance degradation. These problems cause visual inconsistencies and reduced performance in map features.
  • issues/37767, issues/37768, issues/37773, issues/37943
  • iOS and MacCatalyst map cluster icon customization failure: Custom cluster icons set via Map.ClusterImageSource or Map.ClusterImageProvider are never applied on iOS and MacCatalyst, resulting in default MapKit markers being shown instead. This occurs because the native handler code fails to correctly identify cluster annotations, preventing the intended custom images from displaying.
  • issues/37806
  • Hot Reload resource and structural update issues: Source-generated XAML Hot Reload has problems where edits to application-level resources do not update existing or new consumers, and structural updates to unnamed ancestor layouts cause x:Name fields to disconnect from visible elements. These issues lead to UI inconsistencies where event handlers run but the UI does not reflect updated values.
  • issues/37888, issues/37891
  • App crashes and deadlocks on Windows and Android platforms: A NullReferenceException crash occurs on Windows when toggling FlyoutItemIsVisible during navigation in MAUI Shell apps, and a deadlock happens on Android when synchronously awaiting Screenshot.CaptureAsync() from the UI thread. Both issues cause app instability and freezing, with the Android deadlock being a regression introduced in version 10.0.90.
  • issues/16940, issues/37638
  • Font attribute rendering issues on macOS and iOS: Font attributes such as bold are not correctly applied in the Maui editor on macOS and iOS platforms, causing incorrect visual presentation of text elements in applications using version 8.0.3. This affects the appearance of text and may impact user interface consistency.
  • issues/20054
  • WebAuthenticator relogin behavior lacking cache clearing option: The WebAuthenticator performs a relogin to the OAuth provider without showing the login dialog due to cached login data, and there is a need for an option to clear this cache to control login behavior. This issue affects authentication flows by limiting user control over login state.
  • issues/26078
  • Mono.Cecil debug metadata corruption in iOS builds: Mono.Cecil corrupts debug metadata in PDB files during the build process for MAUI iOS projects, causing a System.BadImageFormatException with "Sequence point value is out of range." This was traced to a bug in Mono.Cecil fixed by updating to a newer version, impacting debugging capabilities.
  • issues/37782
  • Random iOS crash on background app termination during debugging: A random crash with SIGABRT occurs on iOS when the app is in the background and the debug process is stopped, related to native code execution within the Mono runtime or native libraries. This regression has no known workaround and affects app stability during development.
  • issues/37801
  • Windows Border control automation peer visibility update: The MauiBorderAutomationPeer class was made public in .NET 11.0 for Windows Border controls, changing from its previous internal status in .NET 10.0. This update affects accessibility and automation scenarios on Windows.
  • issues/30205
  • Windows dependency update for improved drag-and-drop support in Blazor Hybrid: Updating the .NET MAUI Windows dependency from Windows App SDK 1.8 to 2.0 or later is required to enable full native HTML drag-and-drop support in MAUI Blazor Hybrid scenarios by leveraging WebView2 improvements. This update enhances drag-and-drop functionality in hybrid apps.
  • issues/37922
  • WebView image rendering failure on Android: Images stored on disk fail to render correctly in the WebView control on Android devices, despite rendering properly on Windows. The issue persists even when specifying image dimensions and following specific navigation steps, causing inconsistent image display across platforms.
  • issues/37533
  • Regression in SwipeView threshold behavior on Android: In Microsoft.Maui.Controls version 10.0.100, the SwipeView.Threshold value is ignored on Android devices running versions 14 through 17, causing swipe behavior to differ from the expected functionality that worked correctly in version 10.0.90. This regression affects user interaction with swipe gestures.
  • issues/37700

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: 28

Key Open Pull Requests

1. Tests: remove dedicated ListView coverage: This pull request removes the dedicated ListView test coverage—including unit tests, device tests, UI tests, HostApp fixtures, snapshot baselines, and pipeline buckets—while reclassifying remaining UI tests that cover ListView-related scenarios into their appropriate non-ListView categories and cleaning up all now-unreferenced resources and constants related to ListView testing.

  • URL: pull/37995
  • Associated Commits: 2a093, bd8a4, d139a, 1aa15, c71b0, 6d8f1, 53e57, be089, 679fe, 3b746, 3f5dd, 87f2c, 9ab8b, e6ae4, 342bf, 36d7f, c3ae7, 01685, cc86e, da729, 82674, 81401, b2e13, 68013, 7e68e, fb6d4, 7268f, 40478, 0b3bb, c3003, ee4d0, 982b8, 0d7f4, 62418, d7976, a6ed7, babf5, 6f973, 21ea9, a88b7, a4808, 6202a, 77323, 46071, 78502, 0cde4, ff87a, 4438d, cbb52, 1cae4, 5b04a, 5a7dc, f2775, aabbb, 7c4e2, 4695c, c127c, 92dfb, bedd1, ec790, d2810, eb16b, 9e63b, a2521, 56001, 4ac3a, eb49e, de58c, 833e3, d7878, 12cc7, 89a80, e3510, 1e7e3, c6a05, 2cf7e, 7d172, 48d45, e4b0c, a8a3b, 3f52a, ef1bb, e2718, 00db4, 6be60, 664b4, 533bb, 3f268, 9069e, 3d41c, 1e7ec, 62ffb, e8862, 07bfb, 86ca3

2. Add public modal navigation extensibility seam for external platform backends: This pull request introduces a public extensibility seam in Microsoft.Maui.Controls to allow external platform backends to render modal push/pop navigation without forking the framework by defining new interfaces for modal navigation management, enabling per-window isolated platform implementations via dependency injection, preserving existing behavior as a fallback, and addressing lifecycle, threading, failure recovery, and animation consistency through comprehensive API design and extensive testing.

  • URL: pull/37853
  • Associated Commits: 88194, 8498a, 2f809, 74b35, 7adc3, da1d8, 2d2bb, 5e852

3. [iOS] Fix TimePicker forcing en-US culture on iOS instead of device culture: This pull request fixes the iOS TimePicker control to correctly respect the device's culture and 24-hour time settings by reverting a previous change that forced en-US formatting for the default "t" format, improving culture parsing logic for iOS versions including handling of locale identifiers and regional format overrides, thereby resolving issues where the TimePicker incorrectly displayed time in en-US 12-hour AM/PM format regardless of the device's actual culture.

  • URL: pull/37797
  • Associated Commits: 91054, 89477, ac153, 100b0, 48d4b, 7e7e9

Other Open Pull Requests

  • BlazorWebView external backend API surface: This pull request exposes previously internal handler functionality for BlazorWebView in .NET MAUI, including a platform-neutral native web view property, public lifecycle methods for RootComponent management, and a public static content hot reload seam with attach/detach support. It enables third-party backends to fully integrate without duplicating MAUI source and includes extensive tests and documentation to validate the external backend contract.
    • [pull/37858]
  • CollectionView legacy handler removal and hot reload improvements: One pull request obsoletes the legacy Apple CollectionView (CV1) handlers for iOS and Mac Catalyst, removing their tests and CI coverage while preserving Windows and Android CV1 support. Another improves hot reload for CollectionView by assigning stable source-generator node IDs and dispatching property updates to realized cells without resetting adapters or losing state.
    • [pull/37990, pull/37899]
  • XAML Hot Reload binding fixes: This pull request fixes an issue where source-generated incremental Hot Reload incorrectly clears or loses nested {x:Reference ...} bindings by resolving the ReferenceExtension against the live target element’s namescope and safely retaining existing bindings when resolution is not possible. Comprehensive tests ensure correct behavior across various scenarios including detached elements and unresolved references.
    • [pull/37895]
  • Android SafeArea improvements and keyboard padding animation: One pull request introduces a new SafeArea implementation for Android to improve layout handling around device safe areas and fixes related to Flyout page initial load issues. Another pull request fixes flickering of the Android safe area padding during keyboard dismissal by animating padding changes in response to keyboard inset updates.
    • [pull/37953, pull/37935]
  • Windows IndicatorView background rendering fix: This pull request fixes an issue on Windows where setting IndicatorView.Background or BackgroundColor had no visual effect by adding a custom control template with a Border bound to the Background property. It also introduces new tests to verify correct initialization and updating of the background color on Windows.
    • [pull/37887]
  • CollectionView pointer gesture and selection fix on Android: This pull request addresses an issue where adding a PointerGestureRecognizer inside a CollectionView ItemTemplate prevented item selection by updating pointer gesture handling to properly detect clickable native views and retain touch sequences only when appropriate. This ensures the SelectionChanged event fires correctly.
    • [pull/37952]
  • Device test coverage extension for iOS/MacCatalyst navigation and tabbed pages: Multiple pull requests extend device tests for iOS/MacCatalyst to run against both legacy renderers and new handlers by making handler registration overridable and reusing existing test logic. This approach ensures comprehensive test coverage for NavigationPage, TabbedPage, and FlyoutPage without duplicating test code.
    • [pull/37802, pull/37803, pull/37894]
  • Avalonia desktop platform support in .NET MAUI template: This pull request implements support for Avalonia.Controls.Maui desktop platform by adding a new Avalonia desktop project head, updating template configurations and localization, and conditionally integrating Avalonia across platform projects. It updates dependencies to enable seamless Avalonia desktop app creation via the maui-multiproject template with an opt-in flag.
    • [pull/37829]
  • Handler instrumentation opt-in feature: This pull request introduces an opt-in compile-time instrumentation feature for handler and mapper attribution in .NET MAUI, enabling detailed performance measurement without affecting default build performance by compiling instrumentation code only when enabled.
    • [pull/37836]
  • GradientBrush memory leak fix: This pull request addresses a memory leak caused by strong event subscriptions to shared or long-lived GradientStopCollections by replacing them with weak event proxies and adding a finalizer to ensure proper garbage collection across multiple platforms.
    • [pull/37893]
  • iOS and Mac Catalyst platform API migration: This pull request migrates deprecated iOS and Mac Catalyst platform APIs related to browser, file picker, and font registration to ensure compatibility with iOS 13+ and Mac Catalyst 15+. It preserves existing behaviors and adds tests for embedded font registration without introducing public API changes.
    • [pull/38025]
  • Windows TextBox performance optimization: This pull request improves Windows TextBox control performance by caching its template ScrollViewer to avoid repeated recursive visual-tree searches during property updates and size changes. It uses a weak-reference-based cache validated by visual ancestry, resulting in significant speedup verified by new tests and empirical measurements.
    • [pull/38027]
  • VisualElement initial handler connection optimization: This pull request optimizes VisualElement's initial handler connection by avoiding duplicate mappings for BackgroundColor, BackgroundImageSource, and semantics properties, improving performance without altering reconnect or dynamic update behaviors.
    • [pull/37843]
  • dotnet/skiasharp NuGet release flow participation: This pull request enables the dotnet/skiasharp repository to participate in the non-workload NuGet release flow by adding it to allowed repositories, introducing an optional barBuildId parameter for build resolution, and ensuring commit verification on all resolution paths. It maintains existing pipeline behaviors and adds necessary tests and documentation.
    • [pull/37874]
  • Windows geocoding concurrency test fix: This pull request fixes a failing Windows geocoding concurrency test by adjusting test synchronization to pause when the map-service token is assigned, removing an obsolete synchronization helper, and correcting test assumptions without changing production code.
    • [pull/37882]
  • Android BlazorWebView image drag support: This pull request configures image drag support for Android BlazorWebView by adding the Xamarin.AndroidX.WebKit dependency, registering DropDataContentProvider with an application-specific authority, and providing an opt-out option for apps managing the provider themselves. Android device tests verify proper registration and permissions.
    • [pull/37975]
  • New issue-comment workflow for CI pipeline: This pull request introduces a standalone /fix -b <pipeline-branch> issue-comment workflow to trigger issue replication in the CI pipeline without altering the existing /review command. It includes authorization, validation, targeted behavioral and security tests, and documents the branch contract required for replicate mode.
    • [pull/37992]
  • CI pipeline Mac Catalyst test restriction: This pull request modifies the CI pipeline to restrict Mac Catalyst device and UI tests to release branches and PRs targeting release branches, skipping these tests on main, feature branches, and PRs targeting them. iOS testing and shared build stages remain unchanged.
    • [pull/37994]
  • Shell memory leak fix on handler disconnection: This pull request fixes memory leaks caused by DisconnectHandlers() failing to traverse non-IView Shell nodes, ensuring proper disconnection of handlers like BlazorWebView. It enhances platform-specific teardown on Android and Windows to fully release native resources.
    • [pull/38022]
  • Test failure fixes and baseline updates: This pull request fixes a test case failure by restricting a memory leak test to Android only to prevent CI failures and updates stale iOS snapshot baselines to match current rendering on iOS 18.5.
    • [pull/38028]
  • Android MediaPicker source-file protection backport: This pull request backports Android MediaPicker source-file protection to the net10.0 branch, treating picked external source images as read-only by performing rotation and compression in memory and writing the final result once to a MAUI-owned cache file. It preserves naming conventions and cleans up temporary inputs only after successful output.
    • [pull/38029]

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: 87

Key Closed Pull Requests

1. [Testing] [macOS] Fix screenshot masking and scaling for Retina (high-DPI) displays: This pull request updates the macOS UI test pipeline configuration and enhances the screenshot masking and scaling logic in UI tests to accurately support Retina (high-DPI) displays by detecting display scale factors, scaling mask and crop coordinates to pixel units, and normalizing images back to logical dimensions, while also aligning the macOS test agents to use the appropriate shared pool infrastructure.

  • URL: pull/35156
  • Associated Commits: ab212, 796f2, 0f75b, 3962a, f0f72, 1a3a7, 35924, 5900b, e91b2, 74fb7, a7246, d5699, d3f24, fc042, ee750, fc880, 1eb3c, 1dfce, a29c8, a2673, 0263a, fce9c, fca4c, 51e0b, 66214, 0dc29, 04e44, 6b75a, c7acb, d128e, b4573

2. [Windows] Replace Header with PlaceholderText for Title property of Picker: This pull request proposes updating the Windows implementation of the Picker control so that its Title property is displayed as placeholder text within the control rather than as a header, aligning its behavior with iOS and Android for a consistent cross-platform user experience.

  • URL: pull/33007
  • Associated Commits: 94693, 95cff, 2ae9b, 06c89, c733d, 93c2a, c7fc5, 61cf4, c3ff0, 179a3, 83925, 142d9, e2500, 68e2e, 8d146, 6b9d6, 79809, c0fac, 77439, 7f211, cc23b, d47a9, c89e2, 3c020, 7c95d, 8cd92, 31796, 2c959

3. [net11.0] Add platform-neutral handler contracts for external platform backends: This pull request adds a set of additive, platform-neutral generic handler interfaces to .NET MAUI that enable external platform backends—using their own native view types outside the dotnet/maui repository—to implement strongly typed handler APIs without being constrained by the existing per-framework native type aliases, thereby resolving compile-time type conflicts and maintaining full backward compatibility while covering all aliased handlers automatically.

  • URL: pull/37855
  • Associated Commits: 36752, 56aae, 9d4f2, 581c8, 669f9, 5d659, 58321, ece04, d9434, 792ca

Other Closed Pull Requests

  • BlazorWebView Dispatcher Exception and Cancellation Fixes: This topic covers fixes in the BlazorWebView dispatcher implementations for WPF, Windows Forms, and MAUI that remove duplicate UI-thread rethrows and preserve original exception details in returned tasks. It also ensures correct mapping of cancellation states, proper awaiting of async dispatcher tasks, explicit handling of fire-and-forget calls with logging, and adds regression tests to align with the ASP.NET Core dispatcher contract.
  • pull/37974
  • XAML Source Generation for Static C# Expressions: These pull requests fix XAML source generation issues by correctly resolving static type roots from global namespace imports, aliases, and predefined types. This prevents incorrect error reports and ensures proper handling of static expressions and interface members in compiled XAML bindings.
  • pull/34926
  • Test Failures and UI Test Improvements: This group addresses test failures on Android, iOS, and Mac Catalyst by updating tests and snapshots for reliability, refactors Entry control UI test cases with new properties and accessibility improvements, fixes keyboard-related SafeAreaEdges test baselines and automation, and updates UI test screenshot baselines to fix build failures.
  • pull/37885, pull/37111, pull/37438, pull/37702
  • Android Material 3 ImageButton and Theming Enhancements: This topic completes the .NET 11 follow-up for Android Material 3 ImageButton by removing a temporary shim, adding a new public constructor for explicit theming opt-in, preserving existing constructor behavior, and adding tests for feature switches, theming, and padding normalization.
  • pull/37950
  • CollectionView2 Windows Handler Fixes: These pull requests fix null item selection state computation with null guards, ensure synchronization during grouped null-item replacements by creating new ItemTemplateContext2 instances, and correct drag-and-drop reorder logic by resetting drag state when container indices are invalid, resolving visual and functional inconsistencies.
  • pull/36170
  • Skia Canvas Arc Drawing Improvements: This fix replaces a temporary SKPath workaround with the supported SKCanvas.DrawArc API for partial arcs, preserving full-sweep arc rendering behavior for strokes and fills. It includes comprehensive pixel-equivalence tests and documentation to ensure compatibility and correctness.
  • pull/37955
  • CollectionView2 Scroll Position Fixes on iOS and MacCatalyst: This update replaces a hardcoded estimated item height with a dynamically measured size in the compositional layout, ensuring stable and accurate scrolling behavior during animated ScrollTo and MakeVisible operations.
  • pull/35668
  • TabbedPage Badge Support in .NET MAUI: This pull request adds badge support to the regular TabbedPage by implementing attached properties for badge text, color, and text color with platform-specific integrations across Android, iOS, Mac Catalyst, Windows, and Tizen. It includes comprehensive testing and handles platform-specific limitations such as UIKit badge color behavior on Apple platforms.
  • pull/37755
  • Toolbar Drawer Toggle Visibility Enhancements: This introduces an optional interface IToolbarDrawerToggleVisible to expose toolbar drawer-toggle visibility without breaking existing implementations, adds reliable change notifications for drawer-toggle visibility, fixes ordering and ownership issues related to back button and drawer toggle state changes, and includes tests and documentation for external platform backends.
  • pull/37863
  • Large-Title Safe Area Handling on iOS 26: This fix improves large-title safe area transitions by delegating the top safe-area layout gap to a single vertical native UIScrollView, enabling smooth and native UIKit-compliant collapsing and expanding of large navigation titles across various scrollable controls and custom views without renderer-level hacks.
  • pull/37548
  • Android Safe-Area Padding Fix in TranslationY Animations: This pull request fixes an Android issue where translating small views offscreen incorrectly preserved the top safe-area inset, causing unwanted padding and gaps during full-screen Shell navigation animations by updating vertical animation detection to apply safe-area padding only to full-screen views.
  • pull/37772
  • Android Geolocation Provider Selection Update: This update explicitly selects enabled location providers on API 34 and later, preferring the system fused provider, then network or GPS based on accuracy, while excluding passive and local database providers. It replaces deprecated Criteria-based selection without changing public API or behavior on API levels 21 through 33.
  • pull/37976
  • Shell Flyout Item DataTemplate Resolution API: This pull request introduces a new public API on Shell to enable external backends to resolve and apply application-supplied DataTemplates for Shell flyout items. It unifies and replaces internal template resolution logic, ensures consistent template precedence and binding context, handles explicit null templates, and fixes platform inconsistencies to improve cross-platform behavior.
  • pull/37862
  • Helix Job Monitor Uploader Improvements: This update pins the Helix job monitor uploader to a scalable, resilient version that improves result upload reliability with bounded parallelism, coordinated throttling, transient failure retries, and replay of incomplete uploads, resolving prior scalability and timeout issues during Azure DevOps test result processing.
  • pull/37865
  • Windows Device Test Synchronization Fixes: These fixes adjust timing and assertions for native InfoBadge brush properties and modify geocoder tests to block token assignment only after facade ownership is established, resolving deterministic test failures without changing production initialization or binding behavior.
  • pull/37877
  • Android Horizontal ScrollView Vertical Scroll Prevention: This fix addresses an Android issue where unintended vertical scrolling occurred in a horizontal ScrollView by adjusting sizing and layout of the inner scroll view to account for padding, eliminating phantom vertical scroll and ensuring correct horizontal scrolling.
  • pull/37880
  • UI Adjustment to Fix SR10 Test Failures: This pull request increases the top padding of the pickerAvailabilityLabel in a test case to prevent it from being hidden behind the status bar, avoiding timeout exceptions. It also removes unnecessary Copilot-introduced changes that caused test exceptions while retaining original test fixes.
  • pull/37949
  • GitHub Actions Workflow Scheduling Restriction: This update prevents scheduled GitHub Actions workflows from running in forked repositories by gating scheduled workflow root jobs to the main repository, avoiding unnecessary consumption of Actions minutes and Copilot credits. It also hardens workflow dispatch security and defines failure issue retention policies.
  • pull/37749
  • Microsoft.Maui.Media.Locale Public Constructor Addition: This pull request makes the Locale class constructible by external TextToSpeech backends by adding a public constructor and normalizing null arguments to empty strings. It enables out-of-tree ITextToSpeech implementations to use Locale instances and tightens platform voice-selection guards with comprehensive tests.
  • pull/37857
  • Resizetizer Build Task Symlink Path Bug Fix: This critical fix normalizes and canonicalizes project paths to prevent generated images from being incorrectly deleted when paths involve symbolic links or junctions, especially on macOS. It includes extensive tests and safeguards to handle link resolution, case sensitivity, and containment to avoid deleting files outside the intended output folder.
  • pull/37859
  • IImageSourcePaint Interface Exposure: This pull request adds a new public, read-only interface to expose the internal ImageSourcePaint image background contract, enabling external platform backends to detect and consume image backgrounds without reflection or internal access, while keeping internal implementation unchanged.
  • pull/37864
  • XAML Hot Reload x:Name and Namescope Reconciliation: This fix ensures generated x:Name fields persist correctly across incremental Hot Reload edits, replaces stale registrations, and unregisters removed names to prevent detached object references. It resolves issues with named element identity, event handlers, and bindings without rebuilding retained elements.
  • pull/37897

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
jfversluis 183 25 0 132
Copilot 158 1 0 168
253 0 0 0
kubaflo 119 21 2 62
StephaneDelcroix 68 11 4 23
devanathan-vaithiyanathan 88 9 0 2
Redth 74 13 0 12
mattleibow 40 3 0 53
Shalini-Ashokan 61 5 0 1
HarishwaranVijayakumar 56 3 1 5

Access Last Week's Newsletter:

  • Link
Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.