Skip to main content

Flutter 3.47.0 release notes

Release notes for Flutter 3.47.0.

This page has release notes for Flutter 3.47.

What's changed

#

Framework

#
  • Refactor: remove material from autocomplete_test, scrollable_restoration_test, semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test by @rkishan516 in 184615
  • [Android] Allow sensitive content to gracefully fail when unregistering host before registering by @camsim99 in 184789
  • Improve documentation of frictionFactor function by @AbdeMohlbi in 184509
  • Remove last material dependency from cupertino tests by @Piinks in 184781
  • Remove unused variable in ProcessTextPlugin.java by @AbdeMohlbi in 184161
  • [Dot shorthands] Finish examples/api migration by @loic-sharma in 183967
  • SelectableRegion can dismiss context menu with keyboard shortcuts by @Renzo-Olivares in 184788
  • Expose platform specific handles for multi-window API by @knopp in 184662
  • [fuchsia] Replace ambient-replace-as-executable with VmexResource. by @rmacnak-google in 184967
  • update popular issues documentation by @Mairramer in 183196
  • Use an if-element in a collection literal instead of a conditional expression by @srawlins in 184830
  • Adds missing awaits on forgotten cases by @FMorschel in 183466
  • refactor: Remove material imports from Widget tests by @master-wayne7 in 184877
  • Remove material import from toggleable_test.dart + draggable_test.dart + obscured_animated_image_test.dart + sliver_constraints_test.dart by @navaronbracke in 181774
  • Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator by @okorohelijah in 179810
  • [ios][platform_view]Reland hitTest approach (with a few 2026 update) by @hellohuanlin in 183484
  • Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#179810)" by @auto-submit[bot] in 185067
  • Reverts "[ios][platform_view]Reland hitTest approach (with a few 2026 update) (#183484)" by @auto-submit[bot] in 185082
  • Fix an ordering dependency in the services/system_chrome_test.dart test suite by @jason-simmons in 185086
  • Add initial AI guidance for issues by @stuartmorgan-g in 184885
  • Fix SliverResizingHeader semantic focus by @zemanux in 179690
  • Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator by @okorohelijah in 185083
  • Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185083)" by @auto-submit[bot] in 185145
  • Fix ImageInfo.isCloneOf to correctly compare scale values (fixes #184626) by @Istiak-Ahmed78 in 184643
  • Unpin sdk package dependencies by @sigurdm in 184821
  • Validate itemExtent with geometry in RenderSliverFixedExtentBoxAdaptor by @Piinks in 185159
  • Clarify why the child is nullable in AnimatedTransitionBuilder by @AbdeMohlbi in 182995
  • Revert "Unpin sdk package dependencies" by @flutteractionsbot in 185186
  • Fix _scheduleSystemFontsUpdate assertion during non-idle scheduler phase by @solvejet-team in 184332
  • AnimationStyle methods by @nate-thegrate in 182333
  • Reverts "Fix ImageInfo.isCloneOf to correctly compare scale values (fixes #184626) (#184643)" by @auto-submit[bot] in 185203
  • Implementation of popup windows for Win32 by @mattkae in 184516
  • Rewrites no-response workflow to work with pr as well by @chunhtai in 185163
  • Fix: text selection context menu should reappear after a non-fling scroll on Android and iOS by @Renzo-Olivares in 185054
  • [wimp] Implement images for wimp. by @eyebrowsoffire in 183913
  • ignore avoid_type_to_string lint rule by @srawlins in 184765
  • [ios][pv] Reland platform view hitTest approach (again) by @hellohuanlin in 185126
  • Reapply "Unpin sdk package dependencies" by @sigurdm in 185268
  • fix: correct LicenseRegistry docs to reference NOTICES instead of LICENSE by @ishaquehassan in 184572
  • Replace IndexedStack visibility children with _VisibilityScope + ExcludeFocus by @victorsanni in 184884
  • [flutter] Remove dead check on null being in a set of non-nullables by @srawlins in 184100
  • Fix SelectableRegion crash when the selection starts in a scrollable child but does not select anything initially by @Renzo-Olivares in 184420
  • Fix incorrect scale parameter reference in Image constructor docs by @saurabh-mirajkar in 185403
  • Roll pub packages by @DanTup in 185274
  • Fix ImageInfo.isCloneOf tests by moving async work to setUp by @Istiak-Ahmed78 in 185254
  • Add clipBehavior parameter to AnimatedCrossFade by @ishaquehassan in 184545
  • Add disposal guidance to CurvedAnimation and CurveTween docs by @ishaquehassan in 184569
  • Updating the windowing API for sized to content regular and dialog windows + removing the decorated flag by @mattkae in 184977
  • Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator by @okorohelijah in 185431
  • Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185431)" by @auto-submit[bot] in 185513
  • Run tests in selectable_region_context_menu_test.dart by @Renzo-Olivares in 185380
  • Fix selecting backwards when involving widget spans by @Renzo-Olivares in 184423
  • refactor: Remove material imports from editable_text_scribble_test, editable_text_scribe_test, page_route_builder_test, radio_group_test, semantics_debugger_test, range_maintaining_scroll_physics_test, two_dimensional_scroll_view_test, routes_test, text_selection_test, selectable_region_test and text_golden_test by @rkishan516 in 184798
  • Make sure that an Image doesn't crash in 0x0 environment by @ahmedsameha1 in 181154
  • Fix Table crash when a cell child paints below the row bottom by @victorsanni in 185323
  • Add @awaitNotRequired annotation to flutter sdk by @victorsanni in 181513
  • Added useOriginalColors flag which allows ImageIcon to bypass IconTheme colorization and use the original colors by @zawhtetnaing10 in 180491
  • Fix SelectionArea handles overlapping context menu on Android by @JhonaCodes in 182663
  • Fix debugNeedsPaint/Layout/CompositedLayerUpdate crashing in release mode by @realmeylisdev in 184627
  • Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator by @okorohelijah in 185651
  • Fix typos across multiple markdown files by @jeis4wpi in 185294
  • Roll pub packages by @flutter-pub-roller-bot in 185660
  • [web] Add font fallback service by @harryterkelsen in 185314
  • Remove unnecessary Material import from restoration_scopes_moving_test by @xfce0 in 184591
  • Add documentation for overarching tests in flutter, add skill to help agents figure out where tests go by @reidbaker in 185148
  • Add more 0x0 size tests, part 6 by @ahmedsameha1 in 184049
  • Add more 0x0 size tests part 9 by @ahmedsameha1 in 185625
  • [flutter_goldens] Allow using print by @srawlins in 185649
  • Replace Material import with animation in semantics_and_children_test by @MohamedGawdat in 185626
  • Move sliver_utils to test/widgets to fix rendering→widgets layering by @MohamedGawdat in 185472
  • Add support for high contrast and color inversion on Android by @xxxOVALxxx in 182263
  • Update TickerMode.getValuesNotifier to handle initialization during State.dispose by @nate-thegrate in 185248
  • examples: Remove unused parameters by @srawlins in 185346
  • Update merge semantics logic to merge sibling nodes by @chunhtai in 183745
  • Add reportErrors to ImageStreamListener by @koji-1009 in 180327
  • [a11y] Mark SemanticsNode dirty when customSemanticsActions change by @hannah-hyj in 185707
  • test: inline TestCallbackPainter in cupertino/picker_test.dart by @shivanshu877 in 185398
  • Inline test callback painter in tab scaffold test by @DaveT1991 in 184851
  • Remove material imports from navigator_on_did_remove_page_test and scrollable_in_overlay_test by @apoorvdarshan in 182546
  • refactor: remove material import froma sliver_main_axis_group_test, sliver_semantics_test, semantics_role_checks_test, sliver_fill_remaining_test, tap_region_test by @rkishan516 in 185567
  • Ensure windows are realized before the first frame received. by @robert-ancell in 184956
  • Add Linux implementation of popup windows by @robert-ancell in 185866
  • [AGP 9] Update templates to AGP 9+ and to Built-in Kotlin by @jesswrd in 185953
  • [web] Delete some remaining HTML renderer references by @mdebbar in 185487
  • Fix MergeSemantics resolving wrong handler for custom actions by @realmeylisdev in 184628
  • Clean up animation_controller.dart by @nate-thegrate in 182338
  • refactor: Save event data by pointer in an extensible _RecognizerEventData structure by @luanpotter in 181113
  • Exclude the RawAutocomplete options overlay from the ambient focus traversal tree by @victorsanni in 185543
  • Remove semantics_tester import from cupertino/slider_test.dart by @Sanaullah49 in 184805
  • [iOS] Use +Category.h suffix for headers with named categories by @cbracken in 186163
  • Fix inconsistent macOS text stroke weights by supporting light/dark glyph separation in glyph atlas by @b-luk in 186074
  • Update semantics accessibility block to also block keyboard focusability by @chunhtai in 186206
  • Update Fuchsia integration tests to use subpackaged runners by @mbrase in 186172
  • Fix SelectableText crash with inline lambda contextMenuBuilder by @victorsanni in 184990
  • Update Fuchsia tests to subpackage their child components by @mbrase in 186259
  • docs: fix doubled-word typos in comments by @Nicoreia in 186320
  • Fix EmbedderTest.CanRenderTextWithImpellerMetal test breakage by @b-luk in 186262
  • Migrate focus_node.unfocus.0.dart to use RadioGroup by @ValentinVignal in 183979
  • [web] Fix MenuAnchor dismiss when semantics enabled by @flutter-zl in 183093
  • [Test cross imports] No material in test/foundation, test/gestures, test/semantics, test/services by @navaronbracke in 186144
  • docs: Fix doubled-word typos in framework dartdoc by @Nicoreia in 186319
  • docs: fix "tha" -> "that" typo in widget_inspector_test comment by @Nicoreia in 186322
  • docs: fix overriden -> overridden in MediaQueryData dartdoc by @Nicoreia in 186323
  • Docs/improving docs for semantics UI lib by @AlexEduV in 186125
  • Fix nested Text.rich semantics order by @gabrimatic in 186116
  • Fix selection highlight artifacts for faded selectable text by @ikramhasan in 183628
  • refactor: update filename for sliver semantic widget by @rkishan516 in 185917
  • Dispose TextEditingController in IndexedStack example by @BilalRehman08 in 186375
  • Increase the run time of text field integration tests to 10 seconds by @jason-simmons in 186475
  • refactor: Remove material imports from Widget tests by @master-wayne7 in 185078
  • [widgets] Use super parameters in missed spots by @srawlins in 186198
  • [AGP 9] Upgrade Flutter Test Apps to AGP 9 by @jesswrd in 186200
  • Update Fuchsia tests to use realm_builder_server as a subpackage by @mbrase in 186409
  • Manual Dart roll from 8e30b88e4d5a to 66873d2da857 by @jason-simmons in 186690
  • Make EdgeDraggingAutoScroller respect ScrollPhysics by @mbcorona in 186541
  • Fix AnimatedList.separated assert when removing last item mid-removal… by @mbcorona in 186389
  • Detached traversal child should update its traversal parent by @QuncCccccc in 186118
  • Remove unnecessary Material imports from non-Material tests in flutter package by @momshaddinury in 185271
  • Fix owner-mismatch crash for OverlayPortal inside a deferred-mount parent (e.g. Table) by @gabrimatic in 185793
  • Fix typo in StretchingOverscrollIndicator docs by @loic-sharma in 186897
  • [pubspec] Bump Dart SDK constraint to ^3.13.0 by @bkonyi in 186957
  • Disable spell check for obscured text by @gabrimatic in 186329
  • Add more 0x0 size tests part10 by @ahmedsameha1 in 186201
  • Update data driven fixes docs by @keertip in 186217
  • Fix InteractiveViewer memory leak from undisposed CurvedAnimations by @adil192 in 185826
  • examples: Remove unused parameters by @srawlins in 185819
  • Fixes bug when changing accessibilityFocusBlockType doesn't update ch… by @chunhtai in 186596
  • Revert "[pubspec] Bump Dart SDK constraint to ^3.13.0 (#186957)" by @Piinks in 187209
  • Linux glyph gamma correction by @gaaclarke in 187122
  • Clarify lazy scroll extent docs by @mvincentong in 186864
  • Improve SizedBox's docs by @loic-sharma in 187208
  • docs: Document MediaQueryData.alwaysUse24HourFormat on macOS, Windows, Linux, web (#160664) by @NadeemIqbal in 186642
  • document that the default Key is null and explain proper usage in list diffing by @AbdeMohlbi in 185197
  • Clarify route transition animations by @mvincentong in 186552
  • Add/remove overlay child RenderObject from the tree in attach/detach by @LongCatIsLooong in 186564
  • Remove Material import from sliver tree rendering test by @MarlonJD in 187000
  • Fix mismatch between hit-test tree and traversal tree by @QuncCccccc in 186826
  • Remove the Y coordinate flip workaround in the Material stretch effect shader now that it is no longer required by the Impeller GLES back end by @jason-simmons in 187247
  • Improve dependOnInheritedWidgetOfExactType documentation to explain why it is bad to use it in initState by @AbdeMohlbi in 186216
  • docs: Stack.clipBehavior = Clip.none does not extend hit testing (#160787) by @NadeemIqbal in 186643
  • [flutter_driver] Don't throw when stderr is unavailable on web by @flutter-zl in 187190
  • [Android] Add Javadoc documentation to TextInputChannel by @mboetger in 186018
  • Improve error message for type mismatch in Navigator.pop and maybePop. by @puneetkukreja98 in 186571
  • Small clean-up in different java files under engine/src/flutter/shell/platform/android/io/flutter/embedding/engine/ by @AbdeMohlbi in 186631
  • Remove Material imports from painting tests by @MarlonJD in 186937
  • [Impeller] Fix positioning of text shadow masks by @flar in 187460
  • Handle#6537 fifth grouped tests by @ahmedsameha1 in 183720
  • Prevent Cubic transform from looping on out-of-range input by @gabrimatic in 185875
  • [Material Cross Imports] Clean up Material Divider usages by @navaronbracke in 187300
  • Clarify RouterDelegate popRoute bubbling by @mvincentong in 186875
  • Remove Material imports from rendering editable tests by @MarlonJD in 186951
  • Remove references to 'good first issue' by @stuartmorgan-g in 187617
  • Remove reference to 'good first issue' in the docs by @jmagman in 187615
  • Remove Material import from editable text cursor tests by @MarlonJD in 186671
  • Remove Material import from navigator replacement tests by @MarlonJD in 186674
  • Remove Material import from view chrome style test by @MarlonJD in 186994
  • Roll pub packages by @flutter-pub-roller-bot in 187740
  • Improve docs on MediaQuery: highContrast, invertColors and disableAnimations by @AbdeMohlbi in 186614
  • Api docs: typo fix in Navigator by @tanyabouman in 187572
  • Fix ShapeDecoration.lerp crash when interpolating between gradient and color by @ishivamg in 187368
  • Add more 0x0 size tests part 11 by @ahmedsameha1 in 186822
  • Document moveStep direction on WidgetController.dragUntilVisible by @ishaquehassan in 186943
  • Sized to content for regular and dialog windows on win32 by @mattkae in 186829
  • Make shape border lerp symmetric by @bernaferrari in 187282
  • Expand coverage of android_hardware_smoke_test. Add image, text, blend mode, and blur tests. by @andywolff in 187600
  • Clarify RichText selection docs by @mvincentong in 186844
  • [integration_test] Update README to support modern Kotlin-based setups by default by @mboetger in 186080
  • Scope widget inspector overlay to the selected widget's modal route by @muhammadkamel in 186784
  • Update MediaQueryData docs for devicePixelRatio overriding by @LongCatIsLooong in 187542
  • [Test cross_imports] Check cross imports in flutter_test/** by @navaronbracke in 187587
  • Add a platform view test to android_hardware_smoke_test by @andywolff in 187913
  • Reverts "Add a platform view test to android_hardware_smoke_test (#187913)" by @auto-submit[bot] in 188051
  • Adds gamma correction to windows text. by @gaaclarke in 187871
  • [web] RenderParagraph needs paint after a DPR change by @mdebbar in 186968
  • Implement font fallback by @Rusino in 187520
  • Add a platform view test to android_hardware_smoke_test by @andywolff in 188069
  • Fix bounds checking in FlAccessibleTextField by @robert-ancell in 188137
  • Fix README images + breaking change links by @loic-sharma in 188183
  • Fix byte/character offset confusion in FlAccessibleTextField by @robert-ancell in 188138
  • Update docs for PR limits by @Piinks in 188388
  • Bump flutter version from 13.0 to 15.0 by @LouiseHsu in 188187
  • [widgets/raw_menu_anchor.dart] Call onCloseRequested on closed menus by @davidhicks980 in 186376
  • Fixes navigator may not report correct canhandlepop when propagate in… by @chunhtai in 186705
  • Bump minimum Dart SDK version constraint to 3.11.0-0 [testing skill] by @Piinks in 188357
  • [widgets/raw_menu_anchor.dart] Remove listener from isScrollingNotifier on dispose. by @davidhicks980 in 187881
  • [Linux] Use fixture tests in remaining unit tests by @robert-ancell in 188142
  • Respect disallowed stretch on fling end by @mvincentong in 186841
  • Avoid detached platform view placeholder callbacks by @mvincentong in 186840
  • Clarify RenderBox globalToLocal unprojection by @mvincentong in 186874
  • Move strech fragment shader to widget layer by @chunhtai in 187960
  • Fix some type checks in the Actions widget by @LongCatIsLooong in 180883
  • Clear text input handler widget on view dispose by @robert-ancell in 188701
  • Increase macOS minimum supported version from 10.15 to 12 to support Xcode 27 by @LouiseHsu in 188520
  • Roll pub packages by @flutter-pub-roller-bot in 188764
  • [Framework/Tool] Decouple preview theme imports by @bkonyi in 188176
  • [framework] Keep scrollable semantics role stable by @flutter-zl in 187963
  • Add TapRegion samples by @loic-sharma in 188685
  • Improve stylus support on linux by @CodeDoctorDE in 186831
  • [web] Apply autocapitalize to text editing elements by @flutter-zl in 188351
  • Adds semantics role check to isSemantics and matchesSemantics by @chunhtai in 188825
  • Stricten isSemantics and matchesSemantics children mismatch check by @chunhtai in 188827
  • Clarify layout callback debug flag docs by @mvincentong in 186879
  • [Windows] Keep regular windows in place when another is activated by @9AZX in 188016
  • Add debugPaintFocusBoxes by @loic-sharma in 188288
  • Rename preferredSize to size and preferredConstraints to constraints in the windowing API by @mattkae in 189017
  • Recommend OverlayPortal.overlayChildLayoutBuilder over Target-Follower by @LongCatIsLooong in 188894
  • Explain asynchronous causes in the setState() called after dispose() error by @fahaddoc in 187294
  • Fix RenderSliverPadding setter assertion by @fallintoplace in 187353
  • [AGP 9] Bump Flutter Test Apps to Newer Template Version by @jesswrd in 189024
  • Fix TextSelectionOverlay crash when layout is degenerate by @Renzo-Olivares in 188672
  • [web] Fix grouped autofill on iOS Chrome by @flutter-zl in 187459
  • [test cross imports] More test/rendering + flutter_test/test fixes by @navaronbracke in 188954
  • Expose the app's build name and number as compile-time constants by @Ortes in 187935

Material

#
  • add the next batch for VPAT assessment by @chunhtai in 185053
  • Enable the avoid_final_parameters lint. by @kallentu in 185216
  • Remove semantics_tester import from user_accounts_drawer_header_test.dart by @Sanaullah49 in 184809
  • Remove semantics_tester import from raw_material_button_test.dart by @Sanaullah49 in 184806
  • [a11y assessment app] Use default color for banner by @hannah-hyj in 185804
  • [a11y] Add support for high contrast themes in the a11y assessments app by @hannah-hyj in 185801
  • Remove trivial test utility cross-imports from material and cupertino… by @xfce0 in 184295
  • dev: Remove unused parameters by @srawlins in 185345
  • Remove semantics_tester cross-import from segmented_button_test.dart by @spandan3001 in 185250
  • [dev] Use super parameters in missed spots by @srawlins in 186193
  • Use local semantics tester in Material button tests by @MarlonJD in 186667
  • Remove semantics_tester import from material_button_test.dart by @Sanaullah49 in 184807
  • Remove Material import from implicit animation tests by @MarlonJD in 186673
  • Fix date localization missing ZERODIGIT in Arabic(ar) by @QuncCccccc in 188473
  • [CP-beta]Fix data for design packages by @flutteractionsbot in 189742

iOS

#
  • Disable async mode with LLDB by @vashworth in 184768
  • Reverts "Disable async mode with LLDB (#184768)" by @auto-submit[bot] in 184868
  • Reduce boilerplate in FlutterPlatformViewsTest.mm by @mahi-ma in 184555
  • Reland "Disable async mode with LLDB" by @vashworth in 184970
  • Allow Xcode build configuration to not contain flavor name by @alex-medinsh in 183398
  • Fix killing wrong xcrun command by @vashworth in 184831
  • [iOS] Clarify provisioning profile error instructions by @mozammal-hossain in 184051
  • [iOS] Migrate FlutterLaunchEngine to Swift by @cbracken in 185151
  • [iOS] Update previousCompositionOrder to return Obj-C type by @cbracken in 185136
  • Only use LLDB breakpoint in debug mode by @vashworth in 185158
  • [iOS] Improve LaunchEngine implementation/API/docs by @cbracken in 185200
  • Fix non-minimal relative imports in flutter_tools by @kevmoo in 183971
  • [ios] Update documentation for FlutterAppDelegate.pluginRegistrant by @cbracken in 185201
  • [ios] Extract SplashScreenManager from FlutterViewController by @cbracken in 185405
  • [iOS] Refactor keyboard inset logic into FlutterKeyboardInsetManager by @cbracken in 185535
  • [SwiftPM] Enable package resolution on xcodebuild commands by @vashworth in 185208
  • Fix SemanticsObject crash when bridge is nullptr by @LongCatIsLooong in 185293
  • [iOS] Create FlutterFMLTaskRunner(s) by @cbracken in 185617
  • [iOS] Soften TaskRunner.postTask(delay:task:) delay check by @cbracken in 185729
  • [iOS] Extract FlutterVSyncClient from vsync_waiter_ios by @cbracken in 185737
  • Match on process name before killing for SwiftPM by @vashworth in 185774
  • [iOS] Migrate to FlutterFMLTaskRunner(s) by @cbracken in 185815
  • Migrate VSyncClientTest to Swift by @cbracken in 185893
  • [iOS] Migrate to explicit VSyncClient initialisers by @cbracken in 185916
  • [iOS] Eliminate VSyncClient C++ initialiser by @cbracken in 186111
  • [iOS] Add FlutterTracing to support tracing from Swift by @cbracken in 185918
  • Skip xattr removal for Swift package cache by @vashworth in 186001
  • [iOS] Pass NSTimeInterval instead of microseconds to Vsync tracing by @cbracken in 186190
  • [iOS] Migrate VSyncClient to a pure Obj-C implementation by @cbracken in 186166
  • Reverts "[iOS] Migrate VSyncClient to a pure Obj-C implementation (#186166)" by @auto-submit[bot] in 186266
  • Improve non rect platform view rendering by @Hari-07 in 182662
  • Use Xcode's LLDB by @vashworth in 186273
  • Show SwiftPM warnings right before iOS/macOS build by @vashworth in 185984
  • Pass XcodeBasedProject instead of String to functions in XcodeProjectInterpreter by @vashworth in 186378
  • [iOS] Improve documentation on FlutterVSyncClient and FlutterDisplayLink by @cbracken in 186456
  • Display the team ID and name when selecting a signing certificate by @alex-medinsh in 184665
  • [ios] Correct handling for CADisplayLink paused-to-unpaused transitions by @cbracken in 186457
  • [macOS][gn] support both x64/arm64 macOS host clang toolchains for ASAN by @cbracken in 186669
  • [ Tool ] Remove legacy analytics code by @bkonyi in 184994
  • Enable Swift testing in the iOS embedder by @LongCatIsLooong in 185712
  • Move prefetchSwiftPackages to be per platform by @vashworth in 186468
  • Filter out SwiftPM schemes when fetching schemes by @lukemmtt in 186006
  • iOS] Migrate VSyncClient to a pure Obj-C implementation (#186166) by @cbracken in 186935
  • Handle simctl process exceptions during discovery by @mvincentong in 186501
  • [iOS] Migrate VSyncClient and DisplayLinkManager to Swift by @cbracken in 187001
  • Stop prefetching Swift packages in pub get by @vashworth in 187113
  • [iOS] Eliminate strong retain cycle from VSyncClient by @cbracken in 187164
  • Eager failure when building and no XCode build settings by @davidmartos96 in 184726
  • Read FLTEnableWideGamut from Dart bundle by @mvincentong in 186509
  • [iOS] Eliminate unnecessary redeclaration of FlutterDisplayLink by @cbracken in 187557
  • iOS a11y sets header trait based on heading level by @chunhtai in 186916
  • [ios] Filter UIScene events to those relating to Flutter VC scene by @cbracken in 187987
  • [pv] Skip non-tappable web view workaround on ios 26.4 by @hellohuanlin in 185424
  • Drop availability checks for ios 14 and 15 in the embedder by @LouiseHsu in 188189
  • Don't attach LLDB debugger for profile mode on iOS by @LouiseHsu in 187125
  • Tool: Provide guided migration logs when iOS app crashes due to missi… by @okorohelijah in 188556
  • Provide guided migration logs when iOS app crashes on simulator by @okorohelijah in 188736
  • Detach LLDB and print stack trace on process stop by @vashworth in 188576
  • [flutter_tools] Provide guided message when iOS/macOS build fails due to low minimum version by @okorohelijah in 188812

Android

#
  • Preprovision Android NDK for flavored builds and reuse matching unflavored NDKs by @kyungilcho in 183555
  • [Android] Add integration test for setting engine flags via the manifest by @camsim99 in 182241
  • Remove unused FlutterRunArguments.java file by @AbdeMohlbi in 184160
  • Revert "Preprovision Android NDK for flavored builds and reuse matchi… by @gmackall in 185439
  • Adapt the DisplayList benchmarks into a primitive rendering benchmark suite by @flar in 185270
  • [a11y] Add CONTENT_CHANGE_TYPE_EXPANDED support on android. by @hannah-hyj in 185305
  • Ship gen_snapshot for linux-arm64 hosts targeting Android by @dbebawy in 182552
  • [Android] Gboard Text Shift Stuck Fix by @mboetger in 185292
  • Make exceptions thrown by JNI calls to Image.getHardwareBuffer non-fatal by @jason-simmons in 185125
  • Restrict PlatformViewCreationRequest constructor visibility by @mboetger in 186019
  • Fix Broken Flutter Docs Link by @jesswrd in 186042
  • [Android] Test: assert supported dependency versions match template versions by @mboetger in 186009
  • Visit missing children which are removed in childrenInHitTestOrder by @QuncCccccc in 185391
  • [Android] Propagate --enable-flutter-gpu Intent extra to engine args by @bdero in 186298
  • Make DeepLinkJsonFromManifestTask Gradle task build cacheable by @jmagman in 185903
  • Bumped required mediatek vender sdk version. by @gaaclarke in 186405
  • [flutter_tools] Migrate detectLowCompileSdkVersionOrNdkVersion to AGP task by @reidbaker in 184731
  • Remove unused field in ResourceExtractor by @AbdeMohlbi in 186629
  • Revert "Ship gen_snapshot for linux-arm64 hosts targeting Android" by @flutteractionsbot in 186693
  • Fix AccessibilityBridge startup crash on vendor-modified Android by @realmeylisdev in 184630
  • Remove another String.valueOf by @AbdeMohlbi in 186628
  • [Android] Reset system UI visibility flags when setting edge-to-edge mode by @camsim99 in 187207
  • Remove unused code in FlutterPluginUtils.kt by @AbdeMohlbi in 187012
  • clears out the android context after the frame on mediatek devices by @gaaclarke in 187404
  • [Impeller] Remove the texture coordinate system Y-flip workaround by @bdero in 187686
  • [Android] Test to verify AnnounceSemanticsEvent deprecation warning on API 36 by @mboetger in 187754
  • Custom KGP task and migration to AGP api for geting kgp version by @reidbaker in 182788
  • Fix std::vector out-of-bounds access in Flutter Android JNI and Delegate by @chingjun in 187218
  • [a11y] Map some framework semantics roles to android classes. by @hannah-hyj in 185217
  • Reverts "[a11y] Map some framework semantics roles to android classes. (#185217)" by @auto-submit[bot] in 188008
  • Reland [a11y] Map some framework semantics roles to android classes. by @hannah-hyj in 188037
  • [Android] Remove support for unused manifest flags by @mboetger in 186021
  • Remove many absolute paths from build commands. by @rmacnak-google in 187765
  • [tool] Fix libapp.so dropped from APK/app bundle by @gmackall in 188119
  • [Android] Close FlutterRenderer texture image SyncFence objects immediately after waiting on them by @jason-simmons in 188313
  • [AGP 9] Ensure Warnings Do Not Log When AGP Is Below 9 by @jesswrd in 188373
  • Implement version code overrides for split ABIs by @derdilla in 187742
  • Migrate ABI splits to new AGP dsl by @gmackall in 188369
  • In AndroidImageGenerator, check that the destination pixel buffer has sufficient capacity for the decoded data by @jason-simmons in 188752
  • [tool] Don't require a Flutter compile task when staging jniLibs by @gmackall in 188805
  • Add android 17 to embedding by @AbdeMohlbi in 187965
  • Use null-aware elements in dev/devicelab/lib/integration_tests.dart by @lukluca in 187852
  • [AGP 9] Support Enabling Built-in Kotlin by @jesswrd in 188543
  • [flutter_tools, engine] Add --disable-service-origin-check option to disable VM service origin checks by @bkonyi in 188745
  • [AGP 9] Update Flutter Template Versions by @jesswrd in 188762
  • [flutter_tools] Provision Android NDK in the main Gradle invocation by @kyungilcho in 186337
  • [CP-Beta] Raise Warn Version to AGP 9+ by @jesswrd in 189293

Windows

#
  • Win32: Prevent mouse leave on WM_SYSKEYUP. by @knopp in 184835
  • [Win32] FlutterDesktopEngineGetGraphicsAdapter should use out parameter by @knopp in 185590
  • Win32: Add FlutterDesktopPluginRegistrarGetGraphicsAdapter by @knopp in 185580
  • Fix pointer position by @CodeDoctorDE in 185850
  • [Windows] Propagate the enabled accessibility state by @loic-peron-inetum-public in 184501
  • Reverts "[Windows] Propagate the enabled accessibility state (#184501)" by @auto-submit[bot] in 186492
  • [tool] Refactor artifacts.dart to use enhanced enums and reduce duplication by @bkonyi in 187063
  • Fix Windows Korean IME caret position during composition by @CHOIgoung in 186353
  • Add support for stylus buttons by @CodeDoctorDE in 183369
  • [Impeller][Windows] fix black screen on OpenGL fallback by @Servall4 in 187288
  • Revert "Add support for stylus buttons" by @flutteractionsbot in 187581
  • Reland "Add support for stylus buttons" by @CodeDoctorDE in 187629
  • Remove EnableTransparentWindowBackground because it did nothing important and because Windows 10 does not support DWMWA_SYSTEMBACKDROP_TYPE by @mattkae in 187848
  • Switches Windows to OpenGLESSDF by @gaaclarke in 187877
  • Fixing corrupted window size OnEmptyFrameGenerated due to transpsed width/height by @mattkae in 187954
  • Adds windows project switch for enabling impeller by @gaaclarke in 188044
  • Use a mock EGL manager in windows unittests to avoid flaky rendering calls by @mattkae in 188078
  • Makes impeller the default renderer for windows. by @gaaclarke in 188140
  • [Windows] Add public API to post task to platform thread by @loic-sharma in 187365
  • Fix onPointerDown parameters and fix tests to reflect rotation pressu… by @CodeDoctorDE in 188343
  • Migrates flutter windows test to impeller by @gaaclarke in 188188
  • Fix segfault on Win32 cause by the sized-to-content delegate being invalid by @mattkae in 188398
  • Add --flavor support for Windows desktop builds by @AngeloAvv in 187034
  • fix(engine/windows): keep tooltip position rect alive - fix use after free by @richyo-codes in 188476
  • [CP-beta][windows]: Uses offscreen MSAA when implicit msaa isn't available. by @flutteractionsbot in 190374

Linux

#
  • Remove unused private header by @robert-ancell in 185260
  • Fix leak on error case by @robert-ancell in 185516
  • Use g_free when using glib memory allocation by @robert-ancell in 185519
  • Don't leak gesture objects by @robert-ancell in 185517
  • Use g_realloc instead of realloc by @robert-ancell in 185520
  • Make key mapping code match existing embedder style by @robert-ancell in 185261
  • docs: fix typos in flutter_tools comments by @Nicoreia in 186321
  • opts the linux embedder into sdf rendering by @gaaclarke in 186909
  • Fix crash if FlView is destroyed during a draw. by @robert-ancell in 186848
  • adds linux impeller project flag by @gaaclarke in 186982
  • [linux]: fixes crash when resizing windows by @gaaclarke in 187626
  • [Linux] Fix incorrect GL datatypes for uniform locations by @robert-ancell in 188143
  • [Linux] Fix vertical offset in composite_layer by @robert-ancell in 188145
  • [Linux] Move compositor shader into its own GObject by @robert-ancell in 188144
  • Disconnect from parent window signal when view is destroyed by @robert-ancell in 185521
  • Use g_signal_connect_object in the Linux embedder by @robert-ancell in 188241
  • [Linux] Move Flutter rendering into a new FlViewRenderer widget by @robert-ancell in 188289
  • Turn linux impeller on by default by @gaaclarke in 187573
  • [Linux] Add tests for FlTaskRunner by @robert-ancell in 188547
  • [linux] Re-enable RegistrarRegisterTextureInMultipleThreads test by @robert-ancell in 188549
  • [Linux] Fix GLib-GIO-CRITICAL warnings in keyboard manager test by @robert-ancell in 188548
  • Add tests for FlMouseCursorHandler by @robert-ancell in 188554
  • [linux] Use GWeakRef for engine and parent in FlAccessibleNode by @robert-ancell in 188699
  • [linux] Use GWeakRef in mock signal handler test helper by @robert-ancell in 188700
  • Free compositor in view renderer finalize to avoid use-after-free by @robert-ancell in 188702
  • Remove unused fields by @robert-ancell in 188705
  • [Linux] Fix FlCompositorOpenGL.pixels comment by @robert-ancell in 188754
  • Add --flavor support for Linux desktop builds by @AngeloAvv in 187029

Web

#
  • [web] Refactor LazyPath and separate immutable paths from path builders by @mdebbar in 177686
  • Ignore incoming deprecated_web_configuration lint by @srujzs in 184130
  • Compatibility bridge for analyzer 12 and 13. by @scheglov in 185360
  • Unify SemanticUpdateBuilder API for web and non-web by @chunhtai in 185433
  • [web] Implement stepped image downscaling for CanvasKit and Skwasm by @harryterkelsen in 184741
  • fix(web): Fix LateInitializationError in CkSurface and SkwasmSurface by @harryterkelsen in 185116
  • Manually Revert "fix(web): Fix LateInitializationError in CkSurface and SkwasmSurface (#185116)" by @eyebrowsoffire in 185539
  • Add initial support for Cross-Origin Storage by @tomayac in 184149
  • Reland "[web] Fix LateInitializationError in CkSurface and SkwasmSurface (#185116)" by @eyebrowsoffire in 185553
  • Removing TODOs from the WebParagraph code and addressing technical debts. by @Rusino in 185168
  • [web] Delete the old BROWSER_IMAGE_DECODING_ENABLED flag by @mdebbar in 185851
  • feat(web): implement image decoding throttling for HTML images by @harryterkelsen in 186032
  • [web] Use heap allocation for buffers that would consume too much space on the Wasm stack by @jason-simmons in 186228
  • [web] Fix several WebParagraph bugs by @mdebbar in 186403
  • fix(web): Fixes CSS override detection when the browser has a default font size by @harryterkelsen in 186474
  • [web] Rename WebParagraph goldens by @mdebbar in 186680
  • [web] Refactor webparagraph painters to separate CK properly by @mdebbar in 186684
  • [web] Cleanup unused shadow stuff by @mdebbar in 186681
  • [web] Remove image codecs from canvaskit_chromium by @mdebbar in 178133
  • fix(web): Removes the iterative downscaling hack by @harryterkelsen in 186914
  • [web] Fix cutoff text in WebParagraph by @mdebbar in 186819
  • [web] Fix WebParagraph locales test by @mdebbar in 186813
  • [web_ui] Optimize skwasm text layout and path decoding to eliminate dynamic boxing churn under Wasm by @kevmoo in 186978
  • [web] Always sync slider input attrs regardless of gesture mode by @flutter-zl in 187217
  • refactor(web): Unify ui.Path code for CanvasKit and Skwasm by @harryterkelsen in 187331
  • Fixing alignment issue by @Rusino in 187518
  • Remove dynamic module loading code in flutter web engine by @mkustermann in 187777
  • [web] Changes to WebParagraph configuration by @mdebbar in 187188
  • refactor(web): Unify Image on Skwasm and CanvasKit by @harryterkelsen in 187873
  • Import dart:_js_interop_wasm in addition to dart:_wasm to convert between JSAny and WasmExternRef? by @simolus3 in 186974
  • Reverts "refactor(web): Unify Image on Skwasm and CanvasKit (#187873)" by @auto-submit[bot] in 188124
  • Improve Flutter Web accessibility: update flt meta viewport tag to align with WCAG 2 guidelines by @jlemanski1 in 182047
  • Reland "refactor(web): Unify Image on Skwasm and CanvasKit" by @harryterkelsen in 188356
  • [web/skwasm] Remove name-based export of function by @mkustermann in 188256
  • Fixing few related editing issues with LTR/RTL text by @Rusino in 188503
  • Add import of dart:_js_interop_wasm in sdk rewriter tool by @mkustermann in 188620
  • Roll Dart SDK from e1bdb9ce3327 to 26d723eb89af (3 revisions) by @rmacnak-google in 188795
  • Fixing multiline GetBoxesForRange by @Rusino in 188803
  • engine: warn on WASM load failure when not crossOriginIsolated by @shivanshu877 in 186252
  • engine: explain why each candidate build was skipped in Flutter web loader by @shivanshu877 in 186254
  • [beta] [web] Cancel touch pointers WebKit abandons mid-gesture by @flutter-zl in 190231

Tooling

#
  • Roll pub packages by @flutter-pub-roller-bot in 184795
  • [record_use] Add experimental flag and test project by @dcharkes in 184719
  • [flutter_tools] Fix arm64e incorrectly matching arm64 in regex check by @trizin in 184057
  • Test that the locked version of dependencies of sdk packages equal the lower bound by @sigurdm in 183395
  • Fix codesign verification test for SwiftPM Add to App by @vashworth in 184980
  • [flutter_tools] Cache pubspec reads and share PackageGraph/PackageConfig across workspace packages during pub get post-processing by @aNOOBisTheGod in 184528
  • [record_use] Add recorded uses to link hooks by @dcharkes in 184869
  • [ci] Split up integration.shard record_use_test.dart by @dcharkes in 185022
  • Skip flutter widget-preview test that times out frequently by @loic-sharma in 184988
  • Fix icon tree shaking when building for desktop by @nvi9 in 184249
  • [ci] Split up integration.shard native_assets_test.dart by @dcharkes in 185020
  • Add --include-example flag to flutter clean for package example projects by @andeart in 183455
  • Hold startup lock until after pub get to prevent races by @Mr-Pepe in 184294
  • [ci] Split up integration.shard dart_data_asset_test.dart by @dcharkes in 185021
  • [AGP 9] Update AGP Error by @jesswrd in 185043
  • ignore avoid_type_to_string lint rule in flutter_tools by @srawlins in 184766
  • Allow period characters in iOS and macOS framework names by @tjoengCRC in 184335
  • [Widget Preview] Fix flaky integration test timeout during flutter clean by @bkonyi in 184991
  • feat: add reloadIsRestart to handle hot reload as a restart for web #179448 by @arpitgandhi9 in 183233
  • [record_use] Run build hooks and link hooks in separate targets by @dcharkes in 184880
  • Move widget_preview_scaffold into pub workspace by @bkonyi in 185176
  • Reland "Unpin google_mobile_ads" by @goderbauer in 180838
  • [data_assets] Try fix #184505 by @dcharkes in 185330
  • Improve the error if the tool cannot find the locally built engine by @loic-sharma in 184546
  • Use relative path for reloadedSourcesUri and reloaded modules by @srujzs in 184598
  • tool: Skip cached engine artifacts with local engine by @gaaclarke in 185546
  • Roll pub packages by @flutter-pub-roller-bot in 185638
  • Roll pub packages by @flutter-pub-roller-bot in 185641
  • [code_assets] Fix multi architecture framework naming by @dcharkes in 185640
  • [Tool] Ignore pubspec.lock dirty checkout modifications on non-stable channels by @bkonyi in 184997
  • Fix --enable-hcpp flag being ignored in release by @gmackall in 185692
  • Move try/catch to processFileLines_ by @mboetger in 185646
  • [hooks] Fix pass-through dependencies by @dcharkes in 185739
  • [flutter_tools] Bump dwds dependency to v27.1.1 by @nshahan in 185357
  • Update iOS tools to fat binaries by @vashworth in 185868
  • Fix App binary path for SwiftPM Add2App on macOS by @vashworth in 185769
  • fix: prevent null crash in debugTogglePlatform when vmService is null by @briskbase-projects in 185812
  • Make the welcome message output to stderr if --machine by @sigurdm in 184819
  • flutter_tools: Remove unused parameters by @srawlins in 185347
  • Bundle a local Roboto fallback for no-CDN web builds by @samanzamani in 184275
  • Roll pub packages by @flutter-pub-roller-bot in 185986
  • Fix flutter_tools crashing on invalid UTF-8 in log output (fixes #184646) by @Istiak-Ahmed78 in 184685
  • Cache plugin registrant in test compiler by @Mr-Pepe in 185598
  • [flutter_tools] Allow using print by @srawlins in 185650
  • Make logger a public getter in mixin to fix crash by @chingjun in 186151
  • Roll Dart 3.13 beta1 into Flutter by @iinozemtsev in 186131
  • [flutter_tools] Simplify catch with wildcard by @srawlins in 186202
  • Remove currentMainUri from generateMainDartWithPluginRegistrant by @Mr-Pepe in 185907
  • [Tool] Support glob patterns when parsing workspaces in FlutterProject by @jason-simmons in 185715
  • [flutter_tool] filter out MotionEvent-JNI warning spam from logcat (#174783) by @mboetger in 186079
  • Fix web-server hot restart/reload not applying changes for entrypoints outside lib by @MatejLNCD in 183838
  • Roll pub packages by @flutter-pub-roller-bot in 186602
  • Complete completer only once in hot restart tests by @srujzs in 186702
  • [ Widget Preview ] Improve zoom behavior and add zoom slider by @bkonyi in 186422
  • [ Widget Preview ] Fix inspector split resize focus loss over WebViews by @bkonyi in 186432
  • [web, tool] Support recompiling shaders and unify asset processing by @kevmoo in 185534
  • Manual Dart roll from 66873d2da857 to 84220a34788e by @jason-simmons in 186812
  • Reverts "[web, tool] Support recompiling shaders and unify asset processing (#185534)" by @auto-submit[bot] in 186837
  • [ Tool ] Stop generating widget preview scaffold under $TMP by @bkonyi in 186476
  • fix(flutter_tools): defensively catch DWDS unregistered service extension errors by @kevmoo in 186896
  • Fix hooks inputs outputs rebuilt by @dcharkes in 186701
  • [Tool] Handle DTD connection failures gracefully in widget-preview by @bkonyi in 186952
  • [flutter_tools] Fix version cache poisoning from git environment variables by @kevmoo in 186595
  • [Tool Robustness] Gracefully handle asynchronous subprocess crashes and connection timeouts by @bkonyi in 186964
  • Clarify precache enabled platforms help by @mvincentong in 186878
  • Use resolved implementation plugins with SwiftPM by @vashworth in 187097
  • [flutter_tools, devicelab] Add safety filesystem guard to tests by @bkonyi in 186748
  • Print trace when skipping flavor-specific and platform-specific assets by @alex-medinsh in 187045
  • [web, tool] Support recompiling shaders and unify asset processing (2nd try) by @kevmoo in 186902
  • Roll pub packages by @flutter-pub-roller-bot in 187191
  • [flutter_tools] Use super parameters in missed spots by @srawlins in 186197
  • [flutter_tools, devicelab] Fix filesystem safety guard for symlinked temp directories by @bkonyi in 187320
  • Roll pub packages by @flutter-pub-roller-bot in 187375
  • [flutter_tools] Fix widget_preview unawaited async write race condition by @bkonyi in 187177
  • [flutter_tools] Reject archive entries that escape into a sibling directory by name prefix (#185794) by @NadeemIqbal in 186647
  • [flutter_tools] Fix flutter drive --chrome-binary being ignored on web by @temoorx in 185481
  • [flutter_tools] Remove obsolete AndroidX console warning during Gradle builds by @mboetger in 186077
  • Clean up avoid_type_to_string suppressions by @mvincentong in 186869
  • [flutter_tools] Refactor hostPlatform to use Abi.current() by @bkonyi in 185369
  • Allow selecting multi-digit device options by @faheemabbas766 in 186184
  • [flutter tool] propagate analytics env to sub-tools by @pq in 186780
  • Roll pub packages by @flutter-pub-roller-bot in 187471
  • [SwiftPM] Fix concurrent directory/file/symlink creation crashes by @bkonyi in 186953
  • [SwiftPM] Fix prefer_initializing_formals lint by @cbracken in 187502
  • fix: resolve issue #177379 by using lazy buildDirectory.dir() API in build.gradle template by @mboetger in 187127
  • Manual roll Dart SDK from d39850bf4a01 to 3b70b98fa7c0 by @jason-simmons in 187519
  • fix(tool): initialize asset isModified state on startup to prevent 2x hot restart slowdown by @kevmoo in 187488
  • [flutter_tools] Fix flutter create crash with SDK packages in bin/cache/pkg by @bdero in 187653
  • [flutter_tools] Hot reload Flutter GPU shader bundles by @bdero in 187654
  • Rewrite -d web-server hot reload/restart tests by @nshahan in 187453
  • [flutter_tools] Fix version cache git fallback performance regression by @bkonyi in 187400
  • [Android] Adding 30-second timeouts to adb stopApp and uninstallApp by @mboetger in 187876
  • Correct backoff retry time cap unit and add regression tests by @mboetger in 187250
  • [flutter_tools] Add doctor validator warning for multiple adb installations by @mboetger in 186031
  • Optimize SHA hash calculation of generated APK by @mboetger in 187184
  • Compare isModifiedAfter against the given time by @passsy in 187727
  • [gen_l10n] Exclude inherited keys from untranslated-messages-file by @bkonyi in 187950
  • [flutter_tools] Fix flakiness in widget_preview_detection_test by @bkonyi in 187938
  • Fail gracefully on Android AVD lock errors during startup by @mboetger in 187200
  • Roll pub packages by @flutter-pub-roller-bot in 187769
  • Fall back to source AndroidManifest.xml if AAPT fails or returns garbage by @mboetger in 187197
  • Prevent downgrading project.pbxproj when greater version number by @chika3742 in 186250
  • [flutter_tools] Format empty app template with latest dart format by @theprantadutta in 187443
  • Skip platform-specific plugin registration if no platforms enabled by @Mr-Pepe in 186304
  • [flutter_tools] Enforce that package-declared asset paths stay within the package by @adilburaksen in 187661
  • [flutter_tools] Bump dwds to 27.1.2 by @nshahan in 187951
  • Skip prefetch SwiftPM dependencies if the project hasn't been migrated to SwiftPM yet by @vashworth in 187206
  • Isolate compiled dill caches by TargetModel by @mboetger in 187253
  • Support --trace-systrace in release builds on Android by @mboetger in 186359
  • Roll pub packages by @flutter-pub-roller-bot in 188355
  • [Tool] Fix widget-preview crash by waiting for analysis server by @bkonyi in 187941
  • [flutter_tools] Migrate analysis_options.yaml to exclude build and platform directories by default by @bkonyi in 187940
  • [flutter_tools] Restrict release web asset server to the build output and source files by @adilburaksen in 187437
  • [flutter_tools] Fix native assets crash on Linux custom devices by @bkonyi in 188384
  • Filter macOS LogStore xcodebuild noise by @mvincentong in 186521
  • [widget-preview] Copy host web directory to widget preview scaffold by @bkonyi in 188595
  • Fix Xcode 27 lipo verification failure for Darwin frameworks by @okorohelijah in 188625
  • Remove some refs to package:intl by @mosuem in 188504
  • [flutter_tools] Use new ddc modules in test by @nshahan in 188240
  • [Tool] Tolerate malformed UTF-8 in process streaming decoders by @bkonyi in 188453
  • [flutter_tools] Track asset transformer dependencies for hot reload by @bkonyi in 187947
  • Properly await Dart Development Service shutdown with timeout by @bkonyi in 188387
  • [flutter_tools] Use DeviceHub.app for iOS simulator path on Xcode 27+ by @yashas-hm in 187910
  • Revert "[flutter_tools] Track asset transformer dependencies for hot reload" by @flutteractionsbot in 188751
  • Handle 'no permissions' adb device state by @mboetger in 187248
  • [flutter_tools] Fix crash in flutter create when pubspec.yaml is empty by @bkonyi in 188385
  • [Tool] Run re-entrant upgrade in original CWD by @bkonyi in 188794
  • Print a warning in flutter doctor when running on Intel Macs by @LongCatIsLooong in 188760
  • [flutter_tools] Track asset transformer dependencies for hot reload (Reland #187947) by @bkonyi in 188808
  • Add a macosArm64Only feature flag by @LongCatIsLooong in 188598
  • Resolve issue Catch am start failures with 'Error type' and prevent hang by @mboetger in 187196
  • [tool] Enable record_use experiment by default on all channels by @dcharkes in 188887
  • [flutter_tools] Fix test flakiness in widget_preview_detection_test.dart by @bkonyi in 188922
  • [flutter_tools] Throw DaemonException if app fails to start early by @bkonyi in 188921
  • [Tool] Gracefully handle WDAC/AppLocker blocks for impellerc by @bkonyi in 188452
  • [Tool] Fix null check operator crash in currentPackageConfig by @bkonyi in 188454
  • Print warnings on Intel Macs / targeting Intel Macs by @LongCatIsLooong in 188835
  • Add STRING_CATALOG_GENERATE_SYMBOLS = YES; by @AbdeMohlbi in 188163
  • Collect analytics on AI agent usage by @jmagman in 187630
  • Add javaHeapSpaceHandler to handle Gradle build failures due to Java … by @mozammal-hossain in 185127
  • [flutter_tools] Fix wireless ADB device discovery when serial contains spaces by @bkonyi in 187943
  • [flutter_tools] Prevent interactive device selection in machine mode by @bkonyi in 188267
  • [flutter_tools] Forcefully kill hung subprocesses 5 seconds after timeout by @bkonyi in 187178
  • [flutter_tools] Watch transitive #include headers for FragmentProgram hot reload by @bkonyi in 187945
  • [flutter_tools] Don't crash on non-UTF-8 plugin pubspec.yaml by @Aurelius51 in 188976
  • [beta] [flutter_tools] Fix ADB device listing output parsing regression by @bkonyi in 189446
  • [CP-beta] Skip emulator.getEmulators test (#189879) by @camsim99 in 189888
  • [CP-beta] Disable execution order shuffling for the flutter_tools upgrade_test suite by @walley892 in 189951
  • [CP-beta] Remove ancient tools:tools dep from android_sdk bundle by @cbracken in 190182
  • [CP-beta] Add java/gradle check when gradle crashes (#189997) by @mboetger in 190364

Documentation

#
  • Make multiple_windows follow repo analyzer rules by @goderbauer in 184753
  • adds linux impeller integration test for external textures by @gaaclarke in 186759
  • Adds external texture devicelab test for windows impeller by @gaaclarke in 187886

Other changes

#
  • Fixed freeze flow by @Piinks in 184793
  • Make windowing_test follow repo analyzer rules by @goderbauer in 184752
  • UberSDFContent refactoring and handle stroke miter limit for stroked rects by @b-luk in 184603
  • Update link for rolling forward to aligned Dart hash by @reidbaker in 184780
  • Remove linux_android_emu_unstable android_engine_vulkan_tests by @gmackall in 184787
  • Skip freeze check in the merge queue by @Piinks in 184854
  • Don't use git add -N in the sync engine workflow. by @eyebrowsoffire in 184882
  • Specify GitHub Repo in GH CLI calls for revert workflow. by @eyebrowsoffire in 184878
  • [macOS] Add move timer runloop mode to common modes by @knopp in 182295
  • [Impeller] Commands that don't specify their own viewports get the viewport of the render pass. by @chinmaygarde in 177473
  • Update autosubmit guide with the emergency label by @loic-sharma in 184993
  • Rebuild flutter tool skill by @vashworth in 184975
  • [web] Async rendering for benchmarks by @mdebbar in 184677
  • Disable multi-pack-index when calling flutter from Xcode by @vashworth in 184998
  • [SKILL] upgrade-browser by @mdebbar in 184894
  • Update customer tests.version by @Piinks in 185044
  • Fix gles interactive tests by @planetmarshall in 181389
  • Move widget_preview_scaffold into pub workspace by @jmagman in 182627
  • [fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition. by @rmacnak-google in 185042
  • Agent rule: Dart editing by @dcharkes in 185045
  • Use the flutteractionsbot token to push the release branch. by @eyebrowsoffire in 184833
  • Add oval drawing support to the SDF uber shader by @walley892 in 184903
  • Revert "Move widget_preview_scaffold into pub workspace" by @flutteractionsbot in 185164
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 185166
  • [Impeller] Provide std::optional getter for stroke property by @flar in 185112
  • Add dart_skills_lint to dev/tool with test and update readme instructions for new skills authors by @reidbaker in 185033
  • [Impeller] Fix morphology filter asymmetric dilation/erosion by @arcashka in 184913
  • Reverts "Roll Fuchsia Test Scripts from R2EllDf4DgBXVNuiN... to dQ4PjIJB5kZFU8Y32... (#185192)" by @auto-submit[bot] in 185199
  • Adds sdf rrects (and fixes opacity + color source) by @gaaclarke in 184999
  • add playground to test SDF primitive rendering under transforms by @flar in 185010
  • Change uber SDF to get pixel size (for AA) using euclidean distance rather than manhattan distance. by @b-luk in 184984
  • Rect constructors for circle bounds (MakeCircle/EllipseBounds) by @flar in 185110
  • Report an error if the git ls-tree command fails in the content_aware_hash script by @jason-simmons in 185170
  • Regenerate pubspec.lock by @bkonyi in 185290
  • Avoid use of direct string injection in GitHub Workflow "run" steps. by @eyebrowsoffire in 185301
  • In the dev/bots/analyze.dart script, obtain the relevant set of paths from Git instead of crawling the filesystem by @jason-simmons in 185058
  • Fix race condition in modifying release manifest. by @eyebrowsoffire in 185185
  • complex_layout_scroll_perf_macos_impeller__timeline_summary out of bringup by @jmagman in 185356
  • Update libimobiledevice and dependencies by @jmagman in 181932
  • platform_view_macos_impeller__start_up out of bringup by @jmagman in 185354
  • new_gallery_macos_impeller__transition_perf out of bringup by @jmagman in 185355
  • Update the text input triage process to route to platform teams by @loic-sharma in 185225
  • Fix timeout when hybrid_android_views fails MotionEvent recomposition by @gmackall in 185003
  • Reverts "Update libimobiledevice and dependencies (#181932)" by @auto-submit[bot] in 185385
  • Add more guidelines for code review bot by @chunhtai in 185367
  • Add ability to pass flags to et run by @camsim99 in 185109
  • Add await mechanism to setClipboard in android_semantics_integration test by @chunhtai in 185428
  • Adds script to run malioc locally by @gaaclarke in 185371
  • [fuchsia] Ask for only VMEX, not ambient-replace-as-executable. by @rmacnak-google in 185099
  • Made wide_gamut_macos only run on arm64 machines by @gaaclarke in 185486
  • Updating ios triage link by @LouiseHsu in 185437
  • Impeller: Recreate Vulkan transients on surface size change by @reinar in 185122
  • Check for overflow when computing the pixel buffer size for an animated PNG frame by @jason-simmons in 185442
  • update team-text-input pr triage link to filter out "waiting for response" label by @Renzo-Olivares in 185499
  • Handle hairline strokes in UberSDF by @b-luk in 184895
  • Made the MIT matcher not greedy and added a boost file matcher by @gaaclarke in 185491
  • Made MetalSDF a printed name when sdf's are enabled. by @gaaclarke in 185504
  • [iOS] Make it easier to run unit tests from CLI by @loic-sharma in 184617
  • Add a11y_assessment test and fixes issues by @chunhtai in 185362
  • Add pr filter for waiting for response label in a11y pr triage by @chunhtai in 185441
  • [ios]update ios-reviewers tags to include more files by @hellohuanlin in 185490
  • [github]fix git ls-file glob pattern in labeler.yml instruction by @hellohuanlin in 185495
  • Enable SPM for GoogleMobileAds by @okorohelijah in 185548
  • Implement square-like round superellipses with circular corners in the SDF uber shader by @walley892 in 185370
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 185633
  • Use null-aware elements in dev/devicelab/lib/framework/browser.dart by @alejandro-all-win-software in 184778
  • Adds debugging information to compiled metal shaders by @gaaclarke in 185629
  • Enable var_with_no_type_annotation lint. by @kallentu in 185215
  • Modify analyze.dart to have flags to run only or exclude each verification step. by @reidbaker in 185618
  • Don't use UberSDF for paint with incompatible blend modes by @b-luk in 184889
  • Fix sdfs being enabled for MacOS regardless of FLTEnableSDFs value by @b-luk in 185565
  • Adds integration test for the FLTEnableSDFs flag for iOS by @gaaclarke in 185637
  • [ Skill ] Adds a "Flutter PR Failure Collector" skill by @bkonyi in 185480
  • [fuchsia] Ask for VMEX only for JIT. by @rmacnak-google in 185440
  • Fix naming of hello_world_impeller_macos_sdfs by @b-luk in 185681
  • complex_layout_macos_impeller__start_up not bringup by @jtmcdole in 185684
  • Remove bringup property from android_engine_flags_* tests by @camsim99 in 185685
  • Fixes Impeller Frame capture scope for macOS. by @gaaclarke in 185656
  • Define the build_devtools_from_sources GN variable that is expected by current versions of the Dart SDK by @jason-simmons in 185683
  • Delete obsolete link in Debugging-the-engine.md by @andywolff in 185703
  • Fix broken local paths in docs/engine/testing/Testing-the-engine.md by @andywolff in 185701
  • [fuchsia] Place FFI callback stub into the package. by @rmacnak-google in 185307
  • Update triage links by @Piinks in 185714
  • [Impeller] Port a recent Vulkan swapchain fence waiting fix to the AHB version of the swapchain by @jason-simmons in 185763
  • Adapt the Metal shader library output list for debug versus release mode by @jason-simmons in 185798
  • Update customer testing version by @b-luk in 185830
  • Check cross imports test subfolders by @navaronbracke in 185493
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 185838
  • Handle symmetric rectangular and elliptical round super ellipses in the uber SDF renderer by @walley892 in 185695
  • Added my name to AUTHORS by @MohamedRisaldarTA in 185586
  • Ensure that vulkan_interface.h gets included before vk_mem_alloc.h by @mbrase in 185777
  • [Flutter GPU] Carry vec_size & columns in shader bundle uniform metadata by @bdero in 185879
  • [Impeller] Always use RGBA8888 format in the Skia bitmap used to draw a color glyph atlas by @jason-simmons in 185857
  • Makes it so ubersdf contents can be collapsed to clear colors. by @gaaclarke in 185760
  • And static library and impellerc binary to impeller_sdk by @lzm-build in 185996
  • engine: remove ToString() from Vector3/Vector4 and ColorToString() by @shivanshu877 in 185456
  • Run the DisplayList Primitive Rendering benchmarks in post-submit by @flar in 185865
  • Roll Dart SDK from 5dbfbf6487d2 to 28ef48bc86d5 (1 revision) by @mraleph in 186050
  • Roll pub packages by @flutter-pub-roller-bot in 186103
  • [Impeller] Clarify CoversArea behavior and change arg to IRect by @flar in 186094
  • [iOS][macOS] Handle Swift extensions in framework exports check by @cbracken in 186120
  • Adds ability to turn off sdfs with paint. by @gaaclarke in 186020
  • Remove Xcode version override for animation_with_microtasks_perf_ios__timeline_summary by @vashworth in 186150
  • Update DisplayList rendering unittests for new SufaceProvider API and to be able to test Impeller by @flar in 185820
  • Update Flutter logo image sources in README by @johnpryan in 186195
  • Roll pub packages by @flutter-pub-roller-bot in 186224
  • Reverts "Roll pub packages (#186224)" by @auto-submit[bot] in 186229
  • [iOS] Specify Swift version in Flutter Gallery by @cbracken in 186231
  • Roll pub packages by @flutter-pub-roller-bot in 186240
  • [iOS][macOS] ignore Swift Package Manager .build directories by @cbracken in 186227
  • Add logging to figure out jvm crashes for hot_mode_tests by @gmackall in 186107
  • doc: Unified Check-Run User manual by @ievdokdm in 186210
  • [triage] Add Flutter GPU as a triage team by @bdero in 186263
  • Optimize compatible DrawDiffRoundRect calls to use DrawRoundRect by @b-luk in 186203
  • Moves wide_gamut_macos to arm64 by @gaaclarke in 186214
  • [Impeller] Vulkan: don't drop user-supplied viewport X, Y, and depth range by @bdero in 185886
  • Check for absolute paths in skills. by @reidbaker in 185632
  • Convert rebuilding-flutter-tool script to dart by @vashworth in 185089
  • [ImpellerC] Write a depfile when --shader-bundle is in use by @bdero in 186341
  • [ci] update no-response workflow to also look for old label name in e… by @chunhtai in 186373
  • [Impeller] GLES: lazily allocate texture mip levels on first per-level write by @bdero in 186302
  • [Flutter GPU] Allow customizing the vertex layout on a RenderPipeline by @bdero in 186310
  • Update iOS scenario app test goldens to match changes from 182662 by @jason-simmons in 186390
  • Removes SDF option for macOS (always enabled) by @gaaclarke in 186265
  • Add 'cp: review' label to the manual cherrypick process by @loic-sharma in 186158
  • [Flutter GPU] Allow allocating multi-mip textures and overwriting specific (mip, slice) levels by @bdero in 185890
  • Roll pub packages by @flutter-pub-roller-bot in 186274
  • Harden dev tooling scripts against command injection and log leaks by @ishaq2321 in 186076
  • Roll pub packages by @flutter-pub-roller-bot in 186418
  • Update the Flutter Gallery web app template files to support running with Wasm by @jason-simmons in 186268
  • [Impeller] Namespace user-supplied shaders to prevent entrypoint collisions by @bdero in 186332
  • [web] Fix untriaged issues link label by @mdebbar in 186465
  • Update dart_skills_lint dependency to e449787 and optimize skills validation test by @reidbaker in 186528
  • Removes bringup from passing macos/sdf tests by @gaaclarke in 186527
  • [gn] Fix typo in comment by @cbracken in 186549
  • [Impeller] Canonicalize uniform block instance names for the GL backends by @bdero in 186394
  • [Android][macOS][gn] support both x64/arm64 macOS host clang toolchains by @cbracken in 186660
  • Testing autosubmit bot -- updating testowners by @gaaclarke in 185226
  • [macOS][gn] Use arm64 clang in copy_info_plist.py on arm64 Macs by @cbracken in 186661
  • [macOS][gn] Use arm64 clang in sanitizer_suppressions.sh on arm64 Macs by @cbracken in 186663
  • [macOS][gn] Use arm64 clang in verify_exported.dart on arm64 Macs by @cbracken in 186664
  • Fix broken link in impeller golden_tests readme by @andywolff in 186470
  • [macOS][gn] Use arm64 clang in generate_coverage.py on arm64 Macs by @cbracken in 186662
  • Roll pub packages by @flutter-pub-roller-bot in 186721
  • Update the list of binaries in the code signing verification test to include new Dart snapshots by @jason-simmons in 186754
  • adds linux impeller hello world integration test by @gaaclarke in 186715
  • Update Vulkan enum values by @chingjun in 186694
  • Roll pub packages by @flutter-pub-roller-bot in 186823
  • Upgrade iOS version by @okorohelijah in 186889
  • Add primitive shadows to rendering benchmark by @flar in 186779
  • Fix a potential buffer overflow in the animated PNG decoder when parsing malformed fdAT chunks by @jason-simmons in 186700
  • Fix some issues in the integration between EmbedderExternalViewEmbedder and Impeller by @jason-simmons in 184905
  • Saves a DeviceHolderVK with the CommandPoolVK by @gaaclarke in 186749
  • opts all macos into wide gamut by @gaaclarke in 186277
  • [Impeller] Add golden harness support to the renderer test layer by @bdero in 186735
  • Disables embedder_tests.cm for fuchsia by @gaaclarke in 186969
  • [Impeller] Retire Y-coord-scale plumbing by flipping GLES at the vertex stage by @bdero in 186556
  • Update batch release doc to reflect latest workflow by @chunhtai in 186979
  • Build script updates for syncing engine sources and building artifacts on linux-arm64 by @jason-simmons in 186917
  • Remove use of deprecated copy_trees. by @rmacnak-google in 187091
  • [Engine] Fix silent buffer mismatch bug in FML Win32 CommandLineFromPlatform by @bkonyi in 187120
  • Filter out a: text input from team-framework PR triage by @Renzo-Olivares in 187129
  • [Flutter GPU] Flutter GPU ShaderLibrary in-place reload for shader hot reload by @bdero in 186793
  • [Flutter GPU] Add explicit draw counts by @bdero in 186639
  • Reverts "[Flutter GPU] Add explicit draw counts (#186639)" by @auto-submit[bot] in 187170
  • Add a tag to the Linux platform properties in .ci.yaml that specifies x64 CPUs by @jason-simmons in 187124
  • Update CI with newer android sdk package by @jesswrd in 187143
  • [Flutter GPU] Inject per-backend defines into shader bundle compilation by @bdero in 187081
  • [Flutter GPU] Add explicit draw counts (reland) by @bdero in 187192
  • Disable analyzer formatting check by @Piinks in 187205
  • [Impeller] Add block-compressed texture format support (BC, ETC2, ASTC) by @bdero in 187077
  • [Flutter GPU] Add r32Float and remove Apple-only XR pixel formats by @bdero in 187069
  • Turned on impeller by default on macos by @gaaclarke in 186546
  • [Impeller] Support instanced rendering across all backends by @bdero in 186653
  • Update the Curl CIPD package in .ci.yaml to version 8.20.0 by @jason-simmons in 187133
  • Shares opengles golden context by @gaaclarke in 187243
  • Handle complex RSE rendering in the uber SDF pipeline by @walley892 in 186434
  • [Impeller] Remove the y_coord_scale Y-flip plumbing by @bdero in 187224
  • [Impeller] Ensure that the TextureGLES destructor cleans up all objects that it holds including the sync fence by @jason-simmons in 187216
  • Roll pub packages by @flutter-pub-roller-bot in 187321
  • Brings linux tests out of bringup. by @gaaclarke in 187271
  • add sdf golden variants for OpenGL by @walley892 in 187246
  • Move dart-lang/ai to a top level third party dependency in engine by @jakemac53 in 187268
  • Revert "Move dart-lang/ai to a top level third party dependency in en… by @cbracken in 187370
  • Remove use of deprecated API related to removal of the VM isolate. by @rmacnak-google in 187013
  • Reland "Move dart-lang/ai to a top level third party dependency in engine (#187268)" by @jason-simmons in 187378
  • Add vector_math to Framework triage by @stuartmorgan-g in 187389
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 187380
  • iOS: update provisioning profile for 2026-2027 cert by @okorohelijah in 187280
  • [skia] Update gni file list name hsw -> ml3 by @kjlubick in 184892
  • [Impeller] Use glVertexAttribDivisor on GLES3 and glVertexAttribDivisorEXT on GLES2 with the extension by @jason-simmons in 187313
  • [Impeller] Fix GLES command submission status before context is current by @bdero in 187293
  • [Impeller] Allow attaching specific texture mip levels and slices by @bdero in 187066
  • [Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR) by @bdero in 187281
  • Revert "[Impeller] Allow attaching specific texture mip levels and slices" by @flutteractionsbot in 187445
  • Update Flutter documentation links in flutter_console.bat by @Lukes-Lair in 187354
  • Adds macro for fragment shaders to support flutter <= 3.44 by @gaaclarke in 187316
  • Add android_hardware_smoke_test integration tests by @andywolff in 187130
  • Add new file patterns for team-web labeler by @mdebbar in 187397
  • docs: update Impeller advanced blend docs for framebuffer fetch by @shivanshu877 in 185457
  • [skia] Update image deserial proc by @kjlubick in 185041
  • [Impeller] Reland: Allow attaching specific texture mip levels and slices by @bdero in 187470
  • Add a skill for flake analysis by @gmackall in 187530
  • Fix unintentionally joined path contours by @b-luk in 187522
  • Add vector_math to package issue template by @stuartmorgan-g in 187536
  • Add step to bootstrap Flutter tool in coverage workflow by @guidezpl in 187199
  • Roll Dart SDK to Dart 3.13 beta2 by @iinozemtsev in 187555
  • [Impeller] Increase the precision of the IPSampleWithTileModeOES coords parameter to match the input coordinates in the tiled_texture_fill_external shader by @jason-simmons in 187545
  • Add android 37 platform and build tools to script for android cipd bundle creation by @reidbaker in 187571
  • Use swift demangle to verify internal Swift symbols by @LongCatIsLooong in 186835
  • Add updating-android-sdk agent skill for rolling Android SDK in CIPD by @reidbaker in 187576
  • Log stdout in adb.dart by @gmackall in 187531
  • [Impeller] Wait for the Vulkan device to become idle before destroying Vulkan objects in the AHBSwapchainImplVK destructor by @jason-simmons in 187477
  • Remove embedded_android_views_integration_test.dart by @gmackall in 187465
  • Always run coverage upload step, even if a single test fails by @guidezpl in 187614
  • [Flutter GPU] Add instanced draw support by @bdero in 187359
  • [Flutter GPU] Document the formats.dart enums by @bdero in 187628
  • Add bare, reidbaker, and android agents by @reidbaker in 187588
  • Rename Dart_LoadELF2 back to Dart_LoadELF. by @rmacnak-google in 187677
  • Add docs on bumping Dart by @Piinks in 187540
  • Use workspace resolution for the meta package in dev/integration_tests/record_use_test_package by @jason-simmons in 187733
  • Update triage links by @Piinks in 187709
  • [Flutter GPU] Allow attaching specific texture mip levels and slices for rendering by @bdero in 187685
  • Updates dia_dll.py to support vs2026 by @gaaclarke in 187714
  • [Impeller] Retry uncompressed when fixed-rate compression is exhausted by @rlueders in 187586
  • Add android-agent agent.json and update reidbaker-agent skills by @reidbaker in 187746
  • [Impeller] Remove unused DeviceHolderVK reference from CommandBufferVK by @jason-simmons in 187705
  • Add core-packages to ecosystem triage by @stuartmorgan-g in 187796
  • Ensure that directory names are typed as strings in the CIPD package YAML file generated by merge_and_upload_debug_symbols.py by @jason-simmons in 187813
  • [Impeller] Allow sampling textures with manually-uploaded mip levels by @bdero in 187729
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 187884
  • [Flutter GPU] Add blit operations by @bdero in 187289
  • [Flutter GPU] Expose ASTC HDR texture formats by @bdero in 187715
  • Convert the PNG signature constant in APNGImageGenerator to a std::array and use it in the APNG tests by @jason-simmons in 187930
  • Enable unit tests for compilation of compute shaders on non-metal backends by @planetmarshall in 179683
  • [Impeller] Fix dirty-range race in DeviceBufferGLES uploads by @bdero in 187932
  • [Flutter GPU] Add surface API for framework presentation by @bdero in 187358
  • [Flutter GPU] Make ShaderLibrary.fromAsset asynchronous by @bdero in 187716
  • Improve RenderTargetCache docs by @loic-sharma in 187893
  • Rework docs for flutter/packages changelogs by @stuartmorgan-g in 187666
  • In the APNG decoder, validate the chunk data length before calling GetChunkSize to avoid potential overflow in the chunk size calculation by @jason-simmons in 187949
  • Exclude fuchsia-sdk/sdk/.build-id from the builder cache archive by @jason-simmons in 187826
  • feat: linux_analyze in a workflow by @jtmcdole in 187889
  • Add FlatBuffers Verifier checks to Impeller asset loading by @jortles in 187878
  • Adds arm64 variant of impeller devicelab tests for windows. by @gaaclarke in 188053
  • [Impeller] Move queue submission into a callback that is invoked by FenceWaiterVK::AddFence only if it can accept the fence by @jason-simmons in 187761
  • Only allow dependabot to autoupdate GitHub-owned actions by @jmagman in 187936
  • Bump the all-github-actions group across 1 directory with 3 updates by @dependabot[bot] in 188086
  • Manual Dart roll from f6c31f4c3a63 to 824b4b48b6d4 by @jason-simmons in 188023
  • Remove canvaskit_cipd_instance from DEPS by @jason-simmons in 188073
  • Add note about magnifier issue when using transparent HCPP pv by @gmackall in 187753
  • Adds tests for disabling macos impeller by @gaaclarke in 188132
  • Add entitlements.txt entries for new dart sdk binaries by @LongCatIsLooong in 188133
  • Add agent skills for orchestrating cherry-picks to stable and beta channels by @bkonyi in 187860
  • Fix spelling mistake in documentation (wether → whether) by @haiderqadir in 186141
  • Bump actions/checkout from 6.0.3 to 7.0.0 in the all-github-actions group by @dependabot[bot] in 188350
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 188331
  • No entitlements for snapshots by @LongCatIsLooong in 188390
  • clean up skills paths for reidbaker-agent by @hellohuanlin in 188287
  • Add other types of platform view tests to android_hardware_smoke_test by @andywolff in 188244
  • Reverts "Roll Dart SDK from 1a4e3749f9a0 to f58daef1888e (2 revisions) (#188484)" by @auto-submit[bot] in 188509
  • [Android] Add integration test for SystemUiMode transitions by @dbebawy in 187269
  • hello_world_windows_impeller bringup->false by @gaaclarke in 188047
  • [web] Reorder CanvasKit JS files in BUILD.gn to match Skia by @harryterkelsen in 188511
  • ci: add workflow to reject PRs targeting the main branch by @jtmcdole in 188528
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 188536
  • [Impeller] Add anisotropic filtering support to samplers by @bdero in 188056
  • build(deps): remove discontinued pedantic and device_info packages by @kevmoo in 188399
  • Bring windows impeller tests out of bringup by @gaaclarke in 188582
  • [a11y][VPAT] Update toggle button color in a11y assessment app by @hannah-hyj in 188464
  • [macOS] Remove warning when running with merged threads. by @knopp in 185673
  • fix(ci): download correct engine artifacts for tree-analyze on engine PR by @jtmcdole in 188650
  • Verify shader bundle FlatBuffer before access in flutter_gpu ShaderLibrary by @adilburaksen in 188252
  • [VPAT] Update a11y assessment app FAB example to announce value change when it's updated. by @hannah-hyj in 188466
  • [Flutter GPU] Honor the enable argument in RenderPass.setDepthWriteEnable by @bdero in 188715
  • [Flutter GPU] Add Texture.fromImage to wrap a ui.Image texture by @bdero in 188605
  • Use revert label instead of revert_wf by @eyebrowsoffire in 188639
  • Android_hardware_smoke_test: Enable pixel exact local file comparator to read goldens from flutter asset URI by @andywolff in 188587
  • Moves test ownership validation to flutter/flutter by @gaaclarke in 188655
  • Add Impeller+OpenGLES startup benchmark for mokey by @xiaowei-guan in 188495
  • ci: extract wait-for-engine-build logic into a reusable composite action by @jtmcdole in 188748
  • [windows]: adjusts uniform buffers to hit hlsl optimization by @gaaclarke in 188538
  • [Impeller] Add a flat VertexAttributeFormat for vertex inputs by @bdero in 188684
  • Roll pub packages by @flutter-pub-roller-bot in 188773
  • [Impeller] Fix potential overflow when allocating buffers at the next power of two size by @jason-simmons in 188742
  • feat(skills): Add shepherd-prs skill for managing approved external contributor PRs by @harryterkelsen in 188534
  • [Impeller] Compute dispatch takes 3D workgroup counts and honors the shader local_size by @bdero in 188601
  • [Impeller] Share a single ContextGLES among all PlaygroundImplGLES by @flar in 188080
  • Update triage links for material_ui and cupertino_ui --> Design triage by @Piinks in 188567
  • [ci] Increase test timeout for Mac_x64 build_tests shards by @bkonyi in 188804
  • Hide draft PRs from the triage list by @robert-ancell in 188885
  • [Flutter GPU] Load a ShaderLibrary from shader bundle bytes by @bdero in 188596
  • Roll pub packages by @flutter-pub-roller-bot in 189009
  • ci: udpate wait-for-engine-build composite action to cocoon by @jtmcdole in 189020
  • Fix potential race condtion in android_semantics_integration_test by @chunhtai in 188830
  • Skip locked issues in no-response check by @guidezpl in 188950
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 189025
  • Bump goldctl by @Piinks in 189030
  • fix android semantics integration test hangs due to postframe callback by @chunhtai in 189043
  • Bump customer testing version for new registrants by @Piinks in 189070
  • Roll pub packages by @flutter-pub-roller-bot in 189078
  • Roll Fuchsia Test Scripts from tRDjAwjqDhSv0B666... to s5_gZFJ8De9AJalTw.. by @zijiehe-google-com in 189072
  • Android_hardware_smoke_test: Migrate to AGP 9 by @andywolff in 189082
  • vscode: add missing unicode.h by @cbracken in 189102
  • Roll Dart SDK to Dart 3.13 beta3 by @iinozemtsev in 189122
  • fix(ci): harden some workflows by @jtmcdole in 189087
  • [flutter-3.47-candidate.0] Sync engine.version to bbd15867c003dc66e678cb3c218649fa8bf914f2 by @flutteractionsbot in 189216
  • [CP-beta]UberSDF rect handling for thin (line-like) rectangles by @flutteractionsbot in 189517
  • [CP-beta]Move a few benchmarks from x64 Intel Macs to ARM by @flutteractionsbot in 189399
  • [CP-beta]UberSDF thin roundrect handling by @flutteractionsbot in 189529
  • [CP-beta]Implement UberSDF lines to replace LineContents-based AA lines by @flutteractionsbot in 189537
  • [CP-beta]Increase number of 'Mac tool_integration_tests' subshards from 5 to 10 by @flutteractionsbot in 189743
  • [CP-Beta] Fix Rect::ExpandToMinTransformedSize to return the input rectangle when no expansion is needed, and remove 1-pixel roundrect to rect simplification by @b-luk in 189885
  • Bump Dart version for 3.47.0-0.2.pre release by @camsim99 in 189933
  • update engine.version for 3.47.2 by @walley892 in 190004
  • [flutter-3.47-candidate.0] Sync engine.version to effb186f3172afa211230de73d83af2788e44324 by @flutteractionsbot in 190247
  • [CP-beta]Eliminate some early returns in uber_sdf.frag to fix broken UberSDF AA on Windows by @flutteractionsbot in 190378
  • [cp-beta] [macOS] Resume app lifecycle on becomeActive to avoid frozen UI after occlusion by @cbracken in 190435
  • [flutter-3.47-candidate.0] Update Flutter DEPS to Dart 171019fea4e9662698a006b1747bf78bfecbd041 by @flutteractionsbot in 190568
  • [flutter-3.47-candidate.0] Sync engine.version to f88005a259ba379c2c1156178aa1870936be7b7f by @flutteractionsbot in 190585

New contributors

#
  • @trizin made their first contribution in 184057
  • @mahi-ma made their first contribution in 184555
  • @kyungilcho made their first contribution in 183555
  • @aNOOBisTheGod made their first contribution in 184528
  • @nvi9 made their first contribution in 184249
  • @andeart made their first contribution in 183455
  • @master-wayne7 made their first contribution in 184877
  • @tjoengCRC made their first contribution in 184335
  • @mozammal-hossain made their first contribution in 184051
  • @solvejet-team made their first contribution in 184332
  • @arcashka made their first contribution in 184913
  • @reinar made their first contribution in 185122
  • @tomayac made their first contribution in 184149
  • @zawhtetnaing10 made their first contribution in 180491
  • @alejandro-all-win-software made their first contribution in 184778
  • @JhonaCodes made their first contribution in 182663
  • @jeis4wpi made their first contribution in 185294
  • @MohamedGawdat made their first contribution in 185626
  • @xxxOVALxxx made their first contribution in 182263
  • @shivanshu877 made their first contribution in 185398
  • @MohamedRisaldarTA made their first contribution in 185586
  • @DaveT1991 made their first contribution in 184851
  • @apoorvdarshan made their first contribution in 182546
  • @briskbase-projects made their first contribution in 185812
  • @samanzamani made their first contribution in 184275
  • @lzm-build made their first contribution in 185996
  • @spandan3001 made their first contribution in 185250
  • @Nicoreia made their first contribution in 186320
  • @AlexEduV made their first contribution in 186125
  • @BilalRehman08 made their first contribution in 186375
  • @MatejLNCD made their first contribution in 183838
  • @momshaddinury made their first contribution in 185271
  • @NadeemIqbal made their first contribution in 186642
  • @CHOIgoung made their first contribution in 186353
  • @temoorx made their first contribution in 185481
  • @Lukes-Lair made their first contribution in 187354
  • @puneetkukreja98 made their first contribution in 186571
  • @Servall4 made their first contribution in 187288
  • @rlueders made their first contribution in 187586
  • @ishivamg made their first contribution in 187368
  • @jortles made their first contribution in 187878
  • @adilburaksen made their first contribution in 187661
  • @jlemanski1 made their first contribution in 182047
  • @haiderqadir made their first contribution in 186141
  • @yashas-hm made their first contribution in 187910
  • @AngeloAvv made their first contribution in 187034
  • @lukluca made their first contribution in 187852
  • @richyo-codes made their first contribution in 188476
  • @fallintoplace made their first contribution in 187353

Full Changelog: https://github.com/flutter/flutter/compare/3.44.0...3.47.0-0.4.pre