Skip to content

Flutter Notable Commits - 2026 #181433

Open
Open

Description

@Piinks

For years, Flutter's Framework team has been reviewing "notable commits" in our weekly staff meeting at Google. The notable commits are a lightly curated list of the pull requests that have landed in the previous week. The goal is to celebrate our progress and the developers who have contributed to that progress. Unfortunately, many of those developers have not been in the weekly staff meeting's conference room, they come from other teams within Google and the wider Flutter community.

Each list typically covers about one week and is not comprehensive. Its focus is on commits to Flutter's framework "flutter/flutter" repo that involved the Framework team as pull-request authors or reviewers. That's not strictly true however, we all contribute to many repos - not the least of which is "flutter/packages" - and you'll find evidence of that here. And not all of the commits listed here necessarily involved someone from the Framework or Engine team. One final observation about the participants in the list below is the large number of contributions that have come from the Flutter community. We are blessed with a an active and generous developer community. Each week's notable commits list is a tribute to everyone who has helped advance Flutter, not just Google's Framework team.

Prior Notable Commits

Activity

  1. self-assigned this
    on Jan 24, 2026
  2. added
    P3Issues that are less important to the Flutter project
    permanently lockedPrevent this issue from getting automatically unlocked
    on Jan 24, 2026
  3. locked and limited conversation to collaborators on Jan 24, 2026
  4. Piinks commented on Jan 24, 2026

    @Piinks
    ContributorAuthor

    January 01, 2026 to January 23, 2026

    Details

    Happy New Year! 🎆 The Flutter team and community have kicked off 2026 with a bang, landing 390 commits in the first few weeks of the year. This report highlights significant improvements in the Cupertino library, new widget capabilities like customizable Hero transitions, and expanded tooling support. We are also incredibly excited to welcome 12 new contributors who have made their first mark on the project!

    Framework & Material

    Engine & Platform

    Tooling & Ecosystem

    • #180140 Widget Preview IDs
      Registered DTD streams and services now include a UUID, improving the reliability of the Widget Preview feature in IDEs.

    • #177888 Auto-Generated ExportOptions
      The Flutter tool now auto-generates ExportOptions.plist for manual iOS code signing, streamlining the build process for iOS developers.

    • #180689 Feature Flags Manifest Logic
      Fixed logic to correctly locate the project root when searching for the FeatureFlags manifest, improving robustness of the tool.

    First-time Contributors

    A massive welcome to our 12 new contributors! 🚀 Your contributions are vital to the health of the project.

  5. Piinks commented on Feb 6, 2026

    @Piinks
    ContributorAuthor

    January 24, 2026 to February 06, 2026

    Details

    This week, 12 new contributors joined us for a total of 214 changes. We are marching towards 3.41.0 with significant macOS improvements, new Cupertino widgets, and better tooling!

    Framework & Widgets

    Platform (macOS & Android)

    Tooling & Ecosystem

    First-time Contributors

    We welcome 12 new contributors this week!

  6. Piinks commented on Feb 20, 2026

    @Piinks
    ContributorAuthor

    February 07, 2026 to February 20, 2026

    Details

    A total of 211 changes were merged to the framework, engine, and packages since the last report.

    Framework

    • #180389 Expose TabBarScrollController for custom TabBar behavior. Developers can now pass a TabBarScrollController to the TabBar widget, allowing for more granular control over tab scrolling and programmatic synchronization with other scrollable components. 🖱️
    • #180257 Customizable padding for Stepper widget. The Stepper widget now supports headerPadding and contentPadding properties, enabling developers to fine-tune the layout and spacing of their stepped processes for better visual alignment. 📏
    • #182527 Add RawTooltip.ignorePointer for hit-test control. A new ignorePointer property has been added to RawTooltip, giving developers the ability to control whether tooltips should be transparent to hit testing, which is particularly useful for overlay management. 🎯
    • #181092 Introduce ScrollCacheExtent and fix shrinkwrap crashes. This change introduces the ScrollCacheExtent class to modernize how cache extents are specified and fixes a critical bug where shrinkWrap: true could cause applications to crash due to invalid cache calculations. 🛠️
    • #182391 Reliable status bar tap to scroll on iOS. This reland ensures that only the foreground Scaffold handles status bar tap events on iOS by performing a hit-test before scrolling, fixing a potential crash when multiple scaffolds are present. 📱
    • #181882 Clearer error messages for color/decoration conflicts. Developers will now receive a much clearer and more helpful error message when providing both a color and decoration to a widget, explaining that one is a shorthand for the other and how to fix the conflict. 💡

    Web

    • #182079 Fix web-define flag in web builds. The --web-define flag is now correctly respected during flutter build web, ensuring that custom environment variables are properly substituted in index.html and flutter_bootstrap.js. 🌐
    • #180556 Improved accessibility for web form validation. Form validation errors on the web are now passed to screen readers using aria-description, ensuring that users of assistive technologies receive immediate feedback when form fields contain errors. ♿

    Tool

    • #182392 Guided errors for SwiftPM and CocoaPods conflicts. The Flutter tool now provides specific, actionable instructions when a plugin conflict occurs between Swift Package Manager and CocoaPods, helping developers navigate the migration to SwiftPM. 📦
    • #181224 New command for Swift Package Add-to-App. An experimental flutter build swift-package command has been introduced to help developers create a Swift package for embedding Flutter apps into native iOS/macOS applications, simplifying the "Add-to-App" workflow. 🚀
    • #180098 Discover running apps via the CLI. A new flutter running-apps command uses mDNS to discover and list all currently running Flutter applications on the network, making it easier to manage multiple debug sessions. 🔍
    • #181515 Warnings for legacy iOS UIScene lifecycle. The tool now monitors iOS device logs for UIScene warnings and provides a guided message to help developers migrate their applications to the modern iOS lifecycle. ⚠️

    Platform

    • #182113 Support for new Android CheckState APIs. Accessibility support on Android has been updated to use the latest CheckState APIs introduced in Android API 36, ensuring accurate state reporting for checkboxes and switches. 🤖
    • #181251 Default SwiftPM support in new plugins. Newly created iOS and macOS plugins will now include support for both Swift Package Manager and CocoaPods by default, future-proofing new packages from the start. 🍏

    Engine

    • #182117 Extended uniform matrix support for Impeller. The Impeller rendering engine now supports getUniformMatX and getUniformMatXArray on desktop and mobile platforms, enabling more complex custom shaders and visual effects. 🎨

    First-time Contributors

    Welcome to 13 new first-time contributors!

  7. Piinks commented on Feb 28, 2026

    @Piinks
    ContributorAuthor

    February 21, 2026 to February 27, 2026

    Details

    This week saw 182 changes land in the Flutter repository, including several highly requested features and developer experience improvements that are expected to be part of the upcoming 3.34.0 release. We are especially excited to welcome 11 first-time contributors to the project!

    Framework

    • #181795 Fix Text.semanticsIdentifier being absorbed by ancestor nodes
      • Authored by zhongliugo and reviewed by Chun-Heng Tai.
      • Ensures Text widgets with a semanticsIdentifier create their own semantic element instead of being absorbed by ancestors like Dialog, improving accessibility auditing.
    • #182731 New SizedBox.square() constructor
      • Authored by Nate Wilson and reviewed by Loïc Sharma, Victor Sanni.
      • Adds a convenient SizedBox.square() constructor for creating square boxes with a single dimension parameter. 📐
    • #182499 Fix StretchingOverscrollIndicator crash

    Material

    • #182785 Fix RawAutocomplete crash
      • Authored by Bruno Corona and reviewed by Victor Sanni.
      • Fixes an assertion crash in RawAutocomplete that occurred when attempting to hide an options view that was already hidden.
    • #180975 MenuAnchor software keyboard awareness
    • #181238 ExpansionTile WidgetStatesController support
      • Authored by Vikash Tiwari and reviewed by Qun Cheng, Justin McCandless.
      • Adds WidgetStatesController support to ExpansionTile, allowing developers to listen to and control its interactive states.
    • #181403 AnimationStyle support in ModalBottomSheet
    • #182475 Carousel migration to CustomScrollView
      • Authored by Mairramer and reviewed by Kate Lovett, Qun Cheng.
      • Migrates the Material CarouselView to use CustomScrollView under the hood, enabling better integration with other slivers.

    Impeller & Graphics

    • #182847 Adds float32 output to Image.toByteData()
      • Authored by gaaclarke and reviewed by b-luk, Jim Graham.
      • Adds support for exporting image data as float32 in Image.toByteData(), enabling higher precision image processing.
    • #182224 [Impeller] Bilinear filtering for non-uniformly scaled text
    • #181206 Paint paragraphs as a single image in Impeller
      • Authored by Rusino and reviewed by Mouad Debbar.
      • Optimizes text rendering in Impeller by painting paragraphs as a single image where appropriate, improving performance. 🚀

    Tooling & Platforms

    • #182786 Improved Impeller shader compilation error reporting
      • Authored by b-luk and reviewed by Jim Graham, John "codefu" McDole.
      • Truncates long shader compilation errors in the console and saves the full output to a file, making it easier to debug complex shader issues.
    • #182913 Xcode 26 compatibility improvements
      • Authored by Gray Mackall and reviewed by Matthew Kosarek.
      • Adds warnings and excludes arm64 if dependencies require it when using Xcode 26, ensuring smoother builds on the latest Apple tools.
    • #182301 Fix future warnings in async try-catch blocks
      • Authored by b-luk and reviewed by Jim Graham.
      • Resolves a lint warning when awaiting Future returns inside async bodies within try blocks.
    • #180692 Improved web key event synthesis
      • Authored by Harry Terkelsen and reviewed by Mouad Debbar.
      • Fixes an issue where the web embedder was synthesizing key-up events too eagerly, leading to inconsistent keyboard behavior.
    • #182362 Fix delegate copy on plugins initialization
      • Authored by eMxPi and reviewed by LouiseHsu, Victoria Ashworth.
      • Ensures plugin initialization correctly handles delegate copying, preventing potential crashes or misbehavior during app startup.
    • #182924 New Linux view sizing API
      • Authored by Robert Ancell and reviewed by Matthew Kosarek.
      • Introduces fl_view_new_sized_to_content() for Linux, allowing views to automatically size themselves based on Flutter's content.
    • #181808 Progress indicator for artifact downloads

    First-time Contributors

    A big welcome to our newest contributors!

  8. Piinks commented on Mar 6, 2026

    @Piinks
    ContributorAuthor

    February 27, 2026 to March 06, 2026

    Details

    This week saw 116 commits land in the Flutter repository. Highlights include major performance improvements for large pinned tables, native desktop windowing for dialogs, and the activation of Swift Package Manager by default on master and beta channels. We also welcomed five first-time contributors to the project!

    Framework

    • #181861 Native desktop windowing for dialogs
      A new useWindowing flag in MaterialApp enables showDialog to open content in a separate, native desktop window on supported platforms, providing a more platform-integrated experience. 🪟

    • #180563 Performance boost for large pinned tables
      Scrolling in TableView with pinned rows or columns is now significantly smoother thanks to an optimized layout logic that only processes visible children. ⚡

    • #181326 Display corner radii support for predictive back
      Predictive back transitions on Android 12+ now respect the device's actual display corner radii, ensuring a seamless and modern feel during navigation. 📱

    • #180753 Improved focus highlight mode on Android
      Flutter now correctly identifies key events from Android software keyboards, preventing them from incorrectly triggering traditional focus highlights and preserving the touch-first UX. ⌨️

    • #181795 Fixed semantics identifier absorption
      Text.semanticsIdentifier is now correctly isolated in its own semantic node, preventing it from being absorbed by ancestor nodes and improving the reliability of accessibility testing. 🔍

    • #182331 Optimized Scaffold FAB animations
      A targeted refactor in Scaffold reduces unnecessary work during Floating Action Button transitions, improving performance during common layout animations. 🚀

    API & Architecture

    • #182934 Mixed color space support in Color.lerp
      Interpolating between colors in different spaces (like sRGB and Display P3) now automatically converts to the wider gamut, ensuring accurate and vibrant color transitions. 🎨

    • #182791 New VM services for accessibility evaluation
      Added new VM service extensions that allow developers to trigger automated accessibility audits, paving the way for better integrated A11y testing tools. ♿

    • #182847 Float32 support for Image.toByteData
      High-precision image data can now be exported in float32 format in the Impeller backend, enabling advanced rendering and compute workflows that require high dynamic range. 🖼️

    Platform & Tooling

    • #165323 Stylus support on Windows
      Windows applications now correctly identify and handle stylus input as a distinct device kind, supporting pressure sensitivity and other stylus-specific data. 🖊️

    • #182923 SwiftPM enabled by default
      Swift Package Manager is now the default dependency manager for iOS and macOS projects on the master and beta channels, simplifying the plugin ecosystem. 📦

    • #182506, #182394, #182375 Enhanced SwiftPM migration guidance
      New warnings and detailed diagnostic messages provide clear, actionable steps for developers when plugins or projects require migration to Swift Package Manager. 🛠️

    • #182826 UIScene migration warnings for iOS plugins
      The engine now warns developers when iOS plugins have not yet migrated to the modern UIScene lifecycle, ensuring better long-term platform compatibility. 🍎

    • #183187 Fixed perspective shadows in Impeller
      Convex path shadows now render correctly under perspective transformations in the Impeller backend, fixing long-standing visual artifacts. ✨

    • #181402 New diagnostic for invisible ink splashes
      A new debug-mode assertion warns developers when a ListTile is wrapped in a way that would hide its background or ink splash effects, preventing silent UI issues. ⚠️

    First-time Contributors

    Welcome to the Flutter community! We’re thrilled to have your first contributions land this week:

    • GyuBin Hwang, for #183070, which unifies maskValue for TextDecoration and makes the class final.
    • Ishaq Hassan, for #183081, which ensures double quotes are used in the settings.gradle.kts template for better compatibility.
    • SakuraMomoko, for #180563, which fixes a significant performance jank in TableView when using pinned rows or columns.
    • CodeDoctor, for #165323, which introduces native stylus support for Windows applications.
    • Nick Fisher, for #182999, which cleans up documentation headers for Linux texture management.
  9. Piinks commented on Mar 13, 2026

    @Piinks
    ContributorAuthor

    March 06, 2026 to March 12, 2026

    Details

    This week in Flutter, we saw 105+ commits landing in the repository, with a major focus on accessibility and foundational work for advanced window management. We are also excited to welcome one new contributor!

    Accessibility

    • #183606 Improved accessibility for check state changes on Android 16
      This change adds support for a new accessibility event in Android 16, ensuring that checkboxes and switches announce their state changes (checked, partially checked, or unchecked) more accurately for users of screen readers. ♿️📱

    Framework & Core

    Tooling & Platform UX

    Material Design

    Engine & Performance

    • #180072 GLES3 shader support for Impeller Linux and custom embedders
      Enables the use of GLES3 shaders in the Impeller engine for Linux and other custom embedders, improving rendering capabilities and performance on supported hardware. 🚂🐧

    • #182963 Fix for Android plugin auto-registration race condition
      Corrects a timing issue in FlutterFragmentActivity where plugins could incorrectly attempt auto-registration during activity recreation, leading to more stable plugin lifecycles on Android. 🤖🩹

    Documentation & Policy

    • #183326 New contribution guidelines for AI-generated code
      Adds clear expectations and documentation regarding the use of AI tools when contributing to the Flutter repository, ensuring high standards for code quality and ownership. 📝🤖

    First-time Contributors

    We are thrilled to welcome a new contributor this week!

    • Laurie-Lin, for #181889, which adds shader support for asset transformers in the Flutter tool. Welcome to the community!
  10. Piinks commented on Mar 20, 2026

    @Piinks
    ContributorAuthor

    March 14, 2026 to March 20, 2026

    Details

    This week, the Flutter community landed 129 changes, moving us toward the upcoming 3.44.0 release. We are thrilled to welcome 7 first-time contributors! This week's highlights include significant accessibility improvements, more flexible desktop windowing, and a smoother developer experience across all platforms.

    Framework & Widgets

    • #183302 Improved web scrolling reliability
      Web scrolling is now more reliable and less likely to "swallow" events, ensuring that pointer signals are only handled when necessary and allowing the browser to perform default actions. 🖱️
    • #183074 Enhanced code consistency with const BorderRadius
      App performance and code consistency get a boost by favoring const BorderRadius.all over BorderRadius.circular, enabling more widespread use of constant constructors. 📐
    • #183303 Smoother bottom sheet animations
      Bottom sheets now animate more smoothly even when interrupted by user interaction, fixing a visual glitch during transitions. 📉
    • #183514 Flexible NavigationRail alignment
      NavigationRail is now more flexible on large screens, allowing developers to customize how destinations are distributed vertically using standard MainAxisAlignment. 📏

    Accessibility

    • #183569 Non-text color contrast evaluation
      Developers can now automatically verify that non-text controls, like icons and buttons, meet accessibility color contrast standards with a new evaluation tool. 🎨
    • #183475 Accurate semantics for popup and dropdown menus
      Accessibility for screen reader users is improved by ensuring that the "expanded" state of popup and dropdown menus is correctly updated and announced. 🔊

    Tooling & Platform

    • #179859 Undecorated desktop windows
      Desktop developers can now create undecorated windows, enabling more flexible and custom UI designs where Flutter renders all window decorations. 🖼️
    • #180789 Widget Inspector safe area respect
      The Widget Inspector now correctly respects system safe area insets, ensuring that control buttons remain accessible and visible on devices with notches or gesture navigation. 🛡️
    • #183856 & #183849 Modern Android Gradle Plugin DSL migration
      Android builds are more future-proof as the Flutter tool has migrated profile build type creation and ProGuard configuration to the modern Android Gradle Plugin DSL. 🤖
    • #182246 Swift Package Manager compatibility prompts
      Plugin authors will now receive helpful prompts to ensure their plugins are compatible with Swift Package Manager, streamlining dependency management for iOS and macOS. 📦
    • #182753 Inter-plugin communication on Android and iOS
      Native plugin development is now more powerful as plugins can now easily communicate and access registered instances of other plugins on both Android and iOS. 🔗
    • #183399 Automatic codesign for iOS XCFrameworks
      Integrating Flutter into existing iOS apps is now easier and more secure with automatic code-signing for XCFrameworks, meeting modern Apple privacy requirements. 🔐
    • #183274 Improved AdMob stability on iOS 18.2
      iOS developers using AdMob will see improved scrolling performance and stability in lists on iOS 18.2 thanks to refined WebView detection. 📱
    • #183715 Dedicated platform OpenGL context for Linux
      Multi-window support on Linux is now more robust with the addition of a dedicated platform OpenGL context, preventing shader compilation failures. 🐧

    Engine & Graphics

    • #183807 Web MSAA support in Impeller
      Graphics on the web take a leap forward with new MSAA (Multi-Sample Anti-Aliasing) support in Impeller, resulting in smoother edges and reduced aliasing. ✨
    • #182326 Android content sizing stability
      Android users will experience fewer visual glitches and better stability thanks to a fix for a race condition during surface resizing and viewport metric updates. 🏎️

    First-time Contributors

    Welcome to our newest contributors! We're excited to have you as part of the Flutter community.

    • algor, for #183680, which fixed the URL for the Flutter System Overview diagram.
    • Gautam Tirkha, for #180789, which improved the Widget Inspector control layout to respect system safe area insets.
    • Mayank Sharma, for #183351, which reduced cross-library coupling in the test suite.
    • Naman Goyal, for #183375, which improved the developer experience for flutter downgrade.
    • Sanket Patil, for #183061, which enhanced the clarity and formatting of issue templates.
    • Eyas, for #176881, which improved integration test reliability on Windows hosts.
    • Kevin Lamenzo, for #182778, which added valuable guidance for community code reviewers.
  11. Piinks commented on Mar 27, 2026

    @Piinks
    ContributorAuthor

    March 21, 2026 to March 27, 2026

    Details

    Another productive week for Flutter, featuring improved desktop startup smoothness, expanded Windows ARM64 support, significant tooling enhancements for artifact downloads and web development, and important accessibility fixes for both Web and Android. This week saw a total of 106 commits from 37 contributors.

    Framework & Widgets

    • #183454 Show windows only after the first frame is ready
      Ensures Flutter windows on desktop only become visible after the first frame is fully rendered, preventing a flash of uninitialized content during app startup. 🖼️

    • #183963 Migrate Material examples to use dot shorthand syntax
      Updates many framework examples to utilize Dart's new dot shorthand syntax for improved readability and more concise code. ✨

    • #184078 Pipe ScrollCacheExtent through more scroll views
      Exposes the cacheExtent property on additional scrollable widgets like ListView.custom and GridView.custom, enabling more consistent performance tuning across the framework. 🏎️

    • #184083 Ensure SelectableRegion passes constraints to children unmodified
      Fixes a bug where SelectableRegion on the web would cause children to shrink by incorrectly loosening layout constraints, ensuring consistent layout across platforms. 🕸️

    • #183109 Add scrollPadding property to DropdownMenu
      Adds scrollPadding to DropdownMenu to match TextField behavior, allowing developers to control the spacing around the menu when it scrolls into view, such as when the on-screen keyboard appears. ⌨️

    • #182991 Correctly dismiss Slider value indicators
      Fixes a bug where custom Slider value indicators would remain visible after an interaction was completed. 🎚️

    • #181345 Mark IconData as final and mustBeConst
      Enhances type safety and enables more effective icon tree shaking by enforcing that IconData instances are immutable and defined as constants. 🛡️

    Engine & Performance

    • #184096 Optimize simple shape path logic in Impeller
      Improves Impeller performance by moving simple shape path optimization logic earlier into the display list builder, reducing overhead during rendering. ⚡

    • #184037 Fix Gaussian blur clipping with negative scales in Impeller
      Resolves a rendering issue where Gaussian blurs could be incorrectly clipped when applying a negative scale (such as during a mirroring transformation). 🌫️

    • #184131 Use atomic writes for engine stamps
      Prevents potential race conditions during the Flutter build process by ensuring engine stamps are written atomically to the file system. 🏗️

    Tooling & Platform

    • #183724 Filter out extension processes during LLDB attachment on iOS 17+
      Fixes an issue where flutter run on iOS 17+ could hang by attempting to attach the debugger to an embedded extension (like WidgetKit) instead of the main application process. 📱

    • #176385 Restore Windows ARM64 support on beta and stable
      Re-enables Windows ARM64 engine builds for the beta and stable channels, now that full ARM64 support is available in the stable Dart SDK. 💻

    • #182709 Add base-href support to flutter run for web
      Simplifies development for web applications hosted in subfolders by bringing the --base-href flag to the flutter run command, matching the existing functionality in flutter build web. 🌐

    • #182836 Add visual progress bar to artifact downloads
      Introduces a much-requested visual progress bar, including download speed and ETA, when the Flutter tool downloads engine artifacts and other dependencies. 📥

    Accessibility

    • #183897 Correctly report ProgressBar class on Android
      Ensures that Flutter's progress indicators are correctly identified as progress bars by Android TalkBack, providing a more accurate experience for users of assistive technology. ♿

    First-time Contributors

    Welcome to our newest contributor!

    • Silfalion, for #183724, which ensures the debugger correctly attaches to the main app process on iOS 17+ when app extensions are present.
  12. Piinks commented on Apr 3, 2026

    @Piinks
    ContributorAuthor

    March 28, 2026 to April 03, 2026

    Details

    The Flutter repository has been busy this week with 141 changes from 37 contributors. We are excited to welcome 4 new contributors this week!

    Framework and Widgets

    • #182009 Add alwaysSizeToContent argument to Overlay.

      • Authored by Matej Knopp and reviewed by Matthew Kosarek.
      • Added a new alwaysSizeToContent option to Overlay, providing more flexibility for sizing overlays based on their content even within finite constraints. 🖼️
    • #175710 feat: add infinite carousel support

      • Authored by Kishan Rathore and reviewed by Qun Cheng, Hannah Jin.
      • A new feature that adds support for infinite carousels, allowing for seamless looping of content in lists and galleries. 🎠
    • #184421 Fix line breaks being lost when copying after selection gesture in SelectableRegion

      • Authored by Renzo Olivares and reviewed by chunhtai, Loïc Sharma.
      • Improved text selection accuracy in SelectableRegion by ensuring line height calculations include newline character regions, fixing issues where copying text lost line breaks. 📋

    Desktop and Platforms

    • #182348 Implement tooltip windows on Linux

      • Authored by Robert Ancell and reviewed by Matthew Kosarek.
      • Linux desktop applications now support native-style tooltip windows using popup windows. 🐧
    • #182371 Implement popup windows for macOS

      • Authored by Matej Knopp and reviewed by Loïc Sharma, Matthew Kosarek.
      • Enhanced macOS desktop support with the implementation of popup windows, enabling richer UI components like tooltips and menus. 💻
    • #175406 [Windows] Restore and enable IAccessibleEx implementation

      • Authored by Loïc PÉRON and reviewed by Loïc Sharma, Matthew Kosarek.
      • Restored advanced accessibility features on Windows by enabling IAccessibleEx, allowing UI automation tools to better identify and interact with Flutter widgets. ♿️
    • #183072 [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags

      • Authored by David Bebawy and reviewed by Matt Boetger, Reid Baker.
      • Modernizes Android edge-to-edge support by migrating to AndroidX APIs, fixing deprecation warnings and improving compatibility with Android 15. 📱
    • #183650 [ios] Add opt-in inline prediction text input support

      • Authored by Nikhil Bansal and reviewed by LongCatIsLooong, Loïc Sharma.
      • Adds opt-in support for iOS 17's inline predictive text, giving developers explicit control over how predictive text behaves in their apps. ✍️

    Web

    • #182024 [web] Fix autofill in iOS 26 Safari
      • Authored by Mouad Debbar and reviewed by Loïc Sharma.
      • Resolved autofill issues in iOS Safari by reusing forms and correctly re-establishing connections after focus changes. 🌐

    Tooling and DX

    • #184518 [ Widget Preview ] Handle collections and records in custom preview annotations

      • Authored by Ben Konyi and reviewed by Jessy Yameogo.
      • Widget Preview now correctly handles collections and records as annotation arguments, preventing crashes when these types are used in @Preview annotations. 🚀
    • #184473 [ Widget Preview ] Use analysis server for widget preview detection

      • Authored by Ben Konyi and reviewed by Jessy Yameogo.
      • The widget previewer now utilizes the Dart Analysis Server for detecting previews, significantly reducing memory consumption and improving performance when used in IDEs. ⚡️
    • #183785 [ Tool ] Migrate flutter analyze to use LSP

      • Authored by Ben Konyi and reviewed by Brian Wilkerson.
      • The flutter analyze command has been migrated to use the Language Server Protocol (LSP), ensuring more consistent and efficient analysis. 🔍
    • #183668 Add plugin version to SwiftPM package symlink directory

      • Authored by Victoria Ashworth and reviewed by stuartmorgan-g.
      • Ensures Xcode correctly re-caches SwiftPM manifests when plugin versions change by including the version in the symlink directory name. 🍎
    • #184495 Enable SPM by default on Stable

      • Authored by Elijah Okoroh and reviewed by Victoria Ashworth.
      • Swift Package Manager (SPM) is now enabled by default for all users on the stable channel, simplifying dependency management for iOS and macOS. 📦
    • #183747 Warn about slow SwiftPM downloads and centralize SwiftPM cache

      • Authored by Victoria Ashworth and reviewed by Ben Konyi.
      • Improved developer experience for SwiftPM users with progress indicators during slow downloads and a centralized cache to speed up builds. 🏎️
    • #184219 Improve error message when dart-define content are not base64 encoded and add more test cases

      • Authored by Mohellebi Abdessalem and reviewed by Ben Konyi.
      • Developers will now receive much clearer and more helpful error messages when dart-define values are incorrectly formatted. 🛠️

    Engine and Rendering

    • #184090 Adds uber sdf shader gradients with blend
      • Authored by gaaclarke and reviewed by Jim Graham, walley892.
      • Advanced gradient rendering support in the new Impeller SDF renderer, enabling multi-pass gradient blending for complex shapes. 🎨

    First-time Contributors

    Welcome to our newest contributors!

  13. 13 remaining items

  14. Piinks commented on Aug 17, 2026

    @Piinks
    ContributorAuthor

    August 08, 2026 to August 14, 2026

    This week, 158 commits landed in the Flutter repository.
    A special welcome to our newest contributor!
    Below are the notable changes that landed this week:

    Accessibility

    • #190888 Fix accessibility_inspector service extensions map mutability
      Fixes map mutability issues in the accessibility inspector service extension, preventing runtime modification errors when inspecting semantics trees during debugging sessions. 🔍♿

    Framework & Core Libraries

    • #190889 RawTooltip respects AnimationStyle updates and reverseCurve
      Enables RawTooltip to dynamically respond to AnimationStyle updates and properly apply reverseCurve animations during dismissal, providing smoother and more customizable tooltip transitions. 🎨✨
    • #190857 Toggleable reaction duration respects overrides
      Ensures Toggleable widgets (such as Checkbox, Radio, and Switch components) respect custom reaction animation durations and curves, giving developers finer control over interaction timing and feedback. 🔘⚡
    • #190596 Fixes popuntilwithresult drops results
      Resolves a critical routing bug where popping multiple routes using popUntilWithResult would unintentionally discard the returned result, ensuring navigation results are reliably passed back to caller routes. 🧭📦

    Engine & Performance

    • #189118 Add ClipPath optimizations to backdrop clips as well
      Extends ClipPath geometry optimizations to backdrop filter clips, reducing unnecessary render rasterization and compositor workload when applying blur or filter effects to custom clipped shapes. ⚡✂️

    Web Platform

    • #185080 Fix: activateSystemCursor should set cursor on all views
      Ensures system mouse cursor updates apply across all active web views in multi-view web applications rather than just the primary view, eliminating frozen or unresponsive mouse cursor styling across secondary windows and embeds. 🖱️🌐
    • #189500 Wait for web rendering before first-frame event
      Synchronizes the flutter-first-frame browser event with completion of web scene rasterization, preventing premature HTML splash removal and eliminating blank frame flashes on startup under SkWasm and CanvasKit. 🌐🎬
    • #190314 [web] Unify MaskFilter and ColorFilter primitives across CanvasKit and Skwasm
      Unifies underlying MaskFilter and ColorFilter graphical primitives into shared Web engine abstractions, ensuring identical shader and blur behavior across CanvasKit and Skwasm renderers. 🎨🌐

    Android Platform

    • #190972 Catch NoSuchFieldError when reading bold text setting on non-compliant vendor runtimes
      Safely catches NoSuchFieldError exceptions when querying system bold text accessibility settings on modified or non-compliant Android vendor ROMs, preventing app startup crashes. 🤖🛡️
    • #189823 Offload blocking work in ProcessTextPlugin to the background
      Offloads package manager querying and APK label resolution in ProcessTextPlugin to a background TaskQueue, preventing main-thread binder stalls and Android ANRs when opening text selection menus. 🤖⚡
      Visual Demonstration
      Visual Demonstration

    Tooling & Developer Experience

    • #191023 Reland "Make Xcode workspace cleaning optional during flutter clean"
      Introduces the --[no-]xcode-clean option to flutter clean, allowing developers to skip slow Xcode DerivedData workspace purging for significantly faster daily cleaning cycles. 🍎🧹
    • #189993 Warn when unable to find iOS Device Support Symbols
      Adds actionable warnings and diagnostic guidance when Flutter tooling cannot locate iOS device support symbols in Xcode, speeding up troubleshooting for physical device debugging. 📱🔍
    • #190677 Override deployment target in CocoaPod dependencies when they're less than Xcode's minimum
      Automatically raises legacy CocoaPod pod deployment targets to match Xcode's minimum supported deployment version during iOS/macOS builds, preventing build failures on newer Xcode toolchains. 🛠️🍏
    • #190878 [flutter_tools] Add --preset option to flutter test
      Adds the --preset option to flutter test, allowing developers and CI pipelines to execute predefined test configurations declared in dart_test.yaml. 🧪📋
    • #190905 [icon_tree_shaker] Tree-shake material and cupertino with 0 icons
      Updates icon_tree_shaker to completely eliminate Material and Cupertino font assets when an application uses zero icons from those families, further reducing output app bundle sizes. 🌲📦
    • #191022 [analysis] Reland "Added initial implementation of the flutter_analyzer_plugin ([ Analysis ] Added initial implementation of the flutter_analyzer_plugin #175679)"
      Lands the new flutter_analyzer_plugin foundation, enabling custom Dart analysis server rules and specialized diagnostics directly tailored for Flutter projects. 🔎🚀
    • #190931 [flutter_tools] Fix deadlock in debug adapters when process exits early
      Fixes a thread deadlock in Debug Adapter Protocol (DAP) handlers when a debuggee process exits prematurely, ensuring IDE debugging sessions terminate cleanly without hanging. 🐞⚡

    First-time Contributors

    We would like to extend a warm welcome to our new contributor this week! Thank you for your impactful contribution:

    • Kenneth Koh, for #189823, which resolved: Offload blocking work in ProcessTextPlugin to the background.
  15. assigned and unassigned on Aug 19, 2026
  16. justinmc commented on Aug 21, 2026

    @justinmc
    Contributor

    August 14, 2026 to August 21, 2026

    This week, 109 commits landed in the Flutter repository.
    A special welcome to our new contributors: @sawirricardo, @Boulea7!
    Below are the notable changes that landed this week:

    Framework & Core Libraries

    • #184549 Add useLogicalPixels to ResizeImage for logical pixel cache sizing
      Adds a convenient useLogicalPixels option to ResizeImage, allowing developers to easily size image caches in logical pixels without worrying about device pixel ratio math. 🖼️📐
      Visual Demonstration
    • #187254 Improve error reporting for dumpsys meminfo
      Provides precise, structured error states when dumpsys meminfo fails, giving developers clearer guidance when investigating memory usage on Android devices. 🧠💡
    • #190637 Add numeric-password variation to TextInputType.numberWithOptions
      Native support for the numeric-password input variation across platforms, making simple PIN code input fields a breeze! 🔢🔑

    Engine & Performance

    • #191102 Impeller: Fix for stroked circles with stroke half-width > radius, tessellation scaling
      Resolves rendering artifacts when drawing heavily-stroked circles in Impeller, improving our vector tessellation quality. ⭕️🔧

    Web Platform

    • #184961 Fix rendering custom element size
      Resolves HTML custom element sizing bugs where Web platform elements wouldn't respect layout constraints, ensuring a robust integration layout. 🌐📏
    • #191030 [web] Fix WebParagraph subpixel text stretching and letter jittering
      Eliminates letter jittering and unwanted subpixel text stretching on the Web platform, significantly boosting typography crispness! 📝✨

    Android Platform

    • #190311 [Android] Fix 1px edge clipping on Platform Views by preserving floating-point precision where possible and rounding otherwise instead of truncating
      Completely eliminates the pesky 1-pixel edge clipping rounding error in Android Platform Views. 📱🎯
      Visual Demonstration
    • #191321 [Android] Fix respecting--enable-software-rendering in the embedding
      The software rendering flag is now fully respected by the Android embedding, resolving unexpected behaviors on devices requiring GPU fallbacks. 🤖⚙️

    Desktop Platforms

    • #188005 [linux] Read heading text through the AtkText interface
      Improves accessibility on the Linux desktop environment by ensuring heading syntax is properly parsed by the AtkText interface for screen readers. 💻♿
    • #189994 Improve initial size and placement logic for popups and tooltips on Linux
      Smooths out size constraints and placement offsets for Linux popups, letting them gracefully fit all system viewpoints. 💬🐧
      Visual Demonstration
    • #189476 [Linux] Make glBlitFramebuffer optional in the OpenGL compositor
      Softens Linux compositor requirements so aging GPU hardware without precise framebuffer blitting extensions can still power a Flutter interface. 🖥️🎨
    • #191238 macOS: Fix macOS 27 os_log compile errors, improve TRACE_VSYNC
      Preemptively adapts code to appease macOS 15.4 compiler constraints and tightens VSYNC tracing metrics. 🍎🛠️

    Tooling & Developer Experience

    • #190956 [gen_l10n] Preserve script locale inheritance for regional subclasses
      Ensures that script-based locales (like zh-Hant) correctly preserve translation inheritance, saving developers from copying fallback translations multiple times! 🌍🔄
    • #191183 [flutter_tools] Handle all DartDevelopmentServiceExceptions gracefully in resident web runner
      The Web resident runner now gracefully catches unexpected toolchain port closures, instead of crashing the process abruptly. 🏃‍♂️🛡️
    • #191215 [flutter_tools] Catch exceptions when starting Chrome to launch DevTools
      Polishes the debugging workflow by handling errors defensively when Chrome spawns, meaning smoother DevTools launches. 🔎🐛

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

    • Ricardo Sawir, for #188005, which resolved: [linux] Read heading text through the AtkText interface.
    • Langning Zhang, for #190956, which resolved: [gen_l10n] Preserve script locale inheritance for regional subclasses.
  17. justinmc commented on Aug 28, 2026

    @justinmc
    Contributor

    August 21, 2026 to August 28, 2026

    This week, 150 commits landed in the Flutter repository.
    A special welcome to our new contributors: @shawnridgeway-google!
    Below are the notable changes that landed this week:

    Framework & Core Libraries

    • #191329 Use leading scroll offset instead of infinite offset to reveal pinned slivers
      This fixes a scrolling issue where revealing pinned slivers could jump or calculate positions incorrectly. Now, pinned elements reveal with smoother, more natural calculations using the leading scroll offset instead of defaulting to infinity. 📌✨
    • #189664 Make ScrollPhysics reactive by introducing shouldUpdate
      ScrollPhysics is now fully reactive! By introducing shouldUpdate, the framework smartly determines when physics need to be rebuilt, reducing unnecessary rebuilds and making scroll behaviors much more responsive to state changes. ⚙️⚡️
    • #191741 Add prompt_suggestion icon to list of RTL mirroring icons.
      The prompt_suggestion icon now properly mirrors itself for users in Right-to-Left (RTL) languages. This ensures accessibility and proper layout are maintained for international users! 🌐⏪
      Visual Demonstration
      Visual Demonstration
    • #188148 Fix Navigator.pushNamed<T>() type checking
      Type safety for named routes has been improved! The Navigator.pushNamed<T>() method now accurately performs type checking, preventing runtime mismatches when working with returned route arguments. 🛡️🧭
    • #191767 Handle the case where a window doesn't have a title set
      Resolved an issue where a missing window title could cause unexpected behavior on windowing environments. Flutter now gracefully handles these cases, ensuring stable window rendering under all configurations! 🪟🔧
    • #191186 Lerp HSVColor and HSLColor hue along the shortest arc
      Animations between HSV and HSL colors are now visually seamless! The interpolation logic has been updated to traverse the shortest angular path on the color wheel, eliminating awkward, long-way-around color transitions. 🎨🌈
      Visual Demonstration

    Engine & Performance

    • #191615 Fixes translated bounded blurs
      A rendering fix for complex visual effects—bounded blurs that are translated no longer produce visual artifacts or clipping! Shadows and blurs now render accurately even when moved. 🌫️✨
    Before After

    Desktop Platforms

    • #191780 macOS: Fix crash on out-of-bounds text input ranges
      Fixed a critical crash on macOS caused by invalid text input ranges during IME tracking. Text input on desktop is now more stable and resilient. 📝💥
    • #191516 Switches windows to opengles 3
      Windows has officially been transitioned to use OpenGL ES 3! This paves the way for better graphics support and performance improvements on Windows desktop targets. 🖥️🎮
    • #191379 Fixes MSAA on the linux embedder.
      Multisample anti-aliasing (MSAA) is back and working correctly on the Linux embedder! Your desktop apps will look crisp and have smooth edges once again. 🐧📐
    • #191389 Add FlViewRendererSubsurface
      Introduced a new subsurface view renderer variant (FlViewRendererSubsurface) for Linux. This gives embedders more robust control over window surfaces, improving layering and rendering pipelines on desktop! 🖼️🔧

    Tooling & Developer Experience

    • #191912 [flutter_tools] Gracefully handle Windows Application Control and security policy execution blocks
      Running Flutter tools on highly-secured Windows environments just got easier. The tooling now detects and gracefully handles scripts or executables blocked by Windows Application Control policies. 🛡️💻
    • #187252 Support --[no-]adb-log-filtering CLI option
      You can now bypass the default ADB log filtering when running apps on Android! Passing --no-adb-log-filtering ensures that you'll see every granular log message on your device, a huge win for deep debugging. 📱🔎
    • #191360 [engine] Support UTF-8 paths in Windows filesystem and path APIs
      Internationalizing paths on Windows is now fully supported. By wiring up UTF-8 processing in filesystem APIs, Flutter now gracefully handles paths with non-ASCII characters directly at the engine level! 📂🌐
    • #191579 [flutter_tools] Add --force flag to flutter channel
      Switching channels when you have local modifications is now a breeze! You can use flutter channel <name> --force to instantly discard uncommitted changes and forcefully change your Flutter SDK channel. 🔄🔥
    • devtools/9968 Adds WebSocket support to the Network panel in Flutter's developer tools
      No more opaque "SOCKET" connections in the Network panel. Now WebSockets are fully supported and give all the details you'd expect.
      • Authored by Victowolf as part of Google Summer of Code and reviewed by srawlins and hannah-hyj. Congrats on a successful project, Yash!

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

  18. justinmc commented on Sep 4, 2026

    @justinmc
    Contributor

    August 28, 2026 to September 04, 2026

    This week, 118 commits landed in the Flutter repository. A special welcome to our new contributors: @ibrahimcetin, @AllinGaming, @papmodern, @anazr9, @AfzalivE, @ik020! Below are the notable changes that landed this week:

    Framework & Core Libraries

    • #191528 feat: Add placeholder to DecorationImage
      Introduces a placeholder feature for DecorationImage for smoother loading states. 🖼️⏳
    • #186246 Add FadeInImageTransition.fadeInOver to fade the image in over the placeholder
      Adds a new transition option to cross-fade images seamlessly over their placeholders. 🌅✨
    • #185750 Add mouseCursor to RawScrollbar
      Custom mouse cursors are now supported on RawScrollbar for better hover feedback. 🖱️🎨

    Engine & Performance

    • #190514 Fix DeleteSurrounding splitting UTF-16 surrogate pairs
      Corrects text deletion logic so it no longer splits emojis and other UTF-16 surrogate pairs. 📝✂️
    • #192136 Fix issue where shapes rendered with gradient+blur+rotation end up incorrectly cut off
      Resolves rendering artifacts where styled shapes would get abruptly clipped when rotated and blurred. 🎨✨
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
      Visual Demonstration
    • #191838 Makes backdrop groups operate on the union.
      Optimizes backdrop grouping to operate on their union, improving rendering performance and accuracy. 🖼️🏎️

    Web Platform

    • #188820 [web] Fix VoiceOver child focus direction
      Improves Web accessibility by ensuring VoiceOver correctly navigates child focus directions. 🌐🗣️
    • #190486 [web] Anchor flt-semantics-host at 0,0 to fix WebKit semantics offset
      Fixes subtle semantics offset issues in WebKit browsers by properly resetting the anchor. 🍏🔗

    Android Platform

    • #191204 [Android] Do not schedule engine frames on a detached FlutterJNI
      Prevents the engine from scheduling frames after detachment, improving app lifecycle stability on Android. 🤖🛑

    iOS Platform

    • #191062 [iOS] TextField should support typing accented words with external keyboard
      Enhances iOS text entry by correctly supporting accented characters typed from external hardware keyboards. ⌨️🍏
    • #192139 Fixes OverlayPortal semantics bounds corruption
      Resolves corrupted bounds for semantics within OverlayPortal, enhancing screen reader accuracy. 🗺️🗣️

    Desktop Platforms

    Tooling & Developer Experience

    • #191990 [flutter_tools] Pause web server requests until initial compilation finishes
      Improves the web developer experience by holding server requests during the initial compile, preventing premature load failures. 🌐⏳
    • #191554 Fix Android license detection for cmdline-tools 23.0+
      Fixes the flutter doctor Android SDK license verification for newer cmdline-tools versions. ⚕️✅

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

    • İbrahim Çetin, for #191062, which resolved: [iOS] TextField should support typing accented words with external keyboard.
    • Uros Radulovic, for #191130, which resolved: Fix nested scroll view fling crash.
    • Hamed, for #191204, which resolved: [Android] Do not schedule engine frames on a detached FlutterJNI.
    • Anas Saifi, for #186246, which resolved: Add FadeInImageTransition.fadeInOver to fade the image in over the placeholder.
    • Afzal Najam, for #189686, which resolved: [iOS] Preserve semantics parents after reparenting.
    • Irfan Khalid, for #191554, which resolved: Fix Android license detection for cmdline-tools 23.0+.
  19. Renzo-Olivares commented on Sep 11, 2026

    @Renzo-Olivares
    Contributor

    September 04, 2026 to September 11, 2026

    This week, 98 commits landed in the Flutter repository toward the upcoming Flutter 3.48 release. A special welcome to our new contributors: @Shawn-Yu-Dev and @serhii-k! Below are the notable changes that landed this week:

    Accessibility

    • #192328 [web] Stop iOS auto-zoom by sizing semantic inputs at 16px
      Sized semantic <input> and <textarea> elements to 16px to prevent iOS Safari from automatically zooming into the page when focused text fields are tapped. 📱✨
    • #192266 Remove the accessibility evaluations feature flag
      Removed the temporary isAccessibilityEvaluationsEnabled runtime flag and tool option now that accessibility evaluations are supported outside of debug mode by default. ♿🎉

    Framework & Core Libraries

    • #191157 Add itemExtentBuilder support to ListView.separated
      Added itemExtentBuilder support to ListView.separated, enabling dynamic, index-based item extent calculation alongside separators for optimized scrolling performance. 📜⚡
    • #192356 [Linux] Add window rendering and drag controls
      Introduced Linux-specific window controls enabling custom decorations, background coloring, transparent surfaces, and programmatic dragging and resizing. 🐧🪟
    • #191435 Add precacheTestImage to flutter_test and unskip web image tests
      Introduced precacheTestImage in flutter_test to safely resolve image providers outside the FakeAsync zone and eliminate test hangs in web environments. 🖼️🧪

    Web Platform

    • #192516 [web] Keep ImageSource alive until Picture disposal
      Retained ImageSource references until canvas picture disposal in CanvasKit and Skwasm, preventing premature DOM texture closure and black rendering artifacts. 🌐🎨

    Android Platform

    • #192502 [android] Isolate API-34 high contrast listener in AccessibilityBridge behind Api34Impl
      Encapsulated Android 14 (API 34) contrast change listeners within an isolated static helper to prevent class verification warnings and crashes on older Android versions. 🤖🛡️

    iOS Platform

    • #192465 ios: Return NO from run calls on a running/terminated engine*
      Updated iOS FlutterEngine.run* methods to return NO and safely no-op when invoked on already running or terminated engine instances. 🍏🛑

    Desktop Platforms

    • #185256 [macOS] Implement size to content regular and dialog windows
      Added support for auto-sizing regular and dialog windows to their content on macOS and delayed window presentation until initial frame rendering. 💻✨

    Tooling & Developer Experience

    • #191573 fix: stop flutter create --platforms from dropping existing platforms
      Fixed an issue where running flutter create --platforms on an existing project overwrote configured platforms in .metadata instead of appending new ones. 🛠️📦
    • #190153 feat(web): support --web-content-hash for entrypoint files
      Added the --web-content-hash flag to flutter build web, generating content-hashed filenames for entrypoint scripts to enable seamless browser cache busting. 🌐🚀
    • #191386 [web] Support local golden testing in flutter test
      Enabled local golden file testing for Flutter Web within flutter test, downloading Skia Gold baselines and performing tolerance-aware pixel comparisons locally. 🏆🧪
    • #192434 [flutter_tools] validate placeholder type in gen-l10n
      Added validation for placeholder type strings in .arb files to catch invalid Dart type identifiers early and provide actionable error messages. 🌍🔍
    • #192431 [flutter_tools] Gracefully handle EROFS and write-protected file system errors
      Improved Flutter CLI resilience by catching and reporting clear, actionable error messages when encountering read-only file systems or sandbox permission restrictions. 🛡️💾
    • #192483 [flutter_tools] Keep web loading bar visible until app starts
      Ensured the web loading indicator remains visible until the Flutter application is actually compiled and running, rather than hiding prematurely upon debug client connection. ⏳🌐
    • #191964 [native assets] Bump minimum iOS version from 13 to 15
      Raised the minimum iOS deployment target for Dart Native Assets to iOS 15 in alignment with modern platform requirements. 📱⚙️
    • #190786 Fix Wasm build cache mismatch in ResidentWebRunner and browser 404 fallbacks
      Fixed unnecessary Wasm rebuilds during flutter run caused by compiler option mismatches, and added proper HTTP 404 responses for missing web assets. ⚡🌐

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

    • Shawn-Yu-Dev, for #191573, which prevented flutter create --platforms from dropping existing platforms in .metadata.
    • serhii-k, for #191964, which updated the minimum iOS deployment target for Native Assets to iOS 15.
  20. justinmc commented on Sep 25, 2026

    @justinmc
    Contributor

    September 11, 2026 to September 18, 2026

    I generated this whole report and forgot to post it last week. Here it is a week late. A special welcome to our new contributor @artemkulyk. Below are the notable changes that landed this week:

    Framework & Core Libraries

    • #192601 Wrap routing in FocusScope in WidgetsApp.router
      Router-based apps (MaterialApp.router, CupertinoApp.router) were missing the Navigator focus scope that imperative-routing apps get, which broke focus and semantics for overlays like Autocomplete on the web. Focus behavior is now consistent no matter which routing API you use. 🎯
    • #192954 Deprecate decoupled localizations, add dart fixes
      The Material and Cupertino localization classes in flutter_localizations are now deprecated in favor of package:material_ui and package:cupertino_ui, with dart fix migrations included so the move is a one-command upgrade. A key step in the Material/Cupertino decoupling effort. 🧭

    Cupertino (iOS-style)

    • #187568 Add dedicated rubber band spring for overscroll recovery in BouncingScrollPhysics
      Overscroll snap-back now uses a dedicated rubber band spring, making bounce-back feel much closer to native iOS instead of the old, slower settle. Scrolling just got noticeably more polished. 🍎✨
      Visual Demonstration

    Engine & Performance

    • #191096 Fix square corner issue
      Rounded clips (such as CupertinoSheetRoute) could render with square corners when combined with intermediate ink features and backdrop content. Corners stay round again, fixing a visible glitch in sheet-based UI. 🔵
    • #192679 [Impeller] Avoid heap-allocating std::function captures per draw
      UberSDF and circle contents were heap-allocating a callback capture on every single draw. Switching to capture-by-reference removes those per-draw allocations, trimming raster-thread overhead for free. ⚡

    Web Platform

    • #191736 [WebParagraph] Fix text pixelation, glyph clipping, and snapping offsets to avoid subpixel raster caching
      Web text now snaps to whole device pixels and gets antialiasing padding, eliminating blurry text and clipped descenders on CanvasKit while keeping raster caching effective. Crisper type on the web. 🔤
    • #190942 Reland "[web] Keep the keyboard up during an iOS caret drag"
      On iOS 27, long-press-dragging the caret in a web text field would dismiss the keyboard mid-gesture. Text selection on mobile web now behaves the way users expect. ⌨️
    • #189506 Apply reversed axis flip by macOS on Web when scrolling with modifier keys
      Shift-scrolling on macOS browsers was double-flipping the scroll axis, so web apps behaved differently from native macOS. Modifier-key scrolling is now consistent across platforms. 🖱️

    Android Platform

    • #192259 Request unbuffered dispatch for platform view motion events after _PlatformViewGestureRecognizer rejects gesture
      Platform views now ask Android for the unbuffered touch stream once the gesture arena hands the gesture back to Flutter, greatly improving the smoothness of scrolling over embedded native views — with no API change. 🏎️
    • #187251 Support activity-alias in Android launcher activity detection
      Apps that expose their launcher through an activity-alias (common for dynamic app icons) are now detected and launched correctly by the tool, closing a long-standing issue from 2019. 🚀

    iOS Platform

    • #189878 [iOS] Add Translate API support to Engine
      Lands the engine-side plumbing for Apple's Translate API, paving the way for system translation of selected text in Flutter iOS apps. 🌍

    Desktop Platforms

    • #192910 Fix black tooltips and popups on Wayland
      Tooltips and popups rendered as black boxes on Wayland, and resizing a popup could even crash the compositor. Both the stale-buffer and destroyed-surface bugs are fixed, so Linux desktop apps look right again. 🐧

    Tooling & Developer Experience

    • #192649 Bump Dart to 3.13, reformat, re-enable formatting check
      The repo now builds against Dart 3.13 and the CI formatting check is back on after a repo-wide reformat, keeping the tree consistently formatted going forward. 🧹
    • #192650 [tool] Defer app.restart until the app has finished starting
      An app.restart arriving right after app.start could crash frontend_server and leave the app unable to launch. IDE-driven restarts now wait for startup to complete, removing a frustrating race. 🔁
    • #192947 Migrate flutter create templates to material_ui
      New projects generated by flutter create now import material_ui instead of flutter/material.dart, moving the default developer experience onto the decoupled Material package. 🏗️
    • #188941 Suggest the -d flag after interactive device selection
      After picking a device from the prompt, the tool now tells you exactly how to skip that prompt next time (-d <device id>). A small quality-of-life win requested since 2020. 💡

    First-time Contributors

    We would like to extend a warm welcome to our new contributor this week! Thank you for your impactful contribution:

    • artemkulyk, for #192679, which removed per-draw heap allocations in Impeller's UberSDF and circle contents.
  21. justinmc commented on Sep 25, 2026

    @justinmc
    Contributor

    September 18, 2026 to September 25, 2026

    This week, 115 commits landed in the Flutter repository, 15 in the Flutter website repository, and 8 in the Dart website repository. A special welcome to our new contributors: @shikharish, @nickolasdeluca, @nicolinx, @ahmadwyne, @diegolopezrm, @smocer, and @sanathusk! Below are the notable changes that landed this week:

    Accessibility

    • #193192 Reland "fix(widgets): dismiss open RawTooltip on Escape key (WCAG 1.4.13)"
      Pressing the Escape key now dismisses any open RawTooltip (and Tooltip) before propagating to the focus tree, satisfying WCAG 1.4.13 (Content on Hover or Focus) so keyboard users can easily clear tooltips without triggering underlying shortcuts. ♿⌨️

    Framework & Core Libraries

    • #191223 Cache the paint offset adjusted line metrics in TextPainter
      TextPainter.computeLineMetrics now caches offset-adjusted line metrics instead of allocating a new list on every call, fixing broken up/down arrow caret navigation in center- and right-aligned single-line text fields while avoiding repeated allocations. 📝⚡
    • #185206 Fix: stop auto-scrolling during selection handle drag
      Dragging a text selection handle no longer triggers caret auto-scrolling, eliminating viewport jumping and flickering when adjusting the top handle of a multi-line selection. 🪄

    Engine & Performance

    • #190036 [Flutter GPU] Add 2D texture array support
      Flutter GPU now supports TextureType.texture2DArray with per-layer slice addressing in Texture.overwrite and ColorAttachment.slice, unlocking multi-layer texture workflows for custom 3D and shader pipelines. 🎨🚀
    • #192128 Reland: Only render views that need to be rendered
      Multi-view apps now skip compositing for views without dirty render objects, and Android external textures mark only their owning Texture render object as needing paint rather than scheduling a full engine frame rebuild. 🖥️⚡
    • #193176 [Impeller] Reserve content depth in the shared backdrop fast path
      Grouping multiple BackdropFilter widgets with a shared backdropKey now properly reserves depth slots for the layer's child draws, fixing a debug engine crash when rendering content inside grouped backdrop layers. 🛡️
    • #190186 [Impeller] Scope the broken mipmap workaround to the textures it affects
      The Adreno Vulkan mipmap driver workaround is now scoped only to textures with blit-generated mip chains rather than disabling mip filtering globally, restoring full mipmap sampling for hand-uploaded textures such as Flutter GPU environment maps. 🔍✨

    Web Platform

    • #193040 feat(web): resolve raw asset keys via content-hashed manifests and unhide --web-content-hash
      flutter build web --web-content-hash is now publicly available and resolves raw asset keys at runtime through content-hashed manifests, giving web deployments reliable cache busting across all assets, fonts, and third-party plugins. 🌐📦
    • #191647 [web] Report env(safe-area-inset-*) as FlutterView.viewPadding
      Flutter Web now preserves viewport-fit=cover and reads CSS env(safe-area-inset-*) values into FlutterView.viewPadding, making SafeArea and MediaQuery.paddingOf work out of the box on notched mobile browsers and standalone PWAs. 📱🌊

    Android Platform

    • #193262 [Android 17] Updated Templates to AGP 9.3.1
      Newly created Flutter projects now default to Android Gradle Plugin 9.3.1, Kotlin Gradle Plugin 2.4.20, and Gradle 9.5.0, ensuring out-of-the-box compatibility with Android 17 (API 37). 🤖⬆️
    • #192951 [android]: removes RegisterExternalTexture race condition
      Fixes a startup crash on Android API 29+ with Impeller when a plugin synchronously registers an external texture or surface producer during engine attachment. 🔧

    iOS Platform

    • #187167 [iOS] Rebind accessibility bridge after view controller changes
      Add-to-app iOS integrations that detach a FlutterEngine from one FlutterViewController and attach it to another now preserve and rebind the accessibility bridge, keeping VoiceOver and Accessibility Inspector working across view controller transitions. 🍎♿

    Desktop Platforms

    • #193225 [win32] Implement hot restart for multi-window
      Windows desktop apps using multi-window support now properly clean up and recreate views on hot restart while safely deferring HWND destruction. 🪟🔄
    • #192911 [Linux] Request a frame when a view starts rendering
      The Linux embedder now explicitly schedules an engine frame as soon as a view is realized, preventing blank initial windows when frames were rendered before the view was ready to present. 🐧🖼️

    Tooling & Developer Experience

    • #188947 Support DynamicLibrary.codeAsset in Flutter
      Registers the runtime native-assets callbacks required by DynamicLibrary.codeAsset, enabling Dart FFI packages and Flutter apps to load bundled code assets directly via asset IDs across builds, tests, and hot reload/restart. 🧩⚙️
    • #192886 Update the plugin template to use Pigeon
      flutter create -t plugin now scaffolds plugins with type-safe Pigeon interfaces instead of raw MethodChannel boilerplate, and updates generated iOS and macOS plugin tests to Swift Testing. 🐦🛠️
    • #193279 fix: flutter analyze reporting the same issue multiple times
      flutter analyze now retains only the latest diagnostics per file when the analysis server and analyzer plugins publish multiple updates, eliminating duplicate lints and errors in CLI output. 🧹
    • #193006 [flutter_tools] Fix flutter doctor path validation for symlinked SDKs
      flutter doctor now resolves symlinks and directory junctions when checking whether flutter and dart binaries belong to the active SDK, eliminating false-positive PATH warnings for package managers like Scoop. 🩺🔗

    Documentation and Website

    • flutter/website#13916 Add useInheritedMediaQuery removal breaking change entry and migration guide
      Documents the removal of the deprecated useInheritedMediaQuery parameter across MaterialApp, CupertinoApp, and WidgetsApp, along with migration examples for affected apps and tests. 📖🧭
    • flutter/website#13899 blog post: converting GenLatte app to fullstack Dart
      Publishes a step-by-step walkthrough on converting a Flutter app to fullstack Dart, sharing models and logic between a Flutter client and a Dart backend. ☕📚
    • dart-lang/site-www#7379 Document dart run @[] syntax
      Adds documentation and examples for running remote packages directly from pub.dev with dart run <package>@[<descriptor>] without needing to globally activate them first. 🎯📄
    • dart-lang/site-www#7521 Add winget instructions to Windows installation guide
      Updates the Dart SDK Windows installation guide with winget commands for installing, upgrading, and uninstalling Dart (winget install --id=Google.DartSDK -e). 🪟📥

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

  22. justinmc commented on Oct 2, 2026

    @justinmc
    Contributor

    September 25, 2026 to October 2, 2026

    This week, 129 commits landed in the Flutter repository, 12 in the Flutter website repository, and 10 in the Dart website repository. Highlights include clearer Widget Preview errors, Android security hardening, a long-standing multi-touch fix for Android platform views, and a refreshed set of animation docs. A special welcome to our new contributors: @tjcGoogle, @kaluli123123, @shikharish, @nickolasdeluca, and @khanak0509!

    Below are the notable changes that landed this week:

    Accessibility

    • #193324 Add a semantics role for sliders
      Sliders now expose a dedicated semantics role, so assistive technologies can identify and announce them correctly across platforms. ♿🎚️

    Framework & Core Libraries

    • #191223 Fix vertical caret movement in centered and right-aligned text
      TextPainter now caches its offset-adjusted line metrics instead of rebuilding the list on every call. This fixes up/down arrow caret navigation, which broke in non-left-aligned text fields because the editable treated every call as a layout change. ⌨️✨

    Engine & Performance

    • #193113 Animated WebP and GIF frames with transparency now decode correctly
      Animations whose first frame is opaque but later frames have alpha no longer fail with "Could not getPixels for frame 1". This resolves a five-year-old issue (#85831). 🖼️🎞️
      Visual Demonstration

    Web Platform

    • #193180 Safer WasmGC opt-in for Firefox and Safari
      Apps that opt into WebAssembly using wasmAllowList now get strict capability checks, and Firefox versions below 147 fall back to dart2js instead of loading an unsupported build. 🌐🛡️

    Android Platform

    • #190249 Refuse external setting of the engine entrypoint and cached engine arguments via Intents
      A security-focused breaking change: other apps can no longer change a Flutter app's Dart entrypoint or engine arguments by sending it crafted Intents. Top notification and alarm plugins were checked for compatibility. 🔒🤖
    • #190870 Reject engine configuration flags with prebuilt release binaries
      flutter run --release --use-application-binary on Android now fails fast if engine configuration flags are also passed, closing another path for altering release engine behavior. See the breaking change docs. 🔐⚙️
    • #191631 Fix multi-touch coordinate mix-ups in Android platform views
      When Android reused a released pointer ID, fingers could get each other's coordinates inside platform views like maps and web views. Pointers are now ordered by Android ID, so multi-finger gestures stay accurate. 👆🗺️

    Desktop Platforms

    • #189968 Preserve IME composing ranges on Windows
      A one-field typo fix stops Windows from collapsing every composing range sent by the framework, which improves input for IME-based languages. 🪟🈶

    Tooling & Developer Experience

    • #193005 Descriptive errors for unconstrained widget previews
      Instead of cryptic "infinite width/height" assertions and cascading failures, Widget Preview now explains that previews are unconstrained by default and points you to @Preview(size: ...). 🔍💡
    • #191591 Plugins are now initialized in dependency order
      Generated plugin registrants now order plugins by their dependency graph instead of alphabetically, so plugins that depend on others are registered after them. This resolves #99153. 🔌📈
    • #193459 Fix flutter drive -d chrome hanging
      Web integration tests run with flutter drive on Chrome no longer hang forever waiting for a browser that WebDriver, not Flutter, is responsible for launching. 🚗🧪
    • #188947 Support DynamicLibrary.codeAsset in Flutter
      Flutter now registers the native-assets callbacks behind DynamicLibrary.codeAsset, so you can load code assets from build hooks, with hot reload and hot restart working. 🧩⚡
    • #193435 Bundle data assets from hooks in flutter test
      Data assets generated by build hooks are now available in widget tests, matching the behavior of flutter run and flutter build. 📦✅
    • #192257 Include flutter.js.map in web builds
      Web builds now ship the loader's source map, which removes a 404 in DevTools and lets error reporters resolve stack frames from flutter.js. 🗺️🐞
    • #191972 Faster tool startup through lazy Android SDK discovery
      Expensive Android SDK filesystem scans no longer run on every tool startup. They now run only when a command actually needs the SDK. 🏎️🛠️

    Documentation and Website

    • flutter/website#13930 Docs updated for decoupling Material and Cupertino from the core framework
      The architectural overview, UI pages, widget catalog, glossary, and code examples now reflect Material and Cupertino as separate packages. 📚🧱
    • flutter/website#13944 Refreshed animation guides and examples
      Every page under /ui/animations, including the stale animation tutorial, has updated text, modernized patterns, and tested code excerpts. 🎬📝
    • flutter/website#13931 Breaking change guide for restricted Android engine configuration flags
      Migration guidance for the Android engine-flag security changes above. 🤖📖
    • dart-lang/site-www#7531 Guide to authoring data-driven dart fix rules
      Expanded docs show package owners how to ship data-driven fixes so users can migrate across breaking API changes automatically. 🔧🎯
    • dart-lang/site-www#7544 Examples for abstract interface class
      The class modifiers page and language tour now include copy-pasteable examples showing what abstract interface allows and prevents across libraries. 🎯📘

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

  23. justinmc commented on Oct 9, 2026

    @justinmc
    Contributor

    October 2, 2026 to October 9, 2026

    This week, 119 commits landed in the Flutter repository, 12 in the Flutter website repository, and 5 in the Dart website repository. Highlights include deprecating the in-framework Material and Cupertino libraries in favor of material_ui and cupertino_ui, soft hyphen (U+00AD) rendering support with a new Hyphens API, reduced iOS touch-to-present latency, satellite windows on Win32, and the Genkit Dart 1.0 release announcement. A special welcome to our new contributors: @Jstuff36, @CanArslanDev, @hoyahozz, and @apinilabs-pascal!

    Below are the notable changes that landed this week:

    Accessibility

    • #191994 Surface accessibility violations in the widget inspector
      The widget inspector now exposes accessibility evaluation results—such as minimum tap target and contrast violations—directly on inspected nodes for DevTools. ♿🔍
    • #190431 Rebuild a semantics fragment when its sibling conflict changes
      Semantics fragments now schedule a rebuild whenever their sibling merge conflict state changes, preventing stale cached semantics nodes and broken assertions when sibling configurations update dynamically. 🌳♿
    • #192964 Propagate aria-label to the inner slider input on web
      On Flutter web, SemanticSlider now forwards its aria-label to the inner <input type="range"> element rather than only the outer wrapper, giving screen readers like VoiceOver an accessible name for sliders. 🎚️🌐

    Framework & Core Libraries

    • #192957 Deprecate package:flutter/material.dart and package:flutter/cupertino.dart
      As part of decoupling the design libraries from the core framework, package:flutter/material.dart and package:flutter/cupertino.dart are now marked @Deprecated in favor of package:material_ui/material_ui.dart and package:cupertino_ui/cupertino_ui.dart, enabling automated dart fix migrations. 📦✨
    • #185152 Support soft hyphen (U+00AD) rendering with a Hyphens API
      Line breaks that fall on a soft hyphen (U+00AD) now render a visible - by default on native platforms, and a new Hyphens enum (Hyphens.manual and Hyphens.hidden) on Text, RichText, EditableText, and ParagraphStyle lets you control hyphen visibility. ✍️📖
    • #185239 Fix multiline EditableText selection highlighting width
      Multiline text fields now default to BoxWidthStyle.tight for selection highlights, preventing selected lines from visually stretching to match trailing whitespace on adjacent lines. 📝🎯
      Visual Demonstration
    • #193575 Fix null _nextFrame crash in MultiFrameImageStreamCompleter when re-adding a listener
      Removing the last listener from an animated image while a frame callback is pending and re-adding a listener before the frame fires no longer dereferences a null _nextFrame. 🖼️🛡️
    • #193476 Allow resetting test invariants in addTearDown
      Widget tests can now restore modified framework globals (such as debugDefaultTargetPlatformOverride) inside addTearDown callbacks without triggering post-test invariant assertions. 🧪✅

    Engine & Performance

    • #191444 Clean up VSync infrastructure and reduce iOS touch-to-present latency
      Streamlining pointer dispatch and VSync scheduling in the engine cuts touch-to-present latency on iOS by a full frame. ⚡📱
    • #193133 Flip content on Windows to avoid full-screen renders
      Hooking into an ANGLE swapchain optimization removes a temporary full-screen texture and render pass on Windows, allowing MSAA to resolve directly into the swapchain. 🪟🚀
      Visual Demonstration

    Web Platform

    • #193744 Grow the iOS web view when the browser toolbar collapses
      On iOS browsers, full-page Flutter web apps now expand with visualViewport.height when the address bar collapses instead of leaving a white strip at the bottom of the screen. 📱🌐
    • #189835 Stop percent-decoding URLs written to browser history
      The web engine no longer calls Uri.decodeComponent on route URLs before updating browser history, preserving percent-encoded characters like %2F and %3F across page refreshes and shared links. 🔗🧭

    Android Platform

    • #193813 Raise minimum Android Gradle Plugin version to 9.1.1
      flutter_tools and project templates now require Android Gradle Plugin 9.1.1 or newer, ensuring compatibility with compileSdk 37 and modern Android build toolchains. 🤖🛠️

    iOS Platform

    • #191781 Restore Flutter text focus after native responder recovery on iOS
      When UIKit temporarily resigns and restores the native text responder (such as during a quick app switch on iOS 26), the engine now notifies the framework so the active TextField regains focus and continues receiving keyboard input. ⌨️🍎

    Desktop Platforms

    • #192939 Implement satellite windows on Win32
      Adds HostWindowSatellite support for Win32 desktop apps, enabling fixed-size and content-sized satellite windows that position themselves relative to their parent window. 🪟🛰️

    Tooling & Developer Experience

    • #193748 Add BuildService and flutter build support for tool extensions
      Tool extensions can now register custom flutter build <target> subcommands and execute builds over RPC through the new BuildService protocol. 🔧🧱

    Documentation and Website

    • flutter/website#13966 Add Genkit Dart 1.0 announcement blog post
      Announces the stable release of Genkit Dart 1.0 for building full-stack, type-safe AI features in Dart and Flutter apps. ✨🤖
    • flutter/website#13960 Refresh the animation cookbook recipes
      Updates the animation cookbook recipes—covering page route transitions, physics simulations, opacity animations, and staggered menus—with current code standards and refreshed explanations. 🎬📚
    • flutter/website#13957 Refresh the forms pages in the cookbook
      Modernizes the forms cookbook guides on validation, focus management, and text field handling with updated examples and documentation standards. 📋📝
    • dart-lang/site-www#7556 Improve discoverability of JS object literal constructors in interop docs
      Adds a dedicated section to the JS interop guide showing how to declare named-parameter external constructors on extension types to create plain JavaScript object literals. 🌐📘

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

    • Justin White, for #193575, which fixed a null _nextFrame crash in MultiFrameImageStreamCompleter when re-adding a listener.
    • Can Arslan, for #190431, which fixed semantics fragment rebuilds when sibling conflicts change.
    • Jeongho, for #191781, which restored Flutter text focus after native responder recovery on iOS.
    • apinilabs-pascal, for #189835, which stopped percent-decoding URLs written to browser history on web.
  24. justinmc commented on Oct 23, 2026

    @justinmc
    Contributor

    October 16, 2026 to October 23, 2026

    This week, 126 commits landed in the Flutter repository, 5 in the Flutter website repository, and 9 in the Dart website repository. Below are the notable changes that landed this week:

    Material Design

    • #194256 Make the Material fallback theme follow defaultTargetPlatform
      Widgets with no Theme ancestor now get a fallback theme that tracks the current defaultTargetPlatform, instead of freezing on whichever platform was active the first time a theme was looked up. This fixes adaptive behavior such as selection controls, toolbars, and cursors under platform overrides, and it removes a source of test-order-dependent failures. 🎨🧪

    Accessibility

    • #193372 Do not send traversal child semantics nodes to engine when traversal parent is missing
      Widgets that use an OverlayPortal, like the Material Slider, no longer send orphaned semantics nodes to the engine during a route's fade-in transition. Screen readers now get a consistent semantics tree on pushed routes. ♿️
    • #194393 [web] Don't remove the a11y placeholder mid-gesture when semantics turns on
      On mobile web, when an app turns semantics on while a drag is in progress, the accessibility placeholder now stays until the gesture ends, so the drag's pointerup is no longer lost. 👆🌐

    Framework & Core Libraries

    • #194892 Only call setApplicationLocale for application-level Localizations
      Nested Localizations and Localizations.override widgets no longer overwrite the app-wide locale. This keeps <html lang> on web and the fallback accessibility locale on Android and iOS correct. 🌍
    • #194669 Do not derive a decode size of 0 for very thin images
      Very thin images, such as a 4000×1 PNG with cacheWidth: 100, used to fail with "Codec failed to produce an image" because the derived height rounded down to 0. They now decode correctly with cacheWidth/cacheHeight and ResizeImage. 🖼️

    Engine & Performance

    • #194314 Reland square corners fix
      Clipped backdrop filters keep their rounded corners again, fixing a regression where blurred, clipped regions rendered with square corners. This reland comes with the CI flakiness that caused the original revert already resolved. 🔲➡️🔘

    Web Platform

    • #194339 [web] Render soft hyphens on CanvasKit
      Hyphens now works on CanvasKit, the default renderer for flutter build web, so text containing soft hyphens (U+00AD) shows a hyphen at line breaks, matching native and Skwasm. ✂️📝

    Android Platform

    • #194591 [Android] Fix HCPP frame synchronization when multiple frames run before a Choreographer traversal
      Hybrid Composition++ now presents frames in order instead of overwriting pending ones, which makes scrolling with multiple platform views much smoother. 🧈📱

    iOS Platform

    • #192599 [ios]disable user interaction for visual effect view
      The iOS visual effect view behind blurs is purely visual, so it no longer intercepts touches meant for the content beneath it. 🍏👆

    Desktop Platforms

    • #194390 macOS: Implement Satellite window
      macOS gains the "satellite" window type from Flutter's multi-window work, for auxiliary windows attached to a parent window. 🪟🛰️
    • #191140 feat: Expose PostPlatformThreadTask and IsPlatformThread to PluginRegistrarWindows
      Windows plugins can now check whether they are on the platform thread and post work to it. This is essential for sending platform channel events from the background threads most Windows APIs call back on. 🧵🪟

    Tooling & Developer Experience

    • #194771 [flutter_tools] Add --[no-]extensions and FLUTTER_NO_EXTENSIONS safe mode
      A new global --no-extensions flag and the FLUTTER_NO_EXTENSIONS=1 environment variable let you bypass tool extension discovery entirely: a safe mode for the upcoming flutter tool extensions system. 🛡️🧰
    • #194867 [flutter_tools] Exit cleanly when Windows path exceeds MAX_PATH (OS Error 206)
      Instead of crashing with an unhandled exception when a path exceeds Windows' 260-character limit, flutter now exits with a clear message telling you to move your SDK or project to a shorter path. 🪟📏

    Documentation and Website

    • flutter/website#13996 Add blog post: AI makes it easy to migrate. Flutter makes it easy to scale.
      A new blog post recaps the FlutterCon Berlin 2026 keynote by Carlos Mendonça and Emma Twersky on using AI to migrate to Flutter and scale afterwards. ✍️🤖
    • flutter/website#13994 Add release notes for DevTools 2.61.0
      The DevTools 2.61.0 release notes are live. Highlights include WebSocket support in the Network profiler, widget source paths in the Inspector, and pinnable classes in the Memory view. 🛠️📋
    • flutter/website#13881 Add auto-generated table of contents to blog posts
      Long-form posts on the Flutter blog now get a collapsible "On this page" table of contents, and heading anchors no longer land hidden behind the fixed header. 🧭
      Visual Demonstration
    • dart-lang/site-www#7539 Make linter rule search smarter
      Linter rule search on dart.dev no longer requires an exact name: spaces now match underscores, and rule descriptions are searched too. 🔍
      Visual Demonstration
      Visual Demonstration
    • dart-lang/site-www#7566 Update WebAssembly compilation docs for Dart 3.14
      The WebAssembly docs now cover the Wasm proposals dart2wasm targets (with minimum browser versions), --standalone for WASI runtimes like Wasmtime, and related conditional imports. 🕸️⚙️
    • dart-lang/site-www#7557 Account for the release of macOS 27.
      Dart's supported macOS versions now include macOS 27 "Golden Gate" and drop macOS 14 Sonoma. 🍎
  25. chunhtai commented on Oct 29, 2026

    @chunhtai
    Contributor

    October 22, 2026 to October 29, 2026

    This week, 81 commits landed in the Flutter repository, 22 in the Flutter website repository, and 7 in the Dart website repository. A special welcome to our new contributors: @mohamedalsamrai, @ChristophyBarth, @r0g18, @Wreos, and @meg4cyberc4t! Below are the notable changes that landed this week:

    Accessibility

    • #194586 [web] Expose mixed tristate checkboxes as aria-checked="mixed"
      Web tristate checkboxes in a null state now set aria-checked="mixed" instead of false, allowing screen readers to announce indeterminate states accurately. 🌐♿

    Framework & core libraries

    • #195207 Add real WebDriver pointer actions to package:integration_test on the web
      Adds native browser pointer actions via WebDriver to web integration tests, enabling authentic clicks, hovers, and drags that follow browser DOM hit testing over platform view iframes. 🖱️🧪

    Engine & performance

    • #193805 [Flutter GPU] Compute shaders on Metal and Vulkan
      Adds compute shader support to Flutter GPU on Metal and Vulkan backends, introducing shader storage buffers, compute pipelines, and dispatch passes for GPU computations. ⚡🎮
    • #194615 [engine] Honor targetWidth/targetHeight for animated images
      Multi-frame image decoders now honor target dimensions when decoding animated GIF, WebP, and APNG images, reducing memory usage when displaying resized animations. 🖼️📉

    Web platform

    • #195187 [web] Capture pointers to the Flutter view so drags survive platform view iframes
      Captures active pointer events to the Flutter view during drag gestures, preventing drags from freezing or jumping when the cursor passes over embedded iframe platform views. 🌐🎯
    • #194785 [web] Remove service worker loader and --pwa-strategy
      Removes the legacy service worker loader and deprecated --pwa-strategy flag, modernizing web bootstrapping and pointing developers to web caching configurations. 🕸️🧹

    Android platform

    • #194411 [Android][a11y] Set visibleToUser=false for hidden semantics nodes
      Sets visibleToUser=false in the Android accessibility implementation for hidden semantics nodes, preventing screen readers like TalkBack from focusing on content scrolled behind pinned headers. 🤖📱
    • #194899 Update TLHC PlatformViewWrapper offset without requesting layout
      Updates texture layer hybrid composition (TLHC) wrapper offsets directly without calling requestLayout(), avoiding redundant layout passes and display list redraws during scrolling. ⚡🏎️

    iOS platform

    • #194614 [a11y] Fixes SnackBar showing more Voice Control labels than expected
      Excludes internal dismiss and scroll actions on SnackBar from generating extra Voice Control labels on iOS, keeping voice navigation overlays uncluttered. 📱🗣️
      Visual Demonstration
    • #195199 [iPhone Duo] Use the correct UIScreen to report the display size and update when fold/unfold
      Resolves the active display screen rather than defaulting to UIScreen.mainScreen on dual-screen iOS devices, reporting accurate viewport dimensions across fold and unfold transitions. 📱📐

    Tooling & developer experience

    • #194992 [widget_preview] Do not leak ListTileTheme into previewed widgets
      Prevents the preview environment's outer ListTileTheme from leaking into previewed child widgets, preserving the intended styling of individual components. 🔍🎨
    • #194453 [flutter_tools] Explain unsupported Android AOT builds on Linux arm64 hosts
      Replaces raw missing-binary exceptions with an informative error message explaining that Android AOT release compilation is unsupported on Linux arm64 hosts, linking the upstream tracking issue. 🐧🛠️
    • #194064 [flutter_tools] Contain web asset server path resolution to its search roots
      Resolves incoming HTTP request paths strictly within configured search roots in web asset servers, preventing request paths from resolving outside the asset root. 🛡️🌐
    • #191644 [iOS/MacOS] Warn when using deprecated framework build commands
      Adds deprecation warnings when invoking flutter build ios-framework or flutter build macos-framework, guiding developers to use standard framework workflows. ⚠️🍏
      Visual Demonstration
      Visual Demonstration

    Documentation and website

    • flutter/website#13982 Overhaul Flutter installation docs and simplify site navigation
      Reorganizes the installation pages into a single installation guide with side-by-side quick setup and manual paths, simplifying navigation for new developers. 📚🧭
    • flutter/website#13980 Expand Firebase page with setup, Auth, and database guides
      Expands the Firebase documentation with end-to-end setup guides, configuration steps via FlutterFire CLI, and code examples for authentication and Firestore integration. 🔥📖
    • flutter/website#13986 [web] Update Flutter 3.50 web caching, Wasm, and viewport-fit docs
      Adds documentation for web asset content hashing (--web-content-hash), WebAssembly browser compatibility requirements, and updated initialization settings for Flutter 3.50. 🌐⚡
    • flutter/website#13988 Add migration guide for WidgetSpan ordering in RTL text
      Publishes a migration guide for right-to-left (RTL) text layout fixes in Flutter 3.50, explaining how to remove legacy workarounds for WidgetSpan ordering. 🔄✍️
    • flutter/website#13912 Final push for SwiftPM updates to website
      Updates Flutter documentation across UIKit, package authoring, and app extension guides to reflect Swift Package Manager support for iOS and macOS. 📦🍎
    • dart-lang/site-www#7576 Add Developer Knowledge MCP server to Build with AI docs
      Documents the Developer Knowledge MCP server on the Dart website, guiding developers on connecting AI coding tools to official Dart documentation. 🤖💡
    • dart-lang/site-www#7568 Improve changelog version range filtering, search, and facet counts
      Adds a version range selector, preset filter chips, and debounced text search with query term highlighting to the Dart changelog page. 🔎📋

    First-time contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

  26. justinmc commented on Nov 6, 2026

    @justinmc
    Contributor

    October 30, 2026 to November 06, 2026

    This week, 143 commits landed in the Flutter repository, 9 in the Flutter website repository, and 8 in the Dart website repository.
    A special welcome to our new contributors: @prasad2512, @Mathvdias, @M0n7y5, @xianjianlf2, @suryaKommana2662!
    Below are the notable changes that landed this week:

    Accessibility

    • #195445 [VPAT] Expose a semantics text field value while it is not being edited
      On the web, text fields that have never been focused, such as a disabled field with prefilled text, now expose their value to screen readers instead of reading as empty. Obscured and autofill-owned fields are still skipped. ♿️📝
    • #195829 [A11y] Send un-merged SemanticsNodes in the same update that first references them
      When a node stops merging its descendants, the framework now sends those children in the same semantics update that references them. This removes a framework-side trigger of an embedder crash. ♿️🛡️
    • #195618 [web] Hide synthetic autofill inputs from assistive technology
      With semantics enabled, the hidden inputs Flutter web keeps for browser autofill no longer show up to screen readers and checkers like axe as extra unlabeled text boxes holding the user's input. 🙈♿️

    Framework & Core Libraries

    • #194670 Add PlatformDispatcher.onAlwaysUse24HourFormatChanged callback
      PlatformDispatcher now has a callback for when the user switches the system 24-hour time setting while the app is running. This lays the engine groundwork for time pickers and formatted times to update live. 🕐
    • #190630 feat(flutter_test): add startHover and startHoverAt helper to WidgetTester
      Simulating a mouse hover in widget tests is now a one-liner with tester.startHover and tester.startHoverAt, instead of manually creating and moving a mouse gesture. 🖱️🧪
    • #194478 Fix gap flipping when dragging variable height reorderable items
      Dragging an item in a reorderable list with mixed item heights no longer makes the drop gap flicker back and forth between positions, so reorder animations stay stable. ↕️✨
    • #194859 Fix ListWheelScrollView null check error when it reads itemIndex before content dimensions are set
      ListWheelScrollView no longer throws a null check error on first layout when a child, such as an Image, reads the selected item. Images in the wheel now appear right away instead of only after scrolling. 🎡🐛

    Engine & Performance

    • #195505 Deprecates setFloat API
      The index-based FragmentShader.setFloat is now deprecated in favor of setting uniforms by name with getUniformFloat, getUniformVec2, and related methods, which are safer and easier to read. 🎨⚠️
    • #195881 Expose engineId on native plugin bindings and registrars on Android, iOS, and macOS
      Native plugin bindings and registrars now expose the engine ID that matches PlatformDispatcher.instance.engineId in Dart. FFI and JNI plugins can now set up and clean up per-engine native state without access to the engine itself. 🔌🧩

    Web Platform

    • #195854 [web] Support FragmentShader.getImageSampler on CanvasKit and Skwasm
      Web apps can now bind image samplers to fragment shaders by name on both CanvasKit and Skwasm, matching native platforms. Before, this threw UnsupportedError. 🖼️🌐

    Android Platform

    • #194764 [Android] Log why Impeller falls back to OpenGLES
      When Impeller falls back from Vulkan to OpenGLES, it now logs exactly why, whether it's an emulator, a known bad SoC or driver, or an old vendor SDK. Developers and triagers no longer have to guess. 🔍🤖
    • #192286 [Android] Replay predictive back state for retained engines
      Apps that keep a FlutterEngine alive across Activities no longer lose Flutter's back handling when a new Activity attaches, so system and predictive back gestures are routed to Flutter correctly again. 🔙📱

    Desktop Platforms

    • #192432 [flutter_tools] Detect macOS TCC permission crashes and provide diagnostic guidance
      When a macOS app run from an IDE or terminal crashes because macOS attributed a camera, microphone, or similar permission request to the parent process, flutter run now explains what happened and how to fix it instead of showing a bare SIGABRT. 🍎🩺

    Tooling & Developer Experience

    • #194934 [flutter_tools] Stream web dev server proxy responses instead of buffering them
      Responses proxied through web_dev_config.yaml rules are now streamed chunk by chunk, so server-sent events and NDJSON streams arrive in real time during flutter run -d chrome instead of being stuck in an 8 KB buffer. 🌊⚡

    Documentation and Website

    • flutter/website#13995 Add Native interop documentation section (Pigeon, FFIgen, JNIgen, dart:ffi)
      docs.flutter.dev has a new top-level Native interop section, with a decision tree for choosing between Pigeon, FFIgen, JNIgen, and dart:ffi, plus a guide for each tool. 📚🔗
    • flutter/website#14024 Add DevTools 2.62.0 release notes
      The release notes for DevTools 2.62.0 are now published on docs.flutter.dev. 🛠️📝
    • dart-lang/site-www#7586 Document --[no-]deprecated-js-interop guardrail and legacy web library deprecation for Dart 3.14
      dart.dev now documents the new --no-deprecated-js-interop flag in Dart 3.14, which stops builds that use legacy web libraries like package:js, and updates the guides to use dart:js_interop. 🚧🌐
    • dart-lang/site-www#7584 Document the dart migrate command-line tool
      A new guide covers the dart migrate command in Dart 3.14: how to preview and apply package migrations to a newer SDK, and when to use it instead of dart fix. 🚚🎯
    • dart-lang/site-www#7577 Document Dart 3.14 dart:js_interop additions
      The JS interop guides now cover the latest dart:js_interop additions through Dart 3.14, including JSIterable, JSIterator, and an expanded table of Dart-to-JS and JS-to-Dart conversions. 🔄📘
    • dart-lang/site-www#7583 Mark dart:mirrors as deprecated in documentation
      dart.dev now marks the dart:mirrors library as deprecated, so developers know to move away from runtime reflection. 🪞⚠️

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

    • Prasad Navale, for #194670, which resolved: Add PlatformDispatcher.onAlwaysUse24HourFormatChanged callback.
    • Matheus Dias, for #190630, which resolved: feat(flutter_test): add startHover and startHoverAt helper to WidgetTester.
    • M0N7Y5, for #194764, which resolved: [Android] Log why Impeller falls back to OpenGLES.
    • Mark Xian, for #192286, which resolved: [Android] Replay predictive back state for retained engines.
    • surya_kommana, for #194478, which resolved: Fix gap flipping when dragging variable height reorderable items.
  27. justinmc commented on Nov 13, 2026

    @justinmc
    Contributor

    November 06, 2026 to November 13, 2026

    This week, 130 commits landed in the Flutter repository, 49 in the Flutter packages repository, 32 in the Flutter website repository, and 13 in the Dart website repository.
    A special welcome to our new contributors: @JIWON1923, @mitryp!
    Below are the notable changes that landed this week:

    Material Design

    • flutter/packages#13338 [material_ui] Add Material motion springs
      material_ui now provides standard SpringDescription constants generated from Material 3 Expressive motion tokens (md.sys.motion.spring.*), bringing official M3 spring physics curves to animations. 🌀✨

    Cupertino (iOS-style)

    • flutter/packages#13419 [cupertino_ui] Dim disabled CupertinoSlider controls
      Disabled CupertinoSlider controls now render with dimmed opacity matching native iOS behavior, providing clearer visual feedback when slider interactions are turned off. 🎚️🍎
    Visual Demonstration Visual Demonstration
    Visual Demonstration

    Accessibility

    • #195731 [iOS a11y] Use a real UIScrollView as a11y scrollable container
      On iOS, scrollable semantics items are now hosted within a real UIScrollView container, ensuring VoiceOver and Voice Control correctly clip off-screen elements to the scroll viewport and navigate items reliably. ♿️📱

    Framework & Core Libraries

    • #194665 Add ResizeImagePolicy.cover
      ResizeImage now supports ResizeImagePolicy.cover, allowing images to decode at the minimum size needed to cover a target box while preserving aspect ratio, slashing memory consumption without blurriness. 🖼️📉
    • #191287 Allow SliverCrossAxisGroup children to lay out with zero cross-axis extent instead of asserting
      SliverCrossAxisGroup now gracefully accommodates child slivers that lay out with zero cross-axis extent instead of throwing an assertion error, keeping collapsible multi-sliver layouts stable. 📜🛡️

    Engine & Performance

    • #195345 Add ParagraphStyle.hyphenCharacter to dart:ui
      dart:ui now exposes ParagraphStyle.hyphenCharacter, giving developers fine-grained control over the character used when text breaks across lines during hyphenation. 🔤📝
    • #195716 [Impeller] Reland clipped BackdropFilter square corners fix
      Impeller now correctly respects rounded and arbitrary clip shapes when rendering BackdropFilter widgets, preventing visual artifacts where blur effects previously showed square corners. 🎨✨

    Web Platform

    • #195958 [web] Fix decoding of still AVIF images on Chrome
      Flutter Web now reliably decodes single-frame AVIF images on Chrome by properly accommodating Chrome's bitmap decoder behavior for non-animated AVIF files. 🌐🖼️

    Android Platform

    • #191453 Fix ime insets animation jump
      Android apps now animate software keyboard insets smoothly without a jarring height jump when the keyboard opens or dismisses. ⌨️📱
    Visual Demonstration Visual Demonstration
    • #196069 [android]: prewarms shaders when the context is created
      On Android, Impeller prewarms critical shaders immediately upon graphics context creation rather than waiting for first draw, reducing initial startup jank. ⚡🚀

    iOS Platform

    • #196287 iOS: Recomposite platform views only if their parameters change
      Embedded iOS platform views are now recomposited only when their underlying view parameters change, significantly reducing compositing overhead and CPU time for static native views. 🍎🏎️

    Desktop Platforms

    • #196002 Replace type-specific window widgets with a single Window widget
      Type-specific window widgets (DialogWindow, TooltipWindow, PopupWindow, SatelliteWindow) have been unified into a single Window widget accepting any BaseWindowController, streamlining multi-window architecture. 🪟💻
    • #192105 [Windows] Fix Space input after Alt+Space with previous Microsoft IME
      Pressing Space immediately after Alt+Space on Windows with older Microsoft IME versions now reliably enters space characters instead of dropping key events or misbehaving. 🪟⌨️
    • #178712 Add support for riscv64 desktop linux engine
      Flutter's desktop Linux engine now supports the riscv64 architecture, expanding Flutter application support to 64-bit RISC-V devices. 🐧⚡
      Visual Demonstration

    Tooling & Developer Experience

    • #194816 [gen_l10n] Add use-explicit-plural-values option
      gen_l10n introduces --use-explicit-plural-values, allowing generated localization code to provide dedicated arguments for zero, one, and other counts when formatting complex plural strings. 🌐🗣️

    Packages & Plugins

    • flutter/packages#13576 [pigeon] Support multi-engine Native Interop registration and instance-aware unregistration
      Pigeon now supports registering and cleanly unregistering Native Interop bindings across multiple Flutter engine instances, ensuring proper lifecycle management in multi-engine applications. 🔌🧩
    • flutter/packages#11909 [various] Support SVG filters (blur, offset, feMerge)
      vector_graphics and flutter_svg now support core SVG filter primitives including Gaussian blur, offset, and merge operations, unlocking drop shadows and blur effects in vector assets. 🎨✨

    Documentation and Website

    • flutter/website#14046 Add What's new in Flutter 3.50 release blog post
      The official "What's new in Flutter 3.50" release blog post is now published on docs.flutter.dev, highlighting framework updates, engine enhancements, and migration paths. 📢🚀
    • flutter/website#14065 Native interop blog post
      A new comprehensive guide and blog post dives into Flutter's native interop ecosystem, guiding developers through Pigeon, FFIgen, JNIgen, and direct dart:ffi. 📚🔌
    • dart-lang/site-www#7600 Announcing Dart 3.14 blog post
      The Dart 3.14 release announcement is now live on dart.dev, covering language evolutions, expanded WebAssembly capabilities, and core library updates. 🎯📝

    First-time Contributors

    We would like to extend a warm welcome to our new contributors this week! Thank you for your impactful contributions:

    • Soi (Jiwon Lee), for #192105, which resolved: [Windows] Fix Space input after Alt+Space with previous Microsoft IME.
    • Dmytro Popov, for #194816, which resolved: [gen_l10n] Add use-explicit-plural-values option.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P3Issues that are less important to the Flutter projectpermanently lockedPrevent this issue from getting automatically unlockedteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions