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
frictionFactorfunction by @AbdeMohlbi in 184509 - Remove last material dependency from cupertino tests by @Piinks in 184781
-
Remove unused variable in
ProcessTextPlugin.javaby @AbdeMohlbi in 184161 - [Dot shorthands] Finish examples/api migration by @loic-sharma in 183967
-
SelectableRegioncan 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
childis nullable inAnimatedTransitionBuilderby @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
-
AnimationStylemethods 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
clipBehaviorparameter toAnimatedCrossFadeby @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.dartby @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.dartby @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.CanRenderTextWithImpellerMetaltest breakage by @b-luk in 186262 -
Migrate focus_node.unfocus.0.dart to use
RadioGroupby @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/servicesby @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
InteractiveViewermemory leak from undisposedCurvedAnimations 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/detachby @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
dependOnInheritedWidgetOfExactTypedocumentation 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
MediaQueryDatadocs 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
Actionswidget 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.overlayChildLayoutBuilderover 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_parameterslint. 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
SemanticsObjectcrash 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.javafile 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
childrenInHitTestOrderby @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
ResourceExtractorby @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.valueOfby @AbdeMohlbi in 186628 - [Android] Reset system UI visibility flags when setting edge-to-edge mode by @camsim99 in 187207
-
Remove unused code in
FlutterPluginUtils.ktby @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_ENABLEDflag 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_wasmin addition todart:_wasmto convert betweenJSAnyandWasmExternRef?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_wasmin 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-exampleflag toflutter cleanfor package example projects by @andeart in 183455 -
Hold startup lock until after
pub getto 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-hcppflag 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
currentMainUrifromgenerateMainDartWithPluginRegistrantby @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-binarybeing 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 createcrash 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-serverhot 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.pbxprojwhen 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 doctorwhen 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:toolsdep fromandroid_sdkbundle by @cbracken in 190182 - [CP-beta] Add java/gradle check when gradle crashes (#189997) by @mboetger in 190364
Documentation
#-
Make
multiple_windowsfollow 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_testfollow 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_testsby @gmackall in 184787 - Skip freeze check in the merge queue by @Piinks in 184854
-
Don't use
git add -Nin 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
flutteractionsbottoken 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_viewsfailsMotionEvent recompositionby @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 runby @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_annotationlint. 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_testsby @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
DrawDiffRoundRectcalls to useDrawRoundRectby @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 inputfromteam-frameworkPR 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.dartby @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_impellerbringup->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
revertlabel instead ofrevert_wfby @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::ExpandToMinTransformedSizeto 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
Was this page's content helpful?
Unless stated otherwise, the documentation on this site reflects Flutter 3.44.7. Page last updated on 2026-08-10. View source or report an issue.