Skip to main content

Flutter 3.50.0 release notes

Release notes for Flutter 3.50.0.

This page has release notes for Flutter 3.50.

What's changed

#

Framework

#
  • Expose LinuxWindowRegistrar on _window_linux.dart in order to better support out of tree LinuxWindowingOwners by @mattkae in 188917
  • Adds a missing await to a FutureOr by @FMorschel in 189198
  • Assert TextStyle height is not NaN by @mvincentong in 186617
  • [web] Preserve text field focus across tab switches by @flutter-zl in 188738
  • Fix broken listener code in WindowScope by @mattkae in 189208
  • [android_hardware_smoke_test] Synchronize platform view compositing by @andywolff in 189151
  • Fix PopupWindowControllerLinux missing WindowControllerLinux implementation by @mattkae in 189189
  • [hooks] Roll record_use to 1.0 and unpin by @dcharkes in 189366
  • Add more 0x0 size tests part 4 by @ahmedsameha1 in 185187
  • [Impeller] Playground expanded role by @flar in 188889
  • refactor: remove material import from scrollable_semantics_test and selectable_region_context_menu_test by @rkishan516 in 186611
  • Fix stale eagerWinner reference in GestureArenaManager when rejected before arena close by @ishaq2321 in 187008
  • add @nonVirtual to RenderObject.attached, fix WidgetTester.hasRunningAnimations by @LongCatIsLooong in 186832
  • Relocate cupertino samples that were under widgets/ by @Piinks in 188876
  • Fix lower DragTarget not being recognized in overlapping targets by @Aurelius51 in 188979
  • Remove unnecessary value key hack in key.dart by @AbdeMohlbi in 189291
  • Add blendMode parameter to RawImage and RenderImage by @ishaquehassan in 185938
  • [iOS] Fix missing nil checks and improve SemanticsObject bridge API by @cbracken in 189630
  • Add AutofillHints.emailOTPCode for Android AUTOFILL_HINT_EMAIL_OTP by @jameskrupnik in 188123
  • widgets layer re-export ScrollCacheExtent by @chunhtai in 189483
  • Fix non-independant tests in draggable_test.dart by @ValentinVignal in 186898
  • Treat package:stack_trace async-gap marker as asynchronous suspension by @gabrimatic in 185791
  • Add BaseWindowController.isDestroyed flag by @mattkae in 189061
  • Fix null-deref/double-dispose in StretchingOverscrollIndicator (#189589) by @mbcorona in 189667
  • [flutter_test][Test cross imports] Move TestWidgetsApp to flutter_test by @navaronbracke in 189435
  • Support custom BoxBorder animation in BoxDecoration by @gabrimatic in 186348
  • [iOS] Remove dead parameters and no-op overrides by @cbracken in 189754
  • Add OverlayPortal.overlayChildLayoutBuilder sample by @loic-sharma in 188930
  • Add barrierBuilder support to showDialog and showGeneralDialog by @Mairramer in 187992
  • Clean android engine/embedding tests by @AbdeMohlbi in 189276
  • Clear cached directional focus history on a non-directional focus request by @elliette in 187957
  • [examples] Use super parameters in missed spots by @srawlins in 186194
  • Move WindowManager outside of WidgetsApp by @knopp in 188866
  • [Impeller]Use the IO context for OpenGL program setup by @xiaowei-guan in 185723
  • Rename RegularWindow* to Window* in the windowing API + rename sizedToContent to shrinkWrap in the windowing API by @mattkae in 189363
  • docs(contributing): add git worktree and rebase workflow guide by @jtmcdole in 189992
  • Roll pub packages by @flutter-pub-roller-bot in 189872
  • Run Mac golden tests on ARM bots by @jmagman in 189465
  • Scope SemanticsTester per test in scrollable_semantics_test by @mbcorona in 189800
  • Use super-parameter in two_dimensional_utils by @srawlins in 189957
  • Remove no shuffle from flutter_driver extension_test.dart and mock flutter.process channel by @ValentinVignal in 187559
  • Fix TreeSliver first node clipping during expand/collapse animation by @mbcorona in 188626
  • Clarify CustomScrollView use cases by @awnoa in 189692
  • Fix web context-menu client lifecycle in SelectableRegion by @davidmigloz in 189587
  • Avoid unnecessary work in BoxDecoration and RenderPhysicalModel by @bernaferrari in 187891
  • Update widget location tracking to use the new generalized api by @schultek in 189725
  • Fix NestedScrollView example crash when switching tabs on desktop by @gabrimatic in 186993
  • [test cross imports] flutter_test cross import fixes by @navaronbracke in 189265
  • Roll pub packages by @flutter-pub-roller-bot in 190259
  • Return null from RenderProxyBoxMixin.computeDryBaseline when the child has no baseline by @Yusufihsangorgel in 189723
  • Add ShapeBorder hit test fast paths by @bernaferrari in 187962
  • Migrate layers example to material_ui by @justinmc in 190237
  • fix: text selection two handles directionality. by @muhammadkamel in 179928
  • Support reduceMotion accessibility feature in MediaQuery by @cbracken in 190287
  • [web] Autofill all AutofillGroup fields in semantics mode by @flutter-zl in 187108
  • iOS: Hardcode rendering API to Metal in tests (no-op) by @cbracken in 190422
  • [record_use] Migrate IconTreeShaker to package:record_use by @dcharkes in 190225
  • Bumps text gamma on windows to match skia. by @gaaclarke in 190477
  • fix: update on_message_ to nullptr after window destroy so that dart gets destroy message by @rkishan516 in 185807
  • Update Widgets Localizations from Translation Console by @QuncCccccc in 190503
  • render proxy box now defaults baseline calculation to null by @chunhtai in 190269
  • Move examples of flutter/widgets widgets out from flutter/material by @dkwingsmt in 189532
  • [web] Use thread local strike caches in skwasm by @ColeSpringer in 190048
  • doc: fix typo in see also section for PrimaryScrollController.maybeOf by @chika3742 in 190386
  • Document super call order for State.didChangeDependencies by @fahaddoc in 185945
  • Add dot shorthands support for focus order by @navaronbracke in 190062
  • [Android] Add numeric-password variation to TextInputType (embedding) by @AlexV525 in 190207
  • iOS: Remove the IOSRenderingAPI selection code by @cbracken in 190636
  • Remove outdated TODOs about toString issues withOffset by @AbdeMohlbi in 190138
  • Preserve SelectableRegion scope across context menu rebuilds by @mvincentong in 186553
  • Add service extension getSemanticsTree by @hannah-hyj in 189635
  • Fix Hero size changes during Navigator resize by @MTtankkeo in 190025
  • Add text rendering test to engine_integration_golden_test by @b-luk in 190678
  • Update instructions for creating a tooling redirect by @parlough in 190324
  • Fix non-independant tests in binding_test.dart by @ValentinVignal in 188963
  • [cross imports] flutter/test/widgets/app_test.dart, flutter/test/widgets/inherited_test.dart, flutter_test/test/accessibility_window_test.dart by @navaronbracke in 190650
  • Fixes popuntilwithresult drops results by @chunhtai in 190596
  • [web] Keep the keyboard up during an iOS caret drag by @flutter-zl in 190014
  • Adds benchmark for windows shadow text. by @gaaclarke in 190861
  • Document event ordering for HitTestBehavior.translucent by @binSaed in 190163
  • Revert: [web] Keep the keyboard up during an iOS caret drag by @flutteractionsbot in 190926
  • Offload blocking work in ProcessTextPlugin to the background by @xRossKoh in 189823
  • Add batch3 a11y_assessment for vpat by @chunhtai in 189042
  • Fix accessibility_inspector service extensions map mutability by @hannah-hyj in 190888
  • Started generating the windows platform for macrobenchmarks by @gaaclarke in 190932
  • RawTooltip respects AnimationStyle updates and reverseCurve by @victorsanni in 190889
  • Started caching text shadows by content. by @gaaclarke in 190681
  • Toggleable reaction duration respects overrides by @victorsanni in 190857
  • [analysis] Reland "Added initial implementation of the flutter_analyzer_plugin (#175679)" by @bkonyi in 191022
  • Migrate internal import rules to analyzer plugin by @bkonyi in 191036
  • Migrate test rules to analyzer plugin by @bkonyi in 191038
  • [cross_imports] navigator_restoration_test.dart by @navaronbracke in 190996
  • Migrate 5 iOS UI driver tests to Mac Simulators by @okorohelijah in 190679
  • [analysis] Migrate verifyGoldenTags to flutter_analyzer_plugin by @bkonyi in 191122
  • Normalize lerped BoxConstraints with overshooting t values by @victorsanni in 190971
  • Treat CRLF like LF in LicenseEntryWithLineBreaks by @motucraft in 189336
  • [analysis] Migrate issue and repository link syntax rules to flutter_analyzer_plugin by @bkonyi in 191127
  • [analysis] Clean up legacy custom rules and private-lints in analyze.dart by @bkonyi in 191128
  • Add missing Widget of the Week videos to widget API docs by @piedcipher in 191070
  • Add numeric-password variation to TextInputType.numberWithOptions by @AlexV525 in 190637
  • Only render views that need to be rendered (with external texture & platform view support) by @9AZX in 179874
  • Revert: Only render views that need to be rendered (with external texture & platform view support) by @flutteractionsbot in 191252
  • Remove dead HTMLCanvasElement declaration in packages/flutter by @kevmoo in 191165
  • Add useLogicalPixels to ResizeImage for logical pixel cache sizing by @koji-1009 in 184549
  • Cache BoxShadow paints in _BoxDecorationPainter by @fa0311 in 190194
  • Improve initial size and placement logic for popups and tooltips on Linux by @mattkae in 189994
  • Revert: Cache BoxShadow paints in _BoxDecorationPainter by @flutteractionsbot in 191346
  • [input] Migrate fuchsia.ui.pointerinjector to TouchSource by @caroqliu in 190855
  • Update docs and links for decoupling by @Piinks in 191231
  • Fix Actions.handler to forward the intent type to maybeFind by @omar-alshyokh in 191052
  • Add SliverClipRect and SliverClipRRect by @manu-sncf in 179003
  • Do not inject 'type' and 'method' into service extension responses by @bkonyi in 190946
  • [web] Unskip decoration image lerp tests by @harryterkelsen in 191426
  • SliverFillRemaining extends beyond viewport size when fillOverscroll is true by @victorsanni in 191236
  • Optimize JSONMessageCodec UTF-8 conversion by @FelixMittermeier in 190529
  • Don't size or offset the Android platform view before it is laid out by @wilyan09007 in 190895
  • Revert: [web] Unskip decoration image lerp tests by @flutteractionsbot in 191462
  • Document that programmatic TextEditingController changes do not run input formatters by @binSaed in 190166
  • [Impeller] fix position of cached single glyph text shadows by @flar in 191325
  • Revert "[input] Migrate fuchsia.ui.pointerinjector to TouchSource (#190855) by @caroqliu in 191509
  • Remove Material/Cupertino references in error messages by @justinmc in 191305
  • Revert "Improve initial size and placement logic for popups and toolt…ips on Linux (#189994) by @mattkae in 191498
  • Remove outdated test todo about dither property of Paint by @AbdeMohlbi in 190936
  • Skip removed observers during app exit requests by @kyungilcho in 190343
  • Clarifies blur group optimization by @gaaclarke in 191613
  • [cupertino] Remove unused parameters from constructors of generic classes by @srawlins in 191398
  • Refactors try to avoid unawaited_return_in_try_block case by @FMorschel in 191129
  • Fix enum instances comparison to use equality == since dart has the correct behavior now by @AbdeMohlbi in 191537
  • Lerp HSVColor and HSLColor hue along the shortest arc by @glitchfl in 191186
  • Tolerate floating-point rounding in paintImage centerSlice assertion by @gabrimatic in 185789
  • [Android] Remove old InputType constructor from embedding by @AlexV525 in 191244
  • Handle the case where a window doesn't have a title set by @robert-ancell in 191767
  • Fix Navigator.pushNamed<T>() type checking by @nate-thegrate in 188148
  • Add SliverAppBar showOnScreen semantics test coverage by @Vi-debug in 190410
  • [AGP 9] Update remaining tests to AGP 9 by @jesswrd in 191824
  • Add HCPP feature flag, and turn it on by default in beta/master by @gmackall in 190623
  • macOS: Fix crash on out-of-bounds text input ranges by @cbracken in 191780
  • Make ScrollPhysics reactive by introducing shouldUpdate by @Mairramer in 189664
  • Refactor FormField build wrappers by @gabrimatic in 185795
  • Revert: [AGP 9] Update remaining tests to AGP 9 by @flutteractionsbot in 191863
  • [flutter_test] Ensure LiveTestWidgetsFlutterBinding executes frame and pointer callbacks in the test zone by @bkonyi in 191595
  • Migrate ios driver tests batch 2 to simulators by @okorohelijah in 190930
  • Share the common Linux window controller code in mixins by @robert-ancell in 191930
  • Use leading scroll offset instead of infinite offset to reveal pinned slivers by @victorsanni in 191329
  • Make the AbsorbPointer sample show the difference from IgnorePointer by @theprantadutta in 188940
  • Migrate to listen package by @chunhtai in 189111
  • [Windows] fix: Remove quotes from compiler warning suppression by @Gustl22 in 190873
  • test: dynamic _tapOutside helper for TapRegion navigation tests by @shivanshu877 in 185397
  • Removes deprecated ignoreSemantics parementers by @chunhtai in 191493
  • Clean up semantics code by @chunhtai in 191620
  • Fix self-comparison and assert typos in TestSemantics by @Sanaullah49 in 191938
  • Add mouseCursor to RawScrollbar by @gabrimatic in 185750
  • Add FadeInImageTransition.fadeInOver to fade the image in over the placeholder by @anazr9 in 186246
  • feat: Add placeholder to DecorationImage by @rkishan516 in 191528
  • [analysis] Upgrade package:analyzer to 14.3.0 and enable custom plugin compilation by @bkonyi in 191590
  • [web] Fix VoiceOver child focus direction by @flutter-zl in 188820
  • Fix TabBarView/PageView edge auto-scroll during mouse text selection by @mbcorona in 189544
  • Fix nested scroll view fling crash by @AllinGaming in 191130
  • Expose skipTraversal in FocusableActionDetector by @ishaquehassan in 191308
  • Fix sibling nodes crash under MergeSemantics by @chunhtai in 191587
  • Fix DeleteSurrounding splitting UTF-16 surrogate pairs by @Vi-debug in 190514
  • Defer semantics geometry updates for blocked branches by @mbcorona in 192146
  • [iOS] TextField should support typing accented words with external keyboard by @ibrahimcetin in 191062
  • Add itemExtentBuilder support to ListView.separated by @Mairramer in 191157
  • Add precacheTestImage to flutter_test and unskip web image tests by @harryterkelsen in 191435
  • [web] Support local golden testing in flutter test by @harryterkelsen in 191386
  • Replace more enum instances comparison to use equality == instead of identical and update related tests by @AbdeMohlbi in 192229
  • [cupertino] Use super parameters in more places by @srawlins in 192148
  • [macOS] Implement size to content regular and dialog windows. by @knopp in 185256
  • Add more 0x0 size tests part 12 by @ahmedsameha1 in 187529
  • [Linux] Add window rendering and drag controls by @robert-ancell in 192356
  • Update more enum instances comparison to use equality == since dart has the correct behavior now by @AbdeMohlbi in 191788
  • [web] Stop iOS auto-zoom by sizing semantic inputs at 16px by @flutter-zl in 192328
  • Roll pub packages by @flutter-pub-roller-bot in 192517
  • Remove commented out export in text_input.dart since the dart compiler has the correct behavior now by @AbdeMohlbi in 191539
  • Remove the accessibility evaluations feature flag by @hannah-hyj in 192266
  • Update style guide for Dart 3.13 by @Piinks in 192639
  • Remove some unawaited_futures outdated ignores by @AbdeMohlbi in 192026
  • Roll clang to 07d67299a15ce03b053736e2d31a668ee0576987 by @cbracken in 192607
  • docs: migrate design document guidance to flutter/rfc by @jtmcdole in 192648
  • Request unbuffered dispatch for platform view motion events after _PlatformViewGestureRecognizer rejects gesture by @gmackall in 192259
  • Add dedicated rubber band spring for overscroll recovery in BouncingScrollPhysics by @MTtankkeo in 187568
  • [iOS] Add Translate API support to Engine by @LouiseHsu in 189878
  • Document default value of ReorderableDragStartListener.enabled by @NikhilKukreja26 in 192019
  • Wrap routing in FocusScope in WidgetsApp.router by @kevmoo in 192601
  • Reland "[web] Keep the keyboard up during an iOS caret drag" by @flutter-zl in 190942
  • Add missing @docImport directives for doc comment references by @szakarias in 192734
  • [win32] Remove allocation from GetWindowPositionCallback by @knopp in 192990
  • Prefer late over null-initialized debug fields and enable the lint rule by @LongCatIsLooong in 192438
  • Dispose OverlayEntry in WidgetsApp.router semantics tree structure test by @kevmoo in 192995
  • [Reland] Update remaining tests to AGP 9 by @jesswrd in 192142
  • Update MediaQuery documentation by @nate-thegrate in 183702
  • Roll pub packages by @flutter-pub-roller-bot in 193129
  • Remove doc comment references to GTK C types by @szakarias in 192977
  • fix(widgets): dismiss open RawTooltip on Escape key (WCAG 1.4.13) by @kevmoo in 192966
  • Revert: fix(widgets): dismiss open RawTooltip on Escape key (WCAG 1.4.13) by @flutteractionsbot in 193183
  • [web] Report env(safe-area-inset-*) as FlutterView.viewPadding by @diegolopezrm in 191647
  • feat(web): resolve raw asset keys via content-hashed manifests and unhide --web-content-hash by @kevmoo in 193040
  • Fix unresolved doc comment references by @szakarias in 193087
  • Reland "fix(widgets): dismiss open RawTooltip on Escape key (WCAG 1.4.13)" by @kevmoo in 193192
  • Fix more unresolved doc comment references by @szakarias in 193216
  • [web] Enable snapshot_widget_test.dart on Web by @harryterkelsen in 193172
  • [a11y] Add a semantics role for slider by @hannah-hyj in 184029
  • [win32] Fix PopupWindowControllerWin32 message handling by @knopp in 193233
  • [web] Unskip 6 passing framework tests across painting and widgets by @harryterkelsen in 193171
  • Reland: Only render views that need to be rendered by @knopp in 192128
  • [web] Unskip 6 passing framework tests in proxy_box_test and editable_text_test by @harryterkelsen in 193237
  • [flutter_test] Remove redundant null arguments in Completer.complete by @kevmoo in 193242
  • Revert: [a11y] Add a semantics role for slider by @flutteractionsbot in 193288
  • Make check_code_samples.dart‎ support the standard example directives, and migrate some @tool directives by @dkwingsmt in 189670
  • [web] Unskip 12 passing framework tests in text_test and opacity_test by @harryterkelsen in 193298
  • Move drawer tests from widgets to material by @Swiftaxe in 188486
  • fix some of ignore: avoid_dynamic_calls by @AbdeMohlbi in 192028
  • test: Refactor scrollbar tests to no longer depend on material by @shivanshu877 in 185396
  • Add more 0x0 size tests part 13 by @ahmedsameha1 in 191466
  • Fix: stop auto-scrolling during selection handle drag by @nicolinx in 185206
  • fix: trivial typo by @nishchala-tattvam in 192427
  • Fix remaining unawaited_futures violations by @victorsanni in 193135
  • Cache the paint offset adjusted line metrics in TextPainter by @nickolasdeluca in 191223
  • [web] Omit group role on menu scrollables and assign region role to named routes by @kevmoo in 192965
  • docs(tools): nit: say hook/build.dart in CMake native assets comment by @sneurlax in 192205
  • [Android 17] Bump Standard Test Apps in flutter/flutter to AGP 9.3.1 by @jesswrd in 193263
  • [a11y] Add a semantics role for slider by @hannah-hyj in 193324
  • Allow resetting test invariants in addTearDown by @dkwingsmt in 192082
  • Fix more unresolved doc comment references by @szakarias in 193336
  • Revert: Allow resetting test invariants in addTearDown by @flutteractionsbot in 193383
  • Specify non-obvious types in pattern variable declarations by @bkonyi in 192632
  • [web] Unskip 8 passing image tests in painting and rendering by @harryterkelsen in 193377
  • [web] Unskip TextPainter.getWordBoundary test by @harryterkelsen in 193378
  • Fix doc references to Material and Cupertino in the widgets library and its tests by @szakarias in 193334
  • Fix unresolved doc comment references in dev/integration_tests and dev/benchmarks by @szakarias in 193433
  • [cross imports] navigator_test.dart by @navaronbracke in 190954
  • Revert: Reland: Only render views that need to be rendered by @flutteractionsbot in 193360
  • Enable unawaited_futures lint across the Flutter repository by @victorsanni in 193125
  • Pin androidx.test dependencies in integration_test by @mboetger in 193316
  • Remove no-shuffle from gen_defaults_test by @ValentinVignal in 192280
  • Rename "subtext" to "supportingTextPadding" in FormField's documentation by @MohanadAbdallah-mv in 183582
  • Replace deprecated withOpacity in flutter_logo.dart by @AbdeMohlbi in 192583
  • Use null aware elements in platform_views.dart by @AbdeMohlbi in 193214
  • [web] Respect text affinity in getLineBoundary at a soft wrap by @flutter-zl in 192664
  • Fix pointer id/coordinate mismatch in Android platform view multi-touch by @kaluli123123 in 191631
  • Fixes bug where sibling node fail to update size by @chunhtai in 191220
  • perf(widgets): use const <Never>{} in InheritedModelElement and avoid redundant casts in RenderObjectElement.update by @kevmoo in 192913
  • [web] Unskip and strengthen missing glyph tofu test on Wimp by @kevmoo in 193426
  • [web] Unskip web tests that now pass in gestures, services, and widgets by @harryterkelsen in 193512
  • [web] Preserve DOM focus on role update and honor isAccessibilityFocusBlocked by @kevmoo in 192963
  • Document that enableSuggestions: false can disable keyboard languages on Android by @HibaChamkhi in 192714
  • [docs] Make Border.symmetric docs more explicit about their arguments by @navaronbracke in 193222
  • [Windows] Preserve composing extent in setEditingState by @tjcGoogle in 189968
  • Remove unused Fuchsia sysmem header files by @mbrase in 193244
  • [cupertino] Remove redundant null arguments in Completer.complete by @kevmoo in 193718
  • Reland: Allow resetting test invariants in addTearDown by @dkwingsmt in 193476
  • Update flutter/flutter ci.yaml to test against Java 25 by @jesswrd in 193468
  • Rebuild a semantics fragment when its sibling conflict changes by @CanArslanDev in 190431
  • Enable Safari dart2wasm/skwasm CI suites on macOS 26.6 by @kevmoo in 193681
  • [framework] Remove no-shuffle tag definitions and remaining usages by @bkonyi in 191499
  • Reset flutter engine internal state in framework test postTest by @andywolff in 193842
  • Fix null _nextFrame in MultiFrameImageStreamCompleter._handleAppFrame when a listener is re-added by @Jstuff36 in 193575
  • [web] Preserve active autofill form across text input configuration updates by @simonpham in 193269
  • Consolidate AI contribution policies by @zanderso in 193967
  • [iOS] Restore Flutter text focus after native responder recovery by @hoyahozz in 191781
  • Fix multiline EditableText selection highlighting width by @anazr9 in 185239
  • Add some violations in a11y inspector by @hannah-hyj in 191994
  • [web] Fix various typos in web_ui codebase by @mdebbar in 193188
  • Implement satellite windows on Win32 by @mattkae in 192939
  • add shorthands for scroll physics subclasses in framework by @navaronbracke in 193082
  • Route windowing view lookups through WidgetsBinding by @victorsanni in 192666
  • Fix OverlayPortal layout in shrink-wrapped overlays by @aayushkedawat in 193079
  • Remove more instances of deprecated withOpacity by @AbdeMohlbi in 193559
  • Fix another parameter_assignments warning by @AbdeMohlbi in 193669
  • [web] Clip semantics DOM text labels to stop stealing taps by @flutter-zl in 194011
  • [CP-beta][macOS] Fix FlutterTextInputPluginTest crash by @flutteractionsbot in 195340
  • [CP-beta]Remove skia iOS benchmark by @flutteractionsbot in 195370

Material

#
  • Fix data for design packages by @Piinks in 189140
  • Move examples/api to packages/flutter/examples/api and fix CI errors by @dkwingsmt in 190481
  • [material] Remove unused parameters from constructors of generic classes by @srawlins in 191399
  • Remove legacy gen_defaults analyze checks by @QuncCccccc in 191629
  • [material] Remove unused parameters from constructors of generic test class by @srawlins in 191764
  • Remove no-shuffle from progress indicator test by @ValentinVignal in 186655
  • Remove no-shuffle from scrollbar test by @ValentinVignal in 186656
  • Remove no-shuffle tag from dropdown_test.dart by @ValentinVignal in 186398
  • [material] Use super parameters in more places by @srawlins in 192149
  • Bump Dart to 3.13, reformat, re-enable formatting check by @Piinks in 192649
  • Deprecate decoupled localizations, add dart fixes by @Piinks in 192954
  • Fix unresolved doc comment references in Material and Cupertino by @szakarias in 193283
  • Removes a11y_assessment app by @chunhtai in 193671
  • Support soft hyphen (U+00AD) rendering with a Hyphens API by @dbebawy in 185152
  • Deprecate design libraries by @Piinks in 192957
  • Remove no-shuffle from text_field_test.dart by @ValentinVignal in 193550
  • [CP-beta]Add ContextMenuButtonKind by @flutteractionsbot in 195922

iOS

#
  • [ios,macos] Update swiftc.py flags to match swiftc by @cbracken in 189174
  • [iOS][test] Fix VSyncClient display link deallocation test on iOS 27 by @Akhrameev in 188627
  • [iOS] Fix flaky keyboard animation test by @cbracken in 189353
  • Add CpuArch to the Device class by @chingjun in 189207
  • [iOS] Migrate FlutterKeyboardInsetManager to Swift by @cbracken in 189425
  • [iOS] Migrate DisplayLinkManager to a shared instance by @cbracken in 189492
  • [ios] Fix //flutter:unittests build for physical devices by @cbracken in 189543
  • Move shared darwin plugin tests into own builder by @jmagman in 189411
  • [iOS] Fix potential use-after-free in a11y bridge channel handler by @cbracken in 189637
  • Remove LineContents experimental AA line shader that is no longer used by @b-luk in 189619
  • [iOS] Inject DisplayLinkManager into VsyncWaiterIOS by @cbracken in 189749
  • [iOS] Inject DisplayLinkManager into FlutterKeyboardInsetManager by @cbracken in 189751
  • [iOS] Inject DisplayLinkManager into FlutterMetalLayer by @cbracken in 189752
  • Rename CpuArch.x86_64 to CpuArch.x64 by @chingjun in 189478
  • [iOS] Inject DisplayLinkManager into FlutterViewController by @cbracken in 189764
  • [iOS] Remove dead RasterThreadMerger plumbing from platform views by @cbracken in 189753
  • [iOS] Mark DisplayLinkManager.shared and init() @MainActor by @cbracken in 189815
  • Allow building projects lacking Runner.xcworkspace by @chika3742 in 186239
  • Consolidate AndroidArch and DarwinArch into CpuArch by @chingjun in 189315
  • iOS,macOS: Rename Swift test files to end in Tests.swift by @cbracken in 190063
  • iOS: Migrate TaskRunner tests to Swift Testing by @cbracken in 190055
  • iOS: Reject merged-platform-ui-thread=mergeAfterLaunch by @cbracken in 190051
  • iOS: Fix use-after-free race during shell teardown by @cbracken in 190132
  • iOS: Migrate VSyncClient tests to Swift Testing by @cbracken in 190054
  • Split the platform and cpuArch part of TargetPlatform by @chingjun in 189479
  • iOS: Fix Swift warning in TracingTests by @cbracken in 190203
  • Revert: Split the platform and cpuArch part of TargetPlatform by @flutteractionsbot in 190258
  • iOS: Drop unnecessary @MainActor from VSyncClientTests by @cbracken in 190285
  • Migrate swift xctests to Swift testing tests by @LongCatIsLooong in 187801
  • iOS: Configure test task runner thread at display QoS by @cbracken in 190283
  • Use devicectl for screenshots on Xcode 27, remove idevicescreenshot artifact by @jmagman in 189091
  • Revert "Improve non rect platform view rendering (#182662)" by @hellohuanlin in 190003
  • iOS: Serialise CADisplayLink access in VSyncClient tests by @cbracken in 190335
  • iOS,macOS: Use @autoclosure in Logger by @cbracken in 190417
  • iOS: Eliminate the Impeller/Skia backend selection params by @cbracken in 190416
  • iOS: Remove the synchronous first-frame wait by @cbracken in 190432
  • iOS: Eliminate use of IOSContextNoop in platform view tests by @cbracken in 190419
  • Revert: iOS: Eliminate use of IOSContextNoop in platform view tests by @flutteractionsbot in 190501
  • Prepare device support symbols by @vashworth in 190369
  • iOS: Eliminate use of IOSContextNoop in platform view tests (reland) by @cbracken in 190509
  • iOS,macOS: make Logger thread-safe, conform to Sendable by @cbracken in 190488
  • iOS: Remove software renderer/headless fallback by @cbracken in 190590
  • Make InternalFlutterSwift & InternalFlutterSwiftCommon internal for real by @LongCatIsLooong in 190494
  • iOS: Switch logging from syslog to os_log by @cbracken in 190595
  • Revert: iOS: Switch logging from syslog to os_log by @flutteractionsbot in 190643
  • iOS: remove unused OCMock imports by @cbracken in 190648
  • iOS: Migrate the unit test host app to UIScene by @cbracken in 190646
  • iOS: Remove the non-merged thread topology by @cbracken in 190698
  • iOS: Fix flake when backgrounding platform views by @cbracken in 190816
  • Make Xcode workspace cleaning optional during flutter clean by @okorohelijah in 190091
  • iOS: Document and tidy the embedder API flag by @cbracken in 190828
  • iOS: test GPU availability and task queue behaviour by @cbracken in 190836
  • Revert: Make Xcode workspace cleaning optional during flutter clean by @flutteractionsbot in 190890
  • Remove manual Safari fallback for unhandled universal links by @okorohelijah in 185430
  • Always update swift package dependencies by @vashworth in 190886
  • Reland "Make Xcode workspace cleaning optional during flutter clean" by @okorohelijah in 191023
  • Refactor SwiftPM symlink path logic by @vashworth in 188647
  • Warn when unable to find iOS Device Support Symbols by @vashworth in 189993
  • iOS: Don't discard GPU state set before an engine runs by @cbracken in 191055
  • Remove ios_debug_workflow test by @vashworth in 191141
  • [tool] Wire dependency injection into runner and executable with required non-nullable contexts by @bkonyi in 190922
  • iOS: Deprecate FlutterEngine.isGpuDisabled by @cbracken in 191393
  • iOS: Improve FlutterEngineGroup tests by @cbracken in 191563
  • iOS: Add stylus pointer tests by @cbracken in 191564
  • [flutter_tools] Handle missing Xcode gracefully in getInfo and buildMacOS by @bkonyi in 191180
  • On iOS 27+ devices, manually process lldb stops by @vashworth in 191434
  • iOS: Add test for engineAllowHeadlessExecution by @cbracken in 191635
  • iOS: Add null check for touch rate correction task runner by @cbracken in 191641
  • Warn when SwiftPM is disabled by @muradhossin in 188695
  • iOS: Ensure engine is run on the main thread by @cbracken in 191626
  • refactor(flutter_tools): clean up dead unreferenced declarations by @kevmoo in 191163
  • iOS,macOS: Check viewType before creating a platform view by @cbracken in 191777
  • Terminate existing process before launching with devicectl by @vashworth in 191885
  • iOS: Key the platform view factory registries by NSString by @cbracken in 191855
  • Replace Shell::WaitForFirstFrame with an asynchronous API that matches the Shell threading model by @jason-simmons in 191841
  • [iOS] Preserve semantics parents after reparenting by @AfzalivE in 189686
  • Fixes OverlayPortal semantics bounds corruption by @LouiseHsu in 192139
  • Collect analytics about SwiftPM errors and warnings by @vashworth in 191746
  • [tool] Migrate Apple build subcommands and toolchain to modular dependency injection by @bkonyi in 190780
  • ios: Return NO from run* calls on a running/terminated engine by @cbracken in 192465
  • remove deeplink integration tests from bringup by @okorohelijah in 192459
  • [iOS] Split FlutterEngine setUpShell into orthogonal helpers by @cbracken in 192808
  • Migrate ios driver tests batch 4 to simulators by @okorohelijah in 192463
  • [iOS] Rebind accessibility bridge after view controller changes by @smocer in 187167
  • Exclude local Swift package schemes from --flavor error message by @dhc-tech in 191098
  • Move iOS compile benchmarks to Mac_benchmark and pin Mac_benchmark to M1 by @okorohelijah in 192472
  • Cleanup VSync infrastructure and improve iOS touch to present latency by @knopp in 191444
  • [flutter_tools] Handle mDNS SocketExceptions during attach and surface port 5353 conflicts by @bkonyi in 191440
  • iOS: Re-enable rendering on willEnterForeground by @RobertOdrowaz in 191350
  • [CP-beta][iPhone Duo] Use the correct UIScreen to report the display size and update when fold/unfold by @flutteractionsbot in 195690

Android

#
  • [AGP 9] Update Warn Version to AGP 9+ by @jesswrd in 189109
  • fix typos in AccessibilityEventsDelegateTest.java by @AbdeMohlbi in 189280
  • Stop using ReLinker to load libflutter.so on Android 17 (API 37+) by @gmackall in 189146
  • Use String builder in InputConnectionAdaptorTest.java by @AbdeMohlbi in 189281
  • Fix Mockito dynamic agent loading warnings in Robolectric tests by @mboetger in 189804
  • forceNdkDownload should skip configuring cmake when ndk-build is used by @mboetger in 187201
  • Bumped Engine AGP Dependencies to 9.1.0 for 3.50 by @jesswrd in 189417
  • Fix hcpp cliprect being behind by 1 frame when scrolling by @gmackall in 189946
  • Add --[no-]enable-hcpp build flag and pipe through via Gradle manifest transformation by @gmackall in 189955
  • Fix an ANR in HCPP rotation due to platform <-> raster thread deadlock by @gmackall in 190638
  • Convert Mockito instances in Kotlin to Mockk by @mboetger in 189884
  • Catch NoSuchFieldError when reading bold text setting on non-compliant vendor runtimes by @gmackall in 190972
  • Prefer OS-installed signed APKs over app-writable .so files when loading deferred libraries by @gmackall in 189145
  • [AGP 9.1.0 Migration #2] Extract internal utilities by @reidbaker-agent in 190957
  • [Android] Inject command line flags into manifest in release mode when not running pre-built binary by @camsim99 in 190222
  • [Android] Guard PlatformViewsController2.onEndFrame against a detached FlutterView by @amaan-0331 in 190612
  • [Android] Fix respecting--enable-software-rendering in the embedding by @camsim99 in 191321
  • [Android] Fix 1px edge clipping on Platform Views by preserving floating-point precision where possible and rounding otherwise instead of truncating by @gmackall in 190311
  • [rules] Add packages/flutter_tools/gradle/AGENTS.md rules by @reidbaker-agent in 191486
  • [AGP 9.1.0 Migration #3] Add buildModeFor overloads and wire Flutter dependencies through the new DSL by @reidbaker-agent in 191218
  • [Android] Inject route into manifest when specified on the command line in release mode by @camsim99 in 191328
  • [flutter_tools] Use resolved application ID for app link settings by @faheemabbas766 in 189488
  • [AGP 9.1.0 Migration #4] Replace plugin build-type copy with initWith on public DSL by @reidbaker-agent in 191606
  • Add regression test for plugin compileSdkExtension warning by @Devasy in 191281
  • Remove the redundant flutter/shell/platform/android:robolectric_tests build target by @jason-simmons in 192117
  • [Android] Do not schedule engine frames on a detached FlutterJNI by @papmodern in 191204
  • [AGP 9.1.0 Migration #5] Delete getLegacyAndroidExtension and migrate NDK fallback to public DSL by @reidbaker-agent in 192116
  • Skip KGP version validation for AGP built-in Kotlin by @wratheus in 192206
  • [android] Isolate API-34 high contrast listener in AccessibilityBridge behind Api34Impl by @gmackall in 192502
  • [Android] Fix the HCPP SurfaceControl transaction-list race and split the transaction entry points by @gmackall in 192606
  • [android]: removes RegisterExternalTexture race condition by @gaaclarke in 192951
  • [Android 17] Updated Templates to AGP 9.3.1 by @jesswrd in 193262
  • [Android 17] Bumped Engine Dependencies to 9.3.1 by @jesswrd in 193265
  • [Android] Refuse external setters of engine entrypoint and cached engine arguments via Intents by @camsim99 in 190249
  • Upgrade flutter/flutter to Roblectric 4.17 by @jesswrd in 193369
  • [AGP 9.1.0 Migration #6] Deliver Flutter assets as a generated assets source directory on the app path by @reidbaker-agent in 192488
  • Updated Remaining Engine Defaults to SDK 37 by @jesswrd in 190429
  • [Android] Refactor Intent-driven engine flags into a variant-specific module by @gmackall in 191924
  • [AGP 9] Add Unsupported AGP Version Functionality by @jesswrd in 193609
  • Update Engine to test against JDK 25 by @jesswrd in 193470
  • Raise Minimum Version to AGP 9.1.1 by @jesswrd in 193813
  • Updated Most flutter/flutter Defaults to 37 by @jesswrd in 193307
  • Revert: Updated Most flutter/flutter Defaults to 37 by @flutteractionsbot in 193891
  • [Android] Fix --merged-platform-ui-thread flag by @camsim99 in 193901
  • Avoid most vulkan initialization for known bad vulkan drivers by @walley892 in 193875
  • [AGP 9.1.0 Migration #7] Migrate the flutter-apk copy and per-ABI versionCode to the variant API by @reidbaker-agent in 193693
  • [Android] Fix use-after-free of SurfaceControl.Transaction in HCPP by @gmackall in 192969
  • [AGP 9.1.0 Migration #8] Unify add-to-app module wiring on the variant API by @reidbaker-agent in 193717
  • Make DisplayLists' use of DlPaint, SkPaint, and impeller::Paint agree on the default isAntiAlias by @b-luk in 193939
  • [CP-beta][Gradle] Run DependencyVersionChecker before accessing Android DSL extensions in FlutterPlugin.apply by @flutteractionsbot in 195060
  • [CP-beta][AGP 9.1.0 Migration #9] Move aar_init_script to public AGP APIs by @flutteractionsbot in 195640
  • [CP-beta][FGP] Report the real error when applying kotlin-android fails by @flutteractionsbot in 195691

Windows

#
  • Disable some Windows tests that are flaking on CI by @jason-simmons in 189477
  • Fix null terminator in input truncates clipboard by @CodeDoctorDE in 188652
  • Fix non primary buttons not being captured on windows by @CodeDoctorDE in 188394
  • [Win32] Ignore mouse move events without capture when dragging by @knopp in 190029
  • [windows]: Uses offscreen MSAA when implicit msaa isn't available. by @gaaclarke in 190256
  • Windows: Propagate enabled accessibility state by @cbracken in 190507
  • Migrate the embedder tests from the legacy Dart native function format to FFI by @jason-simmons in 190615
  • [Flutter GPU] Add a project-level Flutter GPU setting to the Linux and Windows embedders by @bdero in 190684
  • [flutter_tools] Implement Diagnostics extension slice and doctor integration by @bkonyi in 191162
  • Switches windows to opengles 3 by @gaaclarke in 191516
  • Disable more Windows tests that have been causing CI flakes by @jason-simmons in 191822
  • [windows] Fix null-deref in HostWindowPopup::UpdatePosition (Fixes #191478) by @kryali in 191479
  • [flutter_tools] Extract Windows archives using native tar with PowerShell fallback by @bkonyi in 192298
  • [Windows] Use an unsized texture format for backing stores on OpenGL ES 2 by @krll-kov in 192917
  • [flutter_tools] Revert PR: Extract Windows archives using native tar with PowerShell fallback by @elliette in 193161
  • [win32] Remove the predicate from TimerThread condition variable by @knopp in 193181
  • [win32] Multi-window should never have implicit view by @knopp in 193174
  • [win32] Implement hot restart for multi-window by @knopp in 193225
  • Starts flipping content on windows to avoid full screen renders by @gaaclarke in 193133
  • [Windows] Fix PostPlatformThreadTask cancelling tasks before they run by @Gustl22 in 193412
  • [windows] Add OpenGL compositor tests against ANGLE at D3D11 feature level 10_0 by @b-luk in 194114

Linux

#
  • Split FlViewRenderer into OpenGL and software backends by @robert-ancell in 188824
  • Fix dereference of nullptr in the moved-to-rect signal in the Linux embedder by @mattkae in 189152
  • [Linux] Make glBlitFramebuffer optional in the OpenGL compositor by @robert-ancell in 189476
  • [Linux] Fix a potential GList leak in FlTouchManager by @zulongzhang in 190518
  • [linux] Read heading text through the AtkText interface by @sawirricardo in 188005
  • Move compositor frame ownership into the view renderers by @robert-ancell in 189162
  • Fixes MSAA on the linux embedder. by @gaaclarke in 191379
  • Add FlViewRendererSubsurface by @robert-ancell in 191389
  • Fix black window in the subsurface view renderer by @robert-ancell in 191850
  • Connect to moved-to-rect after the window is realized by @robert-ancell in 191773
  • [Linux] Wait for frames to be rendered before using them in another context by @robert-ancell in 192094
  • [Linux] Remove frame sharing between OpenGL contexts by @robert-ancell in 192150
  • [Linux] Use fences to synchronize frames between OpenGL contexts by @robert-ancell in 192098
  • [Linux] Don't clear the OpenGL context when a frame has been drawn by @robert-ancell in 192137
  • [Linux] Cancel input when events stop being delivered by @robert-ancell in 192277
  • [Linux] Make the framebuffer depth/stencil buffer optional by @robert-ancell in 192156
  • [Linux] Keep the frame at the top of a resizing subsurface by @robert-ancell in 192408
  • [Linux] Clear the frame when there is nothing to render by @robert-ancell in 192461
  • Fix black tooltips and popups on Wayland by @robert-ancell in 192910
  • [Linux] Request a frame when a view starts rendering by @robert-ancell in 192911
  • [Linux] Handle FlView being destroyed before rendering is complete. by @robert-ancell in 193268
  • [flutter_tools] Migrate build targets, tester devices, application packages, and tool utilities away from globals by @bkonyi in 193647

Web

#
  • [web] Avoid absolute positioning for base CanvasKit canvas by @flutter-zl in 188337
  • [web] Roll Chrome to 145 (framework) by @mdebbar in 182861
  • [web] Repair RenderCanvas CSS size drift by @MarlonJD in 188797
  • [skwasm][canvaskit] Honor Paint.filterQuality in Canvas.drawAtlas by @Ortes in 186108
  • [web] Fall back to full CJK fonts for characters not covered by split slices by @harryterkelsen in 188890
  • Add support for WASM deferred loading. by @biggs0125 in 189308
  • [web] Cancel touch pointers WebKit abandons mid-gesture by @flutter-zl in 189608
  • Adds missing await on instantiateImageCodecFromBuffer by @FMorschel in 188910
  • [web] Fix deferred loading with wasm by @mkustermann in 190140
  • [Impeller] Add filterQuality support to ImageFilter.shader by @ahyangnb in 188544
  • [web] Remove in-repo agent documentation by @harryterkelsen in 190326
  • [web] Unify image decoding and codecs on CanvasKit and Skwasm by @harryterkelsen in 188573
  • Use dart2wasm app.support.js expression with js-string builtin requirement by @mkustermann in 183835
  • [web] Fix null-check crash when a platform view is disposed mid-frame by @mbcorona in 190071
  • [flutter_tools] Anchor package version extraction regex in Wasm dry-run by @kevmoo in 190691
  • Wait for web rendering before first-frame event by @Yusufihsangorgel in 189500
  • [web] Unify ui.Vertices by @harryterkelsen in 190563
  • [web] Unify MaskFilter and ColorFilter primitives across CanvasKit and Skwasm by @harryterkelsen in 190314
  • Adds error about wimp_heavy not being implemented. by @gaaclarke in 189945
  • refactor(web): SkwasmPath and SkwasmPathBuilder separation by @Swiftaxe in 189086
  • [web] Disable background networking and GCM in all Chrome launchers by @mdebbar in 190841
  • Fix: activateSystemCursor should set cursor on all views by @arpitgandhi9 in 185080
  • [web] Filter non-fatal Chromium D-Bus error lines from Chrome stderr by @mdebbar in 190669
  • [web] Unify ui.ImageFilter between CanvasKit and Skwasm by @harryterkelsen in 191021
  • [web] Fix WebParagraph subpixel text stretching and letter jittering by @mdebbar in 191030
  • [web_ui] Clean up dead unreferenced declarations by @kevmoo in 191164
  • Fix rendering custom element size by @holzgeist in 184961
  • [web] Guard against disposed pictures in PrerollVisitor and DebugInfoVisitor by @mdebbar in 191224
  • [web] Unify ui.Shader between CanvasKit and Skwasm by @harryterkelsen in 191232
  • [wimp] Turn multithreading on for wimp. by @eyebrowsoffire in 190626
  • Revert: [wimp] Turn multithreading on for wimp. by @flutteractionsbot in 191424
  • Revert: [wimp] Turn multithreading on for wimp. by @flutteractionsbot in 191423
  • [web] Move CanvasKit fragment shader classes to canvaskit/fragment_shader.dart by @harryterkelsen in 191451
  • [WebParagraph] Fixing minor problem with getBoxesForRange by @Rusino in 191419
  • [web] Anchor flt-semantics-host at 0,0 to fix WebKit semantics offset by @flutter-zl in 190486
  • [wimp] Turn on multithreading for wimp. by @eyebrowsoffire in 191747
  • [web] Support local screenshot and golden testing in felt test by @harryterkelsen in 191318
  • [web] Keep ImageSource alive until Picture disposal by @harryterkelsen in 192516
  • [WebParagraph] Fix text pixelation, glyph clipping, and snapping offsets to avoid subpixel raster caching by @Rusino in 191736
  • fix(tree): et format --all by @jtmcdole in 192669
  • fix: Apply reversed axis flip by macOS on Web when scroll with modifier keys by @Gustl22 in 189506
  • Manual Roll Dart SDK from 2dfdae0ea100 to 938ec090f8bc (2 revisions) by @alexmarkov in 192943
  • fix(web): guard parseBrowserLanguages against invalid locale tags by @sankalpsthakur in 190651
  • [web] Scope the mobile semantics placeholder to its view by @flutter-zl in 190856
  • chore: correct copy paste error in test name by @holzgeist in 191342
  • Update browser_environment.js to require try_table by @sorensp-goog in 193090
  • [web] Defer disposal of stale cached paths to FrameArena by @mdebbar in 192072
  • refactor(web): use singular requestFileHandle() and stream Wasm through COS by @tomayac in 188010
  • [web] Enable Firefox Skwasm UI CI suites, configure COI configs, and fail fast on loader rejections by @kevmoo in 193187
  • wasm: enforce WasmGC opt-in capability checks and Firefox < 147 guard by @kevmoo in 193180
  • Cleanup DDC SDK build targets by @nshahan in 193193
  • [WebParagraph] Fixing edge cases for wrapping text (with newlines) by @Rusino in 189858
  • [web] Use Xvfb -displayfd and clean up Xvfb after Firefox test suites by @mdebbar in 193510
  • Synchronize dart2wasm feature probes in roll script and flutter_bootstrap.js by @kevmoo in 193271
  • Remove remaining download_jdk references by @dbebawy in 193562
  • Fix relative executable execution under posix_spawn by @andywolff in 193595
  • [web] Test that Firefox < 147 rejects dart2wasm before Wasm capability checks by @kevmoo in 193667
  • [web] Stop percent-decoding URLs written to browser history by @apinilabs-pascal in 189835
  • [web] Propagate aria-label to inner slider input by @kevmoo in 192964
  • [Impeller] Add render target cache clearing and test hook by @andywolff in 193497
  • [web] Grow the iOS view when the browser toolbar collapses by @flutter-zl in 193744
  • refactor(web): use getFileHandle() instead of requestFileHandle() by @tomayac in 193953
  • [web_paragraph] Honor kTextHeightNone in TextStyle and ParagraphStyle by @Rusino in 193733
  • [web] Skip non-focusable containers in Focusable.focusAsRouteDefault by @kevmoo in 194138
  • [CP-beta][web] Make resize and render atomic on the shared offscreen surface by @flutteractionsbot in 195839

Tooling

#
  • [flutter_tools] Fix hot restart for WASM web builds by @Markzipan in 187898
  • [flutter_tools] Respect mustMatchAppBuild on Windows native assets by @Vonarian in 186788
  • [flutter_tools] Fix ADB device listing output parsing regression by @bkonyi in 189369
  • Remove outdated todo about analysis bug on Windows and update condition to also perform analysis on windows by @AbdeMohlbi in 189283
  • [flutter_tools] Remove web hot reload flag by @nshahan in 185994
  • [flutter_tools] Format plugin example template to match dart format by @theprantadutta in 188382
  • Roll pub packages by @flutter-pub-roller-bot in 189454
  • fix templateDefaultGradleVersion todo by @AbdeMohlbi in 189466
  • Roll pub packages by @flutter-pub-roller-bot in 189515
  • [web] Cache WASM network requests in flutter test by @harryterkelsen in 189623
  • Add validation for required fields during xcodebuild by @Hari-07 in 187772
  • Roll pub packages by @flutter-pub-roller-bot in 189596
  • Skip emulator.getEmulators test by @vashworth in 189879
  • Listen to log reader before VM Service and make delay configurable by @mboetger in 187202
  • [flutter_tools] Bound Spotlight mdfind execution with timeout on macOS by @bkonyi in 189461
  • Remove outdated logs that were added to track #172636 by @AbdeMohlbi in 189282
  • Disable execution order shuffling for the flutter_tools upgrade_test suite by @jason-simmons in 189920
  • Bump devtools_shared to 13.1.0 by @srawlins in 189507
  • [flutter_tools] Invalidate WebEntrypointTarget when plugin set changes by @bkonyi in 189460
  • Parse AndroidX property in gradle.properties by @faheemabbas766 in 188372
  • [flutter_tools] Initialize Cache.flutterRoot at the start of the upgrade_test suite by @jason-simmons in 189937
  • [flutter_tools] Do not always wait for the full timeout when running Spotlight to locate Android Studio on macOS by @jason-simmons in 189952
  • Remove ancient tools:tools dep from android_sdk bundle by @gmackall in 189962
  • Move tool host_cross_arch tests into different shards by @jmagman in 189470
  • [web] Provide Content-Length header for CanvasKit files in flutter test by @harryterkelsen in 190155
  • fix(tool): parse ADB device lists by connection state by @Ram-Dawson in 189973
  • Adds analytics to macos impeller opt in/out by @gaaclarke in 190220
  • Add java/gradle check when gradle crashes by @mboetger in 189997
  • flutter_tools: Use new FileSystemExtension from devtools by @srawlins in 190360
  • Handle unexpected exceptions during Azure metadata detection by @Ahmet-Can-Urhan in 189457
  • Fix merge conflict from 190369 by @vashworth in 190544
  • [tool][web] Intercept dart2wasm errors & append JS migration footers by @kevmoo in 190476
  • fix(tool): remove redundant --enable-experiment=record-use flag by @kevmoo in 190475
  • [flutter_tools] Gracefully handle locked Windows files during clean by @bkonyi in 190095
  • Revert: fix(tool): remove redundant --enable-experiment=record-use flag by @flutteractionsbot in 190583
  • reland(tool): remove redundant --enable-experiment=record-use flag by @kevmoo in 190591
  • Roll pub packages by @flutter-pub-roller-bot in 190605
  • Skip platform tooling regeneration for non-Flutter pub workspace packages by @UditDewan in 189705
  • [flutter_tools] Handle WDAC block error code 4551 for impellerc by @bkonyi in 190108
  • [flutter_tools] Fix PathNotFoundException during native assets cleanup by @bkonyi in 190102
  • [flutter_tools] [DAP] Extract and forward DevTools Deep Link URLs to DAP clients by @DanTup in 190455
  • Allow valid UTF-8 replacement characters in flutter_tools decoding by @LinXunFeng in 188901
  • [flutter_tools] Support boolean selectors and multiple tag options in test command (#189193) by @bkonyi in 190541
  • fix(desktop): Keep an open log stream on desktop for integration testing. by @fuzzybinary in 189192
  • [flutter_tools] Fix impellerc Windows Unicode crash and improve diagnostics by @bkonyi in 190112
  • Remove --disable-dev-shm-usage from Chrome launch args by @mdebbar in 190470
  • [flutter_tools] Contain dependency-declared license paths within the package by @adilburaksen in 189159
  • [flutter_tools] Validate plugin class/package identifiers to prevent GeneratedPluginRegistrant injection by @adilburaksen in 189156
  • [web] Provide Content-Length header for main.dart.wasm in flutter test by @harryterkelsen in 190584
  • tools: Support --host-arch option in flutter precache by @cbracken in 190480
  • Pass web-defines to the web builder in all run configurations by @matheusccastroo in 189622
  • [flutter_tools] Fix hot reload for workspace member packages in lib/ (#190284) by @bkonyi in 190540
  • [Tool] Fix SwiftPM race condition during parallel Xcode builds by @bkonyi in 188451
  • Override deployment target in CocoaPod dependencies when they're less than Xcode's minimum by @vashworth in 190677
  • [flutter_tools] Support UTF-16 and UTF-8 BOM decoding in --dart-define-from-file (#190286) by @bkonyi in 190547
  • [flutter_tools] Use JSON_INPUT COMPILE_EXPRESSION for expression evaluation by @bkonyi in 190722
  • Update FlutterNativeAssetsBuildRunnerImpl to add ".exe" suffix to its _dartExecutable for Windows by @b-luk in 190761
  • Never use a header bar in the Linux application template by @robert-ancell in 190120
  • Remove platforms key from flutter daemon by @AbdeMohlbi in 190631
  • fix: forward --build-name and --build-number to desktop version.json by @ishaquehassan in 190130
  • Roll pub packages by @flutter-pub-roller-bot in 190838
  • flutter_tools: Use pub check-resolution-up-to-date & fix workspace package_config path by @sigurdm in 186740
  • [flutter_tools] Fix package URI resolution in --experimental-faster-testing by @bkonyi in 190875
  • [flutter_tools] Setup Pub Workspace and package structure for flutter_tools sub-packages by @bkonyi in 190733
  • test(flutter_tools): deduplicate WebDevFS fixtures and test fakes by @kevmoo in 190892
  • [icon_tree_shaker] Tree-shake material and cupertino with 0 icons by @dcharkes in 190905
  • [flutter_tools] Add retry and timeout to getFlutterWidgetPreviews in LspPreviewDetector by @bkonyi in 190929
  • [flutter_tools] Strip local path and workspace dependencies during update-packages --force-upgrade by @bkonyi in 190944
  • [flutter_tools] Switch 'flutter analyze' to use dart/workspace/analysis/complete by @DanTup in 190843
  • [flutter_tools] Add --preset option to flutter test by @bkonyi in 190878
  • [flutter_tools] Replace usages of package:dds/dap.dart with package:dap_adapters/dap_adapters.dart by @bkonyi in 190667
  • [tool] Add missing play element in web test index.html to fix warning by @mdebbar in 190675
  • Remove Xcode environment when building swift tools in Xcode pre-action by @vashworth in 190848
  • [tool] Define modular dependency injection containers and bootstrapper by @bkonyi in 190724
  • [flutter_tools] Fix deadlock in debug adapters when process exits early by @bkonyi in 190931
  • Removes building of ci/android_debug_x86 as nobody should be consuming it. by @aam in 190951
  • Remove --no-sim-use-hardfp flag by @AbdeMohlbi in 190790
  • flutter_tools: validate plugin identifiers before generating registrant code by @herdiyana256 in 190462
  • Switch testing to gradle bin distribution type instead of all by @mboetger in 190738
  • [flutter_tools] Add packages/flutter/examples to flutter create's whitelist by @dkwingsmt in 191025
  • fix(flutter_tools): check runtime env vars before cached bot state by @kevmoo in 190978
  • [tool] Warn when rendering backend selection flags are used with release builds by @bkonyi in 191083
  • [flutter_tools] Resolve includes recursively in AnalysisOptionsMigration by @bkonyi in 191082
  • [flutter_tools] refactor wasm dry-run result handling in Dart2WasmTarget by @kevmoo in 190891
  • Remove dead code checking < Xcode 15 by @jmagman in 189103
  • [flutter_tools] Implement generic extension protocol base and isolate runner by @bkonyi in 190734
  • [tool] Deduplicate fixture builders in build_swift_package_test.dart by @kevmoo in 190624
  • [native_assets] Record bundled code assets under their install name by @wilyan09007 in 190819
  • [flutter_tools] Add integration coverage for test presets by @Boulea7 in 190858
  • [flutter_tools] Gracefully handle ping timeouts for custom devices by @bkonyi in 191181
  • [flutter_tools] Catch exceptions when starting Chrome to launch DevTools by @bkonyi in 191215
  • [flutter_tools] find the command name regardless of argument position by @glitchfl in 191155
  • [flutter_tools] Handle all DartDevelopmentServiceExceptions gracefully in resident web runner by @bkonyi in 191183
  • Only exclude platform directories that actually exist in analysis_options.yaml by @JayeshJain25 in 191151
  • [flutter_tools] Validate driver test imports before execution by @bkonyi in 191216
  • [gen_l10n] Preserve script locale inheritance for regional subclasses by @Boulea7 in 190956
  • [flutter_tools] Handle HttpException during VM service connection by @bkonyi in 191182
  • [record_use] Use operator + on Recordings instead of custom merge method by @dcharkes in 191291
  • [tool] Fix Windows hot reload mtime truncation issue by @bkonyi in 191271
  • fix(tool): make copied frameworks writable to fix macOS 15.4+ openrsync regression by @GhagSagar23 in 189658
  • [flutter_tools] Move plugin validation out of asserts by @bkonyi in 191359
  • [flutter_tools] Compute LSP Content-Length header using UTF-8 byte length by @bkonyi in 191377
  • [flutter_tools] Support package wildcard assets in app pubspec by @bkonyi in 191266
  • [flutter_tools] Prevent deletion of shared native asset hooks outputs as stale by @bkonyi in 191272
  • [flutter_tools] Fix crash in symbolize command on stream error by @bkonyi in 191273
  • [flutter_tools] Fix UNC path resolution in depfile parsing on Windows by @bkonyi in 191265
  • [flutter_tools] Update argParser usageLineLength when --wrap-column is passed by @bkonyi in 191264
  • [iOS][add2app] Skip building SwiftPM plugins when generating CocoaPods artifacts by @vashworth in 190736
  • [flutter_tools] Deprecate --build and --no-build flags on flutter run by @bkonyi in 191358
  • [Widget Preview] Isolate PageStorage scope in widget preview group expansion tile by @bkonyi in 191378
  • [flutter_tools] refactor CLI argument architecture with typed option descriptors and bundles (PoC) by @kevmoo in 191018
  • [flutter_tools] Fix crash when migrating flow-style exclude lists in analysis_options.yaml by @bkonyi in 191269
  • Refactor FlutterDevice.connect and VM service discovery by @bkonyi in 191221
  • [flutter_tools] Restrict WebAssetServer source resolution to source map extensions by @bkonyi in 191501
  • [flutter_tools] Add tests for negative lookahead regex in test runner and batch entrypoints by @bkonyi in 191438
  • [flutter_tools] Add --force flag to flutter channel by @bkonyi in 191579
  • [native_assets] Roll native packages by @dcharkes in 191253
  • [flutter_tools] Resolve workspace root when running widget preview from member package by @bkonyi in 190952
  • [flutter_tools] Do not treat 'daemon' argument as daemon command in logger initialization by @bkonyi in 191442
  • [flutter_tools] Handle null version gracefully in CachedArtifact and MaterialFonts by @bkonyi in 191494
  • [flutter_tools] Prevent crash when stdout is broken and print fails by @bkonyi in 191356
  • Migrate texture example to material_ui by @justinmc in 190673
  • [engine] Support UTF-8 paths in Windows filesystem and path APIs by @bkonyi in 191360
  • [record_use] Remove const_finder by @dcharkes in 191702
  • [flutter_tools] Resolve symlinks and fix flakiness in widget preview tests by @bkonyi in 191214
  • [flutter_tools] migrate getBuildInfo() to typed OptionDescriptors and BuildInfoOptionsBundle by @kevmoo in 191510
  • [flutter_tools] Implement Configuration extension slice and flutter config integration by @bkonyi in 191445
  • [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 by @bkonyi in 191732
  • Revert: [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 by @flutteractionsbot in 191793
  • Support --[no-]adb-log-filtering CLI option by @mboetger in 187252
  • [tool] Migrate CleanCommand to modular dependency injection by @bkonyi in 190742
  • Roll pub packages by @flutter-pub-roller-bot in 191851
  • [flutter_tools] Verify native assets tree-shaking during linking by @bkonyi in 191637
  • [flutter_tools] Honor configured build-dir across flutter project and build targets by @bkonyi in 191592
  • [tool] Migrate ConfigCommand to modular dependency injection by @bkonyi in 190743
  • [flutter_tools] Gracefully handle Windows Application Control and security policy execution blocks by @bkonyi in 191912
  • Remove no-shuffle in flutter tools overall experience test by @ValentinVignal in 191861
  • [tool] Migrate SymbolizeCommand to modular dependency injection by @bkonyi in 190744
  • [flutter_tools] Pause web server requests until initial compilation finishes by @bkonyi in 191990
  • Fix Android license detection for cmdline-tools 23.0+ by @ik020 in 191554
  • [flutter_tools] Safely handle broken symlinks and existing files during plugin symlink creation by @bkonyi in 191496
  • [flutter_tools] Implement Templates slice and flutter create integration by @bkonyi in 191748
  • [flutter_tools] Report preview reload timing analytics in LspPreviewDetector by @bkonyi in 192120
  • [tool] Migrate ChannelCommand to modular dependency injection by @bkonyi in 190751
  • [flutter_tools] Add --no-plugins flag and disable plugins for benchmark by @bkonyi in 192129
  • [tool] Migrate DoctorCommand to modular dependency injection by @bkonyi in 190758
  • [tool] Migrate CustomDevicesCommand to modular dependency injection by @bkonyi in 190770
  • [tool] Migrate InstallCommand to modular dependency injection by @bkonyi in 190771
  • [flutter_tools] add typed enum and defaulted option descriptors by @kevmoo in 191760
  • [flutter_tools] Fix unhandled DebugAdapterException on early process termination by @bkonyi in 192294
  • Reland "[tool_tests] Remove bringup from Windows tool_tests_commands_2_2" (#191732) by @bkonyi in 191802
  • [tool] Migrate ScreenshotCommand to modular dependency injection by @bkonyi in 190767
  • [tool] Migrate DevicesCommand to modular dependency injection by @bkonyi in 190768
  • [tool] Migrate LogsCommand to modular dependency injection by @bkonyi in 190765
  • [flutter_tools] Safely handle non-JSON messages in test stream parsers by @bkonyi in 192089
  • [tool] Migrate AssembleCommand and GenerateCommand to modular dependency injection by @bkonyi in 190773
  • [flutter_tools] Safely remove web loading indicator on dart-app-ready by @bkonyi in 192233
  • [tool] Let --local-engine reach the build system again by @robert-ancell in 192361
  • [tool] Migrate Desktop build subcommands and toolchain to modular dependency injection by @bkonyi in 190781
  • [tool] Migrate Tooling and Analysis commands to modular dependency injection by @bkonyi in 190788
  • [tool] Migrate EmulatorsCommand to modular dependency injection by @bkonyi in 190769
  • [flutter_tools] Fix test separation between VersionFreshnessValidator and FlutterVersion.checkFlutterVersionFreshness by @bkonyi in 191593
  • Refactor createDebuggingOptions and option registrations to OptionDescriptor by @kevmoo in 192307
  • [flutter_tools] Read package_config.json asynchronously in loadPackageConfigWithLogging by @bkonyi in 192443
  • [flutter_tools] Ignore widget previews outside lib/ during LSP code generation by @bkonyi in 192326
  • [tool] Migrate DaemonCommand and DebugAdapterCommand to modular dependency injection by @bkonyi in 190793
  • [tool] Migrate BuildIOSCommand and BuildIOSArchiveCommand to modular dependency injection by @bkonyi in 192250
  • [flutter_tools] Gracefully handle EROFS and write-protected file system errors by @bkonyi in 192431
  • [flutter_tools] Fix cache download progress calculation for non-downloading artifacts by @bkonyi in 192090
  • [flutter_tools] Keep web loading bar visible until app starts by @bkonyi in 192483
  • [native assets] Bump minimum iOS version from 13 to 15 by @serhii-k in 191964
  • fix: stop flutter create --platforms from dropping existing platfor… by @Shawn-Yu-Dev in 191573
  • feat(flutter_tools): add IntOptionDescriptor and DefaultedIntOptionDescriptor by @kevmoo in 192455
  • [flutter_tools] validate placeholder type in gen-l10n by @bkonyi in 192434
  • feat(web): support --web-content-hash for entrypoint files by @kevmoo in 190153
  • [flutter_tools] Do not mistake server-initiated requests for responses to client requests in AnalysisServer by @bkonyi in 192546
  • Fix Wasm build cache mismatch in ResidentWebRunner and browser 404 fallbacks by @kevmoo in 190786
  • [tool] Migrate Upgrade, Downgrade, and UpdatePackages commands to modular dependency injection by @bkonyi in 190787
  • [tool] Migrate Darwin framework commands to modular dependency injection by @bkonyi in 192252
  • [tool] Migrate PackagesCommand and Pub to modular dependency injection by @bkonyi in 192460
  • Support activity-alias in Android launcher activity detection by @mboetger in 187251
  • fix(web): hide --web-content-hash until content hashing is complete by @kevmoo in 192663
  • Warn users on potential removal of dart:html in dry run by @kevmoo in 192710
  • feat(flutter_tools): migrate Android build commands to typed options by @kevmoo in 192524
  • Add a compiler warning for fragment shaders containing both texture samplers and early returns. by @walley892 in 191969
  • Suggest the -d flag after interactive device selection by @theprantadutta in 188941
  • [tool] Defer app.restart until the app has finished starting by @flutter-zl in 192650
  • Migrate SDK constraints for record_use and data_asset integration test packages to ^3.13.0-0 by @dcharkes in 192728
  • [flutter_tools] Migrate BuildBundleCommand to modular dependency injection by @bkonyi in 192462
  • [tool] Migrate CreateCommand to modular dependency injection by @bkonyi in 190785
  • Roll pub packages by @flutter-pub-roller-bot in 192819
  • [tool] Migrate BuildApkCommand and Android build toolchain to modular dependency injection by @bkonyi in 190776
  • Roll pub packages by @DanTup in 192815
  • [flutter_tools] Replace KernelAsset with Flutter-owned NativeAssetsMa… by @dcharkes in 192800
  • [flutter_tools] [dap] Handle --release, --profile and --wasm in args or toolArgs by @DanTup in 192926
  • [tool] Migrate BuildAppBundleCommand to modular dependency injection by @bkonyi in 192246
  • [tool] Migrate TestCompiler and WebTestCompiler to modular dependency injection by @bkonyi in 192923
  • [tool] Migrate DevFS to modular dependency injection by @bkonyi in 192836
  • Migrate flutter create templates to material_ui by @Piinks in 192947
  • feat(web): support --web-content-hash for physical static assets by @kevmoo in 191919
  • [flutter_tools] Stop deletion progress status during flutter clean by @bkonyi in 192996
  • [tool] Migrate BuildAarCommand to modular dependency injection by @bkonyi in 192247
  • feat(web): emit precache_manifest.json when --web-content-hash is enabled by @kevmoo in 192953
  • Migrate remaining flutter_tools templates & widget_preview_scaffold to [material|cupertino]_ui by @Piinks in 193099
  • Remove webDevFS tests for the AMD module system by @nshahan in 193028
  • [flutter_tools] Fix flutter doctor path validation for symlinked SDKs by @bkonyi in 193006
  • [flutter_tools] Use super parameters in more places by @srawlins in 192484
  • Update the plugin template to use Pigeon by @stuartmorgan-g in 192886
  • [tool] Accept plutil diagnostics from stderr in plist_parser_test (macOS 26) by @okorohelijah in 193292
  • fix: flutter analyze reporting the same issue multiple times by @rkishan516 in 193279
  • feat(flutter_tools): migrate Apple build commands to typed options by @kevmoo in 192818
  • [flutter_tools] Add use_null_aware_elements lint rule and fix new warnings by @AbdeMohlbi in 193215
  • Support DynamicLibrary.codeAsset in Flutter by @shikharish in 188947
  • [flutter_tools] Handle Windows reserved characters in test target path by @bkonyi in 191900
  • Fix plugin tests after Pigeon plugin template changes by @stuartmorgan-g in 193302
  • [tool] Migrate CoverageCollector to modular dependency injection by @bkonyi in 192924
  • Roll pub packages by @flutter-pub-roller-bot in 193438
  • [flutter_tools] Include data assets from hooks when pubspec.yaml is empty by @dcharkes in 193434
  • Roll pub packages by @flutter-pub-roller-bot in 193442
  • [tool] Require explicit dependency injection for FlutterDevice and FlutterDevice.create by @bkonyi in 192830
  • [flutter_tools] Guard socket streams and done futures against socket reset errors by @bkonyi in 192941
  • [flutter_tools] Include flutter.js.map in web builds by @cdeil in 192257
  • [tool] Migrate Web build subcommands and toolchain to modular dependency injection by @bkonyi in 190783
  • [flutter_tools] Lazily initialize AndroidSdk platform and build-tools discovery by @bkonyi in 191972
  • Set --no-js-strongly-connected-components for DDC compiles by default by @Markzipan in 193485
  • [tool] Migrate TestCommand and platform runner to modular dependency injection by @bkonyi in 190789
  • [Android] Update the CLI to reject passing engine configuration flags with a prebuilt binary in release mode by @camsim99 in 190870
  • [flutter_tools] Fix DTD "Stream already subscribed" error and wait for analysis over DTD in widget preview by @bkonyi in 192930
  • Revert: [flutter_tools] Fix DTD "Stream already subscribed" error and wait for analysis over DTD in widget preview by @flutteractionsbot in 193637
  • [flutter_tools] Bundle data assets from hooks in flutter test by @dcharkes in 193435
  • [web] Fix hang when Chromium cannot bind remote debugging port by @mdebbar in 193461
  • [flutter_tools] Fix flutter drive -d chrome hanging on web by @mdebbar in 193459
  • [flutter_tools] Bootstrap DeviceManager in ToolDependencies by @bkonyi in 193524
  • fix(web): hash source maps before rewriting sourceMappingURL with --web-content-hash by @kevmoo in 193614
  • [flutter_tools] Fix Use dependency graph to determine plugin initialization order by @bkonyi in 191591
  • [flutter_tools] Migrate DaemonCommand and Daemon domains to constructor DI by @bkonyi in 193542
  • Fix analysis failures due to missing const by @bkonyi in 193685
  • [flutter_tools] Include base href in web hot reload script paths by @mdebbar in 193678
  • [flutter_tools] Explicitly track host CPU architecture in command result analytics by @bkonyi in 191836
  • [Widget Preview] Provide descriptive error when widget preview is unconstrained by @bkonyi in 193005
  • Reland "[flutter_tools] Fix DTD "Stream already subscribed" error and wait for analysis over DTD in widget preview" by @bkonyi in 193658
  • [flutter_tools] Implement Device Service extension and flutter devices integration by @bkonyi in 192126
  • Cleanup unneeded hot restart tests by @nshahan in 193598
  • [flutter_tools] serialize and gate widget preview hot reloads by @bkonyi in 192325
  • [flutter_tools] Migrate DriveCommand, FlutterDriverFactory, and WebDriverService to constructor DI by @bkonyi in 193543
  • [flutter_tools] forward --offline flag to pub.get in update-packages by @bkonyi in 193619
  • Revert: [flutter_tools] forward --offline flag to pub.get in update-packages by @flutteractionsbot in 193808
  • flutter_tools: Enable native access for Gradle by @cbracken in 193814
  • [tool] Add support for --[no-]deprecated-js-interop to the flutter tool by @biggs0125 in 193712
  • Revert: [tool] Add support for --[no-]deprecated-js-interop to the flutter tool by @flutteractionsbot in 193873
  • Reland: [tool] Add support for --[no-]deprecated-js-interop to the flutter tool by @biggs0125 in 193877
  • [flutter_tools] Wait for TCP server socket to close in DaemonServer.run() by @matasb-google in 193714
  • [flutter_tools] Ignore build directories when scanning repo packages by @bkonyi in 191580
  • [widget_preview] Fix layout overflow and overlapping controls in narrow panes by @bkonyi in 193445
  • [flutter_tools] Intercept prohibited hot reloads in widget preview and trigger hot restart by @bkonyi in 193447
  • [tool] Narrow Scope of AGP DSL Flutter Fix Message by @jesswrd in 193610
  • [tool] Migrate ResidentRunner, HotRunner, and ColdRunner to modular dependency injection by @bkonyi in 192831
  • [flutter_tools] make flutter test listener.dart path deterministic to preserve build cache by @bkonyi in 191594
  • [flutter_tools] Handle unsupported iOS SDK root in native assets build by @bkonyi in 192442
  • [flutter_tools] Roll package:dap_adapters to 1.1.0 by @bkonyi in 193921
  • [flutter_tools] Verify local engine option propagation across tool commands and DI by @bkonyi in 192510
  • Add diagnostic logging and 3m ToolExit timeout for web test hangs by @mdebbar in 191004
  • [flutter_tools] Remove dynamic from web-related sources by @mdebbar in 193926
  • Revert: [flutter_tools] Intercept prohibited hot reloads in widget preview and trigger hot restart by @flutteractionsbot in 193968
  • [flutter_tools] Add BuildService and flutter build support for tool extensions by @bkonyi in 193748
  • [flutter_tools] Apply web_dev_config.yaml proxy in Wasm/release modes by @kevmoo in 193981
  • feat(flutter_tools): migrate Desktop build commands to typed options by @kevmoo in 193323
  • [flutter_tools] Remove globals usage from linux/native_assets.dart by @bkonyi in 193648
  • [flutter_tools] Add TargetOperatingSystem and TargetPlatform.os by @chingjun in 193938
  • [flutter_tools] Inject dependencies into doctor, logs, and target devices by @bkonyi in 193642
  • [flutter_tools] Report malformed plugin platform entries instead of crashing by @ishaquehassan in 193151
  • refactor: Remove discontinued js package by @rkishan516 in 193395
  • [flutter_tools] Include dev_dependencies hooks for release integration tests by @dcharkes in 193436
  • [beta] [flutter_tools] Guard against null vmService and uiIsolate in debugDumpFocusTree and debugDumpLayerTree by @flutteractionsbot in 194741
  • [beta] [flutter_tools] Fix StateError in testCompilerBuildNativeAssets when package root does not match projectUri by @flutteractionsbot in 194958
  • [beta] [flutter_tools] Contain web asset server path resolution to its search roots by @mdebbar in 195201
  • [beta] [flutter_tools] Exit cleanly when Windows path exceeds MAX_PATH (OS Error 206) by @flutteractionsbot in 195072
  • [beta] [flutter_tools] Log --[no-]deprecated-js-interop build/fail analytics by @kevmoo in 195630

Documentation

#
  • Use ServicesBinding.instance.exitApplication instead of exit(0) in multiple_windows example by @mattkae in 189364
  • Migrates the platform_channel example to material_ui by @QuncCccccc in 190253
  • [flutter/flutter] Migrate multiple_windows example to material_ui by @dkwingsmt in 190313
  • Migrate platform_channel_swift example to material_ui by @QuncCccccc in 190308
  • Migrate platform_view example to material_ui by @QuncCccccc in 190309
  • Migrate examples/splash to package:material_ui by @elliette in 190248
  • Migrate example image_list to material_ui by @justinmc in 190363
  • Refactor flutter_view example to not use material by @Renzo-Olivares in 190377
  • Adjust settings header name for properties that apply to both tooltips and popups by @robert-ancell in 190053
  • Migrate syntax rules to analyzer plugin by @bkonyi in 191037
  • Migrate ios driver tests batch 3 to simulators by @okorohelijah in 191333

Other changes

#
  • Roll pub packages by @flutter-pub-roller-bot in 189149
  • Promote android_hardware_smoke_tests out of bringup in CI by @andywolff in 189081
  • UberSDF rect handling for thin (line-like) rectangles by @b-luk in 188821
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 189203
  • Update Depdencies Used By flutter_engine_group_performance by @jesswrd in 189229
  • [Impeller] Recycle HostBuffer arena entries only after GPU completion by @bdero in 188965
  • Android_hardware_smoke_test: Cache flutter engine when running vulkan backend instrumented tests by @andywolff in 189026
  • UberSDF thin roundrect handling by @b-luk in 189224
  • Increase number of 'Mac tool_integration_tests' subshards from 5 to 10 by @jmagman in 189040
  • iOS: clean up swiftc.py after migration to target triples by @cbracken in 189240
  • Flip from deprecated strict analysis modes to lint rules by @srawlins in 187692
  • Take Mac tool_integration_tests_* out of bringup by @jmagman in 189368
  • Add note that hcpp needs impeller by @gmackall in 189382
  • Move a few benchmarks from x64 Intel Macs to ARM by @jmagman in 189377
  • Stop running most Mac x64 builders that have Mac ARM equivalents on master by @jmagman in 189301
  • Bump actions/labeler from 6.1.0 to 6.2.0 in the all-github-actions group by @dependabot[bot] in 189396
  • Update lock-threads dependency to 6.0.2 by @guidezpl in 189053
  • Roll pub packages by @flutter-pub-roller-bot in 189409
  • Move renamed x64->ARM benchmarks out of bringup by @jmagman in 189400
  • Fix space formatting in cherry-pick label for flutter_cp.dart by @bkonyi in 189463
  • Add missing name to mirroring workflow by @guidezpl in 189439
  • [agents] Refactor shepherd-prs skill into a pure Markdown runbook using native gh CLI by @harryterkelsen in 189095
  • Added unified check-run user manual by @ievdokdm in 189453
  • Implement UberSDF lines to replace LineContents-based AA lines by @b-luk in 188514
  • Roll vulkan-deps to 0582f446e54a by @jason-simmons in 188524
  • [Impeller] Call glfwTerminate during global test environment teardown if a playground test called glfwInit by @jason-simmons in 189523
  • [Impeller] Fix atlas growth test by @flar in 189533
  • [fuchsia][iwyu] Remove transitive include of fuchsia.input.report. by @gnoliyil in 188891
  • Remove obsolete packages analysis flag by @stuartmorgan-g in 189525
  • ci(github-actions): resolve zizmor github-env findings in composite flutter actions by @jtmcdole in 189602
  • android_hardware_smoke_tests: Apply semantic line breaks to readme by @andywolff in 189613
  • [macOS] Add FlutterPluginRegistrar.valuePublished(byPlugin:) just like iOS by @bernaferrari in 189614
  • Upgrade android_hardware_smoke_test CI to run instrumented tests by @andywolff in 189390
  • Migrate dev/tools skill validation to new dart_skills_lint API by @reidbaker-agent in 189626
  • Roll ANGLE to cc08479fbcc1 by @jason-simmons in 189595
  • Add a github workflow to remove flutteractionsbot branches after the PRs are merged or closed. by @eyebrowsoffire in 189668
  • [Impeller] In the AHBTextureSourceVK destructor, do not call Vulkan APIs if the VkDevice has been destroyed by @jason-simmons in 189666
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 189735
  • Take plugin_test_darwin out of bringup by @jmagman in 189594
  • [et] Refactor gn post-processing, fix minor clang[++] regex match bug by @cbracken in 189685
  • Roll pub packages by @flutter-pub-roller-bot in 189760
  • Derive the SkImage size used by ImageEncodingImpeller::ConvertDlImageToSkImage from the size of the underlying texture, not the size of the DlImage by @jason-simmons in 189739
  • Batch release directory correction by @justinmc in 189738
  • Run delete-bot-branches.yaml on pull_request_target instead of pull_request so that we can access secrets. by @eyebrowsoffire in 189793
  • Automate recurring tasks via workflows - localizations by @Piinks in 189750
  • Remove codecov badge from README by @guidezpl in 189728
  • ci: Include root pubspec.yaml in pub cache key by @cbracken in 189826
  • 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 189808
  • [ios,macos] Add Swift Sourcekit LSP support by @cbracken in 189761
  • Adds skill for generating engine diffs for new releases. by @gaaclarke in 189869
  • Add dart_runtime_service_vm_aot.dart.snapshot to the snapshot list in the macOS code signing configuration by @jason-simmons in 189981
  • Reduce the number of gtest-parallel workers when running Impeller tests on Mac Minis used by CI by @jason-simmons in 189813
  • Migrate a11y_assessments to uiscene by @LouiseHsu in 189960
  • Update contributing guidelines for commit message format by @reidbaker in 189922
  • fix(ci): quote labels to fix yaml mapping error by @jtmcdole in 190002
  • ci: add mac verify binaries workflow by @jtmcdole in 190010
  • [Impeller] Add 2D texture array support (kTexture2DArray) by @bdero in 188778
  • Android_hardware_smoke_test: clean up golden copy in CI by @andywolff in 189948
  • Roll Abseil to ff6e8ce3e932 by @jason-simmons in 189998
  • [ios]do not nuke user input path when running uiscene integration test by @hellohuanlin in 186436
  • ci: verify_binaries_pre_codesigned part 2 by @jtmcdole in 190078
  • Bump actions/labeler from 6.2.0 to 7.0.0 in the all-github-actions group by @dependabot[bot] in 190099
  • [wimp] fixes ubo padding size issue by @gaaclarke in 189958
  • Add Ishaq Hassan to AUTHORS by @ishaquehassan in 190064
  • Made linter more robust to non-utf8 files by @gaaclarke in 190012
  • Manual roll of Dart from 28e63ac22d8d to 49c637261348 by @jason-simmons in 190158
  • Convert all gradle-wrapper.properties in /dev to use distribution 'bin' by @mboetger in 190226
  • ci: mac verify binaries still has to wait on linux_host_engine by @jtmcdole in 190239
  • [cross imports] Check examples cross imports by @navaronbracke in 187662
  • ci: mac-must-wait part duex by @jtmcdole in 190295
  • Add nullptr check to isOpaque by @walley892 in 189796
  • [Flutter GPU] Bind uniforms and textures by cached reflection index by @bdero in 189820
  • macOS: Set static text accessibility role for read-only text fields by @cbracken in 190330
  • Remove the --enable-serial-gc engine flag by @jason-simmons in 190310
  • [Impeller] Do not acquire an unneeded image in KHRSwapchainVK if the swapchain must be recreated due to a size change by @jason-simmons in 190116
  • [Impeller] Execute PipelineCompileQueue jobs in the order that they were added by @jason-simmons in 190262
  • chore: swiftshader mirrored + llvm16 by @jtmcdole in 181225
  • Eliminate some early returns in uber_sdf.frag to fix broken UberSDF AA on Windows by @b-luk in 190260
  • Primitive shape integration test by @b-luk in 190368
  • [Flutter GPU] Raise Dart errors for invalid render pipelines and memoize per-draw pipeline state by @bdero in 189899
  • [Impeller] Skip binding dead-code-eliminated resources on Metal by @bdero in 190040
  • [macOS] Resume app lifecycle on becomeActive to avoid frozen UI after occlusion by @ellie-ka-nam in 188772
  • [Infra] Replace defunct umbrella template with Wasm issue form by @kevmoo in 190471
  • a11y: Map disabled/read-only semantics to AX node restriction by @cbracken in 190353
  • tools: Support FLUTTER_HOST_ARCH in update_dart_sdk scripts by @cbracken in 190421
  • tests: add --ios-runtime param by @cbracken in 190414
  • Add windows platform support for primitive_shape_test integration test by @b-luk in 190464
  • Add path rendering benchmarks by @walley892 in 188654
  • Remove openglessdf from impeller_unittests. by @gaaclarke in 190469
  • [Impeller] Enable ETC2/ASTC LDR/BC texture compression features at Vulkan device creation by @guszxtavo in 189303
  • android_hardware_smoke_test: Detect blank image failures or EGL initialization warnings and retry by @andywolff in 190110
  • iOS,macOS: add tsan and ubsan support for Swift by @cbracken in 190497
  • Migrate the shell unit tests from legacy Dart native functions to FFI by @jason-simmons in 190473
  • Document frozen embedder API structs by @mvincentong in 186842
  • Fix a flake in ShellTest.SecondaryVsyncCallbackShouldBeCalledAfterVsyncCallback by @jason-simmons in 190490
  • [master] Update Flutter DEPS to Dart bb17f25f176f5209179b23d51aab9725ffb5146d by @flutteractionsbot in 190600
  • gpu: Remove unused GPUSurfaceNoop by @cbracken in 190610
  • Separate ARM64 Linux Desktop and Embedded engine builds to fix CJK and non-ASCII font rendering by @krystic in 180235
  • Revert "Reduce the number of gtest-parallel workers when running Impeller tests on Mac Minis used by CI (#189813)" by @jason-simmons in 190560
  • Enable Gradle cache for a single test target by @mboetger in 190474
  • Fix snippets test and add it to CI by @dkwingsmt in 190327
  • Rename and restructure the primitive_shape_test test to engine_integration_golden_test by @b-luk in 190581
  • [Flutter GPU] Ignore redundant render pass state assignments by @bdero in 190379
  • Revert: Enable Gradle cache for a single test target by @flutteractionsbot in 190629
  • ci: make tree-analyze workflow wait for linux_android_debug_engine by @jtmcdole in 190628
  • [Impeller] Validate GLES texture units against the combined limit by @bdero in 189332
  • Disallow Swift symbols in verify_exported.dart by @LongCatIsLooong in 190645
  • [Reland] Enable Gradle cache for CI on single test target by @mboetger in 190635
  • Fix runIf path filtering in .ci.yaml to include all example projects by @Piinks in 190687
  • iOS: Migrate the scenario app to UIScene by @cbracken in 190649
  • Adds Impeller availability to the impeller README.md by @gaaclarke in 190671
  • [Impeller] Fix hardcoded Vulkan validation state in C API by @KercyDing in 186767
  • Migrate flavors_test_ios to Simulators and add UIScene support by @okorohelijah in 189442
  • Instruct gemini code assist not to comment on syntax error by @chingjun in 189930
  • Scenarios: Deduplicate scenario name declarations by @cbracken in 190818
  • Scenarios: Fix locale test on hosts with several languages by @cbracken in 190821
  • Update packages gardener instructions by @stuartmorgan-g in 190463
  • ci: Extract shared expected calls in prepare_package tests by @cbracken in 190817
  • Fix CocoaPods ruby dependency for flavors_test_ios on Mac bot by @okorohelijah in 190775
  • iOS: Add golden coverage for rounded superellipse clips by @cbracken in 190826
  • run_ios_tests: Allow running from any directory by @cbracken in 190822
  • Scenarios: Eliminate an unused import by @cbracken in 190837
  • Scenarios: Fix multiple-clips scenario doc comments by @cbracken in 190830
  • iOS: Remove the Scenarios app Skia golden test option by @cbracken in 190827
  • Add ClipPath optimizations to backdrop clips as well by @Hari-07 in 189118
  • Revert: Roll Dart SDK from 558fb298e458 to c86be8702638 (3 revisions) by @flutteractionsbot in 190934
  • Reduce web_skwasm_tests subshards from 8 to 2 by @mdebbar in 190728
  • Remove the bringup flag from the linux_arm_host_desktop_engine builder by @jason-simmons in 190935
  • [devicelab] Remove orphaned screenshot test files by @bkonyi in 190879
  • Include the examples cross imports checker in the analzyer. by @justinmc in 190674
  • [Impeller] Move image upload scheduling waits to GPU disable by @FelixMittermeier in 190445
  • Roll pub packages by @flutter-pub-roller-bot in 190958
  • [AGP 9.1.0 Migration #1] Add Android Gradle Plugin Public API migration documentation by @reidbaker-agent in 190842
  • Add clang, cmake, and ninja deps to Linux windowing_test by @robert-ancell in 190119
  • ci: Support --target_arch option in prepare_package.dart by @cbracken in 190960
  • Roll pub packages by @flutter-pub-roller-bot in 190977
  • remove bringup for flavors test by @okorohelijah in 190940
  • Adds agent skill for spawning led tasks. by @gaaclarke in 190937
  • Report individual test results to LUCI ResultDB by @chingjun in 190254
  • Enable Gradle CI cache on all test targets that require android_sdk by @mboetger in 190723
  • fix mac_ios_engine_ddm to use Mac-15.7 and Xcode 26 by @okorohelijah in 191012
  • Update Material/Cupertino code freeze workflow to leave PR guidance comment by @Piinks in 191033
  • ignore soon-to-be-removed plugins_in_inner_options issue by @srawlins in 191071
  • [analysis] Clarify plugin relative path resolution in root analysis_options.yaml by @bkonyi in 191077
  • Migrate framework rules to analyzer plugin by @bkonyi in 191035
  • feat(templates): add 'c: tfw4' label to Wasm issue template by @kevmoo in 191084
  • [analysis] Migrate verifyNoTestImports to flutter_analyzer_plugin by @bkonyi in 191124
  • [analysis] Document rules, descriptions, and scopes in analyzer plugin README by @bkonyi in 191076
  • Fix web tracing flakiness on macOS ARM64 by @harryterkelsen in 190759
  • et: Fix custom git diff prefix handling by @cbracken in 191108
  • [analysis] Migrate verifyTabooDocumentation to flutter_analyzer_plugin by @bkonyi in 191125
  • Impeller: Fix for stroked circles with stroke half-width > radius, tessellation scaling by @cbracken in 191102
  • [analysis] Filter analyzer rule AST visitor registration by target file path by @bkonyi in 191159
  • Makes sure impeller context's are plumbed through to LayerTree::Flatten. by @gaaclarke in 191017
  • [Android] Only check for user permissions (first two characters) by @mboetger in 191019
  • Run gradient e2e benchmarks on Windows CI by @b-luk in 191024
  • Fix wide gamut condition on metal playground tests by @andywolff in 191210
  • Update TESTOWNERS by @Piinks in 191233
  • Improve error reporting for dumpsys meminfo by @mboetger in 187254
  • Make windows_engine_integration_golden_test presubmit and non-bringup by @b-luk in 191284
  • macOS: Fix macOS 27 os_log compile errors, improve TRACE_VSYNC by @cbracken in 191238
  • Makes windows_text_shadow_perf__timeline_summary bringup false. by @gaaclarke in 191010
  • Use officially supported compile time thread local strike cache flag. by @eyebrowsoffire in 191014
  • remove bringup for migrated driver tests by @okorohelijah in 191334
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 191383
  • [ios] set up an empty ios agent to host ios-team's skills by @hellohuanlin in 188286
  • Rolls libpng to 1.6.58 by @gaaclarke in 191320
  • [FML] Replace deprecated wstring_convert with Win32 APIs by @bkonyi in 191394
  • android_hardware_smoke_test: Improve reliability by @andywolff in 191374
  • Adds new gallery benchmarks to windows (skia and impeller) by @gaaclarke in 191454
  • tools: Extract Dart SDK to temp directory before moving to final location by @bkonyi in 191263
  • Fixes windows gallery benchmarks by forcing mobile layout by @gaaclarke in 191507
  • Move more RSE rendering cases to complex_rse.frag by @walley892 in 191235
  • Add agent rule to prevent using material and cupertino in widget tests by @chunhtai in 191588
  • [flutter_tools] Fix $git typo in shared.bat to restore cache invalidation on Windows by @bkonyi in 191217
  • Remove octant_offset_c uniform from ubersdf, reorder/document ubersdf uniforms by @b-luk in 191597
  • Roll pub packages by @flutter-pub-roller-bot in 191726
  • [UIScene] Migrate dev/benchmarks/test_apps/stocks to UIScene lifecycle by @LouiseHsu in 191651
  • [UIScene] Migrate dev/benchmarks/microbenchmarks to UIScene lifecycle by @LouiseHsu in 191650
  • iOS,macOS: Compile Swift with opt flags in opt builds by @cbracken in 191622
  • Fixes translated bounded blurs by @gaaclarke in 191615
  • Uiscene migrate custom channels views by @LouiseHsu in 191817
  • Remove bringup for batch 3 by @okorohelijah in 191750
  • Add prompt_suggestion icon to list of RTL mirroring icons. by @shawnridgeway-google in 191741
  • [UIScene] Migrate dev/benchmarks/complex_layout to UIScene lifecycle by @LouiseHsu in 191619
  • Update triage docs for ecosystem and codelab changes by @Piinks in 191809
  • Handle linear and radial gradients in UberSDF by @b-luk in 190874
  • Denylists b-series powervr from vulkan by @gaaclarke in 191808
  • Explicitly disable HCPP in hybrid_android_views integration test by @gmackall in 191894
  • Revert: Handle linear and radial gradients in UberSDF by @flutteractionsbot in 191913
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 191895
  • Deprecate legacy gen_defaults tool by @QuncCccccc in 191911
  • macOS: Record test accessibility notifications in a dictionary by @cbracken in 191854
  • macOS: Compare accessibility strings as NSStrings in tests by @cbracken in 191853
  • Bump customer testing version to pick up forui tests by @Pante in 191931
  • Uiscene migrate remaining apps by @LouiseHsu in 191652
  • [UIScene] Migrate dev/benchmarks/macrobenchmarks to UIScene lifecycle by @LouiseHsu in 191648
  • Update no-main-prs to leave a comment by @Piinks in 191973
  • Update scheduled workflow for more tasks, add goldctl update by @Piinks in 191991
  • fix(workflow): Mac Verify Binaries needs Linux mac_android_aot_engine by @jtmcdole in 191999
  • Fixes for texture-backed gradients by @b-luk in 191925
  • [tool] Migrate dev/tools from dart_skills_lint to skills_lint package by @reidbaker-agent in 191997
  • Documentation and script for Gradle Distribution cache for CI by @mboetger in 190323
  • Explicitly disable HCPP in platform view benchmarks and integration tests by @gmackall in 191908
  • Add website documentation item to PR pre-launch checklist by @jesskuras in 192080
  • Support wide gamut colors in gradient_generator's CreateGradientTexture by @b-luk in 191980
  • Uiscene migrate add2app hosts by @LouiseHsu in 191847
  • Deflake hybrid_android_views_integration_test by @gmackall in 191830
  • Promote android_hardware_smoke_test instrumented shards out of bringup by @andywolff in 192197
  • Remove bringup for driver tests batch 2 by @okorohelijah in 192174
  • Bypass gamma correction when alpha >= 1.0 by @gaaclarke in 192193
  • Add IsProgram mock method to MockGLESImpl, use it in BufferBindingsGLESTest by @b-luk in 192196
  • [docs] Remove superseded AI rules for Flutter by @parlough in 192185
  • Makes backdrop groups operate on the union. by @gaaclarke in 191838
  • Fix issue where shapes rendered with gradient+blur+rotation end up incorrectly cut off by @b-luk in 192136
  • Fix parsing of --enable-hcpp-and-surface-control switch and add --no-enable-hcpp tests by @gmackall in 192202
  • Handle linear and radial gradients in UberSDF (re-implement after fix) by @b-luk in 192124
  • Add iOS Universal Link integration test (Simulator) by @okorohelijah in 191443
  • [iOS] Add native deep link lifecycle integration tests for UIScene plugins by @okorohelijah in 192173
  • [devicelab] Fix Mac ios_universal_link_test CI build and scheme configuration by @okorohelijah in 192321
  • ci(engine): target ignore_phone|none for new macs by @jtmcdole in 192317
  • ci: update dartdoc from 9.0.6 to 9.0.9 by @cbracken in 192405
  • Clean up lint errors in workflows by @Piinks in 191987
  • et: Fix compile_commands.json post-processing by @cbracken in 192395
  • Roll Dart SDK from 77094991d1c1 to 4be1b711b4ba (5 revisions) by @gaaclarke in 192453
  • Re-add Xcode and OpenJDK dependencies to macOS wasm local_engine builders by @mdebbar in 192238
  • [master] Update Flutter DEPS to Dart 2383823382d9acc801d6873a270bf7f5663f8774 by @flutteractionsbot in 192477
  • uber_sdf: removes derivatives from rect path by @gaaclarke in 192267
  • Remove bringup option from CI configuration by @jtmcdole in 192511
  • Fix specify_nonobvious_local_variable_types lints in luci_resultdb_test.dart by @bkonyi in 192543
  • Promote Windows gradient benchmark tests to non-bringup by @b-luk in 192581
  • [devicelab] Clean up Chrome profile directories and trap abort signals in web benchmarks by @harryterkelsen in 192584
  • Revert: [devicelab] Clean up Chrome profile directories and trap abort signals in web benchmarks by @flutteractionsbot in 192615
  • fix(ci): mac verify binaries still racing by @jtmcdole in 192634
  • Unmark new_gallery_windows_impeller__transition_perf as bringup by @gaaclarke in 192633
  • Unmark new_gallery_windows_skia__transition_perf as bringup by @gaaclarke in 192635
  • ci(bringups): remove bringup from these tests by @jtmcdole in 192637
  • fix(tests): Add ruby dep to Mac windowing_test by @jtmcdole in 192656
  • fix: regenerate gradle lockfiles for external_textures integration test by @mboetger in 192657
  • RELAND: [devicelab] Clean up Chrome profile directories and trap abort signals in web benchmarks by @harryterkelsen in 192655
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 192499
  • ci(bringup): cleanup some bringup by @jtmcdole in 192752
  • Build wasm_release local build on arm64 macs. by @eyebrowsoffire in 192817
  • Wait for first native frame displayed in android_engine_test by @gmackall in 191823
  • Fix incorrect UberSDF pixelsize used for stroked shapes by @b-luk in 192659
  • remove bringup batch 4 by @okorohelijah in 192872
  • Separate HCPP tests in android_engine_test into their own CI target by @gmackall in 192512
  • Fix square corner issue by @andywolff in 191096
  • Updates freetype2 to 2.14.2 by @gaaclarke in 192883
  • Remove manually-combined darwin/ plugin tests by @stuartmorgan-g in 192890
  • [Impeller] Avoid heap-allocating std::function captures per draw by @artemkulyk in 192679
  • ci: remove bringup on Linux_android_emu_vulkan_stable android_engine_hcpp_tests by @jtmcdole in 192932
  • Update package list in the 1P package issue template by @stuartmorgan-g in 192905
  • Add M3E migration guideline by @QuncCccccc in 192519
  • Better Dart bumps by @Piinks in 192644
  • Fix FFI links for Linux in README.md by @mit-mit in 192981
  • [engine] Add cli_util to pubspec.yaml dependency_overrides by @kevmoo in 192972
  • [engine_tool] Allow a dot in GN target names by @dzolotov in 192423
  • Remove ios_debug_unopt_sim builder from Mac mac_unopt by @LongCatIsLooong in 192960
  • Update Android plugin language guidance by @stuartmorgan-g in 192906
  • [flutter_analyzer_plugin] Migrate unit tests off package:test_reflective_loader by @kevmoo in 193017
  • [Impeller] Fix the text benchmark on Impeller backends by @artemkulyk in 192677
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 190685
  • Add xvfb: "1" to Linux flavors test by @jtmcdole in 193122
  • Roll pub packages by @flutter-pub-roller-bot in 193138
  • [web] Link the web triage notes repo from the triage doc by @flutter-zl in 192494
  • ci(Linux flavors_test_linux): out of bringup by @jtmcdole in 193153
  • Fix unawaited async calls in fragment_shader_test and skip Vulkan in canvas_test by @andywolff in 193030
  • [Impeller][GLES] Rebind textures before buffer uploads by @dfdgsdfg in 192158
  • [Impeller] Scope the broken mipmap workaround to the textures it affects by @bdero in 190186
  • Revert: Fix square corner issue by @flutteractionsbot in 193189
  • Replace stuartmorgan-g in TESTOWNERS by @stuartmorgan-g in 192904
  • [devicelab] Unify web benchmarks entrypoint using BENCHMARK_SERVER_PORT define by @harryterkelsen in 192765
  • Makes snapshots not have mip levels (since they weren't propogated) by @gaaclarke in 192074
  • remove compile benchmarks from bringup by @okorohelijah in 193249
  • Fix Reducing-Test-Flakiness.md: promoting a test to prod removes bringup by @okorohelijah in 192983
  • [Flutter GPU] Add 2D texture array support by @bdero in 190036
  • [Impeller] Reserve content depth in the shared backdrop fast path by @ahmadwyne in 193176
  • Update linux_android_emu_unstable to API 37 AVD by @jesswrd in 193240
  • [githooks] Support git worktrees and relative hooksPath by @mdebbar in 193170
  • Make web test subshards dynamically determined by .ci.yaml by @mdebbar in 191003
  • [Android 17] Bump Add-to-app Test Apps in flutter/flutter to AGP 9.3.1 by @jesswrd in 193264
  • Exclude iOS PRs from macOS link by @vashworth in 193315
  • SSBO-based gradients in UberSDF by @b-luk in 192962
  • Removes feedback loop from advanced filters without offscreen msaa and framebufferfetch by @gaaclarke in 193306
  • Un-nest sceneBuildDuration and windowRenderDuration in web SceneBuilderRecorder by @victorsanni in 193260
  • Roll pub packages by @flutter-pub-roller-bot in 193460
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 193020
  • ci(bringup): android_intent_security_test is green by @jtmcdole in 193469
  • Allow macOS tests to use macOS 15 or 26 by @vashworth in 193317
  • [engine] Decode animation frames with alpha after an opaque first frame by @krll-kov in 193113
  • shell: Rename first-frame tests AddFirstFrameCallback* by @cbracken in 193418
  • [engine] Fix remaining unawaited_futures lints by @bkonyi in 193508
  • [Android 17] Added Android 17 device to Firebase tests by @jesswrd in 193251
  • Bump customer testing version for flutter/devtools update by @johnpryan in 193511
  • Roll pub packages by @flutter-pub-roller-bot in 193522
  • Remove vestigial download_jdk gclient var by @dbebawy in 188571
  • Update guidance on bumping Dart by @Piinks in 193131
  • Split pre-AGP 8.3 module AAR test into a Java 17 pinned target by @jesswrd in 193467
  • Give the Vulkan test context the extensions Impeller requires by @jwinarske in 193002
  • Update Engine to test Android 17 AVD by @jesswrd in 193239
  • Fix StrcmpFixed matching prefixes in the Vulkan embedder tests by @jwinarske in 192999
  • Fix unresolved doc comment references in dev/ tooling by @szakarias in 193501
  • Remove some Undefined Behavior from run_customer_testing_tests.dart. by @rmacnak-google in 193582
  • [Impeller] Sample the render target rect in offscreen advanced blends by @tguerin in 192988
  • [wasm] Set flutter_runtime_mode in tools/gn to_gn_wasm_args by @kevmoo in 193407
  • ci(bringup): android_java17_build_android_host_app_with_module_aar is green by @jtmcdole in 193580
  • Avoid using relative path in Process.start by @alexmarkov in 193664
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 193666
  • test: configure Xvfb and openbox for windowing_test by @jtmcdole in 193529
  • [Impeller] Deduplicate GLES render pass state by @kevmoo in 193427
  • [Embedder] Support render texture for vulkan by @xiaowei-guan in 188855
  • Redistribute iOS/macOS TESTOWNERS by @vashworth in 193589
  • Fix specify_nonobvious_local_variable_types lint in record_use_test_package by @bkonyi in 193720
  • [Flutter GPU] Reusable binding sets by @bdero in 190400
  • [web] Force a GC before each benchmark reload to keep /dev/shm from filling up by @mdebbar in 193822
  • Removed crash when responding on a dead port. by @gaaclarke in 193827
  • Fix adb not found error for android_intent_parsing_test by @camsim99 in 193828
  • [Impeller] Guard the Metal pipeline library maps with a mutex by @leehack in 193722
  • [Android 17] Update ci.yaml to test against gradle 9.5.0 dists by @jesswrd in 193874
  • Use the Skia header path that are consistent with other includes by @chingjun in 193853
  • Temporarily limit iOS tests to Mac-15 by @vashworth in 193915
  • Revert: Roll Dart SDK from 16edd71d74e3 to b646f11238c8 (2 revisions) by @flutteractionsbot in 193934
  • ci(bringup): Linux_android_emu android_intent_parsing_test is green by @jtmcdole in 193952
  • Add --shader-report and --fail-on-unused-shaders option to impeller_golden_tests by @walley892 in 193319
  • Do not present the root surface when an external view embedder owns it by @jwinarske in 193000
  • refactor: Remove discontinued isolate package by @rkishan516 in 193394
  • refactor: Remove discontinued adaptive_breakpoints package by @rkishan516 in 193393
  • Document HCPP backdrop filter and image filter limitations by @gmackall in 194026
  • Update comment references blocker by @chunhtai in 193958
  • Sync CHANGELOG.md from stable by @flutteractionsbot in 194033
  • Bump dartdoc to 9.0.11 by @szakarias in 194076
  • Move the Vulkan wrapped-texture helper out of the GPU surface by @jwinarske in 193001
  • Add docs for using bb and led with LUCI by @mdebbar in 193859
  • Refactored PipelineLibraryGLES by @gaaclarke in 193985
  • [Impeller] Guard the sampler library caches with a mutex by @leehack in 193738
  • Migrate remaining test to macOS 26 by @vashworth in 193825
  • Bump customer tests to pick up material_ui and cupertino_ui by @Piinks in 194236
  • Fix HDR image packing for ios by @walley892 in 192526
  • [master] Update Flutter DEPS to Dart 5933cb486b4aef2f8cf6b9f89a5651c0d5b0955e by @flutteractionsbot in 193982
  • Stamp 3.50.0-0.1.pre branch by @camsim99 in 194323
  • Bump engine.version for 3.50 beta release by @camsim99 in 194327
  • [flutter-3.50-candidate.0] Update Flutter DEPS to Dart f6300bc9c8d2015d2865687987728885cd32277f by @flutteractionsbot in 195124
  • [flutter-3.50-candidate.0] Sync engine.version to c59629b7015c07cde8a989dc286c297bc036a881 by @flutteractionsbot in 195135
  • [flutter-3.50-candidate.0] Sync engine.version to 8ec493d4d9cd3cc17a5639d2684e9ad1e22c47b1 by @flutteractionsbot in 195497
  • [CP-beta]Roll brotli to v1.2.1 by @flutteractionsbot in 195615
  • [flutter-3.50-candidate.0] Sync engine.version to 1b9ee1a58581e9c51a5fc9b38d42ab80388c6d1d by @flutteractionsbot in 195935

New contributors

#
  • @Akhrameev made their first contribution in 188627
  • @gnoliyil made their first contribution in 188891
  • @jameskrupnik made their first contribution in 188123
  • @awnoa made their first contribution in 189692
  • @schultek made their first contribution in 189725
  • @Ram-Dawson made their first contribution in 189973
  • @Yusufihsangorgel made their first contribution in 189723
  • @ellie-ka-nam made their first contribution in 188772
  • @guszxtavo made their first contribution in 189303
  • @Ahmet-Can-Urhan made their first contribution in 189457
  • @ColeSpringer made their first contribution in 190048
  • @UditDewan made their first contribution in 189705
  • @krystic made their first contribution in 180235
  • @KercyDing made their first contribution in 186767
  • @matheusccastroo made their first contribution in 189622
  • @binSaed made their first contribution in 190163
  • @xRossKoh made their first contribution in 189823
  • @FelixMittermeier made their first contribution in 190445
  • @herdiyana256 made their first contribution in 190462
  • @motucraft made their first contribution in 189336
  • @wilyan09007 made their first contribution in 190819
  • @Boulea7 made their first contribution in 190858
  • @glitchfl made their first contribution in 191155
  • @JayeshJain25 made their first contribution in 191151
  • @amaan-0331 made their first contribution in 190612
  • @fa0311 made their first contribution in 190194
  • @zulongzhang made their first contribution in 190518
  • @sawirricardo made their first contribution in 188005
  • @GhagSagar23 made their first contribution in 189658
  • @shawnridgeway-google made their first contribution in 191741
  • @ik020 made their first contribution in 191554
  • @Devasy made their first contribution in 191281
  • @kryali made their first contribution in 191479
  • @jesskuras made their first contribution in 192080
  • @AfzalivE made their first contribution in 189686
  • @anazr9 made their first contribution in 186246
  • @papmodern made their first contribution in 191204
  • @AllinGaming made their first contribution in 191130
  • @ibrahimcetin made their first contribution in 191062
  • @wratheus made their first contribution in 192206
  • @serhii-k made their first contribution in 191964
  • @Shawn-Yu-Dev made their first contribution in 191573
  • @NikhilKukreja26 made their first contribution in 192019
  • @artemkulyk made their first contribution in 192679
  • @sankalpsthakur made their first contribution in 190651
  • @smocer made their first contribution in 187167
  • @dhc-tech made their first contribution in 191098
  • @diegolopezrm made their first contribution in 191647
  • @dfdgsdfg made their first contribution in 192158
  • @sorensp-goog made their first contribution in 193090
  • @ahmadwyne made their first contribution in 193176
  • @nicolinx made their first contribution in 185206
  • @nishchala-tattvam made their first contribution in 192427
  • @nickolasdeluca made their first contribution in 191223
  • @shikharish made their first contribution in 188947
  • @sneurlax made their first contribution in 192205
  • @cdeil made their first contribution in 192257
  • @MohanadAbdallah-mv made their first contribution in 183582
  • @jwinarske made their first contribution in 193002
  • @kaluli123123 made their first contribution in 191631
  • @HibaChamkhi made their first contribution in 192714
  • @tjcGoogle made their first contribution in 189968
  • @apinilabs-pascal made their first contribution in 189835
  • @CanArslanDev made their first contribution in 190431
  • @leehack made their first contribution in 193722
  • @Jstuff36 made their first contribution in 193575
  • @hoyahozz made their first contribution in 191781
  • @aayushkedawat made their first contribution in 193079
  • @RobertOdrowaz made their first contribution in 191350

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