Version Comparison Studio
Choose two real stable releases. Boring Doc lists every indexed change between them with its evidence, impact and migration instructions, and can fetch the verified source diff from GitHub.
3.3.7 → 3.47.7Nov 2, 2022 → Oct 8, 2026 · 125 releases in range
What changed?
3453 indexed changes across 125 versions: 67 breaking change, 22 removed, 60 deprecated api, 501 new feature, 778 improvement, 51 performance, 352 platform-specific, 450 developer tooling, 1096 bug fix, 76 documentation.
Will this affect my application?
89 high-impact items. Start with: OpenGL ES render-to-texture content is stored top-down; Update semantics header and headingLevel behavior on iOS and Android; Changing RawMenuAnchor close order; ….
What action should I take?
Read the 92 official migration guides first, apply `dart fix` where available, then upgrade and run your test suite. Deprecations can be scheduled; removals cannot.
How do I migrate safely?
Prefer stepping through stable series sequentially; each breaking-change page has a checklist, before/after code and the official guide. Verify with `flutter analyze`, `flutter test` and a profile-mode run on each target platform.
- Release-note items are indexed for the 3.47, 3.44, 3.41, 3.38 series only. For 3.35, 3.32, 3.29, 3.27, 3.24, 3.22, 3.19, 3.16, 3.13, 3.10, 3.7 this comparison shows official breaking-change guides and hotfix notes.
- Release-note items are classified from PR titles (heuristic); breaking-change guides are classified from the official index.
A source diff proves code changed; it does not by itself show that a public API is breaking. Use it to corroborate the announcements above.
Commits (250)
- d56161e[linux] Use GWeakRef in mock signal handler test helper (#188700)
- c2e79e1Free compositor in view renderer finalize to avoid use-after-free (#188702)
- 15a159bClear text input handler widget on view dispose (#188701)
- 8ed1835Remove unused fields (#188705)
- 359fa32Roll Packages from c1f7d920c272 to 656ccaae4f49 (12 revisions) (#188728)
- 18c6f23[flutter_tools] Use new ddc modules in test (#188240)
- 7f03d26[Tool] Tolerate malformed UTF-8 in process streaming decoders (#188453)
- fd73141[flutter_tools] Track asset transformer dependencies for hot reload (#187947)
- e08edd0Properly await Dart Development Service shutdown with timeout (#188387)
- 4d5b549Use `revert` label instead of `revert_wf` (#188639)
- 400b6c9Roll Skia from 111e7582d081 to bfb7860cb9c7 (2 revisions) (#188731)
- 0fc362f[flutter_tools] Use DeviceHub.app for iOS simulator path on Xcode 27+ (#187910)
- 236db9bAndroid_hardware_smoke_test: Enable pixel exact local file comparator to read goldens from flutter asset URI (#188587)
- 0145a67Add --flavor support for Windows desktop builds (#187034)
- 4e78d1bMoves test ownership validation to flutter/flutter (#188655)
- 45a5979Increase macOS minimum supported version from 10.15 to 12 to support Xcode 27 (#188520)
- 9f3cb75Add Impeller+OpenGLES startup benchmark for mokey (#188495)
- a5833b9Migrate ABI splits to new AGP dsl (#188369)
- c3d417fRevert "[flutter_tools] Track asset transformer dependencies for hot reload" (#188751)
- 56d056dProvide guided migration logs when iOS app crashes on simulator (#188736)
- b4cd6d1ci: extract wait-for-engine-build logic into a reusable composite action (#188748)
- 36b9eccRoll Skia from bfb7860cb9c7 to 71947c4110b0 (9 revisions) (#188747)
- 5b26d9a[windows]: adjusts uniform buffers to hit hlsl optimization (#188538)
- ced2729Handle 'no permissions' adb device state (#187248)
- d84d5cbRoll Dart SDK from 0cb483880b6b to e1bdb9ce3327 (2 revisions) (#188763)
- 8a1a669Roll pub packages (#188764)
- 1b8ca5f[Impeller] Add a flat VertexAttributeFormat for vertex inputs (#188684)
- 9c7a3b5Roll pub packages (#188773)
- 43b94a8In AndroidImageGenerator, check that the destination pixel buffer has sufficient capacity for the decoded data (#188752)
- 1d3a9aeRoll Packages from 656ccaae4f49 to 274ed3e0f9f6 (23 revisions) (#188792)
- 0d141e3[flutter_tools] Fix crash in flutter create when pubspec.yaml is empty (#188385)
- 7400c96[Linux] Fix FlCompositorOpenGL.pixels comment (#188754)
- fd00f92Detach LLDB and print stack trace on process stop (#188576)
- 7f01667Add import of `dart:_js_interop_wasm` in sdk rewriter tool (#188620)
- 23e957d[Framework/Tool] Decouple preview theme imports (#188176)
- bcc6cd8[Impeller] Fix potential overflow when allocating buffers at the next power of two size (#188742)
- ca9f874[tool] Don't require a Flutter compile task when staging jniLibs (#188805)
- 2a25458[Tool] Run re-entrant upgrade in original CWD (#188794)
- b592a6cRoll Skia from 71947c4110b0 to 15302f1625b2 (17 revisions) (#188815)
- c13f525feat(skills): Add shepherd-prs skill for managing approved external contributor PRs (#188534)
- 566678f[framework] Keep scrollable semantics role stable (#187963)
- b7428a5Print a warning in `flutter doctor` when running on Intel Macs (#188760)
- 4f8b366Add TapRegion samples (#188685)
- 02bb9dd[flutter_tools] Track asset transformer dependencies for hot reload (Reland #187947) (#188808)
- 79c7949Roll Skia from 15302f1625b2 to 3ac99be47229 (1 revision) (#188819)
- f56976eAdd a macosArm64Only feature flag (#188598)
- 6716807Roll Skia from 3ac99be47229 to ef178c9898af (3 revisions) (#188831)
- b9707e4Roll Skia from ef178c9898af to bd4ae38ca3bb (3 revisions) (#188834)
- d5f3a80Resolve issue Catch am start failures with 'Error type' and prevent hang (#187196)
- e6712beImprove stylus support on linux (#186831)
- 60a1e04[Impeller] Compute dispatch takes 3D workgroup counts and honors the shader local_size (#188601)
- 7430fb2Roll Fuchsia Linux SDK from RymJjIj7dd5vQ3Cnh... to I2h2eXk06RrA3pIG2... (#188852)
- ed32be4[web] Apply autocapitalize to text editing elements (#188351)
- 880b9c5Roll Dart SDK from e1bdb9ce3327 to 26d723eb89af (3 revisions) (#188795)
- 6be7686Adds semantics role check to isSemantics and matchesSemantics (#188825)
- 16e2521Add android 17 to embedding (#187965)
- ca62cc7Roll Packages from 274ed3e0f9f6 to e74210630ab8 (18 revisions) (#188863)
- d100ca3Use null-aware elements in dev/devicelab/lib/integration_tests.dart (#187852)
- 3e68a7f[Impeller] Share a single ContextGLES among all PlaygroundImplGLES (#188080)
- 70cf301Update triage links for material_ui and cupertino_ui --> Design triage (#188567)
- 0008581Roll Dart SDK from 26d723eb89af to e47361c7fe9a (5 revisions) (#188864)
- 208e895Roll Skia from bd4ae38ca3bb to d19e557ac317 (1 revision) (#188865)
- be93fec[ci] Increase test timeout for Mac_x64 build_tests shards (#188804)
- 8e3ac6cRoll Skia from d19e557ac317 to 0fc8ba72e802 (4 revisions) (#188879)
- 5c55b77[AGP 9] Support Enabling Built-in Kotlin (#188543)
- 5588bddStricten isSemantics and matchesSemantics children mismatch check (#188827)
- 84af28aHide draft PRs from the triage list (#188885)
- f71a116Roll Skia from 0fc8ba72e802 to 0c4faca350cc (2 revisions) (#188886)
- a29b6e8Roll Dart SDK from e47361c7fe9a to 786212a2ce0d (2 revisions) (#188898)
- 76173e1Roll Skia from 0c4faca350cc to 5358ab75b840 (2 revisions) (#188899)
- aadfc38Clarify layout callback debug flag docs (#186879)
- 4633bf6Roll Fuchsia Linux SDK from I2h2eXk06RrA3pIG2... to sx_eN0J_f2BV6jqjW... (#188915)
- 26fc965Roll Packages from e74210630ab8 to 420e13502995 (13 revisions) (#188916)
- 2a42faa[tool] Enable record_use experiment by default on all channels (#188887)
- 87f352e[Flutter GPU] Load a ShaderLibrary from shader bundle bytes (#188596)
- 8d2cde3[flutter_tools] Provide guided message when iOS/macOS build fails due to low minimum version (#188812)
- 48d9105[Windows] Keep regular windows in place when another is activated (#188016)
- 778f51fRoll Skia from 5358ab75b840 to 919956953af6 (7 revisions) (#188943)
- 02c6c75Roll Dart SDK from 786212a2ce0d to 1f9a08ce0638 (4 revisions) (#188944)
- 30f22e0Roll Packages from 420e13502995 to 2fbe8734f450 (1 revision) (#188945)
- 6995038Roll Fuchsia Linux SDK from sx_eN0J_f2BV6jqjW... to Jr08vyeibMSv3Oxst... (#188946)
- 25aa77fRoll Skia from 919956953af6 to 8c5eb079d335 (1 revision) (#188953)
- 5bcad2dRoll Fuchsia Linux SDK from Jr08vyeibMSv3Oxst... to bkK6BLiZDRnE7AQQj... (#188969)
- 575df56Roll Skia from 8c5eb079d335 to 75a4bf6706bd (2 revisions) (#188974)
- eb7aae3Roll Dart SDK from 1f9a08ce0638 to ce7a2567eb59 (2 revisions) (#188980)
- ad80825Roll Skia from 75a4bf6706bd to 7f99eee20fd6 (2 revisions) (#188988)
- cde5f2dRoll Fuchsia Linux SDK from bkK6BLiZDRnE7AQQj... to n1Lm2Z4DZkfC3bwj5... (#188989)
- 89412d5Add debugPaintFocusBoxes (#188288)
- 33e65edRoll Skia from 7f99eee20fd6 to 2826ae6dc649 (1 revision) (#188990)
- 0088b70Roll Skia from 2826ae6dc649 to 79806692425f (1 revision) (#188991)
- a3222d4Roll Skia from 79806692425f to e15ea7a4b927 (2 revisions) (#188992)
- 723ea0dRoll Skia from e15ea7a4b927 to b68567542f81 (4 revisions) (#189000)
- 277e203Fixing multiline GetBoxesForRange (#188803)
- c3b4591Roll Skia from b68567542f81 to c0e2b9667d91 (1 revision) (#189004)
- 650564aRoll Packages from 2fbe8734f450 to fc00cebca28e (1 revision) (#189007)
- 9aeebc3Roll Skia from c0e2b9667d91 to 2b55eed5500d (1 revision) (#189006)
- 4ae751cRoll pub packages (#189009)
- 9e76f5b[flutter_tools] Fix test flakiness in widget_preview_detection_test.dart (#188922)
- 4a97c10[flutter_tools, engine] Add --disable-service-origin-check option to disable VM service origin checks (#188745)
- fba8957Roll Dart SDK from ce7a2567eb59 to 4c03f64b19f6 (2 revisions) (#189015)
- 3969c9e[flutter_tools] Throw DaemonException if app fails to start early (#188921)
- 2397009[Tool] Gracefully handle WDAC/AppLocker blocks for impellerc (#188452)
- ebacc13[Tool] Fix null check operator crash in currentPackageConfig (#188454)
- fc1edecfix(engine/windows): keep tooltip position rect alive - fix use after free (#188476)
- 534c5be[AGP 9] Update Flutter Template Versions (#188762)
- 4f230a4Roll Skia from 2b55eed5500d to 7dccd1e79a5b (3 revisions) (#189021)
- 81c81e3ci: udpate wait-for-engine-build composite action to cocoon (#189020)
- e65a32bFix potential race condtion in android_semantics_integration_test (#188830)
- 46c9e39Skip locked issues in no-response check (#188950)
- c773a18Rename preferredSize to size and preferredConstraints to constraints in the windowing API (#189017)
- 9a8739dSync CHANGELOG.md from stable (#189025)
- 6589519Recommend `OverlayPortal.overlayChildLayoutBuilder` over Target-Follower (#188894)
- 41b9babRoll Fuchsia Linux SDK from n1Lm2Z4DZkfC3bwj5... to 7RjQJBW3m-3Jl-7jr... (#189032)
- 98f8fb4Roll Dart SDK from 4c03f64b19f6 to 70577d6f2bba (1 revision) (#189031)
- eab0165Print warnings on Intel Macs / targeting Intel Macs (#188835)
- b207304Add `STRING_CATALOG_GENERATE_SYMBOLS = YES;` (#188163)
- bcabd8eRoll Skia from 7dccd1e79a5b to 2dde156aec3e (2 revisions) (#189035)
- 8580e15Explain asynchronous causes in the setState() called after dispose() error (#187294)
- 6a5b0bdRoll Skia from 2dde156aec3e to 125a76cc4cf3 (3 revisions) (#189037)
- 5c6367cFix RenderSliverPadding setter assertion (#187353)
- b2217ceRoll Dart SDK from 70577d6f2bba to c648e3429d76 (1 revision) (#189052)
- 84b34ecRoll Skia from 125a76cc4cf3 to 71db7c06c5fe (4 revisions) (#189054)
- 7fbcc08Collect analytics on AI agent usage (#187630)
- e8a052dRoll Skia from 71db7c06c5fe to 80ae1deed9ed (2 revisions) (#189060)
- db288c4Bump goldctl (#189030)
- 2381569fix android semantics integration test hangs due to postframe callback (#189043)
- 96d3beaRoll Packages from fc00cebca28e to 92525f51fe4b (2 revisions) (#189069)
- bbf3e26Bump customer testing version for new registrants (#189070)
- 91939ccRoll Skia from 80ae1deed9ed to 075fbe4778d9 (6 revisions) (#189067)
- 607d3a9[AGP 9] Bump Flutter Test Apps to Newer Template Version (#189024)
- 49c8083Roll pub packages (#189078)
- 80bbc9cRoll Fuchsia Test Scripts from tRDjAwjqDhSv0B666... to s5_gZFJ8De9AJalTw.. (#189072)
- 60ca823Add javaHeapSpaceHandler to handle Gradle build failures due to Java … (#185127)
- 85dab43Roll Dart SDK from c648e3429d76 to c9bccc09e733 (1 revision) (#189076)
- 3e48f7aAdd --flavor support for Linux desktop builds (#187029)
- b43df3aAndroid_hardware_smoke_test: Migrate to AGP 9 (#189082)
- 29be279[flutter_tools] Provision Android NDK in the main Gradle invocation (#186337)
- 228df7eFix TextSelectionOverlay crash when layout is degenerate (#188672)
- f0554ff[web] Fix grouped autofill on iOS Chrome (#187459)
- 629df07[flutter_tools] Fix wireless ADB device discovery when serial contains spaces (#187943)
- 3fc5f07[flutter_tools] Prevent interactive device selection in machine mode (#188267)
- 6496d8fRoll Dart SDK from c9bccc09e733 to db2155f56bf3 (2 revisions) (#189105)
- 7cab22bengine: warn on WASM load failure when not crossOriginIsolated (#186252)
- ae51692Roll Skia from 075fbe4778d9 to 6137414bef5c (10 revisions) (#189106)
- f37be11Roll Fuchsia Linux SDK from 7RjQJBW3m-3Jl-7jr... to QcRFUtvCw2EobfJ8s... (#189104)
- ab7eb7avscode: add missing unicode.h (#189102)
- 015ea6dengine: explain why each candidate build was skipped in Flutter web loader (#186254)
- 12ed6b4[test cross imports] More test/rendering + flutter_test/test fixes (#188954)
- 3d3f7e9Roll Skia from 6137414bef5c to 1ff92f879815 (6 revisions) (#189126)
- 8aaca14Roll Skia from 1ff92f879815 to 040d9f55de00 (1 revision) (#189131)
- 8741012Expose the app's build name and number as compile-time constants (#187935)
- 291b830[flutter_tools] Forcefully kill hung subprocesses 5 seconds after timeout (#187178)
- 6a82643Roll Packages from 92525f51fe4b to 52d84d6a2acd (7 revisions) (#189134)
- aea3037Roll Skia from 040d9f55de00 to 51a62da33da0 (1 revision) (#189135)
- 9977864[flutter_tools] Watch transitive #include headers for FragmentProgram hot reload (#187945)
- be4b954[flutter_tools] Don't crash on non-UTF-8 plugin pubspec.yaml (#188976)
- 40f2ba5Roll Dart SDK to Dart 3.13 beta3 (#189122)
- a682db3Roll Skia from 51a62da33da0 to 8df24be66531 (1 revision) (#189139)
- 6cbdfacfix(ci): harden some workflows (#189087)
- bbd1586Initialize release branch flutter-3.47-candidate.0
- bd1e75d[flutter-3.47-candidate.0] Sync engine.version to bbd15867c003dc66e678cb3c218649fa8bf914f2 (#189216)
- eda1209[CP-beta]UberSDF rect handling for thin (line-like) rectangles (#189517)
- c7edcb6[beta] [flutter_tools] Fix ADB device listing output parsing regression (#189446)
- 9335dd2[CP-beta]Move a few benchmarks from x64 Intel Macs to ARM (#189399)
- e216f0f[CP-beta]UberSDF thin roundrect handling (#189529)
- afb9cec[CP-beta]Implement UberSDF lines to replace LineContents-based AA lines (#189537)
- 518263c[CP-Beta] Raise Warn Version to AGP 9+ (#189293)
- f56e4ba[CP-beta]Fix data for design packages (#189742)
- c9bf3f3[CP-beta]Increase number of 'Mac tool_integration_tests' subshards from 5 to 10 (#189743)
- c156910[CP-beta] Skip emulator.getEmulators test (#189879) (#189888)
- 4937835[CP-Beta] Fix `Rect::ExpandToMinTransformedSize` to return the input rectangle when no expansion is needed, and remove 1-pixel roundrect to rect simplification (#189885)
- b99d91a[CP-beta] Disable execution order shuffling for the flutter_tools upgrade_test suite (#189951)
- 26c7922Bump Dart version for 3.47.0-0.2.pre release (#189933)
- 9e68281update engine.version for 3.47.2 (#190004)
- effb186[beta] [web] Cancel touch pointers WebKit abandons mid-gesture (#190231)
- 7c7929a[flutter-3.47-candidate.0] Sync engine.version to effb186f3172afa211230de73d83af2788e44324 (#190247)
- eb61588[CP-beta] Remove ancient `tools:tools` dep from `android_sdk` bundle (#190182)
- c7926ac[CP-beta][windows]: Uses offscreen MSAA when implicit msaa isn't available. (#190374)
- a0378ad[CP-beta]Eliminate some early returns in uber_sdf.frag to fix broken UberSDF AA on Windows (#190378)
- 075b1ec[cp-beta] [macOS] Resume app lifecycle on becomeActive to avoid frozen UI after occlusion (#190435)
- 0e98c1f[CP-beta] Add java/gradle check when gradle crashes (#189997) (#190364)
- f88005a[flutter-3.47-candidate.0] Update Flutter DEPS to Dart 171019fea4e9662698a006b1747bf78bfecbd041 (#190568)
- 0344099[flutter-3.47-candidate.0] Sync engine.version to f88005a259ba379c2c1156178aa1870936be7b7f (#190585)
- aea9500[CP-beta]Override deployment target in CocoaPod dependencies when they're less than Xcode's minimum (#190852)
- 5f77625[flutter-3.47-candidate.0] Update Flutter DEPS to Dart da6595cd6bb5d4c0a185d759a025e879ff06e631 (#190863)
- 4cf2416[flutter-3.47-candidate.0] Sync engine.version to 5f77625673248ee5846fbcaf5d3e1a3878386fd7 (#190943)
- 7a013b0[stable] Fix space formatting in cherry-pick label for flutter_cp.dart (#191123)
- 0c94720[stable] [Flutter GPU] Add a project-level Flutter GPU setting to the Linux and Windows embedders (#190872)
- e5b61cd[CP-stable][Tool] Fix SwiftPM race condition during parallel Xcode builds (#191120)
- 361201b[stable] Skip platform tooling regeneration for non-Flutter pub workspace packages (#191270)
- a4dbaf6[stable] [flutter_tools] Invalidate WebEntrypointTarget when plugin set changes (#191285)
- ef055f1[stable] [flutter_tools] Fix hot restart for WASM web builds (#191288)
- 3faa26f[stable] [flutter_tools] Fix PathNotFoundException during native assets cleanup (#191279)
- a2694b0[stable] [flutter_tools] Fix hot reload for workspace member packages in lib/ (#190284) (#191289)
- e06846a[stable] [flutter_tools] Resolve includes recursively in AnalysisOptionsMigration (#191292)
- 9ee1431[stable] [flutter_tools] Validate plugin class/package identifiers to prevent GeneratedPluginRegistrant injection (#191294)
- 1926f75[stable] fix(tool): parse ADB device lists by connection state (#191296)
- 0f0c037[stable] [flutter_tools] Fix deadlock in debug adapters when process exits early (#191282)
- aada3ae[stable] [flutter_tools] Fix impellerc Windows Unicode crash and improve diagnostics (#191276)
- 5d53178[flutter-3.47-candidate.0] Update Flutter DEPS to Dart 852b3e3608906afbe6102573cfd4407aeedd1b78 (#191303)
- 82213b6[stable] Update changelog for Flutter 3.47.1. (#191319)
- 6655482[flutter-3.47-candidate.0] Sync engine.version to 5d531788691ec3404cac0cee66ead4007b177363 (#191364)
- e4cfadc[stable] [flutter_tools] Handle all DartDevelopmentServiceExceptions gracefully in resident web runner (#191323)
- aecc9c8[CP-stable][Linux] Fix a potential GList leak in FlTouchManager (#191396)
- 8184829[CP-stable]Always update swift package dependencies (#191514)
- d989cca[CP-stable]Remove Xcode environment when building swift tools in Xcode pre-action (#191582)
- a3eae14[CP-stable]Makes sure impeller context's are plumbed through to LayerTree::Flatten. (#191222)
- d2ab418[CP-stable][linux] Read heading text through the AtkText interface (#191397)
- f4670be[stable] [flutter_tools] Gracefully handle ping timeouts for custom devices (#191324)
- e57eab8[CP-stable]Rolls libpng to 1.6.58 (#191452)
- e03b8f9[stable] [flutter_tools] Fix crash when migrating flow-style exclude lists in analysis_options.yaml (#191598)
- aff2b56[stable] Only exclude platform directories that actually exist in analysis_options.yaml (#191530)
- 2c72122[stable] [tool] Fix Windows hot reload mtime truncation issue (#191599)
- 78c8547[stable] fix: forward --build-name and --build-number to desktop version.json (#191602)
- b3bc058[stable] [flutter_tools] Handle HttpException during VM service connection (#191607)
- bb693d7[stable] [flutter_tools] Fix crash in symbolize command on stream error (#191605)
- c18ad6dUpdate CHANGELOG.md for Flutter 3.47.2 (#191814)
- a804b26[flutter-3.47-candidate.0] Update Flutter DEPS to Dart 60a57cd42d64dc03e9f07aa60a2e250755c1ef28 (#191811)
- d3b14c8[flutter-3.47-candidate.0] Sync engine.version to a804b261645ef8c13eb3d5c44a5c2fb0340c5539 (#191840)
- ad4b29a[CP-stable]Denylists b-series powervr from vulkan (#191903)
- 115c53d[stable] [flutter_tools] Handle missing Xcode gracefully in getInfo and buildMacOS (#191902)
- 383b332[CP-stable]Fix Android license detection for cmdline-tools 23.0+ (#192133)
- 75a5dd9[CP-stable]Fix Actions.handler to forward the intent type to maybeFind (#192203)
- b29eb3f[flutter-3.47-candidate.0] Sync engine.version to ad4b29ad6eb09fbfc827fa7defe115aedbe1e347 (#192211)
- 06a2e2a[flutter-3.47-candidate.0] Update Flutter DEPS to Dart 1d1a730ef918d602aedafc939a4cf5940e7589ab (#192210)
- 858dc66Changelog entries from all CPs (#192214)
- e8113bf[flutter-3.47-candidate.0] Sync engine.version to 06a2e2a110089dff50fe635cffd2a61e1b24fbcd (#192312)
- e71ed18[stable] [flutter_tools] Gracefully handle Windows Application Control and security policy execution blocks (#192254)
- 4c685f8[stable] [flutter_tools] Report preview reload timing analytics in LspPreviewDetector (#192256)
- 7d70527[CP-stable] Collect analytics about SwiftPM errors and warnings (#191746) (#192303)
- 015aafa[CP-stable][native assets] Bump minimum iOS version from 13 to 15 (#192506)
- c41a033[CP-stable] Prepare and warn when missing iOS Device Support Symbols (#192301)
- 5743177[CP-stable]fix(tool): remove redundant --enable-experiment=record-use flag (#192318)
- 9584c67[CP-stable][flutter_tools] Safely handle non-JSON messages in test stream parsers (#192419)
- 38b01f4Update changelog for 3.47.4 (#192647)
- d3c78d8[CP-stable]On iOS 27+ devices, manually process lldb stops (#192810)
- 64d4f62[stable] [Widget Preview] Isolate PageStorage scope in widget preview group expansion tile (#192255)
- 0a12baf[stable] [flutter_tools] Roll package:dds to 5.4.0 (#192295)
- af7e796[flutter-3.47-candidate.0] Update Flutter DEPS to Dart b530c21f7de367b94fb04787bfed9d8e989d75e8 (#192875)
- cddf29d[flutter-3.47-candidate.0] Sync engine.version to af7e796e161ae0bb1ff0758c71a7105418bd9ded (#192894)
- 6a19ccaUpdate changelog for 3.47.5 (#192925)
- 905ca64Update CHANGELOG with missing Flutter 3.44.8 and 3.44.9 (#193120)
- c16aa05[CP-stable][win32] Remove the predicate from TimerThread condition variable (#193238)
- c05f452Add changelog entries for 3.47.6. (#193537)
- 692136c[flutter-3.47-candidate.0] Update Flutter DEPS to Dart 04bcd1036cdc799ac6564988f159ee454d42c822 (#193536)
- a9f5569[CP-stable]Move iOS compile benchmarks to Mac_benchmark and pin Mac_benchmark to M1 (#193581)
- 5fc3468[flutter-3.47-candidate.0] Sync engine.version to 692136cb6582dbfc5af3fb33c2515a069f2f66d0 (#193584)
- deb2874[stable] [iOS] Preserve semantics parents after reparenting (#189686) + Fix OverlayPortal semantics bounds corruption (#192139) (#193420)
- 632f36eUpdate changelog for the single CP for this stable hotfix release. (#193959)
- abaf9c5[flutter-3.47-candidate.0] Sync engine.version to deb287481e3ce9468f3434937ced4240a70539ca (#193957)
Changes by category
400 shownBreaking Breaking change 67
Update semantics header and headingLevel behavior on iOS and Android
Changing RawMenuAnchor close order
IconData class marked as final
Large screen orientation and resizability restrictions ignored on Android 17
ListTile reports an error in debug when wrapped in a colored widget
Page transition builders reorganization
Merged threads on Linux
FontWeight also controls the weight attribute of variable fonts
Material 3 tokens update
CupertinoDynamicColor wide gamut support
SnackBar with action no longer auto-dismisses
The default page transition on Android is now PredictiveBackPageTransitionBuilder
UISceneDelegate adoption
Component theme normalization updates
Redesigned the Radio widget
The Form widget no longer supports being a sliver
Flutter now sets default abiFilters in Android builds
Merged threads on macOS and Windows
The Visibility widget is no longer focusable by default when maintainState is enabled
$FLUTTER_ROOT/version replaced by $FLUTTER_ROOT/bin/cache/flutter.version.json
Material Theme System Updates
.flutter-plugins-dependencies replaces .flutter-plugins
Localized messages are generated into source, not a synthetic package
Changing the default goldenFileComparator for integration_tests
Underdamped spring formula changed
ImageFilter.blur default tile mode automatic selection
Updated Material 3 Slider
Updated Material 3 progress indicators
Color wide gamut support
Component theme normalization
Deep links flag change
Material 3 Tokens Update in Flutter
Set default for SystemUiMode to Edge-to-Edge
Navigator's page APIs breaking change
Generic types in PopScope
New APIs for Android plugins that render to a Surface
Rename MaterialState to WidgetState
Introduce new ColorScheme roles
Nullable PageView.controller
Rename MemoryAllocations to FlutterMemoryAllocations
Migrate RawKeyEvent/RawKeyboard system to KeyEvent/HardwareKeyboard system
Default multitouch scrolling
Accessibility traversal order of tooltip changed
Stop generating AssetManifest.json
Migrating to Material 3
Migrate ShortcutActivator and ShortcutManager to KeyEvent system
The ThemeData.useMaterial3 property is now set to true by default
Customize tabs alignment using the new TabBar.tabAlignment property
Android 14 nonlinear font scaling enabled
Updated default text styles for menus
Windows: External windows should notify Flutter engine of lifecycle changes
Windows build path changed to add the target architecture
Added missing dispose() for some disposable objects in Flutter
Added AppLifecycleState.hidden
Moved ReorderableListView's localized strings
Updated EditableText scroll into view behavior
Migrate a Windows project to ensure the window is shown
Updated Checkbox.fillColor behavior
Insert content text input client
Resolve the Android Java Gradle error
Require one data variant for ClipboardData constructor
"Zone mismatch" message
Replaced parameters for customizing context menus with a generic widget builder
iOS FlutterViewController splashScreenView made nullable
Migrate of to non-nullable return values, and add maybeOf
Migrate a Windows project to support dark title bars
Removed Removed 22
Removal of describeEnum
Removed semantics elevation and thickness
Removal of v1 Android embedding Java APIs
Remove invalid parameters for InputDecoration.collapsed
Deprecated API removed after v3.19
Dropping support for Android KitKat
Deprecated API removed after v3.16
Deprecated API removed after v3.13
Deprecated API removed after v3.10
Removed ignoringSemantics
Deprecated API removed after v3.7
Deprecated API removed after v3.3
Removed RouteSettings.copyWith
Remove use of deprecated copy_trees.
Remove use of deprecated API related to removal of the VM isolate.
Remove unnecessary `deprecated` withOpacity in `text_button.0.dart` in examples
Remove deprecated `activeColor` in `switch.0.dart` example
Remove deprecated `activeColor` in `decorated_sliver.1.dart` example
Remove deprecated activeColor in `dynamic_content_color.0.dart` example
Remove deprecated `AssetManifest.json` file
Remove 2023 deprecated `'platforms'` key from daemon output
Remove deprecated `--[no-]-disable-dds`
Deprecated Deprecated API 60
Deprecate onReorder callback
Deprecate TextInputConnection.setStyle
Deprecated cacheExtent and cacheExtentStyle
Deprecate containsSemantics in favor of isSemantics
Deprecate findChildIndexCallback in favor of findItemIndexCallback in ListView and SliverList separated constructors
Deprecate OverlayPortal.targetsRootOverlay
Deprecate SemanticsProperties.focusable and SemanticsConfiguration.isFocusable
Deprecate DropdownButtonFormField value parameter in favor of initialValue
Deprecate app bar color
Deprecate SystemContextMenuController.show
Deprecate ExpansionTileController in favor of ExpansibleController
Deprecate RouteTransitionRecord.markForRemove
Deprecate ThemeData.indicatorColor in favor of TabBarThemeData.indicatorColor
Deprecate InputDecoration.maintainHintHeight in favor of InputDecoration.maintainHintSize
Deprecate WebGoldenComparator
Deprecate ThemeData.dialogBackgroundColor in favor of DialogThemeData.backgroundColor
Deprecate ButtonBar in favor of OverflowBar
Deprecate imperative apply of Flutter's Gradle plugins
Deprecate textScaleFactor in favor of TextScaler
Deprecate describeEnum and update EnumProperty to be type strict
Deprecated just-in-time navigation pop APIs for Android Predictive Back
Deprecated Paint.enableDithering
Deprecated RouteInformation.location
Deprecated the window singleton
ThemeData's toggleableActiveColor property has been deprecated
[Android] Test to verify AnnounceSemanticsEvent deprecation warning on API 36
Fix deprecation validator message to require leading v
Deprecate onReorder callback
[skia] Disable use of deprecated Mock GrBackendSurface
[Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags
[flutter_tools] Deprecate `plugin_ffi` template
[flutter_tools] Deprecate web hot reload flag
Replace deprecated `withOpacity` in `interactive_viewer.constrained.0.dart`
Replace deprecated `withOpacity` in `interactive_viewer.builder.0.dart`
Replace deprecated `withOpacity` in `focus_scope.0.dart` example
Replace deprecated withOpacity in `radio.1.dart` example
Replace deprecated `withOpacity` with `withValues` in `text_style.dart`
Replace deprecated withOpacity in `chip_animation_style.0.dart` example
Replace deprecated `withOpacity` in `switch.1.dart` example
Replace deprecated `withOpacity` in `data_table.1.dart` example
Replace deprecated `withOpacity` in `overflow_bar.0.dart` example
Replace deprecated `withOpacity` in `hero.1.dart` example
Replace deprecated `withOpacity` in `cupertino_navigation_bar.0.dart` example
Replace deprecated `withOpacity` in `search_anchor.1.dart` example
Replace deprecated `withOpacity` in `reorderable_list_view.reorderable_list_view_builder.0.dart` example
Fix deprecation warning in some API examples using RadioListTile
New isSemantics and deprecate containsSemantics
[web] Deprecate --pwa-strategy
Suppress deprecation warning for AChoreographer_postFrameCallback
Suppress deprecated iOS windows API in integration_test
NavigatorPopScope examples no longer use deprecated onPop.
Fix docs referencing deprecated radio properties
Adds deprecation for impeller opt out on android
Update `build.gradle` to remove deprecation warning in `flutter\engine\src\flutter\shell\platform\android`
Fix deprecated configureStatusBarForFullscreenFlutterExperience for Android 15+
[web] Cleanup usages of deprecated `routeUpdated` message
Add `--dart-define`, `-D` to `assemble`, deprecate `--define`, `-d`.
[ Tool ] Remove leftover Android x86 deprecation warning constant
Deprecate Objective-C plugin template
Stop using deprecated analyzer 7.x.y APIs.
New New feature 251
Adds script to run malioc locally
Add initial AI guidance for issues
[web] Add font fallback service
[wimp] Implement images for wimp.
[Android] Allow sensitive content to gracefully fail when unregistering host before registering
Expose platform specific handles for multi-window API
Adds missing `await`s on forgotten cases
Add `clipBehavior` parameter to `AnimatedCrossFade`
Add disposal guidance to CurvedAnimation and CurveTween docs
Add @awaitNotRequired annotation to flutter sdk
Added useOriginalColors flag which allows ImageIcon to bypass IconTheme colorization and use the original colors
Add documentation for overarching tests in flutter, add skill to help agents figure out where tests go
Add more 0x0 size tests, part 6
Add more 0x0 size tests part 9
[flutter_goldens] Allow using print
Add support for high contrast and color inversion on Android
Add reportErrors to ImageStreamListener
Add Linux implementation of popup windows
Add more 0x0 size tests part10
Add/remove overlay child RenderObject from the tree in `attach`/`detach`
[Android] Add Javadoc documentation to TextInputChannel
Add more 0x0 size tests part 11
Expand coverage of android_hardware_smoke_test. Add image, text, blend mode, and blur tests.
Add a platform view test to android_hardware_smoke_test
Adds gamma correction to windows text.
Implement font fallback
Add a platform view test to android_hardware_smoke_test
Add TapRegion samples
Adds semantics role check to isSemantics and matchesSemantics
Add debugPaintFocusBoxes
Expose the app's build name and number as compile-time constants
add the next batch for VPAT assessment
Enable the `avoid_final_parameters` lint.
[a11y] Add support for high contrast themes in the a11y assessments app
Allow Xcode build configuration to not contain flavor name
[SwiftPM] Enable package resolution on xcodebuild commands
[iOS] Add FlutterTracing to support tracing from Swift
Enable Swift testing in the iOS embedder
[Android] Add integration test for setting engine flags via the manifest
[a11y] Add CONTENT_CHANGE_TYPE_EXPANDED support on android.
[Android] Propagate --enable-flutter-gpu Intent extra to engine args
[Android] Remove support for unused manifest flags
Implement version code overrides for split ABIs
Migrate ABI splits to new AGP dsl
Add android 17 to embedding
Win32: Add FlutterDesktopPluginRegistrarGetGraphicsAdapter
[Windows] Propagate the enabled accessibility state
Add support for stylus buttons
Reland "Add support for stylus buttons"
Adds windows project switch for enabling impeller
[Windows] Add public API to post task to platform thread
Add --flavor support for Windows desktop builds
adds linux impeller project flag
[Linux] Move Flutter rendering into a new FlViewRenderer widget
[Linux] Add tests for FlTaskRunner
[linux] Re-enable RegistrarRegisterTextureInMultipleThreads test
Add tests for FlMouseCursorHandler
Add --flavor support for Linux desktop builds
[web] Implement stepped image downscaling for CanvasKit and Skwasm
Add initial support for Cross-Origin Storage
feat(web): implement image decoding throttling for HTML images
Add import of `dart:_js_interop_wasm` in sdk rewriter tool
Don't use `git add -N` in the sync engine workflow.
[macOS] Add move timer runloop mode to common modes
[fuchsia] Ask for both ambient-replace and VMEX to allow for a softer transition.
Add oval drawing support to the SDF uber shader
Add dart_skills_lint to dev/tool with test and update readme instructions for new skills authors
add playground to test SDF primitive rendering under transforms
Add more guidelines for code review bot
Add ability to pass flags to `et run`
Add await mechanism to setClipboard in android_semantics_integration test
Made the MIT matcher not greedy and added a boost file matcher
Made MetalSDF a printed name when sdf's are enabled.
Add pr filter for waiting for response label in a11y pr triage
Enable SPM for GoogleMobileAds
Implement square-like round superellipses with circular corners in the SDF uber shader
Adds debugging information to compiled metal shaders
Enable `var_with_no_type_annotation` lint.
Adds integration test for the FLTEnableSDFs flag for iOS
[ Skill ] Adds a "Flutter PR Failure Collector" skill
Added my name to AUTHORS
Adds ability to turn off sdfs with paint.
Update DisplayList rendering unittests for new SufaceProvider API and to be able to test Impeller
Add logging to figure out jvm crashes for `hot_mode_tests`
[triage] Add Flutter GPU as a triage team
[Flutter GPU] Allow customizing the vertex layout on a RenderPipeline
Removes SDF option for macOS (always enabled)
Add 'cp: review' label to the manual cherrypick process
[Flutter GPU] Allow allocating multi-mip textures and overwriting specific (mip, slice) levels
Update the list of binaries in the code signing verification test to include new Dart snapshots
adds linux impeller hello world integration test
Add primitive shadows to rendering benchmark
[Impeller] Add golden harness support to the renderer test layer
[Flutter GPU] Add explicit draw counts
Add a tag to the Linux platform properties in .ci.yaml that specifies x64 CPUs
[Flutter GPU] Add explicit draw counts (reland)
[Impeller] Add block-compressed texture format support (BC, ETC2, ASTC)
[Flutter GPU] Add r32Float and remove Apple-only XR pixel formats
add sdf golden variants for OpenGL
Add vector_math to Framework triage
[Impeller] Allow attaching specific texture mip levels and slices
[Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR)
Adds macro for fragment shaders to support flutter <= 3.44
Add android_hardware_smoke_test integration tests
Add new file patterns for team-web labeler
[Impeller] Reland: Allow attaching specific texture mip levels and slices
Add a skill for flake analysis
Add vector_math to package issue template
Add step to bootstrap Flutter tool in coverage workflow
Add android 37 platform and build tools to script for android cipd bundle creation
Add updating-android-sdk agent skill for rolling Android SDK in CIPD
[Flutter GPU] Add instanced draw support
Add bare, reidbaker, and android agents
Add docs on bumping Dart
[Flutter GPU] Allow attaching specific texture mip levels and slices for rendering
Add android-agent agent.json and update reidbaker-agent skills
Add core-packages to ecosystem triage
[Impeller] Allow sampling textures with manually-uploaded mip levels
[Flutter GPU] Add blit operations
[Flutter GPU] Expose ASTC HDR texture formats
Enable unit tests for compilation of compute shaders on non-metal backends
[Flutter GPU] Add surface API for framework presentation
Add FlatBuffers Verifier checks to Impeller asset loading
Adds arm64 variant of impeller devicelab tests for windows.
Only allow dependabot to autoupdate GitHub-owned actions
Add note about magnifier issue when using transparent HCPP pv
Adds tests for disabling macos impeller
Add entitlements.txt entries for new dart sdk binaries
Add agent skills for orchestrating cherry-picks to stable and beta channels
Add other types of platform view tests to android_hardware_smoke_test
[Android] Add integration test for SystemUiMode transitions
[Impeller] Add anisotropic filtering support to samplers
[Flutter GPU] Honor the enable argument in RenderPass.setDepthWriteEnable
[Flutter GPU] Add Texture.fromImage to wrap a ui.Image texture
Android_hardware_smoke_test: Enable pixel exact local file comparator to read goldens from flutter asset URI
Add Impeller+OpenGLES startup benchmark for mokey
[Impeller] Add a flat VertexAttributeFormat for vertex inputs
feat(skills): Add shepherd-prs skill for managing approved external contributor PRs
vscode: add missing unicode.h
[CP-beta]Implement UberSDF lines to replace LineContents-based AA lines
Add new motion accessibility features to iOS.
Add API sample and docs for Expansible widget
Add Flutter as a Swift Package dependency
Add RouteSettings to showCupertinoSheet
Implement superellipse support for CupertinoFocusHalo
Add RenderSliver.getMaxPaintRect
Add RawTooltipl example and test
[Android] Add display corner radii support.
Add ExpansibleController.toggle method.
feat: add onEnd to AnimatedCrossFade
Add TestWidgetsApp utility and refactor widget tests to use WidgetsApp
Add `clearError` API to Form and FormFieldState
macOS: Implement tooltip window controller
feat: add routes support in TestWidgetsApp
Add fields getter to FormState
Add toString methods for window positioner classes
feat: add few required properties to test widgets app
Add test for WindowPositioner.toString
Add desktop review teams
Add await to callsites of BasicMessageChannel.send
Add vmservices for accessibilityEvaluation
Add `UnlabaledLeafNodeEvaluation`
Add AI contribution guidelines
Add await or ignore lint to flutter_driver unawaited callsites
Adds geometry dirty nodes
Add scrollCacheExtent to PageView
Allow windows to be created undecorated
Add non-text color contrast evaluation for a11y
Add SensitiveContent widget sample code
Add widget of the week link in SensitiveContent documentation
Add alwaysSizeToContent argument to Overlay.
Add title evaluation
Add await or ignore to future-returning methods defined in Dart SDK
Implement popup windows for macOS
Implement tooltip windows on Linux
Add Support For Built-in Kotlin
[Re-land] Add Support For Built-in Kotlin
Add await or ignore lint to invokeMethod callsites
[A11y ] Add `clearSemantics`in table
Add TabBar API example for scroll notification integration
Add leadingIndex to CarouselController and onItemChanged to CarouselView
Add bottom navigation bar item semantics label
Add `alignment` to `SizeTransition`
feat: add RoundedSuperellipseInputBorder
[material/menu_anchor.dart] Add animations to MenuAnchor.
Add isDark, isLight, and isSystem getters to ThemeMode
Add `TestTextField` and migrate tests
[cupertino.dart] Implement CupertinoMenuAnchor and CupertinoMenuItem using RawMenuAnchor
Preparation to add contentTextStyle flag to SimpleDialog.
Add await to tester.pump callsites
Add contentTextStyle support to SimpleDialog
Allow TabBar to receive a TabBarScrollController
Add RawTooltip.ignorePointer
Add WidgetStatesController support to ExpansionTile
Add warning when there is a widget with color between `Material` and `ListTile`
Add await to flutter_test callsites
Add fallbackColor for PredictiveBackPageTransitionBuilder and PredictiveBackFullscreenPageTransitionBuilder
Add displayCornerRadii support to predictive back transitions.
Add awaits to dev/ callsites
Add await to more flutter/flutter callsites
Add awaits to flutter/test callsites
Add mainAxisAlignment to NavigationRail
Add a Clarification for the docs of suggestionsBuilder of SearchAnchor
Add assert for mutually exclusive errorBuilder and errorText
Add scrollPadding property to DropdownMenu
feat: add infinite carousel support
Add bottom safe area padding to licenses package license page
[ios] Add opt-in inline prediction text input support
[A11y] Allow percentage strings like "50%" as `SemanticsValue` for `ProgressIndicator`
[cupertino.dart] Implement CupertinoMenuAnchor and CupertinoMenuItem using RawMenuAnchor
Add more error handling to unawaited callsites
[CP-beta] Enable the `avoid_final_parameters` lint. (#185216)
Implement macOS wide gamut (Display P3) support
Re-add extended attribute removed by SwiftPM
Add missing mutation-safe delegate iteration and use idomatic syntax
Add warning for plugins not migrated to UIScene
Implements `ClipRSuperellipse` on backdrop filter on platform view
Adds switch for sdf rendering plus golden tests
Codesign XCFrameworks for darwin add to app
Add ability to access plugins from other plugins
Add plugin version to SwiftPM package symlink directory
Add integration scripts and tools for SwiftPM add to app
[CP-beta][SwiftPM] Enable package resolution on xcodebuild commands
[Android] Add predictive back support for FlutterFragment and FlutterFragmentActivity
Add exception to log message in ContentSizingFlag.java
[Android] Add mechanism for setting Android engine flags via Android manifest (take 2)
[a11y][android] Set new CheckState APIs for android API 36
Ensure resize listener is not added if content sizing is not turned on
Migrate abi build paths to use new abi filtering api #AGP9
Rename hcpp opt in flag to `enable-hcpp`
Reland "[Android] Add mechanism for setting Android engine flags via Android manifest (take 2)"
Migrate `addTaskForPrintBuildVariants` and `isFlutterAppProject` to new agp dsl
Migrate profile build type creation and proguard config to new dsl
Adds rockchip series to block list for vulkan.
Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0
Allow stylus support on windows
[Windows] Restore and enable IAccessibleEx implementation
Add fl_view_new_sized_to_content()
Add a platform OpenGL context.
Add support for reduced motion/disable animations on the web
Add support for fetching array uniforms by name
Add getUniformMatX support for desktop and mobile
Implement getUniformMatX and getUniformMatXArray functionality on web
Enabled some disabled impeller fragment shader dart tests
Reland `Enabled some disabled impeller fragment shader dart tests`
Add build-time checks for ImpellerC's SkSL compiler
Adds metal background to engine dart tests
Add missing 'throw' to ImageFilter.shader's validation check
Add table detailing AI rule file character limits for various tools
Migrate gradient creation to the new SkShaders API
Add route for 'tmp' to Flutter runner
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.