)]}'
{
  "log": [
    {
      "commit": "2978c92b6ad17619d6c9df0179bd82d0009b2423",
      "tree": "da35479e2e4c88ded745023376016381f3321c4d",
      "parents": [
        "773e084c9da3787ae681ee17b6d5ab9bca1758ea"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Tue Sep 08 22:12:34 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 16:29:55 2026 -0700"
      },
      "message": "et: Fix compile_commands.json post-processing (#192395)\n\nPreviously, `_postGn` ran immediately after GN and rewrote GN\u0027s\n`compile_commands.json` in-place with the output of `ninja -t compdb` in\norder to pick up additional commands not emitted by `gn` but needed by\nlanguage servers, such as `swiftc` invocations.\n\nHowever, `ninja -t compdb` includes every edge in the build graph,\nincluding copy and link commands, not just compiles. LSPs key off the\n`file` field, and the additional non-compile edges produced additional\nentries for some files that shadow the compile command that LSPs need.\nAmong others, some of the public header copy rules ended up causing\nsymbols in `embedder.h` and others to stop resolving correctly.\n\nThis reverts the post-build rewriting of `compile-commands.json` to what\nit was before #189761: just stripping RBE rewrapper prefxies from\nC++/Objective-C++ compile commands. The in-place rewriting is still\nrequired because `clang_tidy` and `clangd_check` use it directly and\ndon\u0027t understand rewrapper prefixes.\n\nOnce the in-place cleanup is done, we now run `ninja -t compdb swift` to\nget *just* the Swift compilation commands required rather than the whole\ngraph, and tack those onto a new output at `lsp/compile-commands.json`\nwhich can be used by LSPs. This has the additional benefit of sticking\naround in case any tools (run_test.py for example) issue `gn`\ninvocations directly, which stomps the compilation database.\n\nFollowup to: https://github.com/flutter/flutter/pull/189761\nFixes: https://github.com/flutter/flutter/issues/185741\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant in-code documentation (doc comments with\n`///`).\n- [X] If this PR introduces a new feature or capability, I created and\nlinked a website documentation issue or PR in [flutter/website] (or\nverified none is needed).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[flutter/website]: https://github.com/flutter/website\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/56cbb210f24e3d7ca4e567a0cf92253b9c9071a7\n"
    },
    {
      "commit": "773e084c9da3787ae681ee17b6d5ab9bca1758ea",
      "tree": "ffbd55e5bf8144b8f66ad94b63ab039e3c2506e8",
      "parents": [
        "23c61f00ca5454b2688d54358d3bc55d3862f2b2"
      ],
      "author": {
        "name": "Kevin Moore",
        "email": "kevmoo@users.noreply.github.com",
        "time": "Tue Sep 08 21:38:19 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 16:29:54 2026 -0700"
      },
      "message": "Refactor createDebuggingOptions and option registrations to OptionDescriptor (#192307)\n\nMigrates `createDebuggingOptions()` in `RunCommandBase`\n(`lib/src/commands/run.dart`) and associated option registration helpers\nin `FlutterCommand` (`lib/src/runner/flutter_command.dart`) to typed\n`OptionDescriptor` instances, continuing the CLI argument architecture\nmodernization started in #191018, #191510, and #191760.\n\n## Summary of Changes\n\n* **Typed Debugging Option Descriptors (`DebuggingOptionDescriptors` in\n`common_options.dart`)**:\n* Defined 35+ strongly-typed descriptors covering engine flags\n(`enableImpeller`, `enableFlutterGpu`, `enableVulkanValidation`,\n`enableEmbedderApi`, `enableHcpp`), tracing/profiling (`traceStartup`,\n`traceSystrace`, `traceToFile`, `endlessTraceBuffer`,\n`profileMicrotasks`, `traceSkia`, `traceAllowlist`,\n`traceSkiaAllowlist`, `enableDartProfiling`, `profileStartup`,\n`cacheStartupProfile`, `verboseSystemLogs`, `purgePersistentCache`), VM\nservice/DevTools/DDS (`dds`, `ddsPort`, `disableDds`, `enableDevTools`,\n`devToolsServerAddress`, `vmserviceOutFile`, `disableServiceAuthCodes`,\n`disableServiceOriginCheck`, `startPaused`, `dartFlags`, `ipv6`), and\nrunner configuration (`route`, `enableSoftwareRendering`,\n`skiaDeterministicRendering`, `dartEntrypointArgs`, `uninstallFirst`,\n`iosProfileDebugger`, `useTestFonts`, `adbLogFiltering`, `testFlag`).\n* **Web Server \u0026 Debugging Descriptors (`WebOptions` in\n`web_options.dart`)**:\n* Added typed descriptors for `webHeader`, `webHostname`, `webPort`,\n`webTlsCertPath`, `webTlsCertKeyPath`, `webServerDebugProtocol`,\n`webServerDebugBackendProtocol`, `webServerDebugInjectedClientProtocol`,\n`webAllowExposeUrl`, `webRunHeadless`, `webBrowserDebugPort`,\n`webEnableExpressionEvaluation`, `webLaunchUrl`, `webBrowserFlags`, and\n`crossOriginIsolation`.\n* **`ArgParserDescriptorExtension` \u0026 Automatic `Expando` Registry\n(`option_descriptor.dart`)**:\n* Added `addDescriptor` / `addDescriptors` extension methods on\n`ArgParser` for concise option registration.\n* Replaced explicit `Map\u003cString, OptionDescriptor\u003e? registry` parameter\nplumbing across `OptionDescriptor.addTo()`, `OptionBundle.register()`,\nand `FlutterCommand._optionRegistry` with an internal\n`Expando\u003cMap\u003cString, OptionDescriptor\u003cObject?\u003e\u003e\u003e` on `ArgParser`,\nensuring automatic diamond-bundle de-duplication and conflict detection\nacross all registration paths.\n* **Tri-State `bool?` Semantics**:\n* Used `NullableFlagOptionDescriptor` (`defaultsTo: null`) for flags\nwhose omitted state is semantically distinct from `false`\n(`enable-impeller`, `enable-flutter-gpu`, `enable-hcpp`,\n`cross-origin-isolation`, `ios-profile-debugger`), allowing\n`getValue(...)` to preserve `bool?` without manual string lookups.\n* **Eliminated Untyped Lookups in `createDebuggingOptions()`**:\n* Replaced 35+ untyped `argParser.options.containsKey(\u0027...\u0027)`,\n`boolArg(\u0027...\u0027)`, `stringArg(\u0027...\u0027)`, and `stringsArg(\u0027...\u0027)` lookups in\n`RunCommandBase.createDebuggingOptions()`, `webDevServerConfigCore()`,\nand `FlutterCommand` helpers (`usesWebOptions`, `addDdsOptions`,\n`addDevToolsOptions`, `explicitEnableHcpp`, `ddsPort`,\n`devToolsServerAddress`) with type-safe `getValue(...)`,\n`wasParsed(...)`, and `hasOption(...)` calls.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] All existing and new tests are passing.\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/a19bd3e56cfdfb5b344459ee21c5683a88ae194c\n"
    },
    {
      "commit": "23c61f00ca5454b2688d54358d3bc55d3862f2b2",
      "tree": "73af5c19577ecfd1584a8a8f8dcb1ae134a05899",
      "parents": [
        "3ba4ab391b099e708233cfc81eb88b0aa52d22fe"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 08 20:54:24 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 16:29:53 2026 -0700"
      },
      "message": "[flutter_tools] Fix test separation between `VersionFreshnessValidator` and `FlutterVersion.checkFlutterVersionFreshness` (#191593)\n\nSeveral tests in `version_test.dart` were incorrectly asserting server\nping behavior on `VersionFreshnessValidator.run()`, which performs\npresentation and warning logic without network execution.\n\n- Add unit tests for `FlutterVersion.checkFlutterVersionFreshness`\nverifying remote ping caching, git fetch invocation, and timestamp\nrecording on failure.\n- Isolate `VersionFreshnessValidator` unit tests into a dedicated group\nverifying warning presentation and warning timestamp tracking.\n- Update `FakeCache.setStampFor` to retain updated stamp data for load\nverification.\n\nFixes https://github.com/flutter/flutter/issues/104065\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/e3efd667634791a3bf26561a4372df92ad23ff40\n"
    },
    {
      "commit": "3ba4ab391b099e708233cfc81eb88b0aa52d22fe",
      "tree": "2a7631b3e77d75af3dfa187fa8b4ed74ddfb54da",
      "parents": [
        "c703223fe11a41a01ab5b2029ecbaf3d7f483439"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 08 20:31:09 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 16:29:51 2026 -0700"
      },
      "message": "[tool] Migrate EmulatorsCommand to modular dependency injection (#190769)\n\n## Summary\n\nPart 11 of the modular dependency injection migration.\n\n* Migrates `EmulatorsCommand` to modular constructor dependency\ninjection with zero global fallbacks:\n  ```dart\n  EmulatorsCommand({\n    required Doctor doctor,\n    required EmulatorManager emulatorManager,\n    required ToolContext toolContext,\n    super.verboseHelp,\n  })\n  ```\n* Requires non-nullable `Doctor`, `EmulatorManager`, and `ToolContext`,\ncompletely eliminating ambient `globals.*` references and `globals.dart`\nimports from `emulators.dart`.\n* Resolves `toolContext.logger`, `toolContext.platform`,\n`toolContext.processManager`, and `toolContext.terminal` directly from\n`toolContext`.\n* Wires dependencies via `toolDependencies.toolContext` in\n`executable.dart`.\n* Adds comprehensive hermetic unit tests in\n`packages/flutter_tools/test/commands.shard/hermetic/emulators_test.dart`\nunder `testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/edac39b920b50c548fcb308d8d7adeaa6fb43955\n"
    },
    {
      "commit": "c703223fe11a41a01ab5b2029ecbaf3d7f483439",
      "tree": "c8d32462f2967c706d5eea871c7eb27dbdb9e645",
      "parents": [
        "19491bc31a7220b88e575736e6a9222c4ddcbe74"
      ],
      "author": {
        "name": "Kallen Tu",
        "email": "kallentu@google.com",
        "time": "Tue Sep 08 16:12:29 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 16:13:32 2026 -0700"
      },
      "message": "[migrate] Add progress reporting to the tool.\n\nThe tool previously would spin and after a while, push out a wall of\nmigrations that its completed. This change makes the tool report its\nprogress as its going through each package, each version and each step.\n\nExample of migrate tool progress updates:\n\nA single package:\nMigrating package \u0027my_app\u0027: my_app: 3.11.0 -\u003e 3.12.0 (prepare)\nMigrating package \u0027my_app\u0027: my_app: 3.11.0 -\u003e 3.12.0 (bump)\nMigrating package \u0027my_app\u0027: my_app: 3.12.0 (cleanup)\nMigrating package \u0027my_app\u0027: my_app: 3.12.0 -\u003e 3.13.0 (prepare)\nMigrating package \u0027my_app\u0027: my_app: 3.12.0 -\u003e 3.13.0 (bump)\nMigrating package \u0027my_app\u0027: my_app: 3.13.0 (cleanup)\nMigrating package \u0027my_app\u0027... (0.8s)\n\nMultiple packages:\nMigrating 2 packages: pkg_a: 3.12.0 -\u003e 3.13.0 (prepare)\nMigrating 2 packages: pkg_a: 3.12.0 -\u003e 3.13.0 (bump)\nMigrating 2 packages: pkg_a: 3.13.0 (cleanup)\nMigrating 2 packages: pkg_b: 3.12.0 -\u003e 3.13.0 (prepare)\nMigrating 2 packages: pkg_b: 3.12.0 -\u003e 3.13.0 (bump)\nMigrating 2 packages: pkg_b: 3.13.0 (cleanup)\nMigrating 2 packages... (1.4s)\n\nThe classic, large summary is provided at the end still.\n\n- Adds `report(String message)` to `ProgressReporter` to emit progress messages.\n- Updates `DartMigrateParams` to implement `WorkDoneProgressParams` to\nsupport `workDoneToken`s.\n- Updates `MigrationRunner` to report phase updates (`prepare`, `bump`,\n`cleanup`)\n\nChange-Id: I1ee82e1c31e260918afd64e0146d9e746af0e845\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546080\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Kallen Tu \u003ckallentu@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/8915af6c20edfd9d3a6e5f0f3b6155259d361bb4\n"
    },
    {
      "commit": "19491bc31a7220b88e575736e6a9222c4ddcbe74",
      "tree": "0b838b664e9b33ab9e1853198e5691c846aa276a",
      "parents": [
        "78aa0b6fc2c20d94e0bcc19a9cbe9d1a585e6b79"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 08 20:27:53 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 15:36:22 2026 -0700"
      },
      "message": "[tool] Migrate Desktop build subcommands and toolchain to modular dependency injection (#190781)\n\n## Summary\n\nPart 16 of the modular dependency injection migration.\n\n* Migrates Desktop build subcommands to modular constructor dependency\ninjection:\n- `BuildWindowsCommand({required this.buildSystem, required ToolContext\ntoolContext, required bool verboseHelp, required FeatureFlags\nfeatureFlags, required VisualStudio visualStudio})`\n- `BuildLinuxCommand({required this.buildSystem, required ToolContext\ntoolContext, required bool verboseHelp, required FeatureFlags\nfeatureFlags})`\n* Eliminates `_DefaultFeatureFlags` and all constructor/ambient\nfallbacks, requiring explicit `FeatureFlags`, `BuildSystem`, and\n`ToolContext`.\n* Wires desktop build dependencies via `ToolDependencies` in\n`executable.dart`.\n* Migrates unit tests across\n`test/commands.shard/hermetic/build_windows_test.dart` and\n`build_linux_test.dart` to hermetic `testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/cb1e225160c9142eec8e97b01d7c627032407667\n"
    },
    {
      "commit": "78aa0b6fc2c20d94e0bcc19a9cbe9d1a585e6b79",
      "tree": "81092f2563ca8713331c8e44ac5345ef3a2b443d",
      "parents": [
        "0187b5dc8c96bd0477ceb4ec4f0bfd2e8b06a814"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 08 20:26:11 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 15:36:21 2026 -0700"
      },
      "message": "[tool] Migrate Tooling and Analysis commands to modular dependency injection (#190788)\n\n## Summary\n\nPart 20 of the modular dependency injection migration.\n\n* Migrates `AnalyzeCommand`, `DoctorCommand`, `IdeConfigCommand`, and\n`ShellCompletionCommand` to modular constructor dependency injection:\n- `AnalyzeCommand({required List\u003cProjectValidator\u003e allProjectValidators,\nrequired bool suppressAnalytics, required super.toolContext, bool\nverboseHelp \u003d false, this.workingDirectory})`\n- `DoctorCommand({AndroidLicenseValidator? androidLicenseValidator,\nDoctor? doctor, this.extensionManager, required super.toolContext,\nthis.verbose \u003d false})`\n- `IdeConfigCommand({required super.toolContext, TemplateRenderer\ntemplateRenderer \u003d const MustacheTemplateRenderer()})`\n  - `ShellCompletionCommand({required super.toolContext})`\n* Requires `toolContext` across all commands and eliminates ambient\nglobal usages in `ide_config.dart`, `analyze_base.dart`, and\n`shell_completion.dart`.\n* Migrates tooling and analysis test suites to hermetic\n`testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/158a5419aa824276199613faa5a1987b8a4cdf68\n"
    },
    {
      "commit": "0187b5dc8c96bd0477ceb4ec4f0bfd2e8b06a814",
      "tree": "cf3a19dab7d8b73cc295e2f65f32d170fcb962fc",
      "parents": [
        "f5cbf1b882572876e4c4e55dc587718e237b81c6"
      ],
      "author": {
        "name": "Aleksandr Pavlenko",
        "email": "71131015+wratheus@users.noreply.github.com",
        "time": "Tue Sep 08 20:22:27 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 15:36:20 2026 -0700"
      },
      "message": "Skip KGP version validation for AGP built-in Kotlin (#192206)\n\nFixes #192167.\n\n## Summary\n\nWhen `android.builtInKotlin\u003dtrue`, Kotlin is bundled with AGP and cannot\nbe upgraded independently. This change skips Flutter\u0027s KGP\nminimum-version\nvalidation for projects using AGP built-in Kotlin.\n\n## Tests\n\n- Added a regression test for an unsupported KGP version with\n  `android.builtInKotlin\u003dtrue`.\n- `./gradlew test --tests\n\u0027com.flutter.gradle.DependencyVersionCheckerTest\u0027`\n\n## Pre-launch Checklist\n\n- [x] I read the Contributor Guide and followed the process outlined\nthere for submitting PRs.\n- [x] I read the AI contribution guidelines and understand my\nresponsibilities.\n- [x] I read the Tree Hygiene wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the Flutter Style Guide.\n- [x] I signed the CLA.\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant in-code documentation, or verified that\nnone is needed for this internal validation change.\n- [x] This PR does not introduce a new feature or capability; no\n`flutter/website` documentation issue or PR is needed.\n- [x] I added new tests to check the change I am making.\n- [x] This is not a breaking change and does not require Data Driven\nFixes.\n- [x] The relevant existing and new tests are passing.\n\n---------\n\nCo-authored-by: Aleksandr Pavlenko \u003cMorwar211@gmail.com\u003e\nCo-authored-by: Aleksandr P. \u003cAlex-Pavlenko-net-2013@yandex.ru\u003e\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/05bb83a8413552b1fc8fdb14127a1e54bfa3e9d7\n"
    },
    {
      "commit": "f5cbf1b882572876e4c4e55dc587718e237b81c6",
      "tree": "ce1770316026302d8edc67af6606b40530aacb6d",
      "parents": [
        "a6e774d2dc87f54c5a11dac0118b01a3a8918681"
      ],
      "author": {
        "name": "Kate Lovett",
        "email": "katelovett@google.com",
        "time": "Tue Sep 08 17:18:08 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 15:36:19 2026 -0700"
      },
      "message": "Clean up lint errors in workflows (#191987)\n\nThis PR resolves shellcheck and syntax issues flagged by `actionlint`\nacross GitHub Actions workflows.\n\nI\u0027ve been using `actionlint` to check workflows for errors. This brings\nit clean.\n\nFixing others in\n- no-main-prs: https://github.com/flutter/flutter/pull/191973\n- scheduled-localization-update:\nhttps://github.com/flutter/flutter/pull/191991\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/b444e7897e249e9538e2afe623b533abbabfa4fb\n"
    },
    {
      "commit": "a6e774d2dc87f54c5a11dac0118b01a3a8918681",
      "tree": "925d63989177de53d6555a99582e552360d45bd7",
      "parents": [
        "07da7a74bceaf7542d8beb26bf23457bf3a519eb"
      ],
      "author": {
        "name": "Valentin Vignal",
        "email": "32538273+ValentinVignal@users.noreply.github.com",
        "time": "Tue Sep 08 16:46:34 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 15:36:17 2026 -0700"
      },
      "message": "Remove no-shuffle tag from dropdown_test.dart (#186398)\n\nPart of https://github.com/flutter/flutter/issues/85160\n\nIt seems, the tests were already fixed, when I run with the seed `456`\nor `1408669812`\n\n```\nflutter test test/material/dropdown_test.dart --test-randomize-ordering-seed\u003d1408669812\nBuilding flutter tool...\nResolving dependencies... (1.0s)\nDownloading packages...\nGot dependencies.\nResolving dependencies in `/Users/valentinvignal/Projects/flutter`...\nDownloading packages...\n  _fe_analyzer_shared 95.0.0 (100.0.0 available)\n  adaptive_breakpoints 0.1.7 (discontinued)\n  analyzer 10.1.0 (13.0.0 available)\n  archive 3.6.1 (4.0.9 available)\n  cli_util 0.4.2 (0.5.1 available)\n  dart_style 3.1.7 (3.1.9 available)\n  device_info 2.0.3 (discontinued replaced by device_info_plus)\n  devtools_shared 12.1.0 (13.0.1 available)\n  gcloud 0.8.19 (0.9.0 available)\n  google_fonts 6.3.3 (8.1.0 available)\n  googleapis 14.0.0 (16.0.0 available)\n  googleapis_auth 2.3.0 (2.3.1 available)\n  isolate 2.1.1 (discontinued)\n  js 0.7.2 (discontinued)\n  native_toolchain_c 0.17.6 (0.18.0 available)\n  pedantic 1.11.1 (discontinued replaced by lints)\n  video_player_avfoundation 2.9.5 (2.9.6 available)\n  xml 6.6.1 (7.0.1 available)\nGot dependencies in `/Users/valentinvignal/Projects/flutter`!\n5 packages are discontinued.\n13 packages have newer versions incompatible with dependency constraints.\nTry `flutter pub outdated` for more information.\nShuffling test order with --test-randomize-ordering-seed\u003d1408669812\n00:32 +123: All tests passed!\n```\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/3238b121682c4b9dfd3dcb86e8b87e2518189eb2\n"
    },
    {
      "commit": "07da7a74bceaf7542d8beb26bf23457bf3a519eb",
      "tree": "168dbf31d8d58097be1c511d0271322c7a11927b",
      "parents": [
        "5c6d3382aa65ccc4f165a430a359c432c89df351"
      ],
      "author": {
        "name": "Valentin Vignal",
        "email": "32538273+ValentinVignal@users.noreply.github.com",
        "time": "Tue Sep 08 16:22:57 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 15:36:16 2026 -0700"
      },
      "message": "Remove no-shuffle from scrollbar test (#186656)\n\nPart of https://github.com/flutter/flutter/issues/85160\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/9f6cac22c0974876ff93e2739125581bf879e5d5\n"
    },
    {
      "commit": "5c6d3382aa65ccc4f165a430a359c432c89df351",
      "tree": "aa84175f1f1221bcee1a302298e5ef207f4d59be",
      "parents": [
        "be7acb96ffebb7ed15524a3e7dc317ee48ec4355"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 08 14:22:03 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 14:22:51 2026 -0700"
      },
      "message": "Replace @Timeout.none on library with @TestTimeout(Timeout.factor(4))\n\nBecause `@Timeout.none` means nothing for test_reflective_loader, AFAIK.\n\nChange-Id: Ia9acd1a774b33e72a4032be351392256812ee928\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547040\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/8698f9da6ae7cac66631a89b3e59c729edd2967e\n"
    },
    {
      "commit": "be7acb96ffebb7ed15524a3e7dc317ee48ec4355",
      "tree": "fde2e3e2ae7e9d5d76ae3d815e5bb5df1af13474",
      "parents": [
        "e1884a55b01dd325ceaced107f21fc0f7682f783"
      ],
      "author": {
        "name": "Parker Lougheed",
        "email": "parlough@gmail.com",
        "time": "Tue Sep 08 14:16:27 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 14:17:08 2026 -0700"
      },
      "message": "[vm/riscv] Fix assembler shift ops with distinct source and destination\n\nTo cover these cases, add RISC-V specific regression tests that run without Zba/Zbb and add shared assembler tests that use distinct source and destination registers.\n\nTEST\u003druntime/vm/compiler/assembler/assembler_riscv.cc, runtime/vm/compiler/assembler/assembler_test.cc\n\nChange-Id: I11af17f4377a1ace6643682ce5c1f44da4fe1dcc\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546881\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Ryan Macnak \u003crmacnak@google.com\u003e\nReviewed-by: Alexander Markov \u003calexmarkov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/57e1425bcff4bae7f2415ffe12795854a2ee16cc\n"
    },
    {
      "commit": "e1884a55b01dd325ceaced107f21fc0f7682f783",
      "tree": "f2c6c834ef78ad5b1313b13e059650cd9d9a6443",
      "parents": [
        "95d2c3e8da40e96464a0d72ba9d10a76d87009dc"
      ],
      "author": {
        "name": "Michael Goderbauer",
        "email": "goderbauer@google.com",
        "time": "Tue Sep 08 13:12:52 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 13:14:03 2026 -0700"
      },
      "message": "[frontend_server] Include stack trace when catching errors in recompileDelta\n\nWhen `writeJavaScriptBundle` throws an exception during `recompileDelta`\n(e.g., during web hot reload), the exception was caught with `catch (e)`\nand only `$e` was written to `_outputStream`.\n\nThis discarded the stack trace, causing downstream tools (such as\nflutter_tools) to only receive and surface the top-level exception\nstring (e.g., \"Null check operator used on a null value\") without any\nstack trace, making hot reload rejections and compiler crashes difficult\nto diagnose.\n\nThis change captures the stack trace (`catch (e, s)`) and writes both\nthe exception and the stack trace to `_outputStream` and `errors`.\n\nIssue: https://github.com/flutter/flutter/issues/192227\nTEST\u003dpkg/frontend_server/test/frontend_server_test.dart\nChange-Id: I78e1c64d1c589f1e810c0ed4ae75913366220cd3\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545260\nReviewed-by: Sigmund Cherem \u003csigmund@google.com\u003e\nAuto-Submit: Michael Goderbauer \u003cgoderbauer@google.com\u003e\nCommit-Queue: Sigmund Cherem \u003csigmund@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/39709625f81218d664a31954b5812acb90b7f49b\n"
    },
    {
      "commit": "95d2c3e8da40e96464a0d72ba9d10a76d87009dc",
      "tree": "99123879e0e17d60ffb5e6eaac55ca5b31ccb3c2",
      "parents": [
        "e205f8d29a6dce427968aeb38fa3a6804bb0784d"
      ],
      "author": {
        "name": "Ryan Macnak",
        "email": "rmacnak@google.com",
        "time": "Tue Sep 08 12:35:39 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 12:37:31 2026 -0700"
      },
      "message": "[vm] Fix RISC-V build.\n\nStubs added in 8f1c524e1818f254eb9c802d2beee3f040790180 pushed a leaf runtime entry out of I-type range.\n\nTEST\u003dci\nChange-Id: I939cfa3cb4608373e1bbede058214ffdf65919fe\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547060\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\nCommit-Queue: Ryan Macnak \u003crmacnak@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/ee855b191a06fc2662ad7215ddf91f08c25ef423\n"
    },
    {
      "commit": "e205f8d29a6dce427968aeb38fa3a6804bb0784d",
      "tree": "2327ea04dcfb0480b49f9d85b09bb0a662792e45",
      "parents": [
        "026274dffd0d7d3af95b96e29c3f3f8fa337a3e2"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Sep 08 11:53:43 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 11:54:29 2026 -0700"
      },
      "message": "dev_compiler: Fix previously missed cases of \"unintended\" HTML in comments\n\nWork towards https://github.com/dart-lang/sdk/issues/64155\n\nThe first line of these lines is only indented _3_ columns from the paragraph text; it must be indented 4.\n\nChange-Id: I8c97d5dd82914f347d7f29bd9632928d321c5b32\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/544460\nReviewed-by: Nicholas Shahan \u003cnshahan@google.com\u003e\nAuto-Submit: Samuel Rawlins \u003csrawlins@google.com\u003e\nCommit-Queue: Samuel Rawlins \u003csrawlins@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/fc9727db5a684930c3c6f17b4e0fe9a71c900495\n"
    },
    {
      "commit": "026274dffd0d7d3af95b96e29c3f3f8fa337a3e2",
      "tree": "39aa4f1c3e5dc4492c35a46774b0c72e70effe5d",
      "parents": [
        "ff8c46f1a3dd262f0ae1814619d8607352047dbd"
      ],
      "author": {
        "name": "Daco Harkes",
        "email": "dacoharkes@google.com",
        "time": "Tue Sep 08 11:25:36 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 11:26:47 2026 -0700"
      },
      "message": "[dart_data_home] Bump version to 0.1.1\n\nWiden dependency constraint on package:cli_util to \u0027\u003e\u003d0.5.0 \u003c0.7.0\u0027\nto support cli_util 0.6.0 while maintaining backwards compatibility\nwith 0.5.x.\n\nCloses: https://github.com/dart-lang/sdk/issues/64237\nChange-Id: Idb04c486c5f8c6f54a62dabfe9972662e714d0d6\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/547020\nCommit-Queue: Kevin Moore \u003ckevmoo@google.com\u003e\nReviewed-by: Kevin Moore \u003ckevmoo@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/40ce5622733cdbff623611eff8beaade2f366f7c\n"
    },
    {
      "commit": "ff8c46f1a3dd262f0ae1814619d8607352047dbd",
      "tree": "70b1aa70b00bfdf36f972303f5f8ffe8a7b9255b",
      "parents": [
        "e63655c25de20d2c1cd809f6bf77425b362a2145"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 08 10:55:09 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 10:56:10 2026 -0700"
      },
      "message": "CQ. Use more narrow source range for deprecatedMemberUse and likes.\n\nChange-Id: Iaeb2aaac6559a38fd2ee829285c163fcc99cecd2\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546620\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/ab942a8bcfdd918c2418947f0a25d04718dd8601\n"
    },
    {
      "commit": "e63655c25de20d2c1cd809f6bf77425b362a2145",
      "tree": "469c04c4b7521af22d8c99eee663b6507882df8c",
      "parents": [
        "d5763a877715e7f98335cd5005cfc22ba9b346c5"
      ],
      "author": {
        "name": "Brian Wilkerson",
        "email": "brianwilkerson@google.com",
        "time": "Tue Sep 08 10:52:38 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 10:53:36 2026 -0700"
      },
      "message": "Add completion tests\n\nAdds a failing test for https://github.com/dart-lang/sdk/issues/39003.\n\nAdds a regression test for https://github.com/dart-lang/sdk/issues/39002.\n\nChange-Id: I345fee0bdfb65c37ed8c773314eb0f05a916196c\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546040\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\nAuto-Submit: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/597d1efa438aa816b29dc63676c32c7c107993f1\n"
    },
    {
      "commit": "d5763a877715e7f98335cd5005cfc22ba9b346c5",
      "tree": "1f40ef78c2ac925b24b68485e4140102f209f14c",
      "parents": [
        "eb977094e100c3b2b5d17aa83eabf8241e696a88"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 08 10:38:55 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 10:40:15 2026 -0700"
      },
      "message": "CQ. Add separate deprecatedMemberUseImplicit and deprecatedMemberUseImplicitWithMessage for dot-shorthands.\n\nChange-Id: Ic9324662907693fa1d96dea06596ffed747f1c99\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546560\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/aa7ed9cada23e36ee0c0c550d8c6e90ae45dc01f\n"
    },
    {
      "commit": "eb977094e100c3b2b5d17aa83eabf8241e696a88",
      "tree": "286eaaf3c2b35967c304d1613431b3f4a63556bd",
      "parents": [
        "04d0db6caaf8a88822242d8377e11898ddd2bd9a"
      ],
      "author": {
        "name": "Simon Binder",
        "email": "oss@simonbinder.eu",
        "time": "Tue Sep 08 10:37:18 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 10:38:23 2026 -0700"
      },
      "message": "[dart2wasm]: Never import memories as functions\n\nTo interop with other WebAssembly modules, dart2wasm apps can declare a\nlinear memory to import:\n\n```dart\n@pragma(\u0027wasm:import\u0027, \u0027libc.memory\u0027)\n@pragma(\u0027wasm:memory-type\u0027, MemoryType())\nexternal Memory get memory;\n```\n\nMemory instances can only be used through intrinsic extension members,\nit is invalid to invoke this getter in another context and the compiler\nemits diagnostics for misuses.\n\nHowever, TFA sometimes introduces invocations to this getter when it\ndetects that a method call is dead code (generating a block expression\nwhere the block is the `memory` receiver and the expression throws). In\nthese cases, the compiler treats `get memory` as an imported function\nand adds another `(import)` with the same name, making the module\ninvalid.\n\nSince these blocks of code transformed by TFA throw either way, this\nignores imports when memory getters are used as functions. The compiler\nthen emits a throwing body for the external member instead of an\ninvalid module.\n\nChange-Id: I12273423fc2af3b619e2a209e2bd7578e47ac5c7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546240\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/0f85f0a4016eb8bed47226ab8e3e85ad03d09235\n"
    },
    {
      "commit": "04d0db6caaf8a88822242d8377e11898ddd2bd9a",
      "tree": "7d4a44bd1d78025199e06e452699b04a5bffbf27",
      "parents": [
        "9706c5b44a31f085b06babd0bdd2043953935184"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Sep 08 15:35:57 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 10:25:47 2026 -0700"
      },
      "message": "[tool] Let --local-engine reach the build system again (#192361)\n\nDesktop builds with --local-engine quietly used the cached engine\ninstead of the one just built, and often failed outright with \"Can\u0027t\nload Kernel binary: Invalid SDK hash\", because cached engine artifacts\nstop being updated once --local-engine is used and eventually no longer\nmatch the Dart SDK.\n\nCommands are created with the artifacts to build against when the tool\nstarts up, which is before the command line has been parsed, so they\nalways used the cached ones. --local-engine and --local-web-sdk were\napplied afterwards, and only to the legacy zone that commands used to\nread artifacts from. flutter assemble stopped reading from that zone in\n#190773, taking the build system with it.\n\nUse artifacts that can be changed after they are created instead, and\nupdate them as soon as the runner has parsed the command line, which\nhappens before any command runs. Everything then builds against the\nright engine.\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/20b9fecfc007cca98f14d307cbad5b7390829100\n"
    },
    {
      "commit": "9706c5b44a31f085b06babd0bdd2043953935184",
      "tree": "d285e84bd32ddfe5f211c531c44b23dcb8e4a898",
      "parents": [
        "b99e275ce01a98626a8e55d1954bba5da1de44ec"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Sep 08 14:02:23 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 10:25:44 2026 -0700"
      },
      "message": "[flutter_tools] Safely remove web loading indicator on dart-app-ready (#192233)\n\nFixes https://github.com/flutter/flutter/issues/192226\n\n### Problem\nIn `packages/flutter_tools/lib/src/web/bootstrap.dart`, when compiling\nthe web bootstrap script (`main.dart.js`), an event listener was added\nto `window` for `dart-app-ready` that executed:\n```javascript\nloader.parentNode.removeChild(loader);\n```\nOn initial load, this removes the loader from the DOM, setting\n`loader.parentNode` to `null`.\nWhen DWDS reconnects or re-dispatches `dart-app-ready` (e.g. following a\nWebSocket disconnect/reconnect), this listener was invoked again.\nAttempting to call `.removeChild` on a `null` `parentNode` threw:\n```\nTypeError: Cannot read properties of null (reading \u0027removeChild\u0027)\n```\n\n### Solution\n1. Use `loader.remove()` and `styleSheet.remove()` instead of\n`parentNode.removeChild()`.\n2. Configure the event listener with `{ once: true }` so it is\nautomatically removed after firing once.\n\n### Tests\nAdded regression unit tests to\n`packages/flutter_tools/test/general.shard/web/bootstrap_test.dart`\nverifying that `{ once: true }` and `.remove()` are used in generated\nweb bootstrap code.\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/78ca39285ef3fd687d411a8aaa6cf97fed262719\n"
    },
    {
      "commit": "b99e275ce01a98626a8e55d1954bba5da1de44ec",
      "tree": "019a8378c793020b484089d0297eb87ee35c8bde",
      "parents": [
        "f3b2e0c3837788d0bd8548b5d342620e1630cea7"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Sep 08 09:54:26 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 09:55:11 2026 -0700"
      },
      "message": "[dartdev] Extract LSP WorkspaceEdit handling from \u0027dart migrate\u0027\n\nNo functional change here, just extracting some code for applying LSP workspace edits from `dart migrate` to its own file so it can be reused by the LSP version of `dart fix` to make the CL a little easier to review.\n\nread/write file are callbacks because for `dart fix` they are written into a temporary cache and not directly to disk.\n\nChange-Id: I288af1bebdcdef515ce414452bcb3d0e9fa82cfa\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546540\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nReviewed-by: Kallen Tu \u003ckallentu@google.com\u003e\nCommit-Queue: Kallen Tu \u003ckallentu@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/5470dcdefd680478d9077eabe411fdead3825535\n"
    },
    {
      "commit": "f3b2e0c3837788d0bd8548b5d342620e1630cea7",
      "tree": "0de4b89e8fe3a96983655976bacacbc77e5d00ee",
      "parents": [
        "ead742e4e82caeda586e1258d68220bf723acf61"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Tue Sep 08 08:53:24 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 08:54:48 2026 -0700"
      },
      "message": "[typed_data] Add Int32x4.allTrue\n\nTEST\u003dlib/typed_data/int32x4_compare_test\n\nIssue: #64170\nChange-Id: Iae1614ebc31e494fc94561187afe6690cec8a931\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543480\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nCommit-Queue: Lasse Nielsen \u003clrn@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Stephen Adams \u003csra@google.com\u003e\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/4e33b0a3fe594dbdfc7f8ea60d048b58ca9a1bca\n"
    },
    {
      "commit": "ead742e4e82caeda586e1258d68220bf723acf61",
      "tree": "70b32363ea1bf04fd25e4296faee9d53d1ed2166",
      "parents": [
        "4894310736b00149286ddced00e9c78544f40afb"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 08 08:43:05 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 08:43:55 2026 -0700"
      },
      "message": "AST. Implement FunctionInstantiation.\n\nRepresent explicit function instantiation in the V2 AST with a dedicated\nFunctionInstantiation node. The operand retains its generic function\ntype, while the instantiation records the written and effective type\narguments and has the instantiated function type.\n\nRewrite resolved FunctionReference nodes with written type arguments to\nthis form. For callable objects, compose FunctionInstantiation with an\nImplicitCallTearOff so that the call tear-off and function instantiation\nare represented as separate operations.\n\nPreserve the existing V1 FunctionReference and ImplicitCallReference\nviews through compatibility projections, and support the new node\nthroughout AST visitors, serialization, constant evaluation, and\ndiagnostics.\n\nChange-Id: Ic4ad6c9d86062ddb1bf64b0a44dc5be23033417f\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546340\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/228d92a01771136c76f101df98a0e8ad2f25d63c\n"
    },
    {
      "commit": "4894310736b00149286ddced00e9c78544f40afb",
      "tree": "1b4b6cc2d6763d3dd44ddeadb3e729a30ff6272a",
      "parents": [
        "80cafaba1bfd93d40722ab6d3ca04ae822211312"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Tue Sep 08 08:27:06 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 08:28:14 2026 -0700"
      },
      "message": "AST. Implement ImplicitCallTearOff.\n\nRepresent resolver-inserted implicit call tear-offs with a dedicated\nImplicitCallTearOff node. This preserves the callable object as the\noperand while giving the tear-off the selected `call` method\u0027s function\ntype.\n\nCompose generic `call` methods with ImplicitFunctionInstantiation so\nthat tear-off and function instantiation are represented as separate V2\noperations.\n\nPreserve the existing V1 AST shape by projecting ImplicitCallTearOff,\nand an enclosing implicit instantiation when present, to\nImplicitCallReference. Add the corresponding visitor, serialization, and\nlint registration support.\n\nChange-Id: Ie585c30c3fd7fe855c86c2e91abfd69b658b17ec\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546280\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/66ac536ec78092b8fec2e8b6f1443d0c4a190b0c\n"
    },
    {
      "commit": "80cafaba1bfd93d40722ab6d3ca04ae822211312",
      "tree": "dc3d7be48882631728128a5c215118dadadc6aff",
      "parents": [
        "19a3350efc374abc75f420286f8972d6b4695ed4"
      ],
      "author": {
        "name": "Johnni Winther",
        "email": "johnniwinther@google.com",
        "time": "Tue Sep 08 07:56:55 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 08:01:03 2026 -0700"
      },
      "message": "[cfe][augmentations] Support enum with no direct elements\n\nThis allows an enum declaration to have no elements and only reports an error when no enum fragment declared any elements.\n\nChange-Id: I825811931e1e50aefdf6373db99b10f6a06b74db\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546480\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/276c8d570203e3c9a5f69dbbe3b18aed03d788a4\n"
    },
    {
      "commit": "19a3350efc374abc75f420286f8972d6b4695ed4",
      "tree": "43640a2021b76381a46d5408543cc7fa0e060db4",
      "parents": [
        "ea02133255f87cefee749337e6c2bef728127612"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Tue Sep 08 05:42:21 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 05:45:23 2026 -0700"
      },
      "message": "[dart2wasm] Give classId and identityHash fields a name\n\nThat makes the wasm code easier to read.\n\nChange-Id: I54892f05aba22a3c1e5d43e5d4811b98ec925b70\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546840\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/6a822ae7259779eebf35b35899dccabf5c2a2090\n"
    },
    {
      "commit": "ea02133255f87cefee749337e6c2bef728127612",
      "tree": "904913e322140159917e5bae7c05afb65dbdc72d",
      "parents": [
        "328859001ec181b5644bf5e2396ca4671e565d16"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Tue Sep 08 05:26:35 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 05:29:46 2026 -0700"
      },
      "message": "[dart2wasm] Run the formatter on the code base\n\nThis will avoid warnings about unrelated code when `git cl upload`ing\nchanges.\n\nChange-Id: I78800c32341d9c63e67bc9094dc0fca43a0b5f41\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546422\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/535ea30f9b380225a6682ef1f543a7f02e011fa2\n"
    },
    {
      "commit": "328859001ec181b5644bf5e2396ca4671e565d16",
      "tree": "009623600273b624cb7e4ba752a7cd9ee4acdfb0",
      "parents": [
        "88f2551253f087dca3ad99a8a357568090677174"
      ],
      "author": {
        "name": "Robert Ancell",
        "email": "robert.ancell@canonical.com",
        "time": "Tue Sep 08 06:06:02 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 05:05:49 2026 -0700"
      },
      "message": "[Linux] Don\u0027t clear the OpenGL context when a frame has been drawn (#192137)\n\nThe draw handler made a context current to draw the frame with, then\ncleared it, leaving no context current at all while GTK finished the\nframe.\n\nGTK makes the context it needs current before using OpenGL, so this\ndoesn\u0027t need to be cleared. But GTK doesn\u0027t check that making its\ncontext current succeeded, and if it fails it carries on and uses OpenGL\nwith no context current, which crashes.\n\nLeaving the context current means GTK still has one to fall back on when\nthis happens, so it doesn\u0027t crash.\n\nSee https://github.com/flutter/flutter/issues/191775\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/45f4e3db32b2ee14ea9d2aad100f7d506530eb54\n"
    },
    {
      "commit": "88f2551253f087dca3ad99a8a357568090677174",
      "tree": "5d8c7e5de606ac6e76d9c8367a2e211dac14a32b",
      "parents": [
        "581bb1c12d79b74deb68c272356ff7c98bb48118"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Mon Sep 07 21:27:13 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Sep 08 03:01:39 2026 -0700"
      },
      "message": "Fix trailing comma, remove roboelectric from web builder.\n\nFollow-up to a9ed2ad0249576b232ee6def335ab28b77d8a936.\n\nFixes\nhttps://ci.chromium.org/ui/p/dart/builders/ci.sandbox/flutter-linux/16541/overview, https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/flutter-linux-android_debug/28757/overview\n\nChange-Id: I92cc88dd7064f2a337f482ffeb5257b50b89a61f\nReviewed-on: https://dart-review.googlesource.com/c/monorepo/+/546740\nReviewed-by: Alexander Thomas \u003cathom@google.com\u003e\nCommit-Queue: Alexander Thomas \u003cathom@google.com\u003e\n"
    },
    {
      "commit": "581bb1c12d79b74deb68c272356ff7c98bb48118",
      "tree": "52fb9d8df71765335bd5da52bce63ad2a8e41403",
      "parents": [
        "c45dfc01fa03a5735a308cc1e41e9ed3979e6183"
      ],
      "author": {
        "name": "Johnni Winther",
        "email": "johnniwinther@google.com",
        "time": "Tue Sep 08 00:16:35 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Tue Sep 08 00:17:46 2026 -0700"
      },
      "message": "[cfe][augmentations] Stop reporting abstract extension (type) members in parser\n\nThis moves the check for abstract extension (type) members out of the parser to support augmentations.\n\nThe message used by the analyzer for extension type members is shared with the CFE.\n\nChange-Id: Ic85c0c3fa04fe4175e2a0f020a5e49f2800af01d\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/544120\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nCommit-Queue: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/74a708493c001fcdd156a301e8464a2eef0c5f25\n"
    },
    {
      "commit": "c45dfc01fa03a5735a308cc1e41e9ed3979e6183",
      "tree": "059ad30bbdea8d3b8232c1a0a5d8eb8733abf4e3",
      "parents": [
        "234508a0b6d295884337cf74a2b8daf22ee0313a"
      ],
      "author": {
        "name": "Chris Bracken",
        "email": "chris@bracken.jp",
        "time": "Tue Sep 08 04:43:13 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 22:30:32 2026 -0700"
      },
      "message": "ci: update dartdoc from 9.0.6 to 9.0.9 (#192405)\n\nA bug in `dartdoc` 9.0.6 is causing a RangeError during\n`_stripDocImports` during `@docImport` processing. The changelog\nindicates this was fixed in 9.0.8.\n\nhttps://github.com/dart-lang/dartdoc/blob/main/CHANGELOG.md#908\n\nNot rolling to 9.0.9 since that introduces new dependency constraints.\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove, or I\u0027m just desperate to get the tree green.\n- [X] I updated/added relevant in-code documentation (doc comments with\n`///`).\n- [X] If this PR introduces a new feature or capability, I created and\nlinked a website documentation issue or PR in [flutter/website] (or\nverified none is needed).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[flutter/website]: https://github.com/flutter/website\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/6dbf67f1e6d584a884ed18b634954ad7a3f75f81\n"
    },
    {
      "commit": "234508a0b6d295884337cf74a2b8daf22ee0313a",
      "tree": "2e0e62a4a52666105726e52ea7030bebcf1210af",
      "parents": [
        "40d5256513c3bdd3f2780af3c22463a17b862f3d"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 07 15:46:03 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 15:46:40 2026 -0700"
      },
      "message": "AST. Implement ImplicitFunctionInstantiation.\n\nRepresent contextual generic function instantiation explicitly in the V2\nAST. The new node wraps the generic function value, preserves its\ngeneric type on the operand, and records the inferred type arguments and\nresulting instantiated type.\n\nUse the node consistently for function and constructor tear-offs,\nincluding implicit `call` references, rather than storing inferred type\narguments on name expressions or using `FunctionReference` as the V2\nrepresentation.\n\nPreserve the existing V1 AST shapes through compatibility projections,\nincluding the legacy pre-constructor-tear-offs behavior and substituted\nconstructor elements.\n\nIntegrate the new node with constant evaluation, AST serialization,\nvisitors, lint registration, and other AST infrastructure.\n\nChange-Id: Ie8f1fe59b1a439b9c5be18098d753dfddc8bc184\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546260\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/eae5b0827629c9b091bc2bb5ad8837f92ce1cec5\n"
    },
    {
      "commit": "40d5256513c3bdd3f2780af3c22463a17b862f3d",
      "tree": "e4a28f0ff61eebe5f6214e9c234fbd57829b286d",
      "parents": [
        "cb50dc95c5f6177e0bd7d42ee0a78ff0a9423752"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 07 15:03:39 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 15:04:15 2026 -0700"
      },
      "message": "AST. Implement ImportPrefixedNameExpression.\n\nRepresent import-prefixed value reads such as `p.foo` with a dedicated\nV2 NameExpression instead of a shared PrefixedIdentifier.\n\nResolve the name directly through the import prefix and store a typed\nNamedReadResolution. Preserve the V1 AST view by projecting the node\nback to PrefixedIdentifier, including static type, contextual function\ninstantiation, constant context, and other compatibility state.\n\nUpdate AST visitors, serialization, diagnostics, constant evaluation,\nreference tracking, fine-grained dependencies, and other consumers to\nhandle the new expression. Generalize consumers from\nUnqualifiedNameExpression to NameExpression where the same named-read\nsemantics apply.\n\nChange-Id: I07a8292a88f255903a12bfe176b4ebf4bc653592\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546220\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/33a94601274450f482941f3683cd544757f84c12\n"
    },
    {
      "commit": "cb50dc95c5f6177e0bd7d42ee0a78ff0a9423752",
      "tree": "b76081976f780b358c9927a2fea85c62c10bc4d0",
      "parents": [
        "321877862cc6866139f71a8269a102fd3825c719"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 07 14:11:39 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 14:12:43 2026 -0700"
      },
      "message": "AST. Consolidate NameExpression handling in ElementLocatorV2.\n\nHandle all NameExpression nodes in ElementLocatorV2 through the common\nresolution API instead of maintaining overrides for individual node\ntypes.\n\nUse `elementOrRecovery` so element lookup consistently preserves\nrecovery elements when the resolution provides one. This also removes\nduplicated handling for cascade and receiver property extractions, dot\nshorthand name expressions, and unqualified name expressions.\n\nChange-Id: If4e7f6df3394c26620503ef8eab2f6cf67a2b50b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546200\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/1a982e8566faf2e8d25d500aca9018b72da27126\n"
    },
    {
      "commit": "321877862cc6866139f71a8269a102fd3825c719",
      "tree": "605b082823f39ed6eef375555fc2e1dd8fabe361",
      "parents": [
        "e9135117478927f355c8c4d74de77c6532104086"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 07 11:18:12 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 11:18:57 2026 -0700"
      },
      "message": "[vm,modular_aot] Canonicalize type arguments in constant instances when reading module snapshot\n\nTEST\u003dci\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: Id420d6dfcb765d89ceafb2080a9c5bc5243d9dfa\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/542661\nReviewed-by: Ryan Macnak \u003crmacnak@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/bb6891ea9ca91cbba6033b5af4ee29c292b85023\n"
    },
    {
      "commit": "e9135117478927f355c8c4d74de77c6532104086",
      "tree": "7408bf57382cc6873b936351e5a4917984d2d7bf",
      "parents": [
        "da89d365089b312896e47112e469038ba41a2992"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 07 11:13:44 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 11:14:33 2026 -0700"
      },
      "message": "[modular_aot] Code generation for int abs and sign\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: Id5f671d45a6e61cd3f6d247ed326c8b1753eeee1\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/542840\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/b444ff8828283eda8ad13cdae3a9182b9686b0c1\n"
    },
    {
      "commit": "da89d365089b312896e47112e469038ba41a2992",
      "tree": "b6063b468570b01bb2b7bf4634d9e87872ec717c",
      "parents": [
        "2655d54715773c4af48d65f8963de1b29007c86b"
      ],
      "author": {
        "name": "Alexander Markov",
        "email": "alexmarkov@google.com",
        "time": "Mon Sep 07 11:10:06 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 11:11:01 2026 -0700"
      },
      "message": "[modular_aot] More recognized methods from dart:typed_data\n\nFloat32List, Float64List, Float32x4, Float64x2, Int32x4 factory constructors.\n_TypedListView._typedData/offsetInBytes, _ByteDataView.length/_typedData/offsetInBytes\nAll typed data view factory constructors.\n\nIssue: https://github.com/dart-lang/sdk/issues/61635\nChange-Id: I5bf23b7566c9093057b82904dbb202e5453d32ae\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543060\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/4ef0ba5f6adc8caa2aa49983f92cb178e98cbbce\n"
    },
    {
      "commit": "2655d54715773c4af48d65f8963de1b29007c86b",
      "tree": "a447a332b0d62f7cee51c531166dff7a01f99a02",
      "parents": [
        "648fd2f4601f90ee29df1d18b58280b56846d252"
      ],
      "author": {
        "name": "Mairramer",
        "email": "50643541+Mairramer@users.noreply.github.com",
        "time": "Mon Sep 07 16:47:06 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 10:30:39 2026 -0700"
      },
      "message": "Add itemExtentBuilder support to ListView.separated (#191157)\n\nThis PR adds `itemExtentBuilder` support to `ListView.separated`,\nallowing optimal scrolling performance when item and separator extents\nare known.\n\nCloses https://github.com/flutter/flutter/issues/138758\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/5f6e3ed60fd9fccdef040be6f6ff6f2f2c249e98\n"
    },
    {
      "commit": "648fd2f4601f90ee29df1d18b58280b56846d252",
      "tree": "570b49c6a76a423d79f61cd620717a3b4ed02a4f",
      "parents": [
        "6cab2fd25496c4daaee92a3a40641b7562073c4b"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 07 10:04:22 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 10:05:24 2026 -0700"
      },
      "message": "AST. Consolidate a few places using NameExpression.\n\nHandle NameExpression nodes uniformly across indexing, search, and\ndiagnostic verification instead of duplicating logic for unqualified,\nreceiver, cascade, and dot-shorthand forms.\n\nCentralize resolution handling so variable reads, getter invocations,\ntear-offs, recovered invalid reads, and unresolved names produce\nconsistent relations and usage information. Preserve the implicit\nreference to the enclosing declaration for dot-shorthand names.\n\nChange-Id: Ic6daf96032cdb5c38e81d9ba1f79c2074fccca2b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546160\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/f76d1b83182a863d7173dc51a8dc4b20c39d2326\n"
    },
    {
      "commit": "6cab2fd25496c4daaee92a3a40641b7562073c4b",
      "tree": "e6819b267a582ddd6905dda245451aa6235da57f",
      "parents": [
        "1caa4dc495579d4c28f2df1284a4e827e97bafb7"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 07 08:43:22 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 08:44:16 2026 -0700"
      },
      "message": "AST. Add NameExpression as superclass for DotShorthandNameExpression, PropertyExtraction, UnqualifiedNameExpression.\n\nIntroduce NameExpression as the common AST abstraction for\nvalue-producing named reads. It exposes the name token and\nNamedReadResolution independently of how the name is reached.\n\nMake DotShorthandNameExpression, PropertyExtraction, and\nUnqualifiedNameExpression implement this abstraction. Rename\nPropertyExtraction.propertyName to name so all three forms expose the\nsame interface.\n\nChange-Id: I68591646d690b53a8ec1b902f179847f03e3c136\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546140\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/c9f9f4a92ab48c73a157dad8bd82ef61d722c31d\n"
    },
    {
      "commit": "1caa4dc495579d4c28f2df1284a4e827e97bafb7",
      "tree": "fab038be2bf452c08b8f5535f716125a69eb4bfb",
      "parents": [
        "ab3d6e8d21e8fa50bfee6be0a736650a0647a2d4"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Mon Sep 07 07:57:38 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 08:01:41 2026 -0700"
      },
      "message": "AST. Implement UnqualifiedNameExpression.\n\nChange-Id: I5b37bb8c3df99cabd10feb974b2757df0cbc77ce\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545040\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/c727ebd7d19ce3de17b4c43b1d2c7ea5e29913fb\n"
    },
    {
      "commit": "ab3d6e8d21e8fa50bfee6be0a736650a0647a2d4",
      "tree": "9a9c1d9aae454b30fba281c27e567763af184c2c",
      "parents": [
        "45952e88f9f54d2fe8eca370ed09cb3db2d8e368"
      ],
      "author": {
        "name": "Søren Pedersen",
        "email": "sorensp@google.com",
        "time": "Mon Sep 07 07:57:32 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 08:01:39 2026 -0700"
      },
      "message": "[kernel] Visit and transform resultType in InstanceInvocation\n\nhttps://dart-review.googlesource.com/c/sdk/+/510740 introduced a\nresultType field in InstanceInvocation, but didn\u0027t add the field to\nvisitors. This causes the StaticInteropClassErasor to transform the\nfunctionType, but not the resultType. TFA then infers an EmptyType and\nremoves the function as unreachable.\n\nThis CL adds the visitor calls.\n\nFixes https://github.com/dart-lang/sdk/issues/64153\n\nTAG\u003dagy\nCONV\u003d09434afd-41fc-4765-ab3f-706789caca19\n\nChange-Id: Ifc99cc25430cafe377cbc9e58584a84b06e832bc\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543220\nReviewed-by: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\nCommit-Queue: Søren Pedersen \u003csorensp@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/395cc457561db704d8704904a8e6d6956c31c67f\n"
    },
    {
      "commit": "45952e88f9f54d2fe8eca370ed09cb3db2d8e368",
      "tree": "1fb0a495418b543a392b91ab43b7b4355f48077e",
      "parents": [
        "02aa4f4f1d0fb50f2ca2f3c103e186e6ada72325"
      ],
      "author": {
        "name": "Risha Vijayvargiya",
        "email": "vrisha@google.com",
        "time": "Mon Sep 07 06:06:41 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 06:07:32 2026 -0700"
      },
      "message": "Automated: Migrate dart/sdk from gsutil to gcloud storage\n\nThis CL is part of the on going effort to migrate from the legacy \"gsutil\" tool to the new and improved \"gcloud storage\" command-line interface.\n\"gcloud storage\" is the recommended and modern tool for interacting with Google Cloud Storage, offering better performance, unified authentication, and a more consistent command structure with other \"gcloud\" components. 🚀\n\n⚠️ Action Required: Please Review and Test Carefully:\n\nWhile we have based the automation on the migration guide, every use case is unique.\n\"IT IS CRUCIAL that you THOROUGHLY TEST these changes in environments appropriate to your use-case BEFORE MERGING.\"\nBe aware of potential differences between \"gsutil\" and `gcloud storage` that could impact your workflows.\nFor instance, the structure of command output may have changed, requiring updates to any scripts that parse it. Similarly, command behavior can differ subtly; the \"gcloud storage rsync\" command has a different file deletion logic than \"gsutil rsync\", which could lead to unintended file deletions.\n\nOur migration guides can help guide you through a list of mappings and some notable differences between the two tools.\n\nStandard presubmit tests are run as part of this CL\u0027s workflow. \"If you need to target an ADDITIONAL TEST WORKFLOW or REQUIRE ASSISTANCE WITH TESTING, please let us know.\"\n\nPlease verify that all your Cloud Storage operations continue to work as expected to avoid any potential disruptions in production.\nAutomation Details:\n\nThis change was GENERATED AUTOMATICALLY by an agent that targets users of \"gsutil\".\nThe transformations applied are based on the gsutil to gcloud storage migration guide - http://go/gsutil-gcloud-storage-migration-guide, external guide - https://docs.cloud.google.com/storage/docs/gsutil-transition-to-gcloud.\n\nSupport and Collaboration:\n\nThe \"GCS CLI\" team is here to help! If you encounter any issues, have a complex use case that this automated change doesn\u0027t cover, or face any other blockers, please don\u0027t hesitate to reach out.\nWe are happy to work with you to test and adjust these changes as needed.\n\nContact: gcs-cli-hyd@google.com\n\nWe appreciate your partnership in this important migration effort!\nBUG: b:486536908\n\nChange-Id: I0c688ee126dc3a89025012cd8d30e2d21887b8d8\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/544540\nReviewed-by: Alexander Thomas \u003cathom@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/52cde9479038c2040ed632541e948e5e31c023f9\n"
    },
    {
      "commit": "02aa4f4f1d0fb50f2ca2f3c103e186e6ada72325",
      "tree": "6e9f9e348646af0b3a3a03f5e2edd32d6ffa0703",
      "parents": [
        "a9ed2ad0249576b232ee6def335ab28b77d8a936"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Mon Sep 07 06:06:30 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 06:07:30 2026 -0700"
      },
      "message": "[dart2wasm] Prune `Library.dependencies` after JS interop transformer\n\nAfter performing JS interop transformation in dart2wasm we no longer\nhave a need for the `Library.dependencies` except for deferred\nloading (**)\n\n\u003d\u003e Prune the `Library.dependencies` to only contain deferred library\n   imports.\n\nThis allows for significant memory savings in the AST: For a large g3\napp the AST consumes currently 1.8 GB and this change allows us to save\n160 MB (roughly 80 MB of this is LibraryDependency objects and the\nother 80 MB are (growable) lists used to represent the dependencies).\n\n\u003d\u003e More than 8% of memory savings in the AST (measured after TFA).\n\n(**) Currently the JS interop transformation uses the imports\nto find all libraries transitively using JS interop.\n\nIssue https://github.com/dart-lang/sdk/issues/60096\n\nChange-Id: Ic4330052f3866a8e728a8dceee8f310a7a1c1ed3\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546500\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/5d322113f20f8301ebae815d435a3152a70e8b72\n"
    },
    {
      "commit": "a9ed2ad0249576b232ee6def335ab28b77d8a936",
      "tree": "f7df8766c533dc0e9bda1b9ace028e999756e4c9",
      "parents": [
        "87d92160a4b67ca5e66d1dbc737a1084065b5246"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Fri Sep 04 11:12:41 2026 -0700"
      },
      "committer": {
        "name": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Sep 07 05:53:17 2026 -0700"
      },
      "message": "Clean up use of roboelectric target.\n\nThis is follow-up to https://dart.googlesource.com/external/github.com/flutter/flutter/+/51322b199b6ed2732d80e04174b4433d0654d032.\n\nThis fixes broken flutter hh flutter-linux-android-debug bot https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/flutter-linux-android_debug/28560/overview\n\nChange-Id: I847d3e92e233e4c84d7a9af03d37e55601db1f39\nReviewed-on: https://dart-review.googlesource.com/c/monorepo/+/545960\nReviewed-by: Alexander Thomas \u003cathom@google.com\u003e\nCommit-Queue: Alexander Thomas \u003cathom@google.com\u003e\n"
    },
    {
      "commit": "87d92160a4b67ca5e66d1dbc737a1084065b5246",
      "tree": "775ccbf8aef9e5450e9b9613f2fd9513a9dedd02",
      "parents": [
        "62c956bea8cd0c14cde8f9a0355bf7b6930c4a22"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Mon Sep 07 05:39:44 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 05:41:23 2026 -0700"
      },
      "message": "[dart2wasm] Make precise length, non-growable lists for ir.Instructions\n\nOn a large app this reduces 13% of memory of ir.Module (in absolute\nterms 180 MB savings)\n\nIssue https://github.com/dart-lang/sdk/issues/60096\n\nChange-Id: If51be4990f876d280e7a9383bff25863504ca3a3\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/544160\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/6524e135e4bd7fdf24115a8866155f27d2e6ecfa\n"
    },
    {
      "commit": "62c956bea8cd0c14cde8f9a0355bf7b6930c4a22",
      "tree": "48929668e8ea3f9452eb3c18bed730081cd4ef2a",
      "parents": [
        "bcec82f233e73fc9bacaf7aee6fa8e2bdac7a51b"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Mon Sep 07 05:31:39 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 05:32:49 2026 -0700"
      },
      "message": "[dart2wasm] Decouple *Builder from immutable ir.* classes\n\nCurrently an ir.Module (which is supposed to be an immutable\nrepresentation of Wasm IR of a module) can point to builder objects.\n\nWe currently have these class hierarchies:\n\n    BaseFunction:\n      |- ImportedFunction\n      |- DefinedFunction\n      |- FunctionBuilder\n    Global:\n      |- ImportedGlobal\n      |- DefinedGlobal\n      |- GlobalBuilder\n    ...\n      |- ...\n\nWe change this now to make the *Builder classes separate by making them\nown the immutable Defined* objects they will build. The Defined* objects\ncan start in half initialized state and will be fully initialized when\nthe *Builder objects are finished and built.\n\n\u003d\u003e This results in ir.Module to transitively only depend on immutable ir\n   objects and not builders anymore.\n\n\u003d\u003e This also ensures that *Builder objects are freed up after they are\n   built (because nothing hangs on to them).\n\nOn a large app compiled with dart2wasm, this reduces the memory\nsize of ir.Module by 40% (saving 800 MB)\n\nIssue https://github.com/dart-lang/sdk/issues/60096\n\nChange-Id: Iba0e29a1cf2fddce2135f4d138a7c99fac048ab8\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543021\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/41368694b11a7876c6762bd01c7107d4643cfdac\n"
    },
    {
      "commit": "bcec82f233e73fc9bacaf7aee6fa8e2bdac7a51b",
      "tree": "788c1da943c8f7bcbc6e19360fbc08a6c542c422",
      "parents": [
        "5a4aba4420e6f825e0c87e200f94bb9e9eed86d1"
      ],
      "author": {
        "name": "Martin Kustermann",
        "email": "kustermann@google.com",
        "time": "Mon Sep 07 04:39:22 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 04:40:36 2026 -0700"
      },
      "message": "[dart2wasm] Build functions/globals after generating their code\n\nCurrently a FunctionBuilder and GlobalBuilder will only be built when we\nbuild the entire ir.Module. Though the builders consume a lot of memory\nand we don\u0027t really need them anymore after the body was generated.\n\n\u003d\u003e After generating the body of a function/global we can finalize/build it.\n   The building can drop the InstructionsBuilder reference.\n\u003d\u003e If the function\u0027s instructions have patchable regions, we cannot\n   build it immediately but we can enqueue a build in the linking actions.\n\nThis means we tend to only have one InstructionsBuilder for the current\nglobal/function we generate code for, then we build that global/function\nand drop the builder, freeing up the memory.\n\nIssue https://github.com/dart-lang/sdk/issues/60096\n\nChange-Id: If6b031f021dc447a1d24ddb773fdd10955ec0930\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543240\nReviewed-by: Søren Pedersen \u003csorensp@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/a268e7282378ba9f289b5231f4a4bef2115f8feb\n"
    },
    {
      "commit": "5a4aba4420e6f825e0c87e200f94bb9e9eed86d1",
      "tree": "32b9bc7d226d88fab4878964241339b24317802d",
      "parents": [
        "9fb56ea9bf3603f5e3d1bb396a96c9e3e54cec0f"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Mon Sep 07 04:30:31 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 04:31:24 2026 -0700"
      },
      "message": "[vm] Bound the Simd sign mask result range\n\nTEST\u003dlib/typed_data/int32x4_sign_mask_test lib/typed_data/float32x4_sign_mask_test lib/typed_data/float64x2_sign_mask_test\n\nBug: #41950\nIssue: #64170\nChange-Id: Icf96d2b710b8518d2cedf5385d5e5966b30c68e5\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/542363\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/7611654039fc1ca3c35a5702625aa2720e958c79\n"
    },
    {
      "commit": "9fb56ea9bf3603f5e3d1bb396a96c9e3e54cec0f",
      "tree": "32081ddafb0297365cc63c905e5edc1f6a1725eb",
      "parents": [
        "44b80a3865f577768ffa14108a5790f4142bd140"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Mon Sep 07 08:14:24 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 04:30:10 2026 -0700"
      },
      "message": "Roll Skia from e1437642d259 to b3fa80a0e168 (5 revisions) (#192362)\n\nhttps://skia.googlesource.com/skia.git/+log/e1437642d259..b3fa80a0e168\n\n2026-09-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE\nfrom a404d7f7f817 to 52f594287836 (13 revisions)\n2026-09-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\ndebugger-app-base from fd0291e56fb6 to 6450bc7cb052\n2026-09-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia\nInfra from 43e36b5c5eea to fe7060b135d0 (11 revisions)\n2026-09-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn\nfrom 91158020c0b1 to f45d1eb98a88 (17 revisions)\n2026-09-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nshaders-base from 503b59e71e1e to 2c861cb82614\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC bensonluk@google.com,brettos@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/8698e4dceba02b4ee7109d71107a7e7e7958c3f1\n"
    },
    {
      "commit": "44b80a3865f577768ffa14108a5790f4142bd140",
      "tree": "3f2f0824d45db2179a26ca9e69f7d57df194066e",
      "parents": [
        "fd716cecbade99554f5e6b4a4bca5467475cbb64"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Mon Sep 07 06:18:25 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 04:30:09 2026 -0700"
      },
      "message": "Roll Skia from 2df865d9d369 to e1437642d259 (1 revision) (#192360)\n\nhttps://skia.googlesource.com/skia.git/+log/2df865d9d369..e1437642d259\n\n2026-09-07\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC bensonluk@google.com,brettos@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/b3ae7788091d320baa497ad11a928627bce2e9f7\n"
    },
    {
      "commit": "fd716cecbade99554f5e6b4a4bca5467475cbb64",
      "tree": "bb8162266f461ee519e82d58f49dbd2e85695161",
      "parents": [
        "36f5c22217ee4bc92c8992485a69116227416a7b"
      ],
      "author": {
        "name": "Ryan Macnak",
        "email": "rmacnak@google.com",
        "time": "Mon Sep 07 03:52:11 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 03:52:54 2026 -0700"
      },
      "message": "[vm] Support max_align_t in zone allocations.\n\nTEST\u003dci\nChange-Id: I628b679212b57839058fd95a648cf1ade5ace3c4\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543740\nReviewed-by: Daco Harkes \u003cdacoharkes@google.com\u003e\nCommit-Queue: Daco Harkes \u003cdacoharkes@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/6ee9ebcce5b8d78da5eeb3dcac70d48e4edcb8de\n"
    },
    {
      "commit": "36f5c22217ee4bc92c8992485a69116227416a7b",
      "tree": "193fc0c54cf1efc0de99299935d7819203c33c0c",
      "parents": [
        "5df2f11752cb1a0ae3c7c71ae725fe14ccaab830"
      ],
      "author": {
        "name": "Tess Strickland",
        "email": "sstrickl@google.com",
        "time": "Mon Sep 07 03:34:23 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 03:35:39 2026 -0700"
      },
      "message": "[pkg/native_stack_traces] Bump version for VM isolate removal changes.\n\nWhen the VM isolate was removed, the ELF and Mach-O readers in this\npackage were updated appropriately, but the version wasn\u0027t bumped to\nallow it to be published.\n\nTEST\u003dci\n\nIssue: https://github.com/flutter/flutter/issues/191879\nChange-Id: I3fb337f24f1d18621555e99bc17f2c9ff745e8f7\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545820\nReviewed-by: Alexander Markov \u003calexmarkov@google.com\u003e\nCommit-Queue: Tess Strickland \u003csstrickl@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/0253fd0ef66bb776dd63a3ae641943ac7624cce3\n"
    },
    {
      "commit": "5df2f11752cb1a0ae3c7c71ae725fe14ccaab830",
      "tree": "4d64d70aaf8565f17205c4d3ee5f0eff03d30a75",
      "parents": [
        "2d4cbb81228045434760c0d64ceb30221a554253"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Mon Sep 07 02:42:58 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 02:44:11 2026 -0700"
      },
      "message": "[vm] Use an SSHR-based sign mask on arm64\n\n- adds missing float64x2 tests\n- modernizes existing tests and tests for more edge cases\n\nTEST\u003dlib/typed_data/int32x4_sign_mask_test lib/typed_data/float32x4_sign_mask_test lib/typed_data/float64x2_sign_mask_test\n\nFixed: #41950\nIssue: #64170\nChange-Id: I5166bf31d1a4005c427b02c0d9d1c4bbaa9f63ec\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/542362\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Lasse Nielsen \u003clrn@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/019cd3539180dd0d6eef5322c4ccae351220845e\n"
    },
    {
      "commit": "2d4cbb81228045434760c0d64ceb30221a554253",
      "tree": "63cbb232fb1778e93cb7b9ec0e2a65f5145654eb",
      "parents": [
        "8631eab34f7ac38a50056571adf00c12e90a8d48"
      ],
      "author": {
        "name": "Modestas Valauskas",
        "email": "valauskasmodestas@gmail.com",
        "time": "Mon Sep 07 02:34:18 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 02:35:57 2026 -0700"
      },
      "message": "[vm] Finish Int32x4 unboxing, symmetric to the float SIMD value types\n\nFixes SimdFields: i32x4Field goes 2409us -\u003e 475us in AOT and 2838us -\u003e 730us\nin JIT.\n\nTEST\u003dvm/cc/IsolateReload_ExistingInt32x4FieldUnboxedToUnboxed\n\nIssue: #64170\nChange-Id: I645f80a795e12f8c9d0de75b95b2163c6c04c6ec\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/543040\nCommit-Queue: Slava Egorov \u003cvegorov@google.com\u003e\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/8f1c524e1818f254eb9c802d2beee3f040790180\n"
    },
    {
      "commit": "8631eab34f7ac38a50056571adf00c12e90a8d48",
      "tree": "f93a3e4817b80e5cf93db2a1b8aa3031c58c4aa8",
      "parents": [
        "f8fec5702a935c864b4a78de48589a26bff29212"
      ],
      "author": {
        "name": "Jens Johansen",
        "email": "jensj@google.com",
        "time": "Mon Sep 07 01:48:09 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Mon Sep 07 01:49:01 2026 -0700"
      },
      "message": "[vm] Pass --enable-ffi value to compiler for better error message\n\nDone to mirror how `--enable-mirrors` is implemented.\n\nFor this file:\n\n```\n$ cat tffi.dart\nimport \"dart:ffi\";\n\nvoid main() {}\n```\n\nBefore:\n\n```\n$ out/ReleaseX64/dart --enable-ffi\u003dfalse tffi.dart\nerror: import of dart:ffi is not supported in the current Dart runtime\n```\n\nNow:\n\n```\n$ out/ReleaseX64/dart --enable-ffi\u003dfalse tffi.dart\ntffi.dart:1:8: Error: Dart library \u0027dart:ffi\u0027 is not available on this platform.\nimport \"dart:ffi\";\n       ^\n```\n\nand for\n\n```\n$ cat tffi2.dart\nconst x \u003d bool.fromEnvironment(\"dart.library.ffi\");\nfinal y \u003d bool.fromEnvironment(\"dart.library.ffi\");\n\nvoid main() {\n  print(\"$x vs $y\");\n}\n```\n\nBefore:\n\n```\n$ out/ReleaseX64/dart --enable-ffi\u003dfalse tffi2.dart\ntrue vs false\n```\n\nNow:\n\n```\n$ out/ReleaseX64/dart --enable-ffi\u003dfalse tffi2.dart\nfalse vs false\n```\n\nTested: Updated tests/ffi/vmspecific_enable_ffi_test.dart\nChange-Id: I8194fcf8ad227baec66e05f2b3d235315e2a9f80\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545840\nReviewed-by: Daco Harkes \u003cdacoharkes@google.com\u003e\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/db24e48ad0ae8b5b5b555fb73018acb3ab79752e\n"
    },
    {
      "commit": "f8fec5702a935c864b4a78de48589a26bff29212",
      "tree": "f2a1c476f2f2e7796876802cd7ca8e2a06a192ea",
      "parents": [
        "6d0b77e6a30c7dfe64ceee13755918b0ff595087"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Mon Sep 07 04:17:33 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sun Sep 06 22:00:21 2026 -0700"
      },
      "message": "Roll Skia from c7aa5512d148 to 2df865d9d369 (2 revisions) (#192357)\n\nhttps://skia.googlesource.com/skia.git/+log/c7aa5512d148..2df865d9d369\n\n2026-09-07 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 3f69f4e2df17 to 993307758615 (1 revision)\n2026-09-07\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC bensonluk@google.com,brettos@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/d6bed8ff6135cdd414f14edc3063f761d47ca846\n"
    },
    {
      "commit": "6d0b77e6a30c7dfe64ceee13755918b0ff595087",
      "tree": "dd27f54905222a07cfde1636ac111cc91db6f349",
      "parents": [
        "bd37445619e8a276ffa7528abb376d5b77c4a6e6"
      ],
      "author": {
        "name": "Nate Biggs",
        "email": "natebiggs@google.com",
        "time": "Sun Sep 06 21:49:32 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sun Sep 06 21:53:38 2026 -0700"
      },
      "message": "[dart2js] Qualify private symbol literals with library URI\n\nPrivate symbol literals #_id in different libraries were previously\ncanonicalized to the same instance because the library URI was\nnot incorporated into the ConstructedConstantValue representation\nof Symbol. This violated Dart Spec §16.11.\n\nThis change qualifies private symbols as \u0027_name@\u003clibraryUri\u003e\u0027 in\ndart2js constants and stubs, matching the convention in Dart VM and\ndart2wasm. Symbol.computeUnmangledName and Symbol.toString() in\njs_runtime are updated to unmangle the qualified name.\n\nFixes: https://github.com/dart-lang/sdk/issues/64215\nChange-Id: I46e252c065101d8269aed3c2333f345bed868e81\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546120\nCommit-Queue: Nate Biggs \u003cnatebiggs@google.com\u003e\nReviewed-by: Stephen Adams \u003csra@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/65988f930122733af85afcdfb3bf8a0453053af6\n"
    },
    {
      "commit": "bd37445619e8a276ffa7528abb376d5b77c4a6e6",
      "tree": "dc6e6cc7bd87d07488e8564405223db309581fdc",
      "parents": [
        "d3f62911e7d7ff44d1a91c63fb98e663380000f0"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sun Sep 06 15:09:25 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sun Sep 06 10:33:39 2026 -0700"
      },
      "message": "Roll Skia from db200e27a634 to c7aa5512d148 (2 revisions) (#192351)\n\nhttps://skia.googlesource.com/skia.git/+log/db200e27a634..c7aa5512d148\n\n2026-09-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SKP\nCIPD package from 575 to 576\n2026-09-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 55e61648c412 to 3f69f4e2df17 (1 revision)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC bensonluk@google.com,brettos@google.com,kjlubick@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/882e0b7d56e74a3f710470177027ae101e1f358e\n"
    },
    {
      "commit": "d3f62911e7d7ff44d1a91c63fb98e663380000f0",
      "tree": "09796d78bcfd8e5058d42588f429e23848dc6bc8",
      "parents": [
        "c7b2c4da995a68500d82f525575384ab9e0d125b"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sun Sep 06 13:54:36 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sun Sep 06 10:33:37 2026 -0700"
      },
      "message": "Roll Fuchsia Linux SDK from _IgixhH4vEgdz9Oqn... to p8hHkUi8uWT9R3N4z... (#192349)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC bensonluk@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/ffba1cc51649f4554d27292e3366cf1f0b8f1b09\n"
    },
    {
      "commit": "c7b2c4da995a68500d82f525575384ab9e0d125b",
      "tree": "020f98f7390faf70179c349fff81f9bef00d1417",
      "parents": [
        "7e9a07a086cb8df70b8242b0063d2aee956a1405"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Sep 05 12:51:19 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sat Sep 05 10:08:53 2026 -0700"
      },
      "message": "Roll Dart SDK from 6882c3b4b542 to 77094991d1c1 (1 revision) (#192339)\n\nhttps://dart.googlesource.com/sdk.git/+log/6882c3b4b542..77094991d1c1\n\n2026-09-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-201.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC bensonluk@google.com,dart-vm-team@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/63170e984e19184b2f9b77c81a2559b7d8671114\n"
    },
    {
      "commit": "7e9a07a086cb8df70b8242b0063d2aee956a1405",
      "tree": "bceefabd764b51e0da642fad8e2931d55f9c7d08",
      "parents": [
        "d14b01a833e49797f922d6b0cd08c6613fe8dd43"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Sep 05 12:29:24 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sat Sep 05 10:08:51 2026 -0700"
      },
      "message": "Roll Skia from 10652f9d64d6 to db200e27a634 (1 revision) (#192338)\n\nhttps://skia.googlesource.com/skia.git/+log/10652f9d64d6..db200e27a634\n\n2026-09-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 18718f0b2672 to 55e61648c412 (7 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC\nbensonluk@google.com,kjlubick@google.com,nathanasanchez@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/c17c1e4b78452b7705ebcbc5fb286daa133c6aa5\n"
    },
    {
      "commit": "d14b01a833e49797f922d6b0cd08c6613fe8dd43",
      "tree": "a2acf95e2bccb693a1ef5212a782f458ecb816fa",
      "parents": [
        "a89a0cc9cc89ea75b1e98b14cab7fafd3baf2b28"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Sep 05 08:43:24 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Sat Sep 05 04:33:51 2026 -0700"
      },
      "message": "Roll Fuchsia Linux SDK from FgDQeF6jb1dVRVh3K... to _IgixhH4vEgdz9Oqn... (#192333)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/fuchsia-linux-sdk-flutter\nPlease CC bensonluk@google.com,zra@google.com on the revert to ensure\nthat a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/5c6c2e107f5d7f6d31b511abcf5b644bb96f3455\n"
    },
    {
      "commit": "a89a0cc9cc89ea75b1e98b14cab7fafd3baf2b28",
      "tree": "4d6f17b0770826e2be4c0c8447b8e75403d1a450",
      "parents": [
        "ad083277785d257438810bb72b6e9d06d0a864d8"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Sep 05 04:06:25 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 22:32:16 2026 -0700"
      },
      "message": "Roll Dart SDK from 5744c2480a12 to 6882c3b4b542 (1 revision) (#192331)\n\nhttps://dart.googlesource.com/sdk.git/+log/5744c2480a12..6882c3b4b542\n\n2026-09-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-200.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC bensonluk@google.com,dart-vm-team@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/a8f8d93343729005324f3c7a7e980fa9d53662fe\n"
    },
    {
      "commit": "ad083277785d257438810bb72b6e9d06d0a864d8",
      "tree": "f7d0c8ffc7b065e831602882bcf3cd6ed34df261",
      "parents": [
        "c1129d0177c85a028722d98588d59abb065513b5"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Sat Sep 05 01:55:27 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 22:32:06 2026 -0700"
      },
      "message": "Roll Skia from 9b1e5fd08d2c to 10652f9d64d6 (4 revisions) (#192329)\n\nhttps://skia.googlesource.com/skia.git/+log/9b1e5fd08d2c..10652f9d64d6\n\n2026-09-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skcms\nfrom 0ca108fc7831 to 7e711e0a4467 (1 revision)\n2026-09-04\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-09-04 ccameron@google.com Add HAGC tag support to Rust ICC parser\nand ICC writer\n2026-09-04\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC\nbensonluk@google.com,kjlubick@google.com,nathanasanchez@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/6368fd9410da5575616d8cdb39ae8bcb56e865db\n"
    },
    {
      "commit": "c1129d0177c85a028722d98588d59abb065513b5",
      "tree": "64d0561a93f794166dbaba999d8becc0addafbe2",
      "parents": [
        "243145e41e6d7344bf86bc30bf30f55a22ecaaf7"
      ],
      "author": {
        "name": "John \"codefu\" McDole",
        "email": "codefu@google.com",
        "time": "Sat Sep 05 00:05:49 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 22:31:58 2026 -0700"
      },
      "message": "ci(engine): target ignore_phone|none for new macs (#192317)\n\nExperimenting with new macs for speed in merge queue. Currently we see\nabout 17 to 25 minutes to build on a drone.\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/071847c055f47b6e4e51f90000d07ed419d80afd\n"
    },
    {
      "commit": "243145e41e6d7344bf86bc30bf30f55a22ecaaf7",
      "tree": "eb07fe7a925b93a0ff8ba58f3dcee0965900196b",
      "parents": [
        "0a8074151513c817b0a22e32564a22ce1b0baeae"
      ],
      "author": {
        "name": "Elijah Okoroh",
        "email": "okorohelijah@google.com",
        "time": "Fri Sep 04 23:40:58 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 22:31:51 2026 -0700"
      },
      "message": "[devicelab] Fix Mac ios_universal_link_test CI build and scheme configuration (#192321)\n\nThe `ios_universal_link_test` devicelab task introduced in #191443\nfailed in post-submit CI during `flutter build ios --simulator` with \"No\nXcode build settings have been found.\" On headless CI bots that lack\ndeveloper provisioning profiles, physical device code signing specifiers\nin `project.pbxproj` prevented Xcode from querying build settings. In\naddition, running a full simulator build prior to `runXcodeTests`\ntriggered redundant code signing evaluations on bots without codesigning\nsupport.\n\nThis fixes the failure by removing the `PROVISIONING_PROFILE_SPECIFIER`\nproperties from `project.pbxproj` and building with `--config-only`\nduring the task\u0027s preliminary Flutter build step, matching the pattern\nin `native_platform_view_ui_tests_ios`. It also sets\n`deviceOperatingSystem \u003d DeviceOperatingSystem.ios` for proper Devicelab\ndevice handling, updates `Runner.xcscheme` to reference `RunnerUITests`\nunder Debug configuration, wires up the missing target dependency in\n`project.pbxproj`, and simplifies `setUpWithError` in\n`RunnerUITests.swift`.\n\nFixes https://github.com/flutter/flutter/issues/192320\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant in-code documentation (doc comments with\n`///`).\n- [ ] If this PR introduces a new feature or capability, I created and\nlinked a website documentation issue or PR in [flutter/website] (or\nverified none is needed).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[flutter/website]: https://github.com/flutter/website\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/2f9c7b1247e512d53287a5ccad3cd089a8454af5\n"
    },
    {
      "commit": "0a8074151513c817b0a22e32564a22ce1b0baeae",
      "tree": "2a7a714d91299b28228a86de552b76270878f324",
      "parents": [
        "7fff05c29938c47178641b709de2a6374b7eabf8"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Sep 04 23:27:45 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 22:31:36 2026 -0700"
      },
      "message": "Roll Dart SDK from 5501d02b583d to 5744c2480a12 (5 revisions) (#192316)\n\nhttps://dart.googlesource.com/sdk.git/+log/5501d02b583d..5744c2480a12\n\n2026-09-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-199.0.dev\n2026-09-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-198.0.dev\n2026-09-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-197.0.dev\n2026-09-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-196.0.dev\n2026-09-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com\nVersion 3.14.0-195.0.dev\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/dart-sdk-flutter\nPlease CC bensonluk@google.com,dart-vm-team@google.com on the revert to\nensure that a human\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/74b0fcd5f9d5ccf2cb9194b3170705a91bbdebe9\n"
    },
    {
      "commit": "7fff05c29938c47178641b709de2a6374b7eabf8",
      "tree": "f074f5f64813bd5c8b5eec2a6eb673450ca006f6",
      "parents": [
        "8ca5effcb9c5e88039ab6344464885a48347478a"
      ],
      "author": {
        "name": "Alexander Aprelev",
        "email": "aam@google.com",
        "time": "Fri Sep 04 20:52:07 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 20:54:54 2026 -0700"
      },
      "message": "[vm/modaot] Implement SubtypeTestCache stubs.\n\nTEST\u003dci\n\nChange-Id: I6dfee1b39c165854646eb47c4c00aacca9bed7ec\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/538421\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\nReviewed-by: Alexander Markov \u003calexmarkov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/938322ce3d83e55b4ad39c807608510d30152983\n"
    },
    {
      "commit": "8ca5effcb9c5e88039ab6344464885a48347478a",
      "tree": "ee167b47b5082af92e150bf986e35f15734e0313",
      "parents": [
        "a3173f394ea49464235e45449464a2b9bdacd564"
      ],
      "author": {
        "name": "Elijah Okoroh",
        "email": "okorohelijah@google.com",
        "time": "Fri Sep 04 22:19:24 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:36:36 2026 -0700"
      },
      "message": "[iOS] Add native deep link lifecycle integration tests for UIScene plugins (#192173)\n\n### Description\nExtends native iOS Add-to-App UIScene lifecycle testing by validating\ndeep link (Universal Links and custom URL schemes) delivery to plugins\nacross both cold and warm starts.\n\nAs discussed on #191443, this PR decouples native plugin lifecycle\nverification from the standalone app route delivery test:\n\n- Renames `module_uiscene_test_ios` to\n`uiscene_plugin_lifecycle_test_ios` across CI (`.ci.yaml`),\n`TESTOWNERS`, and task runners to accurately reflect its role in\nverifying plugin lifecycle events.\n- Adds two new test scenarios to\n`uiscene_plugin_lifecycle_test_ios.dart`:\n- `AppMigrated-FlutterSceneDelegate-PluginMigrated-DeepLink`: Verifies\nplugins adopting `FlutterSceneLifeCycleDelegate` receive connection\noptions, `openURLContexts`, and `continueUserActivity`.\n- `AppMigrated-FlutterSceneDelegate-PluginNotMigrated-DeepLink`:\nVerifies legacy plugins implementing\n`FlutterApplicationLifeCycleDelegate` receive fallback callbacks via\n`FlutterPluginAppLifeCycleDelegate`.\n- . Adds `UITests-DeepLinks.swift` verifying warm/cold × universal\nlink/custom scheme\n\nPart of https://github.com/flutter/flutter/pull/191443\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant in-code documentation (doc comments with\n`///`).\n- [x] If this PR introduces a new feature or capability, I created and\nlinked a website documentation issue or PR in [flutter/website] (or\nverified none is needed).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[flutter/website]: https://github.com/flutter/website\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/2d39b7da70bf065cc1e40df56b2b83fd4dd350a0\n"
    },
    {
      "commit": "a3173f394ea49464235e45449464a2b9bdacd564",
      "tree": "53fe5d5a0e9db9da31d090a294bf33ad69ad7824",
      "parents": [
        "92bb6ae1a8fdb7a1ee9718858a488a684d86fa73"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Sep 04 21:48:55 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:36:21 2026 -0700"
      },
      "message": "Roll Skia from 93ac1e630d1d to 9b1e5fd08d2c (3 revisions) (#192314)\n\nhttps://skia.googlesource.com/skia.git/+log/93ac1e630d1d..9b1e5fd08d2c\n\n2026-09-04 michaelludwig@google.com [gpu] Don\u0027t mark GlyphData\u0027s atlas\ngeneration on a partial update\n2026-09-04\nrecipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com\nRoll recipe dependencies (trivial).\n2026-09-04 skia-autoroll@skia-public.iam.gserviceaccount.com Roll\nvulkan-deps from 7ad9422fbe3b to 18718f0b2672 (5 revisions)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC\nbensonluk@google.com,kjlubick@google.com,nathanasanchez@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/04d081abd8b84cc40e0ce03479cbc879b49747fc\n"
    },
    {
      "commit": "92bb6ae1a8fdb7a1ee9718858a488a684d86fa73",
      "tree": "535a585eb013bc6d9845fa3cff97bf2ae9206b84",
      "parents": [
        "5423cb993571f890663f9314c82abd552c1a6ff0"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 20:35:45 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:36:14 2026 -0700"
      },
      "message": "[tool] Migrate AssembleCommand and GenerateCommand to modular dependency injection (#190773)\n\n## Summary\n\nPart 13 of the modular dependency injection migration.\n\n* Migrates `AssembleCommand`, `GenerateCommand`, and\n`GenerateLocalizationsCommand` to constructor dependency injection:\n- `AssembleCommand({required BuildSystem buildSystem, required\nFeatureFlags featureFlags, required ToolContext toolContext, bool\nverboseHelp \u003d false})`\n  - `GenerateCommand({required ToolContext toolContext})`\n  - `GenerateLocalizationsCommand({required ToolContext toolContext})`\n* Eliminates `globals.featureFlags` and ambient context lookups across\nassemble/generate workflows; exposes `featureFlags` on\n`ToolDependencies`.\n* Requires explicit `logger` in `parseLocalizationsOptionsFromCommand`\nand explicit `featureFlags` in `artifactFromTargetPlatform`.\n* Migrates unit tests in\n`packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart`\nand `generate_localizations_test.dart` to hermetic `testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/079138da5dce18561a2433575dedc41cbe6d5899\n"
    },
    {
      "commit": "5423cb993571f890663f9314c82abd552c1a6ff0",
      "tree": "f99752e8de94f8ff1eddd29c2d9af80c40f4ac96",
      "parents": [
        "a6114056b47c4834e14943ea97ab8dc0cdf6475d"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 20:35:44 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:36:06 2026 -0700"
      },
      "message": "[tool] Migrate Apple build subcommands and toolchain to modular dependency injection (#190780)\n\n## Summary\n\nPart 15 of the modular dependency injection migration.\n\n* Migrates Apple build subcommands to modular constructor dependency\ninjection:\n- `BuildIOSCommand({required super.appleContext, required\nsuper.buildSystem, required super.toolContext, required\nsuper.verboseHelp})`\n- `BuildIOSFrameworkCommand({required super.appleContext, required\nsuper.buildSystem, required super.toolContext, required\nsuper.verboseHelp})`\n- `BuildMacOSCommand({required BuildSystem buildSystem, required\nToolContext toolContext, required bool verboseHelp})`\n- `BuildMacOSFrameworkCommand({required super.appleContext, required\nsuper.buildSystem, required super.toolContext, required\nsuper.verboseHelp})`\n* Uses object destructuring to extract context members (`appleContext`,\n`toolContext`) and eliminates ambient globals.\n* Adds `fake_build_command.dart` test helper and adds `Terminal` support\nto `FakeToolContext`.\n* Converts unit tests across\n`test/commands.shard/hermetic/build_ios_test.dart`,\n`build_macos_test.dart`, and `build_darwin_framework_test.dart` to\nhermetic `testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/a14d975f98ae2e31c9434bacd39b31c276823069\n"
    },
    {
      "commit": "a6114056b47c4834e14943ea97ab8dc0cdf6475d",
      "tree": "536a12085b33ab08c68ea31d8c18a53fca3b99d4",
      "parents": [
        "39cada964897fa96104980130811b7c09efbbdd8"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 19:46:39 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:59 2026 -0700"
      },
      "message": "[flutter_tools] Safely handle non-JSON messages in test stream parsers (#192089)\n\nWhen communicating with remote test runners or browsers over test\nstreams or WebSockets, unhandled non-JSON strings (such as dynamic\nlibrary loading errors or missing snapshot warnings) caused\n`_ChunkedJsonParser` to throw an unhandled `FormatException` at\ncharacter 1, crashing the tool.\n\nThis changes `pipeHarnessToRemote` in `flutter_platform.dart` and\n`BrowserManager` in `flutter_web_platform.dart` to intercept non-JSON\npayloads, log warnings and traces, and ignore invalid frames rather than\ncrashing the tool process.\n\nFixes https://github.com/flutter/flutter/issues/191898\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant in-code documentation (doc comments with\n`///`).\n- [ ] If this PR introduces a new feature or capability, I created and\nlinked a website documentation issue or PR in [flutter/website] (or\nverified none is needed).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[flutter/website]: https://github.com/flutter/website\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/ed37ea92684ce88acf90e7c9af630c2bcf57acd7\n"
    },
    {
      "commit": "39cada964897fa96104980130811b7c09efbbdd8",
      "tree": "22ab235be3bfe0529ed38db0d89d674cc06f975e",
      "parents": [
        "ea68f650d407e7446ca1787e2473bcd3d1b701a7"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 19:44:48 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:52 2026 -0700"
      },
      "message": "[tool] Migrate LogsCommand to modular dependency injection (#190765)\n\n## Summary\n\nPart 8 of the modular dependency injection migration.\n\n* Migrates `LogsCommand` to constructor dependency injection:\n  ```dart\n  LogsCommand({\n    ApplicationPackageFactory? applicationPackageFactory,\n    ProcessSignal? sigint,\n    ProcessSignal? sigterm,\n    super.toolContext,\n  })\n  ```\n* Resolves logger via `toolContext?.logger ?? globals.logger` for\nbackwards compatibility with ambient callers.\n* Wires `toolContext: toolDependencies.toolContext` in\n`executable.dart`.\n* Migrates unit tests in\n`packages/flutter_tools/test/commands.shard/hermetic/logs_test.dart` to\nhermetic `testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/74cef671c5a1d181e4a00fc70281998269de4471\n"
    },
    {
      "commit": "ea68f650d407e7446ca1787e2473bcd3d1b701a7",
      "tree": "14e6685527daf50229849968663ff8a7b902d285",
      "parents": [
        "c6705754216701fbbb7ff9947767267103bcda25"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 19:44:48 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:44 2026 -0700"
      },
      "message": "[tool] Migrate DevicesCommand to modular dependency injection (#190768)\n\n## Summary\n\nPart 10 of the modular dependency injection migration.\n\n* Migrates `DevicesCommand` and `DevicesCommandOutput` to constructor\ndependency injection with zero global fallbacks:\n  ```dart\n  DevicesCommand({\n    required DeviceManager deviceManager,\n    required Doctor doctor,\n    required super.toolContext,\n    super.verboseHelp,\n  })\n  ```\n* Requires non-nullable `DeviceManager`, `Doctor`, and `ToolContext`,\neliminating ambient `globals.*` fallbacks and imports from\n`devices.dart`.\n* Destructures `toolContext.logger` and `toolContext.terminal` for CLI\ndevice output and deprecation warnings.\n* Wires dependencies via `toolDependencies.toolContext` in\n`executable.dart`.\n* Migrates unit tests in\n`packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart`\nto hermetic `testWithoutContext` using `FakeToolContext`, while\npreserving permeable suite tests in\n`packages/flutter_tools/test/commands.shard/permeable/devices_test.dart`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/06071c4d3f0e5e5118b4ee5d5c5de9b31da9c462\n"
    },
    {
      "commit": "c6705754216701fbbb7ff9947767267103bcda25",
      "tree": "8aecf0fa5970db2861e2b0c879d02a18009504d8",
      "parents": [
        "8b4cc764d6e61ac777a16ef58dca212a8473ce0c"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 19:44:47 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:37 2026 -0700"
      },
      "message": "[tool] Migrate ScreenshotCommand to modular dependency injection (#190767)\n\n## Summary\n\nPart 9 of the modular dependency injection migration.\n\n* Migrates `ScreenshotCommand` to constructor dependency injection with\nrequired non-nullable `ToolContext`:\n  ```dart\n  ScreenshotCommand({\n    required super.toolContext,\n    VMServiceConnector? vmServiceConnector,\n  })\n  ```\n* Eliminates ambient `globals.dart` usage and `fs` constructor fallback\nparameter in `screenshot.dart`, resolving `fs`, `fileSystemUtils`, and\n`logger` directly from `toolContext`.\n* Conditionalizes `refreshWirelessDevices` on `argResults \u003d\u003d null ||\nstringArg(_kType) \u003d\u003d _kDeviceType` to preserve hermetic execution for\nSkia VM service screenshot mode under `testWithoutContext`.\n* Wires `toolContext: toolDependencies.toolContext` in\n`executable.dart`.\n* Migrates unit tests in\n`packages/flutter_tools/test/commands.shard/hermetic/screenshot_command_test.dart`\nto hermetic `testWithoutContext`.\n\nPart of https://github.com/flutter/flutter/issues/188471\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/5a6cfa7f3d268a560f276b9454d6d7e7afc13d50\n"
    },
    {
      "commit": "8b4cc764d6e61ac777a16ef58dca212a8473ce0c",
      "tree": "d7c87b30b4ebcc78e846c45d9987a2eb68de829d",
      "parents": [
        "36b7dd9391db6d8830d8f094071e7e630fb02777"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Sep 04 19:34:32 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:30 2026 -0700"
      },
      "message": "Roll Skia from 8fce167bdded to 93ac1e630d1d (3 revisions) (#192306)\n\nhttps://skia.googlesource.com/skia.git/+log/8fce167bdded..93ac1e630d1d\n\n2026-09-04 michaelludwig@google.com [graphite] Optimize RB swaps across\ndifferent inducers in a transfer\n2026-09-04 b4r4k47@gmail.com Improve path-based LCD text rendering\n2026-09-04 jmbetancourt@google.com [skottie] Fix NaN comparison error in\ngradient position comparisons\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/skia-flutter-autoroll\nPlease CC\nbensonluk@google.com,kjlubick@google.com,nathanasanchez@google.com on\nthe revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/88adfb4c89d900380c3cdb4533fa1b48b90a5c39\n"
    },
    {
      "commit": "36b7dd9391db6d8830d8f094071e7e630fb02777",
      "tree": "d08c59adfb6d32e062ce34c7b7965b4a7eb8c7d0",
      "parents": [
        "2f5379e220cb1ea66d4e5048c72d863eb4ee6cd8"
      ],
      "author": {
        "name": "Elijah Okoroh",
        "email": "okorohelijah@google.com",
        "time": "Fri Sep 04 19:24:10 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:22 2026 -0700"
      },
      "message": "Add iOS Universal Link integration test (Simulator) (#191443)\n\nThis is a pivot of #191201 to run on the iOS Simulator instead of\nphysical devicelab hardware to conserve capacity.\n\nThis PR introduces automated integration tests for iOS deep linking and\nUniversal Links for standard standalone Flutter apps on the iOS\nSimulator.\n\n1. **UIScene Lifecycle (`ios_universal_link`):**\n- Tests the standard `UISceneDelegate` lifecycle\n(`UIApplicationSceneManifest`) used by default Flutter apps.\n2. **Complete Cold and Warm Start Coverage:**\n- **HTTPS Universal Links:** Verified on both cold launch and warm\nbackground resume.\n- **Custom Schemes (`testscheme://`):** Verified on both cold launch and\nwarm background resume.\n3. **End-to-End Route Delivery:**\n- Verifies that the iOS deep link correctly traverses the Flutter Engine\nand is delivered to the Dart framework (`pushRouteInformation`),\nrendering the destination route on the UI for XCUITest assertion.\n4. **Devicelab Automation:**\n- Implemented `dev/devicelab/bin/tasks/ios_universal_link_test.dart` to\nprovision a clean simulator runtime, build the test app, run XCUITests\nvia `xcodebuild test`, and guarantee simulator teardown.\n- Pre-warms simulator caches before assertion loops to prevent\nfirst-frame deadline timeouts.\n\n*(Note: Plugin lifecycle and Add-to-App deep link testing is decoupled\ninto #192173).*\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/2a071e20324f17165c23384d1cc246dc4cf3479f\n"
    },
    {
      "commit": "2f5379e220cb1ea66d4e5048c72d863eb4ee6cd8",
      "tree": "5ab3d47e77fe894db47026363851c64a38de8202",
      "parents": [
        "6500dd2934ee6d0dbf8027c333eb8a774728a574"
      ],
      "author": {
        "name": "Reid-Agent",
        "email": "269567208+reidbaker-agent@users.noreply.github.com",
        "time": "Fri Sep 04 18:57:02 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 16:35:15 2026 -0700"
      },
      "message": "[AGP 9.1.0 Migration #5] Delete getLegacyAndroidExtension and migrate NDK fallback to public DSL (#192116)\n\nThis is PR 5 of 11 in the AGP 9.1.0 / public `gradle-api` / newdsl\nmigration stack.\n\nAdd externalNativeBuild to the shared type. Extracted some shared\nmocking logic to a utility.\nNo external visible changes expected.\nAlso improved the README.md so that the test file for multiple agp\nversions was a markdown link.\n\n- @reidbaker\n\n---\nStandard review context for this pr stack\n\nThis is PR is part of an 11 pr stack to migrate the \"newdsl\"\n`gradle-api` specifically in agp 9.1.0.\n\nAll of the code was LLM authored. A mix of manual prompting, automatic\nprompting, several models and adversarial review. The combined sessions\nare enough that I cannot include relevant prompts like I have been doing\non other prs.\n\nIf you want to review the pr stack you can find it here. These prs will\nbe abandoned/closed as prs land into flutter/flutter.\n1. https://github.com/reidbaker-agent/flutter/pull/1 (branch:\nagp-api-doc)\n2. https://github.com/reidbaker-agent/flutter/pull/2 (branch:\nagp-internal-utils)\n3. https://github.com/reidbaker-agent/flutter/pull/3 (branch:\nagp-buildmode-deps)\n4. https://github.com/reidbaker-agent/flutter/pull/4 (branch:\nagp-plugin-buildtypes)\n5. https://github.com/reidbaker-agent/flutter/pull/5 (branch:\nagp-ndk-fallback)\n6. https://github.com/reidbaker-agent/flutter/pull/6 (branch:\nagp-assets-onvariants)\n7. https://github.com/reidbaker-agent/flutter/pull/7 (branch:\nagp-apk-copy-versioncode)\n8. https://github.com/reidbaker-agent/flutter/pull/8 (branch:\nagp-add-to-app)\n9. https://github.com/reidbaker-agent/flutter/pull/9 (branch:\nagp-aar-script)\n10. https://github.com/reidbaker-agent/flutter/pull/10 (branch:\nagp-newdsl-flip)\n11. https://github.com/reidbaker-agent/flutter/pull/11 (branch:\nagp-gradle-api)\n\nThis work is urgent in the sense that we are worried that android will\npublish agp 10 with no opt out but not so urgent that we are willing to\nbreak flutter users because we didn\u0027t review or understand the code\nbecause we were in a rush.\n\nBreaking changes are expected as part of this work. There are patterns\nthe android team explicitly does not want apps to use and apis that have\nno equivalent.\n\nAs part of the effort to ensure this work does not slip into ai slop,\nprs from this stack will be reviewed by me (@reidbaker) before asking\nfor review. Then we will have 2 android expert reviewers also review\nevery pr.\n\n---\nAgent authored description.\nThis is PR 5 of 11 in the AGP 9.1.0 / public `gradle-api` migration\nstack (flutter/flutter#180137, flutter/flutter#166550).\n\n### Key Changes\n- **Public DSL Wrapper `externalNativeBuild`**: Exposes `val\nexternalNativeBuild: ExternalNativeBuild` in\n`AgpCommonExtensionWrapper.kt` dispatching across\n`ApplicationExtension`, `LibraryExtension`, `DynamicFeatureExtension`,\nand `TestExtension` without referencing `CommonExtension` (bypassing AGP\nbinary incompatibility).\n- **Zero Legacy `BaseExtension` in Production Sources**: Deletes\n`getLegacyAndroidExtension(project: Project): BaseExtension` and removes\nthe `com.android.build.gradle.BaseExtension` import from\n`FlutterPluginUtils.kt`.\n- **Public DSL NDK Fallback Configuration**: Migrates `forceNdkDownload`\nand `configureSyntheticExternalNativeBuildFallback` in\n`FlutterPluginUtils.kt` to `getAndroidExtension(gradleProject)` using\n`externalNativeBuild.cmake` / `externalNativeBuild.ndkBuild`. Sets\n`cmake.path \u003d File(...)`, `cmake.buildStagingDirectory \u003d ...`, and\n`buildType.externalNativeBuild.cmake.arguments +\u003d ...` through the\npublic DSL while preserving the upstream PR #187201 `ndkBuild.path`\ncheck.\n- **Unit Test Public DSL Mocking \u0026 Cleanup**: Migrates unit tests in\n`FlutterPluginUtilsTest.kt` to mock public DSL types\n(`ApplicationExtension`, `Cmake`, `NdkBuild`), asserts CMake arguments\nby list content, deletes obsolete tests asserting\n`ApplicationExtension`-vs-`BaseExtension` `ndkVersion` preference, and\nremoves unused `import io.mockk.called` as well as all legacy\n`com.android.build.gradle.internal.*` imports.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/f7dae1489a338a49a108a05498ea47ab298b5147\n"
    },
    {
      "commit": "6500dd2934ee6d0dbf8027c333eb8a774728a574",
      "tree": "5daefb51361f7c9a9ee30464aa8557c2d226e18f",
      "parents": [
        "e4431938a9562aec41e6da5e0d87c4a0dd0f5d2d"
      ],
      "author": {
        "name": "Nate Bosch",
        "email": "nbosch@google.com",
        "time": "Fri Sep 04 15:17:18 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 15:37:09 2026 -0700"
      },
      "message": "[linter] Fix simplify_variable_pattern ignoring inherited members\n\nUpdate `simplify_variable_pattern` to look up getters and methods via\n`type.lookUpGetter` and `type.lookUpMethod` on `InterfaceType` rather\nthan only checking members directly declared on `type.element`.\n\nFixes https://github.com/dart-lang/sdk/issues/64213\n\nTAG\u003dagy\nCONV\u003de6fd1c32-ded3-443f-83e5-2e15b4ffaccb\n\nChange-Id: Ie19ebd56c65d3b91d0feb87afc23a4d631eb6b69\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546021\nAuto-Submit: Nate Bosch \u003cnbosch@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/2d532ee299e84e5f06e7c50002eba936dced322d\n"
    },
    {
      "commit": "e4431938a9562aec41e6da5e0d87c4a0dd0f5d2d",
      "tree": "287805db14c45a8d5c4bb0fb7fba704582d5e8bd",
      "parents": [
        "08ceb10828d66032bd88532ca18def0e3151082a"
      ],
      "author": {
        "name": "Nate Biggs",
        "email": "natebiggs@google.com",
        "time": "Fri Sep 04 14:00:27 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 14:00:58 2026 -0700"
      },
      "message": "[analyzer] Remove dart:js conditional import from analyzer package.\n\nThe dart:js library is deprecated and we would like to clean up references to it from the Dart ecosystem. This usage is the single biggest dependency on dart:js in the Dart pub ecosystem.\n\nTechnically with this new condition WASM will receive the JS version of the library. Ideally it would use the native version instead. However, currently there is no way for a conditional import to match both WASM and the VM but not the JS backends. There are plans to add this ability but until then this is the best state for this code.\n\nBug: https://github.com/dart-lang/sdk/issues/64210\nChange-Id: I45f924776fa6825807cc5bcf72920e3b91dfbf0b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545700\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Srujan Gaddam \u003csrujzs@google.com\u003e\nCommit-Queue: Nate Biggs \u003cnatebiggs@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/c5e0c2f7e702a75cb83b01225f420182a6e6c0b2\n"
    },
    {
      "commit": "08ceb10828d66032bd88532ca18def0e3151082a",
      "tree": "2bfe4061eacf4e09b7aa8f17d00bcc9e9624ae00",
      "parents": [
        "20be82dda40d1365f71754c42a2001009c69760a"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Fri Sep 04 14:00:02 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 14:00:56 2026 -0700"
      },
      "message": "AST. Remove recording importPrefixes in the index, collect during refactoring.\n\nThis was a lot of logic and CPU spent on something that is used only\nrarely. With ImportAnalyzer we already had almost all what we needed.\n\nChange-Id: I44b75d6c9711faa903aae5e8de66d92a048ec496\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545600\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/67cddd4b977695f10672cb9407dd361b6373d226\n"
    },
    {
      "commit": "20be82dda40d1365f71754c42a2001009c69760a",
      "tree": "adf237c0ae7e4082479cbf3910d239a109236892",
      "parents": [
        "5e22f903474a89efdd3d4335bf295d637e2beca7"
      ],
      "author": {
        "name": "Nate Bosch",
        "email": "nbosch@google.com",
        "time": "Fri Sep 04 12:48:11 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 12:49:24 2026 -0700"
      },
      "message": "[deps] rev test\n\nRevisions updated by `dart tools/rev_sdk_deps.dart test`.\n\ntest (https://github.com/dart-lang/test/compare/55b186d..18ef597):\n  18ef5978  Fri Sep 4 10:13:39 2026 -0700  Nate Bosch  Add support for collapsed error messages (dart-lang/test#2651)\n  6783445c  Wed Sep 2 16:46:04 2026 -0700  Nate Bosch  Prepare to publish (dart-lang/test#2737)\n  8de693e1  Tue Sep 1 03:54:15 2026 +0000  dependabot[bot]  Bump the github-actions group with 2 updates (dart-lang/test#2744)\n  575e4dad  Mon Aug 31 17:01:46 2026 -0700  Nate Bosch  Fix deadlock waiting on serverSocket (dart-lang/test#2740)\n  bd9acf32  Thu Aug 27 22:53:54 2026 -0700  Nate Bosch  Unskip a test on windows (dart-lang/test#2741)\n  b575eda9  Thu Aug 27 17:16:16 2026 -0700  Nate Bosch  Remove redundant tag (dart-lang/test#2738)\n  d21b06cb  Thu Aug 27 16:38:17 2026 -0700  dependabot[bot]  Bump the github-actions group across 1 directory with 5 updates (dart-lang/test#2709)\n  773bc56c  Thu Aug 27 16:11:00 2026 -0700  Nate Bosch  Use read permissions in test_descriptor and test_process workflows (dart-lang/test#2736)\n  73e85f1b  Wed Aug 26 06:36:41 2026 +0700  herdiyanitdev  Precompiled browser tests: stop serving files from outside the precompiled root (dart-lang/test#2724)\n  bbe8f9bf  Tue Aug 18 09:02:24 2026 -0700  Kevin Moore  Export TestFailure from package:test_api/scaffolding.dart (dart-lang/test#2723)\n\nTAG\u003dagy\nCONV\u003de6fd1c32-ded3-443f-83e5-2e15b4ffaccb\nR\u003dbquinlan@google.com\n\nChange-Id: Iabc67d46c413470f0d2e5341e719d4edf702a94b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/546020\nCommit-Queue: Nate Bosch \u003cnbosch@google.com\u003e\nAuto-Submit: Nate Bosch \u003cnbosch@google.com\u003e\nReviewed-by: Kevin Moore \u003ckevmoo@google.com\u003e\nCommit-Queue: Kevin Moore \u003ckevmoo@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/2614a9b3cb651785706da934cfe0047c132e4a04\n"
    },
    {
      "commit": "5e22f903474a89efdd3d4335bf295d637e2beca7",
      "tree": "8d9cab377e348eeca84e563af45a3b3c75688ada",
      "parents": [
        "fbcdbaa866dc2ea9afa14745d80a47ba6201509a"
      ],
      "author": {
        "name": "Parker Lougheed",
        "email": "parlough@gmail.com",
        "time": "Fri Sep 04 12:19:04 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 12:19:44 2026 -0700"
      },
      "message": "[linter] Add diagnostic doc for eol_at_end_of_file lint\n\nDue to how Markdown code blocks are rendered, there\u0027s not a great way to showcase the difference in extra new lines. So I went with inline comments indicating where the files end. Let me know if you think a different direction might work better. Thanks!\n\nBug: https://github.com/dart-lang/site-www/issues/7210\nChange-Id: Iba68215aaf4f9d1e7a99c06a46801afb9f4df3ae\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/527840\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Connie Ooi \u003cconnieooi@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/2140cf2a236ee8e626da5e64b5243c2f0a01b0a9\n"
    },
    {
      "commit": "fbcdbaa866dc2ea9afa14745d80a47ba6201509a",
      "tree": "302014a0bea52c528ec359057db5ad36f1bf4306",
      "parents": [
        "5ecb7cecb24a7d9f30a52681de89154f3dabdfec"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 16:27:19 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 11:25:34 2026 -0700"
      },
      "message": "Reland \"[tool_tests] Remove bringup from Windows tool_tests_commands_2_2\" (#191732) (#191802)\n\nReland of [#191732](https://github.com/flutter/flutter/pull/191732).\n\nFixes Windows-specific path and test failures in `tool_tests_commands`\nsubshard `2_2` and avoids full-tree recursive workspace scanning that\ntriggered `MAX_PATH` errors on Windows:\n- Resolve workspace patterns level-by-level in `project.dart` without\nfull-tree recursive traversal, ignoring `build/` and `.dart_tool/`\ndirectories.\n- Normalize backslashes to POSIX forward slashes in\n`SwiftPackagePackageDependency.format()` in `swift_packages.dart`.\n- Normalize path separators when encoding `workspacePackages`\ndependencies in `preview_pubspec_builder.dart`.\n- Consolidate `Cache.disableLocking()` in `upgrade_test.dart`\n`setUpAll()` and pass missing `runInContext` overrides.\n- Guard NDK directory listing with `ndkDir.existsSync()` in\n`build_aar_test.dart`.\n- Update test expectations and add retry backoff in\n`widget_preview_test.dart`, `test_test.dart`, and\n`regress_176018_test.dart`.\n- Add test in `project_test.dart` verifying workspace discovery ignores\n`build/` and `.dart_tool/`.\n- Remove `bringup: true` from `Windows tool_tests_commands_2_2` in\n`.ci.yaml`.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n---------\n\nCo-authored-by: LongCatIsLooong \u003c31859944+LongCatIsLooong@users.noreply.github.com\u003e\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/d5168a09422083f653b66814ffc4e80dbc6363df\n"
    },
    {
      "commit": "5ecb7cecb24a7d9f30a52681de89154f3dabdfec",
      "tree": "52691b40fed617c1ad44c8272cd740bc64681bc1",
      "parents": [
        "b0fce9d9e376ecbab8361cc3d23842211cf1c76e"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Fri Sep 04 11:18:09 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 11:19:04 2026 -0700"
      },
      "message": "[analysis_server] Support fixing lints that are not enabled for LSP \"Get Fixes\" request\n\n`dart fix` requires the ability to fix codes even if they are not enabled.\n\nWork towards https://github.com/dart-lang/sdk/issues/64142\n\nChange-Id: Ia239043830f23318c06fb8d5745daee03c896f05\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545320\nReviewed-by: Kallen Tu \u003ckallentu@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\nCommit-Queue: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/ebdacdf5627dbb2101934d471f375ca5cf9f7989\n"
    },
    {
      "commit": "b0fce9d9e376ecbab8361cc3d23842211cf1c76e",
      "tree": "eca3f17a7b97dd477eee7c36cf01f3e85c65e56e",
      "parents": [
        "a17ae3315f6f6f2b4b88b6509f73e835d95f9ad4"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Fri Sep 04 11:18:09 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 11:19:03 2026 -0700"
      },
      "message": "[analysis_server] Add bulk edit summary details to LSP getFixes request\n\nThe `dart fix` command requires some summary information about the diagnostic codes that were fixed and the number of occurrences in each file. This was not originally included in the LSP getFixes response, so this CL adds it.\n\nThis is work towards https://github.com/dart-lang/sdk/issues/64142\n\nChange-Id: I3dbb11f1110df5a9992d41a2e70d6a9c0b5ec669\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/544741\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\nReviewed-by: Brian Wilkerson \u003cbrianwilkerson@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/a44aedd64c46e1332e18c1084aa8217fbbf9d0f9\n"
    },
    {
      "commit": "a17ae3315f6f6f2b4b88b6509f73e835d95f9ad4",
      "tree": "1ee599d05271817c96a5430e5e5129a928fcd10f",
      "parents": [
        "448fc575afe7af82b70045db1bb605cb4755d37e"
      ],
      "author": {
        "name": "Konstantin Shcheglov",
        "email": "scheglov@google.com",
        "time": "Fri Sep 04 10:42:13 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 10:43:24 2026 -0700"
      },
      "message": "Revert \"[analyzer] Properly report unused optional parameters of generic functions\"\n\nThis reverts commit 17676a1bd0ee362b8edd435f360b71cffa4b5f40.\n\nReason for revert: breaks flutter-analyzer, dart-\u003eflutter roller\n\nFailure Link: https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket/8671611124769024017/+/u/analyze_Flutter_repositories/stdout\n\nOriginal change\u0027s description:\n\u003e [analyzer] Properly report unused optional parameters of generic functions\n\u003e\n\u003e Fixes https://github.com/dart-lang/sdk/issues/47839\n\u003e\n\u003e These were sort of \"opted out\" of unused_element analysis due to some\n\u003e issue with Substitution that I couldn\u0027t previously figure out. Now\n\u003e they will be reported.\n\u003e\n\u003e Change-Id: I40f708564eda0eb19a48b1d3d679e2aa185b36e5\n\u003e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/491461\n\u003e Reviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\n\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I1c6b4e167da107ec34bb065b3dde38e8cfcbb9c0\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545920\nCommit-Queue: Nate Biggs \u003cnatebiggs@google.com\u003e\nReviewed-by: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Nate Biggs \u003cnatebiggs@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/49997fd88d5fd1c87205805201eec9586554fc12\n"
    },
    {
      "commit": "448fc575afe7af82b70045db1bb605cb4755d37e",
      "tree": "d759493a5a07869d9c1c6db18735ae0151a40222",
      "parents": [
        "3127a6f7d5cbae54079a5ca6f081135405ee3344"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 16:25:00 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 10:37:01 2026 -0700"
      },
      "message": "[flutter_tools] Fix unhandled DebugAdapterException on early process termination (#192294)\n\n## Description\n\nWhen a target application process exits prematurely (e.g. exit code 255)\nbefore the Debug Adapter Protocol (DAP) initialization handshake\ncompletes, `flutter_tools` crashed with an unhandled\n`DebugAdapterException` in the Dart Zone.\n\nIn Flutter 3.47.2 telemetry, this was the #3 top crasher with 203\ncrashes (`DebugAdapterException-34d39b25`).\n\n### Root Cause\n1. `FlutterBaseDebugAdapter.handleSessionTerminate` completed\n`debuggerInitializationFailedCompleter.completeError(...)` before\ncalling `super.handleSessionTerminate(...)`.\n2. In `package:dap_adapters` (`DartDebugAdapter`),\n`handleSessionTerminate` is asynchronous and awaits pending output\nevents before setting `isTerminating \u003d true`.\n3. In `FlutterDebugAdapter._handleAppStarted`, the unawaited\nasynchronous message handler caught the error while `isTerminating` was\nstill `false`, rethrowing `DebugAdapterException` into the Zone.\n\n### Fix\n1. Synchronously set `isTerminating \u003d true` in\n`FlutterBaseDebugAdapter.handleSessionTerminate`.\n2. In `FlutterDebugAdapter._handleAppStarted`, catch\n`DebugAdapterException` and send the message to console output rather\nthan rethrowing into the Zone.\n3. Clean up early termination message formatting when `exitSuffix` is\nprovided.\n\n## Related Issues\n* Fixes crasher `DebugAdapterException-34d39b25` in Flutter 3.47.1 and\n3.47.2 telemetry.\n\n## Tests\n* Added regression tests in\n`packages/flutter_tools/test/general.shard/dap/flutter_adapter_test.dart`\nand `flutter_test_adapter_test.dart` verifying that early process exit\noutputs cleanly to console and does not produce unhandled asynchronous\nexceptions.\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/b5709995f0fe0ffe54c8d844932929c19fb00578\n"
    },
    {
      "commit": "3127a6f7d5cbae54079a5ca6f081135405ee3344",
      "tree": "c74221685fafcffe464f524c4066052934c7ef0b",
      "parents": [
        "e05046983e42e190dd23d7a4d3f9cba5e93c46fb"
      ],
      "author": {
        "name": "engine-flutter-autoroll",
        "email": "engine-flutter-autoroll@skia.org",
        "time": "Fri Sep 04 15:37:06 2026 +0000"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 10:36:59 2026 -0700"
      },
      "message": "Roll Packages from f9b3954a113d to 9af9c6076d79 (4 revisions) (#192292)\n\nhttps://github.com/flutter/packages/compare/f9b3954a113d...9af9c6076d79\n\n2026-09-03 47866232+chunhtai@users.noreply.github.com [material_ui]\nCopies a11y_assessments (flutter/packages#12686)\n2026-09-03 21270878+elliette@users.noreply.github.com [material_ui]\nMigrate M3 BottomSheet template to use new gen_defaults\n(flutter/packages#12731)\n2026-09-03 21270878+elliette@users.noreply.github.com [material_ui]\nMigrate M3 ActionChip template to use new gen_defaults\n(flutter/packages#12732)\n2026-09-03 bolling.ludwig@gmail.com [camera] Add setImageQuality for\nJPEG compression control (flutter/packages#11155)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/flutter-packages-flutter-autoroll\nPlease CC flutter-ecosystem@google.com on the revert to ensure that a\nhuman\nis aware of the problem.\n\nTo file a bug in Flutter:\nhttps://github.com/flutter/flutter/issues/new/choose\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\nhttps://dart.googlesource.com/external/github.com/flutter/flutter/+/dcb2cce79439796768e67474f710221f23d797ab\n"
    },
    {
      "commit": "e05046983e42e190dd23d7a4d3f9cba5e93c46fb",
      "tree": "8db6fa386f3c142b3e8f4b7946584ccd503ad736",
      "parents": [
        "a76a73cf7ef252563e57d02956f592d58d9f8a50"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Fri Sep 04 10:08:19 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 10:09:30 2026 -0700"
      },
      "message": "DAS: Failing test for whitespace issue in remove_argument\n\nWork towards https://github.com/dart-lang/sdk/issues/47403\n\nChange-Id: I5183c26467f12d6669f36c1226183af9d7c518be\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545640\nReviewed-by: Keerti Parthasarathy \u003ckeertip@google.com\u003e\nAuto-Submit: Samuel Rawlins \u003csrawlins@google.com\u003e\nCommit-Queue: Keerti Parthasarathy \u003ckeertip@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/3d80028cd5f85c9342e6119ff7eeeb2913d0aca7\n"
    },
    {
      "commit": "a76a73cf7ef252563e57d02956f592d58d9f8a50",
      "tree": "bdc0dc05dc758c355f85569ec03352c98c7844e4",
      "parents": [
        "510c8a1e722e1b02c357685e53b55e1c52dcf0b8"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 10:02:57 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 10:03:42 2026 -0700"
      },
      "message": "Revert \"[build] Make SDK artifacts independent of the builder\u0027s working directory.\"\n\nThis reverts commit 36621baad44b81e4097191e4175ef4f9ea72522d.\n\nReason for revert: Breaks incremental compilation of SDK snapshots\n\nFailure Link: https://github.com/dart-lang/sdk/issues/64195\n\nOriginal change\u0027s description:\n\u003e [build] Make SDK artifacts independent of the builder\u0027s working directory.\n\u003e\n\u003e Bug: https://github.com/dart-lang/sdk/issues/64169\n\u003e Change-Id: Ib7ae15e5b460e18e64d92a6aa9d735f488070db5\n\u003e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/543800\n\u003e Reviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\n\u003e Commit-Queue: Ryan Macnak \u003crmacnak@google.com\u003e\n\nBug: https://github.com/dart-lang/sdk/issues/64169\nChange-Id: I9e74c42252df435e5460432af3eb36ba98a4cda3\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545900\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\nAuto-Submit: Ben Konyi \u003cbkonyi@google.com\u003e\nCommit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/011f78a27e1bc1f302758d99cb05a0ea9720f937\n"
    },
    {
      "commit": "510c8a1e722e1b02c357685e53b55e1c52dcf0b8",
      "tree": "a5c7a18ba6506c129a92d5ecc29f5deb534ffd04",
      "parents": [
        "070da9f540e26f4e0c43663ce0ce77730bfdef17"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 09:41:08 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 09:41:56 2026 -0700"
      },
      "message": "Revert \"[vm/kernel] Fix depfile emission with org-dartlang-sdk scheme\"\n\nThis reverts commit 8426c44ad34c2f38db7343af93eb84b9a3a3a000.\n\nReason for revert: Breaking Flutter HH\n\nFailure Link: https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket/8671580593307910913/+/u/build_host_debug_unopt_flutter_flutter_sky_packages/stdout\n\nOriginal change\u0027s description:\n\u003e [vm/kernel] Fix depfile emission with org-dartlang-sdk scheme\n\u003e\n\u003e Snapshot targets in the Dart SDK build (aot_snapshot.gni and\n\u003e application_snapshot.gni) compile sources using\n\u003e --filesystem-scheme\u003dorg-dartlang-sdk.\n\u003e\n\u003e writeDepfile was previously skipping all dependencies whose URI scheme\n\u003e matched \u0027org-dartlang-sdk\u0027 under the assumption that only core\n\u003e libraries used this scheme. Consequently, depfiles emitted for SDK\n\u003e snapshot targets (such as dartdev and analysis_server) were empty,\n\u003e preventing Ninja from rebuilding them when source files changed.\n\u003e\n\u003e This change updates writeDepfile to only skip core library dependencies\n\u003e under sdk/ or lib/, and resolves sources to file URIs before writing them\n\u003e to the depfile. Also removes an outdated TODO for dartbug.com/55246.\n\u003e\n\u003e TEST\u003dpkg/vm/test/kernel_front_end_test.dart\n\u003e Fixes https://github.com/dart-lang/sdk/issues/64195\n\u003e\n\u003e Change-Id: I5e9c7c4270480ba9b67043a4e3d7ffe143957e55\n\u003e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/545222\n\u003e Commit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\n\u003e Reviewed-by: Nate Biggs \u003cnatebiggs@google.com\u003e\n\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I4f11d8975fca4fe5112ac77518fae1fc04b0e5e9\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545880\nAuto-Submit: Ben Konyi \u003cbkonyi@google.com\u003e\nReviewed-by: Alexander Aprelev \u003caam@google.com\u003e\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCommit-Queue: Alexander Aprelev \u003caam@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/8091da42ec57e6b448771e876e3fa442b538862b\n"
    },
    {
      "commit": "070da9f540e26f4e0c43663ce0ce77730bfdef17",
      "tree": "3d5241f30fd8d534e36e29211039991a91c32324",
      "parents": [
        "d4e2dc4bd79f4c9e776b43329f328c349215e55d"
      ],
      "author": {
        "name": "Arnav Arora",
        "email": "arnv@google.com",
        "time": "Fri Sep 04 09:08:35 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 09:09:30 2026 -0700"
      },
      "message": "[dart2wasm] Skip another test on mac safari.\n\nSkip flaky language/full2_test to improve stability of dart2wasm-mac-safari bot.\n\nChange-Id: I2374c5831fdfe9f8ec66ccc4911be1607bebab90\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545860\nCommit-Queue: Arnav Arora \u003carnv@google.com\u003e\nReviewed-by: Nate Biggs \u003cnatebiggs@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/423bd5814b34d573c050bb4649e552eb71e2b3b7\n"
    },
    {
      "commit": "d4e2dc4bd79f4c9e776b43329f328c349215e55d",
      "tree": "81c4491d815b15ddb29291f6a66e1f397b65f95c",
      "parents": [
        "226027e4225d28d75d494e3032b4b6068efa1cad"
      ],
      "author": {
        "name": "bkonyi",
        "email": "bkonyi@google.com",
        "time": "Fri Sep 04 07:47:13 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 07:48:07 2026 -0700"
      },
      "message": "[vm/kernel] Fix depfile emission with org-dartlang-sdk scheme\n\nSnapshot targets in the Dart SDK build (aot_snapshot.gni and\napplication_snapshot.gni) compile sources using\n--filesystem-scheme\u003dorg-dartlang-sdk.\n\nwriteDepfile was previously skipping all dependencies whose URI scheme\nmatched \u0027org-dartlang-sdk\u0027 under the assumption that only core\nlibraries used this scheme. Consequently, depfiles emitted for SDK\nsnapshot targets (such as dartdev and analysis_server) were empty,\npreventing Ninja from rebuilding them when source files changed.\n\nThis change updates writeDepfile to only skip core library dependencies\nunder sdk/ or lib/, and resolves sources to file URIs before writing them\nto the depfile. Also removes an outdated TODO for dartbug.com/55246.\n\nTEST\u003dpkg/vm/test/kernel_front_end_test.dart\nFixes https://github.com/dart-lang/sdk/issues/64195\n\nChange-Id: I5e9c7c4270480ba9b67043a4e3d7ffe143957e55\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545222\nCommit-Queue: Ben Konyi \u003cbkonyi@google.com\u003e\nReviewed-by: Nate Biggs \u003cnatebiggs@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/8426c44ad34c2f38db7343af93eb84b9a3a3a000\n"
    },
    {
      "commit": "226027e4225d28d75d494e3032b4b6068efa1cad",
      "tree": "d43dcbf0300178f2584e29c78ad78347600b14b1",
      "parents": [
        "cb56b7b185e75dd4c1e3804783a4f17de9f0695a"
      ],
      "author": {
        "name": "Chloe Stefantsova",
        "email": "cstefantsova@google.com",
        "time": "Fri Sep 04 06:37:12 2026 -0700"
      },
      "committer": {
        "name": "dart-internal-monorepo",
        "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
        "time": "Fri Sep 04 06:38:24 2026 -0700"
      },
      "message": "[cfe] Split joint variable scope from local switch case scope\n\nPart of https://github.com/dart-lang/sdk/issues/61572\n\nChange-Id: I70ce715af4fe7d6befc0dc1941ccb15fbbf4ae27\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/545800\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Chloe Stefantsova \u003ccstefantsova@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/7e5c14f5c3d69ad602317f4aee9a6c02dc6c3f79\n"
    }
  ],
  "next": "cb56b7b185e75dd4c1e3804783a4f17de9f0695a"
}
