Weekly GitHub Report for Maui: July 13, 2026 - July 20, 2026 (21:05:15)
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, 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.
-
[T/BUG] [PLATFORM/ANDROID] [PLATFORM/IOS] [AREA-CONTROLS-SHELL] [S/VERIFIED] [S/TRIAGED] [HAS-WORKAROUND] [PARTNER/SYNCFUSION] Using ".." in route definition doesn't remove last navigated page(s) from nav stack: This issue describes a problem where using the navigation route syntax with ".." in a .NET MAUI Shell application does not properly remove the last navigated detail pages from the navigation stack when navigating to a different page. Despite navigating to the target page, the previous pages remain in the stack, causing unexpected behavior when switching tabs, and the user has found that manually removing pages from the stack is a necessary but undesirable workaround.
- Commenters confirmed the issue persists across multiple .NET MAUI versions including 9 and 10, shared workarounds involving manual stack manipulation and multi-step navigation commands, and expressed frustration over the bug’s impact and slow resolution, while also verifying reproduction steps and providing additional testing feedback.
- Number of comments this week: 3
-
[PROPOSAL/OPEN] [S/TRIAGED] [EXTERNAL-TFM] Improve Extensibility 3rd Party Platform Backends: This issue addresses the limitations in .NET MAUI's architecture that hinder third-party platform backends from functioning properly due to closed system designs, internal APIs, and compile-time guards that cause runtime crashes and complicate cross-platform development. It proposes a series of backward-compatible API surface changes to improve extensibility, such as public
SetDefault()methods, composable handler registration, and standalone tooling targets, enabling community-driven platform support without official maintenance by the MAUI team.- The comments track progress on related sub-issues and pull requests addressing specific extensibility gaps, confirm fixes for lifecycle event handling, and provide automated audit updates on implementation status and forward-porting of patches, indicating ongoing active development and validation toward merging these improvements.
- Number of comments this week: 3
-
[S/TRIAGED] MAUI external-backend extensibility: unified platform registration & build contract: This issue proposes a unified extensibility model for MAUI's single-project and MSBuild infrastructure that allows external backend NuGet packages to integrate seamlessly as first-class platforms without requiring changes to MAUI itself for each new backend. It outlines a phased approach to introduce a public platform registration contract, backend identity resolution, data-driven compile selection, extensible app-head resource defaults, formal resource/build hook points, and design-time/launch integration to support both recognized platform TFMs and neutral TFMs activated via explicit properties.
- The comments provide updates on the decomposition of the work into smaller issues, confirm architectural decisions that no additional app-head API is needed, and report implementation progress with pull requests addressing backend identity, compile activation, Resizetizer hooks, and app-head inputs, validated against Linux.Gtk4 and macOS AppKit backends.
- Number of comments this week: 3
-
[S/TRIAGED] [EXTERNAL-TFM] Essentials static
Defaultproperties need a public registration mechanism - Every Essentials API (Preferences,FilePicker,SecureStorage, etc.) is inaccessible to custom backends without reflection hacks: This issue addresses the problem that third-party platform backends cannot register their implementations with the staticDefaultproperties of Essentials APIs without resorting to fragile reflection hacks, causing runtime exceptions on custom platforms. It proposes making the internalSetDefault()methods public or providing an official dependency injection registration mechanism to enable seamless integration of custom backends with the static API properties.- The comments highlight a related case with
DeviceInforequiring a similar public setter for proper platform detection, note that a fix was merged to enable DI-based registration without reflection, and mention that the fix is being forward-ported to the current .NET version before the issue can be closed. - Number of comments this week: 2
- The comments highlight a related case with
-
[S/TRIAGED] BlazorWebView handler registration needs extensibility for custom platforms - Custom backends must bypass and reimplement
AddMauiBlazorWebView()entirely: This issue addresses the limitation in the currentAddMauiBlazorWebView()extension method, which only registers handlers for built-in platforms and forces custom platform backends to bypass and fully reimplement the registration process. It proposes adding extensibility to allow custom platforms to register their own BlazorWebView handlers without losing shared service registrations, suggesting several options such as a handler registry pattern, configurable handler mapping, or convention-based discovery.- The comments indicate that a solution was implemented via a new
UsePlatformHandler<THandler>()method allowing custom platform handlers to replace the default while keeping shared services, but the fix was initially merged into a non-main branch and is pending a forward-port to the current release; the issue remains open until that port is completed. - Number of comments this week: 2
- The comments indicate that a solution was implemented via a new
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: 27
Summarized Issues:
- UI Test Regressions on Multiple Platforms: Several issues report regressions causing UI test failures across macOS, Windows, and Android platforms in Candidate PR 36411 and related branches. These regressions break previously working functionality in .NET MAUI Shell and XAML unit tests, impacting test reliability and development workflows.
- issues/36562, issues/36563, issues/36625
- Memory Leak Regressions Across Platforms: Multiple device memory leak tests for Windows, macOS, iOS, and Android have been failing due to regressions introduced by recent pull requests, causing actual memory leaks in the Candidate branch. These leaks affect ItemsSource, ScrollView, and window-related tests, requiring fixes to restore test stability.
- issues/36612, issues/36613, issues/36614
- Navigation and UI Desynchronization Issues on iOS: Rapid back navigation and interactive edge swipe-back gestures on iOS cause navigation deadlocks and blank screens due to desynchronization between the native UINavigationController and MAUI navigation stack. These issues prevent navigation completion and disrupt user experience until native controller hierarchies refresh or alternative navigation methods are used.
- issues/36570, issues/36647
- Regression in Visual and Icon Rendering: On Android and Windows, regressions cause incorrect icon tinting and stale cached icons in builds, leading to invisible icons or improper font and style application in controls like SwipeItem and SearchHandler. These visual inconsistencies degrade UI quality and user experience.
- issues/36573, issues/36594, issues/36629
- Event and Delegate Handling Regression: The Accelerometer.ReadingChanged weak event source has a regression where unsubscribing composite delegates fails, causing subscribers and related objects to remain in memory indefinitely. This incorrect matching logic leads to memory retention issues and potential leaks.
- issues/36574
- Accessibility Compliance Issues: The .NET MAUI Entry control fails to announce accessible labels via screen readers TalkBack and VoiceOver, only reading the current value. This prevents users from understanding the field's purpose and violates WCAG 2.1 AA accessibility requirements.
- issues/36579
- Memory Leak Due to Handler Disconnect Failures: On iOS, the DisconnectHandlers() method does not properly traverse Shell tab pages hosting BlazorWebView, causing handlers and resources like WebViewManager to remain undisposed. This leads to memory leaks when the main page is replaced.
- issues/36584
- Publishing Pipeline and Build Configuration Improvements: Proposals include replacing MAUI's custom NuGet publishing script with the approved 1ES.PublishNuget@1 task for better security and validation, and adding a configurable option for full ReadyToRun publishing in Android CoreCLR builds to balance performance and app size.
- issues/36567, issues/36587
- Runtime Failures and Native Crash Issues: ClientWebSocket on Android fails at runtime with NativeAOT enabled due to missing JNI implementations, and a native crash occurs on Windows when a SwipeView is placed inside a Border with simple content, causing immediate app termination without managed exceptions.
- issues/36593, issues/36652
- Profiling and Diagnostic Tool Limitations on Android: The
maui profile startupcommand faces issues including TCP port collisions, hardcoded timeouts preventing trace finalization, and unparseable .nettrace files due to EventPipe finalization problems or version mismatches. These limit effective profiling on physical Android devices. - issues/36635, issues/36636, issues/36637
- Performance Issues in CollectionView on Android: CollectionView scrolling performance is poor in version 10.0.80 on Android, with freezing and stuttering persisting despite attempts to simplify DataTemplates or enforce uniform item sizes. This degrades user experience during list interactions.
- issues/36646
- Android APK Installation Compatibility Problem: APKs generated by Visual Studio 2026 Insiders fail to install on Android 16 phones due to compatibility errors, whereas the same APKs generated by Visual Studio 2022 install and run successfully. This issue blocks deployment on certain devices.
- issues/36627
- SingleProject System Backend Registration Enhancement: There is a need to register and activate external backends for neutral Target Framework Monikers by reusing the MauiPlatformSpecificFolder contract. This ensures only active backend compile items are included while preserving existing behaviors and enabling focused MSBuild tests.
- issues/36650
- New UI Component and Extension Method Proposals: Proposals include adding a CardButton to improve animation performance over Border Label implementations and a ToView() extension method to fluently add native views to MAUI layouts across platforms without relying on handlers.
- issues/36667, issues/36678
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: 11
Summarized Issues:
- Platform-specific rendering issues: Several issues describe platform-specific problems affecting rendering and UI behavior. On iOS and macOS, a Label with TextType set to "Html" inside a ContentView measures height as 0, causing HTML content not to appear, while on Windows, enabling the new CollectionView2 handler causes a COMException crash that does not occur with CollectionView1, indicating regressions and platform-specific handler issues.
- issues/31674, issues/36632
- Regression test failures: Multiple regressions have caused UI and lifecycle tests to fail on different platforms. The "LifeCycleEvents Fire When Navigating Top Tabs" test fails on Windows due to a previous fix, and the ScrollingBothDirectionsWithNestedScrollViews UI test fails on Android, which was later reverted to fix the problem, showing instability introduced by recent changes.
- issues/36466, issues/36582
- Build and deployment environment problems: There are issues related to build environments and deployment configurations. The Azure DevOps macos-latest image lacks XCode 26.5 needed for iOS builds, and the macos-26 image has certificate parsing errors causing build failures. Additionally, the DevFlow Android profiling command on Windows fails to start the
dnxfallback process due to missing.cmdextension, requiring workarounds. - issues/36325, issues/36596
- Debugging and development tooling limitations: Debugging experiences are hindered by tooling and platform support issues. Debugging a Mac Catalyst build on Visual Studio Code for macOS fails due to unsupported debug types and missing extensions, preventing breakpoints despite successful app runs. Also, the .NET SDK 11 Preview 3 regression prevents debugging the ManualMaui Android project due to deployment errors from conflicting namespaces and incompatible minSdkVersion.
- issues/36611, issues/34874
- Service lifecycle and disposal errors: A crash on Android occurs when accessing IServiceProvider after an Activity is destroyed, causing a System.ObjectDisposedException. This happens because handlers resolve services without checking if the IServiceProvider has been disposed, especially during focus changes or property updates in the Activity's destruction phase.
- issues/35849
- Build system extensibility and backend integration: There are proposals and discussions about improving build system flexibility and backend package integration. Enhancements to the SingleProject build system aim to support shared and custom folder mappings with multiple platform identifiers for better compile filtering. Meanwhile, the need for external backend packages to contribute app-head manifests and resources without backend-specific conditions was considered but closed as not planned, since backend identity and activation already cover this functionality.
- issues/35042, issues/36649
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. [net11] Image metadata API in Graphics; stop Android MediaPicker mutating picked source files: This pull request introduces a comprehensive image metadata (EXIF) API into MAUI Graphics for net11, enabling loading, preserving, transforming, and saving image metadata consistently across platforms, while unifying MediaPicker photo processing onto this shared Graphics-based pipeline to prevent Android from mutating picked source files by always writing processed images to new app-cache files, thereby fixing file-ownership bugs and ensuring deterministic, metadata-preserving image handling.
- URL: pull/36581
- Associated Commits: f52ad, 2322a, cfd50, f1b36, 95516, 8def5, 2564f, c1c9a, bd3b4, c7cef, 2c4d3, 66716, 66c46, 692f3, feae9, 580fa, 935e4, f94f1, 81f35, 76051, 3bbdd, a9116, 34d39, e4078
2. [Extensibility] Essentials: Bridge DI implementations to static facades: This pull request forward-ports the bridging of dependency-injected Essentials implementations to their corresponding static facades during MauiApp initialization, enhancing lifecycle management, platform-specific token forwarding, and test stability without introducing new public APIs.
- URL: pull/36657
- Associated Commits: 14450, 0bd37, 33602, 681fb, 0df92, 70a89, 3daaf, bd685, af4bd, 8be37, baddb, 27eba, 74088, 02bcb, 9dc9d, 2d72d, e9518
3. Passkeys (WebAuthn/FIDO2) Essentials API — spec + implementation: This pull request introduces a cross-platform Passkeys (WebAuthn/FIDO2) Essentials API to the Microsoft.Maui.Essentials library, including a detailed design specification and full implementation across supported platforms (Android API 34+, iOS/iPadOS/Mac Catalyst, and Windows 11), providing a standardized JSON-based interface for creating and asserting public-key credentials via native OS authenticators while excluding server-side verification, and includes comprehensive platform-specific handling, API design, build verification, and follow-up tasks such as dependency mirroring and on-device Windows testing.
- URL: pull/36617
- Associated Commits: 392da, 35689, 7ff59, 5f1f7, b6f1c, 698b8, 54b11, 37646, 865c2, d148c, 3b873, 93664, b5714, 95a23, 0b15b
Other Open Pull Requests
- External backend processing for Resizetizer: This pull request introduces a coherent MSBuild contract enabling external backend processing for the Resizetizer tool in .NET MAUI, allowing backends to opt in via the
ResizetizerPlatformTypeproperty. It supports incremental builds with proper tracking and fallback, preserves compatibility with built-in platform processing, and includes comprehensive tests for images, fonts, and assets without built-in output injection.
- Shell and SearchHandler enhancements: This pull request extends the Shell feature matrix by adding a dedicated SearchHandler feature page with sample data and runtime controls for numerous SearchHandler properties. It also includes comprehensive Appium UI test coverage validating SearchHandler behaviors across Android, iOS/MacCatalyst, and Windows platforms.
- Template App Distribution workflow: This pull request adds a manually triggered Template App Distribution workflow that builds and validates directly-installable tester app artifacts for Android, iOS, Mac Catalyst, and Windows from MAUI templates. It fixes prior installability and launch issues by producing platform-specific signed or self-contained builds and optionally enables publishing to Google Play test tracks and TestFlight through protected environment secrets.
- Gesture extensibility interfaces made public: This pull request makes the gesture extensibility interfaces
IGesturePlatformManagerandIGesturePlatformManagerFactorypublic to enable application-wide custom gesture handling via dependency injection. It adds platform-specific guards to skip the built-in gesture manager for handlers lackingIPlatformViewHandler, preventing invalid cast exceptions on Apple and Windows platforms and ensuring safe lifecycle management with regression-tested behavior.
- Grouped CollectionView rendering fixes: This pull request fixes inconsistent rendering issues of the Grouped CollectionView with GridItemsLayout across Windows and iOS/macOS. It ensures vertical content alignment stretches grid cells properly on Windows and applies consistent header-to-item spacing logic in the grid layout on iOS/macOS.
- Custom platform handlers for BlazorWebView: This pull request adds support for registering custom platform handlers for BlazorWebView in .NET MAUI by introducing new
UsePlatformHandlerextension methods onIMauiBlazorWebViewBuilder. It enables independent handlers implementing theIBlazorWebViewHandlerinterface to replace the default handler while maintaining shared service registrations and improving platform-specific cleanup and testing.
- Restoring public visibility of alert interfaces: This pull request restores the public visibility of the
IAlertManagerandIAlertManagerSubscriptioninterfaces onnet11.0in the Microsoft.Maui.Controls.Platform namespace. It aligns related alert argument types with the supported public contract by removing restrictive attributes, updates documentation, corrects obsolete lifecycle messaging, and ensures these changes pass build and API validation without altering signatures or behavior.
- Fix Entry.Completed event on Windows with IME: This pull request fixes an issue on Windows where the Entry.Completed event was incorrectly fired when pressing Enter to confirm a Chinese/Japanese IME candidate. It adds logic to detect and suppress the event unless a real Enter key press occurs, along with tests verifying this behavior.
- Android CoreCLR full ReadyToRun publishing opt-in: This pull request introduces an opt-in feature for Android CoreCLR enabling full ReadyToRun (R2R) publishing to improve runtime performance by adding the
MauiEnableFullReadyToRunPublishingproperty. The property defaults to false to preserve partial R2R and includes updated MSBuild coverage and documentation explaining the tradeoff between APK size and runtime performance.
- Pinning .NET package versions for MAUI projects: This pull request decouples .NET package versions used in the MAUI project from in-development SDK previews by pinning shipping projects to the published previous preview (N-1) package versions. It allows tests and templates to float on the current preview (N) versions, preventing assembly conflicts and ensuring stable, prerelease-aware dependency management across shipping, testing, and template generation workflows.
- Registration identity and activation for external backends: This pull request implements registration identity and compile-time activation for external backends in the SingleProject system to support recognized and neutral target frameworks. It extends MauiPlatformSpecificFolder registration with metadata for backend identity and activation, ensuring only the active backend’s platform-specific code compiles, preserving existing behaviors, and adding comprehensive MSBuild unit tests as part of external-backend extensibility.
- Standardizing NuGet publishing in release pipeline: This pull request replaces custom NuGet.org publishing logic in the MAUI release pipeline with the standardized 1ES.PublishNuget task. It improves reliability, enables better error handling, streamlines the release process by removing legacy scripts and API key management, and adds enhanced validation, artifact management, and documentation.
- Windows AppInstance activation and WebAuthenticator support: This pull request adds comprehensive support for Windows AppInstance activation lifecycle hooks and WebAuthenticator functionality in .NET MAUI. It enables single-instance activation handling, protocol and file activation, browser-based authentication callbacks, asynchronous activation redirection, and includes validation tests and a sample implementation while preserving existing cross-platform contracts and compatibility.
- Fix Android MediaPicker data-loss issue: This pull request fixes the Android MediaPicker so it no longer overwrites or deletes the user's original picked image file by treating the source as read-only. It writes any rotated or compressed output to a new MAUI-owned cache file, eliminating a data-loss window and ensuring only MAUI-owned temporary inputs are cleaned up after processing.
- Deterministic installability readiness check for preview workloads: This pull request adds a deterministic installability readiness check for preview workloads verifying workload set coherence, required manifests, representative packs, and platform prerequisites. It integrates this gate into readiness reports with clear status semantics, restricts authenticated package sources to secure endpoints, and removes sensitive configuration details to ensure public-safe serialization.
- Fix Windows MAUI WebView local-host detection and security: This pull request fixes the Windows MAUI WebView's local-host detection by changing the URL check to a precise parsed URI scheme and host match for "https://appdir". It aligns resource-access mode by replacing the broader
Allowsetting with the more restrictiveDenyCorsin the virtual host folder mapping to improve security while preserving local sub-resource loading.
- Fix build errors in release mode for Maui.Controls.Sample: This pull request fixes build errors occurring in release mode by modifying SetPropertiesVisitor.cs to suppress certain binding validation errors caused by inferred AncestorType bindings. It restores fallback behavior to reflection-based binding compilation for ambiguous cases without affecting explicit x:DataType bindings.
- Automate visual snapshot test failure detection: This pull request automates detection and publication of visual snapshot test failures in the
/review testsworkflow by consolidating baseline, actual, and diff image comparisons into a single expandable comment with bounded assets. It enhances test-failure analysis without affecting merge-readiness verdicts or gate logic.
- Fix Android Shell Flyout UI test bottom padding: This pull request fixes Android Shell Flyout UI test failures caused by incorrect application of bottom padding by ensuring the bottom inset padding is only applied when the flyout view overlaps the bottom safe area.
- Migrate iOS/MacCatalyst FlyoutPage to handler architecture: This pull request migrates the iOS and MacCatalyst implementation of
FlyoutPagefrom the legacy monolithicPhoneFlyoutPageRendererUIViewController-based renderer to a new layered handler architecture featuring aFlyoutViewHandler. This improves maintainability, memory safety, multi-instance support, aligns with the handler pattern used by other pages, and provides full feature parity with unconditional default registration.
- Fix flaky UI tests in Net11 branch: This pull request fixes flaky UI tests by adding a ResetAfterEachTest property to ensure test environment resets after each test, resaving the mac image for improved rendering, and enhancing test stability across platforms.
- Fix iOS/macOS CollectionView interaction state regression: This pull request addresses a regression on iOS and macOS by fixing the interaction state of CollectionView, RefreshView, and ScrollView after toggling IsEnabled. It centralizes UserInteractionEnabled logic in a new UpdateInteractionState method and ensures overridden MapIsEnabled methods call the base implementation to maintain consistent behavior.
- Remove automation for unsupported net10.0 branch: This pull request removes all automation related to the unsupported
net10.0branch, including scheduled merges, workflow configurations, and live merge workflows. It effectively retires generation of related pull requests and coordinates with a corresponding dependency-flow cleanup in the maestro-configuration repository.
- Prevent duplicate memory leak issues/fixes: This pull request prevents the Daily Memory Leak Hunter and Memory Leak Fixer workflows from creating duplicate leak scan issues or fixes by detecting when an equivalent fix has already been merged to main or inflight/current branches. This improves accuracy and efficiency of memory leak management in the project.
- Fix iOS/MacCatalyst UI unresponsiveness in AbsoluteLayout: This pull request fixes UI unresponsiveness caused by repeatedly reading the native
UIView.Interactionsproperty during layout of many Entry/Editor children in AbsoluteLayout. It caches the interactions array to eliminate redundant interop calls, significantly improving performance without changing behavior.
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: 61
Key Closed Pull Requests
1. [XAML] Incremental XAML Hot Reload (source-generated patch chains): This pull request introduces an opt-in XAML Incremental Hot Reload (XIHR) feature for .NET MAUI that uses a Roslyn source generator and runtime support to apply live XAML edits incrementally to existing UI instances without rebuilding the app, implementing a versioned patch chain mechanism with detailed diffing of XAML trees, runtime instance tracking, and metadata update handling, all designed to minimize performance impact in production and improve developer productivity with extensive testing and diagnostics.
- URL: pull/34338
- Associated Commits: 3f8ca, db3d8, 48c26, ab7b7, 1c14a, 83813, cdb47, b8e9f, 8b630, 3cbab, 8d404, 5e5eb, 1f01b, 36011, 8b372, 5ceb1, 096a5, 8a981, 6e047, 1b847, 1ce9a, c4e30, 07956, ff5ed, dacc4, 48b93, eeec2, 8a3f3, 386e1, 634c4, 8aaa7, c0a8d, a4285, d8eb3, a5f3f, 7ebe7, 00bde, 193ee, 6822b, f5f02, f38b5, bee75, 63dca, 22e93, a80f8, 7680d, ed93a
- Associated Commits: 3f8ca, db3d8, 48c26, ab7b7, 1c14a, 83813, cdb47, b8e9f, 8b630, 3cbab, 8d404, 5e5eb, 1f01b, 36011, 8b372, 5ceb1, 096a5, 8a981, 6e047, 1b847, 1ce9a, c4e30, 07956, ff5ed, dacc4, 48b93, eeec2, 8a3f3, 386e1, 634c4, 8aaa7, c0a8d, a4285, d8eb3, a5f3f, 7ebe7, 00bde, 193ee, 6822b, f5f02, f38b5, bee75, 63dca, 22e93, a80f8, 7680d, ed93a
2. Improve VisualState order and prevent sticky Focused visual state: This pull request improves the ordering of VisualState transitions and prevents the "Focused" visual state from sticking when a control is disabled by restructuring visual states into multiple groups—separating focus states from pointer states—to ensure correct and consistent visual behavior in buttons and similar controls, addressing issues like those reported in #19752.
- URL: pull/27477
- Associated Commits: 4c54f, 89d21, 825cd, dc831, f6149, 403d1, a3174, 72e7d, dd794, eac00, 2e44d, a71be, be44e, 37157, 48e25, 554d7, 58bc5, 1a0ea, 77535, 4c0ad, fca65, 4a88a, d81b3, 47453, 63c01, 80524, e6354, 12a9e, a5d12, 9cc64, d3fc3, c7bd1, 6eac5, 17f08, 6a0da, f2a64, 19108, e854d, f076d, 959f6, 200e6
- Associated Commits: 4c54f, 89d21, 825cd, dc831, f6149, 403d1, a3174, 72e7d, dd794, eac00, 2e44d, a71be, be44e, 37157, 48e25, 554d7, 58bc5, 1a0ea, 77535, 4c0ad, fca65, 4a88a, d81b3, 47453, 63c01, 80524, e6354, 12a9e, a5d12, 9cc64, d3fc3, c7bd1, 6eac5, 17f08, 6a0da, f2a64, 19108, e854d, f076d, 959f6, 200e6
3. Add template app distribution workflow: This pull request adds a manually triggered workflow to the .NET MAUI repository that automates building, packaging, and distributing template apps for Android, iOS, Mac Catalyst, and Windows, including features for generating blank and sample-content apps, uploading build artifacts, and optionally publishing to Google Play test tracks and TestFlight using fastlane, thereby enabling direct distribution of accessibility test apps from the templates without maintaining a separate sample app repository.
- URL: pull/36136
- Associated Commits: 62536, 00241, 07e91, 81c67, 93fec, 3c489, f1d34, 46c98, 91b25, 9e193, bdfb2, 333a0, 77954, eb101, 8a66e, 8bcb2, b2f54, e7443, ff430, f966b, f8dca, 36c5d, bc2a9, f4898, c475b, 56bf4, c66f1, 63751, cd76a, 7e4e9, 742ef
- Associated Commits: 62536, 00241, 07e91, 81c67, 93fec, 3c489, f1d34, 46c98, 91b25, 9e193, bdfb2, 333a0, 77954, eb101, 8a66e, 8bcb2, b2f54, e7443, ff430, f966b, f8dca, 36c5d, bc2a9, f4898, c475b, 56bf4, c66f1, 63751, cd76a, 7e4e9, 742ef
Other Closed Pull Requests
- Windows platform fixes and improvements: Multiple pull requests address Windows-specific issues including fixing dynamic runtime updates to ShellContent titles by moving title handling to ShellSectionHandler, preventing ObjectDisposedException on app close by checking window disposal state, resolving RefreshView and ScrollView content assignment errors by detaching platform views first, preserving background color on LayoutPanels with InputTransparent set, and adding a new Windows lifecycle event for app activation handling with cross-platform tests. These changes improve stability, UI correctness, and lifecycle event handling on Windows in .NET MAUI.
- UI control fixes and enhancements: Several pull requests improve UI controls by fixing CarouselView's CurrentItem reset issue on Android, correcting SwipeItem background color updates on theme changes, fixing BackgroundColor reset on Image and ImageButton for iOS and MacCatalyst, and ensuring IsSwipeEnabled works correctly on CarouselView for iOS/Mac and Android. These fixes enhance visual consistency and interaction correctness across platforms.
- Test infrastructure and UI test refactoring: Pull requests refactor and modernize UI test cases for Label and Button controls by expanding configurable properties, improving usability, enhancing data bindings, simplifying event handling, and adding reset functionality. Additionally, a design specification enables
dotnet testfor .NET MAUI device test projects across multiple platforms to unify CLI experience and support advanced testing scenarios. These efforts improve test coverage, maintainability, and developer experience.
- CI and PR review automation improvements: Multiple pull requests enhance CI workflows and PR review automation by implementing an automated gate to transition draft
[ci-fix]PRs to ready-for-review after successful tests, hardening the CI-fixer watch loop behavior for better reliability, and fixing Copilot PR-reviewer pipeline issues including unauthenticatedghCLI handling and mandatory inline findings file creation. These changes reduce manual intervention and improve pipeline robustness.
- Agentic-labeler and AI-related tooling enhancements: Pull requests improve the agentic-labeler by refining label routing for AI-agent and platform-specific issues, excluding unsupported platform labels like
platform/tizen, enhancing platform inference rules, and expanding evaluation scenarios for precise label application. Additionally, a new local-only skill automates analysis of Copilot CLI sessions to improve PR-review agents while ensuring privacy. These updates enhance labeling accuracy and AI tooling capabilities.
- Asset and build system fixes: A pull request fixes missing font and splash screen assets on first build and after deleting incremental outputs by restructuring Resizetizer build targets, replacing stamp files with output manifests, and de-duplicating font entries to prevent duplicate resource registrations across platforms. This improves build reliability and asset management.
- OAuth and authentication lifecycle improvements: One pull request integrates OAuth support into the Windows WebAuthenticator by leveraging the new Windows app-activation lifecycle event to handle protocol callbacks through Essentials, replacing previous special-case startup handling and preserving OAuth callback processing and error mapping. This enhances authentication flows on Windows.
- Navigation and WebView enhancements: A pull request introduces unified navigation interception with frame awareness via a new
WebNavigationTargetenum across all WebView types, adding events, interfaces, and enhanced event arguments to detect, intercept, and cancel navigations including main frame, iframe, and new window requests consistently across Android, iOS/Mac, and Windows. This provides developers with more control over web navigation.
- Bug fixes for UI behavior and state management: Pull requests fix a bug where setting
HideSoftInputOnTapped="True"on one page incorrectly affected all pages by replacing cached tracking with on-demand visual tree computation, and fix theSearchHandler.ShowsResultsproperty to immediately reflect runtime changes across platforms by updating UI components and synchronizing visibility and data sources. These fixes improve UI behavior correctness.
- Trimming and .NET 10 transition adjustments: A pull request proposes reverting the trimming workaround implemented for the .NET 10.0 transition in .NET MAUI to re-enable previously disabled trimming warnings for iOS by addressing linker warnings and fixing related trimming issues without merging the changes. This aims to improve trimming diagnostics and correctness.
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 | 420 | 4 | 0 | 377 |
| kubaflo | 40 | 23 | 2 | 207 |
| mattleibow | 63 | 6 | 0 | 149 |
| devanathan-vaithiyanathan | 116 | 5 | 0 | 3 |
| jfversluis | 86 | 2 | 0 | 3 |
| KarthikRajaKalaimani | 68 | 7 | 0 | 1 |
| HarishwaranVijayakumar | 52 | 3 | 0 | 2 |
| Shalini-Ashokan | 35 | 4 | 0 | 17 |
| Dhivya-SF4094 | 49 | 6 | 0 | 0 |
| StephaneDelcroix | 51 | 2 | 0 | 0 |