)]}'
{
  "log": [
    {
      "commit": "cbe69e2bc8eac5dccda199cdd0643a89d4fd2b5a",
      "tree": "4cb9092feefffa69e80fe53ab4f7333022dcac6c",
      "parents": [
        "03e6df45a73b44ed4ebd379c8b1e75ff428ee604"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Oct 15 10:17:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 10:17:25 2026 -0700"
      },
      "message": "Return `null` from `RootInfo.package` for non-`package:` root libraries (#10033)\n\nAvoid returning invalid package data from service manager.\n\nThis is just a simple fix where we return null of a library URI is not a `package:` URI.\n\nFixes https://github.com/flutter/devtools/issues/6734"
    },
    {
      "commit": "03e6df45a73b44ed4ebd379c8b1e75ff428ee604",
      "tree": "1a0bc3c5d906ee091efa4f5aa58b5ca96ca9e891",
      "parents": [
        "ed033095af050a3326dc5b25e4295a86bcca94b9"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Wed Oct 14 14:14:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 14:14:26 2026 -0700"
      },
      "message": "[A11y] Display a11y issues in the devtool (#10038)\n\n* Add issues\n\n* Update accessibility_controller.dart"
    },
    {
      "commit": "ed033095af050a3326dc5b25e4295a86bcca94b9",
      "tree": "c78cdacfa9fd038d772a2c12a2f9c0999fb61e99",
      "parents": [
        "a8e3f6f176c3cb87a5c10c797334d3bf8b8054a6"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Wed Oct 14 20:43:17 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 13:43:17 2026 -0700"
      },
      "message": "[agent-guidance] Name DevTools shared helpers in .gemini/styleguide.md (#10041)\n\n* [agent-guidance] Name DevTools shared helpers in .gemini/styleguide.md\n\nMaintainers repeatedly ask for specific shared widgets and utilities\n(CenteredMessage, NotifierSwitch, MultiValueListenableBuilder,\nsafeUnawaited, Logger, mockConnectedApp, ...). List them under\nCode Reuse \u0026 DRY so the review bot can suggest them.\n\n* Address review: narrow NotifierSwitch, add theme.dart constants and styles\n\n- Suggest NotifierSwitch only for a raw Switch nested inside a\n  ValueListenableBuilder (what NotifierSwitch wraps).\n- Point at theme.dart constants and shared text styles instead of raw\n  numbers or raw TextStyles."
    },
    {
      "commit": "a8e3f6f176c3cb87a5c10c797334d3bf8b8054a6",
      "tree": "296bf75fcfa2f88eb0a18f7654838c3447b3db98",
      "parents": [
        "222ec7f7bcd616fbdc522e05a11458619fb9b6ab"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Wed Oct 14 19:39:42 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 12:39:42 2026 -0700"
      },
      "message": "[agent-guidance] Add release-note rules to .gemini/styleguide.md (#10042)\n\nNEXT_RELEASE_NOTES.md gets more human review comments than any other\nfile. State the rules reviewers enforce (own entry only, keep relative\nlinks, past tense with a period, user-facing changes only) where the\nreview bot can see them."
    },
    {
      "commit": "222ec7f7bcd616fbdc522e05a11458619fb9b6ab",
      "tree": "4214edd1cd45f76843029d0eff83028b07a81fdb",
      "parents": [
        "3a3b64aa836812ef1268178de12a91fcc6e9225c"
      ],
      "author": {
        "name": "Phil Quitslund",
        "email": "pq@users.noreply.github.com",
        "time": "Wed Oct 14 17:09:11 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 10:09:11 2026 -0700"
      },
      "message": "[agent-guidance] Fix relative links to STYLE.md and AGENTS.md in .gemini/styleguide.md (#10040)\n\nThe style guide lives in .gemini/, so links to STYLE.md and AGENTS.md\nresolved to .gemini/STYLE.md and .gemini/AGENTS.md, which don\u0027t exist.\nPoint them at the repo-root files instead."
    },
    {
      "commit": "3a3b64aa836812ef1268178de12a91fcc6e9225c",
      "tree": "80c3bb07de5983818dfaa383177d7fdefc13a7bd",
      "parents": [
        "e25ba1336eaa0e51246d4f8a6410900f82dd4b57"
      ],
      "author": {
        "name": "Lukas Klingsbo",
        "email": "lukas.klingsbo@gmail.com",
        "time": "Wed Oct 07 23:11:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 07 14:11:12 2026 -0700"
      },
      "message": "[devtools_extensions] Remove the deprecated --pwa-strategy flag from build_and_copy (#10027)"
    },
    {
      "commit": "e25ba1336eaa0e51246d4f8a6410900f82dd4b57",
      "tree": "58a18bc8817da250c7c1b69383e4b3f6defedaa9",
      "parents": [
        "85f945ac99379d64d4df6f67d9b011e4cc418e7e"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Oct 06 23:02:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 06 15:02:33 2026 -0700"
      },
      "message": "Handle code blocks that use \u003e 3 backticks in syntax highlighting (#10021)\n\n* Add code blocks with more than 3 backticks\n\n* Handle backticks correctly\n\n* Update NEXT_RELEASE_NOTES.md\n\n* Address Gemini\u0027s comment\n\nIt won\u0027t happen here, but if the grammar somehow referenced a match that didn\u0027t exist"
    },
    {
      "commit": "85f945ac99379d64d4df6f67d9b011e4cc418e7e",
      "tree": "7bdb3c143f3a88ad20046874572760b18a50bb8a",
      "parents": [
        "cb22250a4500e79536c46ee197aa2e153bf08aaa"
      ],
      "author": {
        "name": "Jonas Finnemann Jensen",
        "email": "jopsen@gmail.com",
        "time": "Thu Oct 01 22:42:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 01 13:42:49 2026 -0700"
      },
      "message": "Support connecting to VM service via MessagePort / postMessage (#9964)\n\n* Support connecting to a VM service over a MessagePort\n\nAdds `?uri\u003dmessageport:\u003ctargetOrigin\u003e`. On every connect, DevTools posts\na new `MessagePort` to `window.parent`, and the embedding page connects\nit to a VM service. This lets pages such as DartPad, whose VM service\nruns in a web worker, embed DevTools without a WebSocket.\n\n* Address review feedback: validate targetOrigin, close port with null, and add connect timeout\n\n* Close port on pagehide instead of unload"
    },
    {
      "commit": "cb22250a4500e79536c46ee197aa2e153bf08aaa",
      "tree": "53fe7847e2984a46ddc0ce69ce4162b4d5319e3e",
      "parents": [
        "ebbbda175a03e23dc7e92cec80beada85d246c92"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Oct 01 08:06:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 01 08:06:52 2026 -0700"
      },
      "message": "Improve temp test dir cleanup code (#10025)"
    },
    {
      "commit": "ebbbda175a03e23dc7e92cec80beada85d246c92",
      "tree": "cd214ca7e766ba28977c36025fa6de02e05f39b3",
      "parents": [
        "efbfebabd255af585946e7cb93b9d3bb864789b1"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Wed Sep 30 21:11:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 21:11:48 2026 -0700"
      },
      "message": "[A11y] Add Semantics tree node details (#10018)"
    },
    {
      "commit": "efbfebabd255af585946e7cb93b9d3bb864789b1",
      "tree": "d648d71db853e69cd89fa6aca53792af30cff82e",
      "parents": [
        "2b1793fd82be40b768722e8e6b5df34e29f59306"
      ],
      "author": {
        "name": "chunhtai",
        "email": "47866232+chunhtai@users.noreply.github.com",
        "time": "Wed Sep 30 11:27:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 11:27:31 2026 -0700"
      },
      "message": "[deeplink] add safe guards around api request (#10022)\n\n* [deeplink] add safe guards around api request\n\n* update\n\n* update\n\n* update\n\n* update\n\n* update\n\n* update"
    },
    {
      "commit": "2b1793fd82be40b768722e8e6b5df34e29f59306",
      "tree": "f406c4fc185f9e20a0f95236e9811a098e026f1d",
      "parents": [
        "a71efc59c8a7a5f3d0772944e8e4df418a6f8c09"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Wed Sep 30 16:25:21 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 09:25:21 2026 -0700"
      },
      "message": "Prepare for release 2.61.0 (#10024)\n\n* Prepare for release 2.61.0\n\n* Bump flutter-candidate.txt to latest Flutter SDK commit"
    },
    {
      "commit": "a71efc59c8a7a5f3d0772944e8e4df418a6f8c09",
      "tree": "25f11c72ed97346d3841432b7d1f9c9e4ca18a96",
      "parents": [
        "295d4b4a5a23648860d7854ff626b94f53a2fb4d"
      ],
      "author": {
        "name": "Pratham Goyal",
        "email": "143429722+prathamgoyal787@users.noreply.github.com",
        "time": "Tue Sep 29 03:03:52 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 28 14:33:52 2026 -0700"
      },
      "message": "test: add request body lifecycle tests for Copy as cURL (#10020)\n\n* fix: show request body for pending requests in Network tab\n\nThe request body was hidden until the response completed, so the Request\ntab and Copy as cURL omitted it for requests still awaiting a response.\nGate it on the request having been sent instead, and never cache or show\na body fetched while the request was still being sent.\n\n* docs: link release note to #10020"
    },
    {
      "commit": "295d4b4a5a23648860d7854ff626b94f53a2fb4d",
      "tree": "26eac73ebcd41c1cf897e6afb57bd079f7108491",
      "parents": [
        "405689bc49f9c7ae0d7ca77b3d9b0f698745989b"
      ],
      "author": {
        "name": "Muhammad Kamel",
        "email": "mu7ammadkamel@hotmail.com",
        "time": "Fri Sep 25 23:56:58 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 13:56:58 2026 -0700"
      },
      "message": "Fix Copy as cURL omitting headers and body on failed requests (#9963)\n\nFix Copy as cURL omitting headers and body on failed requests.\n\nTimed-out and cancelled POSTs never complete a response, so the Network\nprofiler dropped request data from the generated curl command.\n\n---------\n\nCo-authored-by: Sam Rawlins \u003csam.rawlins@gmail.com\u003e"
    },
    {
      "commit": "405689bc49f9c7ae0d7ca77b3d9b0f698745989b",
      "tree": "b6bb0dcf360a2a93ebf443c4684603abda3edca1",
      "parents": [
        "bd2f846ff0c86beb325259b7b0ff97c1b61ff58e"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Thu Sep 24 17:39:01 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 24 10:39:01 2026 -0700"
      },
      "message": "Migrate from `flutter/material.dart` to `material_ui/material_ui.dart` (#10016)\n\n* Apply dart fix \"migrate_design_widgets\" for decoupling migration.\n\nThis applies the migration using dart fix:\n\n```\ndart fix --apply --code\u003dmigrate_design_widgets\n```\n\n* Update pubspec.lock\n\n* Specify material_ui and cupertino_ui package versions\n\n* Update devtools_app_shared\n\n* Pin package versions, update all packages\n\n* Pin material_ui to ^1.4.0\n\n* Add cupertino_ui to devtools_test\n\n* Remove cupertino_ui from devtools_test\n\n* Add DCM ignore for Flutter SDK import in Flutter apps\n\n* Run dart fix --apply on devtools_test\n\n* Update widget_icons package to material_ui\n\n* Sort imports using dart fix --apply\n\n* Specify material_ui version in example\n\n* Add cupertino_ui to devtools_test with ignore: dependencies\n\n* Fix SidePanel Markdown styling for dark theme and update goldens\n\nExplicitly apply theme text styles to MarkdownStyleSheet in SidePanel\nto fix dark theme contrast after migrating to package:material_ui.\nAlso update the memory diff goldens to match the rendered upload icon.\n\n* Use MaterialUiCompatibilityBridge for markdown side panel\n\n* Add description to ignore\n\n* Increase bundle size benchmark for material_ui"
    },
    {
      "commit": "bd2f846ff0c86beb325259b7b0ff97c1b61ff58e",
      "tree": "abc4ea2dcc9d3079bd521e66322d9255758150b8",
      "parents": [
        "fd39ed6deeed50104b5262d8228f5ae3ceab7bfd"
      ],
      "author": {
        "name": "Divyansh Shah",
        "email": "divyansh.shah.ece23@itbhu.ac.in",
        "time": "Thu Sep 24 04:04:53 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 15:34:53 2026 -0700"
      },
      "message": "Show debug-mode message for widget rebuilds in profile mode (#9755)\n\nWhen running in profile mode, the Performance panel showed a\ndisabled \u0027Count widget builds\u0027 checkbox which was misleading.\nWidget rebuild counts rely on debugOnRebuildDirtyWidget which\nis only available in debug mode.\n\nThis change:\n- Removes the checkbox when running in profile mode\n- Shows a clear message: \u0027Rebuild information is not available\n  for this frame. Widget rebuild counts are only available when\n  running an app in debug-mode.\u0027\n- Adds widget tests for both profile mode and debug mode behavior\n\nFixes #9730\n\n\n---------\n\nCo-authored-by: Sam Rawlins \u003csrawlins@google.com\u003e"
    },
    {
      "commit": "fd39ed6deeed50104b5262d8228f5ae3ceab7bfd",
      "tree": "fed1073d1d11890f557892423a5a99c1a1541802",
      "parents": [
        "7390f8a82653490b3313623c43fe95025b32ea78"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Wed Sep 23 10:08:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 10:08:22 2026 -0700"
      },
      "message": "Fix flakiness in the eval integration test (#10008)\n\nI looked at three different logs of devtools tests flaking out on Linux bots on LUCI,\n\nAll three logs failed in eval_integration_test.dart:\n\n* Log 1 \u0026 Log 2: EvalOnDartLibrary asyncEval supports expressions that do not start with the await keyword timed out after 1 minute (TimeoutException: Test timed out after 1 minutes).\n* Log 3: EvalOnDartLibrary asyncEval returns the result of the future completion timed out after 1 minute.\n* Cascading failures: On all three runs, following the timeout, the test runner attempted retries (due to retry: 3), but every retry and subsequent test failed with evaluate: (-32000) Service connection disposed.\n\n1. Garbage Collection of reader before evaluation began:\nIn eval_on_dart_library.dart:390-490, the reader list was previously created in a standalone eval (widgetInspectorService.toId(\u003cdynamic\u003e[], \"$readerGroup\")). Because WidgetInspectorService only holds objects using\nWeakReference, nothing held a strong reference to \u003cdynamic\u003e[] in the target isolate during the network round-trip between DevTools and the target app. If garbage collection occurred in that window, widgetInspectorService.\ntoObject in the subsequent eval returned null, throwing:\n  Unhandled exception: type \u0027Null\u0027 is not a subtype of type \u0027List\u003cdynamic\u003e\u0027 in type cast\nBecause this exception occurred before the try/finally block inside the closure, postEvent(\"future_completed\", ...) was never posted, causing DevTools to hang waiting on future_completed until the test timed out after 1\nminute.\n2. Pinning loop stopped prematurely:\nThe pinning loop (while (!isDone \u0026\u0026 ++bufferTicks \u003c\u003d 20)) intended to pin reader until retrieved. However:\n   * As soon as isDone was set to true, !isDone became false and the loop terminated immediately (providing zero buffer while postEvent traveled to DevTools and DevTools issued evalInstance). If a GC occurred during that\n    window, toObject returned null.\n   * For evaluations taking longer than 1 second (20 ticks of 50ms), ++bufferTicks \u003c\u003d 20 became false while the future was still pending, causing reader to be unpinned before completion.\n3. Unhandled error in target isolate:\nAny exception occurring during reader initialization or eval setup in the target app closure was unhandled, preventing future_completed from ever firing and causing the target isolate to crash/disconnect.\n4. Stale environment reuse on connection drop:\nIn flutter_test_environment.dart:100-125, _needsSetup was not re-evaluated if the VM service connection dropped (!connectedState.value.connected). When a test timed out and the process disconnected, retries attempted to\nreuse the disposed connection, resulting in evaluate: (-32000) Service connection disposed.\n\n1. eval_on_dart_library.dart\n   * Allocated `final reader \u003d \u003cdynamic\u003e[];` directly inside the evaluated async function and registered it with `widgetInspectorService.toId(reader, \"$readerGroup\") as String`, eliminating the preliminary eval and ensuring\n    reader is strongly referenced from the moment of allocation.\n   * Transmitted reader_id (and any initialization error) directly in postEvent(\"future_completed\", ...).\n   * Wrapped the entire async function in an outer try/catch that reports errors back via postEvent rather than hanging DevTools.\n   * Kept reader strongly pinned in the target isolate in the finally block by awaiting in a loop and accessing reader.length until evalInstance calls disposeGroup (or up to 10 seconds timeout).\n2. flutter_test_environment.dart\n   * Added !serviceConnection.serviceManager.connectedState.value.connected to setupEnvironment\u0027s re-initialization condition so that if the VM service connection is disposed or dropped, the test environment is\n    automatically re-created for subsequent tests/retries.\n3. eval_integration_test.dart\n   * Added an explicit test survives garbage collection while the future is pending that triggers full garbage collections in the target isolate via getAllocationProfile(..., gc: true) while the future is pending.\n   * Removed tags: skipForCustomerTestsTag and retry: 3 now that the flakiness is resolved.\n\n• Ran dart analyze on modified files: No issues found.\n• Ran dart format: All modified files formatted.\n• Ran 5 consecutive test suites of packages/devtools_app/test/shared/eval_integration_test.dart: All 5 runs passed (5/5 tests passing per run)."
    },
    {
      "commit": "7390f8a82653490b3313623c43fe95025b32ea78",
      "tree": "15963de32beadb3fc5d6bf5113f90b21c2de77f0",
      "parents": [
        "613684fd5d2f8603dee37f38efefe0d8296c5cc3"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Wed Sep 23 10:06:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 10:06:07 2026 -0700"
      },
      "message": "Bump flutter candidate to 175230c393efe0b6ed0cf08120e71c4b29aee52d (#10014)"
    },
    {
      "commit": "613684fd5d2f8603dee37f38efefe0d8296c5cc3",
      "tree": "b352db8d016bd11fb45abf6065d65300a446cee0",
      "parents": [
        "bdb7c051f65523bd29939a815dc4838cf07fcfcf"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Tue Sep 22 23:40:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 11:10:08 2026 -0700"
      },
      "message": "fix long log details (#10011)"
    },
    {
      "commit": "bdb7c051f65523bd29939a815dc4838cf07fcfcf",
      "tree": "8ecc11a6739b7fa0129f3669cbc52ac04c1ad597",
      "parents": [
        "fcf987c70c909bf00348d6094424cc3220fd3630"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 22 09:25:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 09:25:35 2026 -0700"
      },
      "message": "Bump actions/cache from 5.0.2 to 6.1.0 (#9869)\n\nBumps [actions/cache](https://github.com/actions/cache) from 5.0.2 to 6.1.0.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/8b402f58fbc84540c8b491a91e594a4576fec3d7...55cc8345863c7cc4c66a329aec7e433d2d1c52a9)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 6.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "fcf987c70c909bf00348d6094424cc3220fd3630",
      "tree": "5bb6bc6ceb2bf8d602708d742fa9db9b3dce8644",
      "parents": [
        "c19d645d406dd05bfdf8a42458e7fc7b3c3cdd51"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Tue Sep 15 17:48:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 17:48:33 2026 -0700"
      },
      "message": "Make sure that extensions are bundled with the package they claim to be. (#9981)\n\n* Make sure that extensions are bundled with the package they claim to be.\n\nWith this change, extensions are enabled if and only if the package name\non disk matches the package name in extension/devtools/config.yaml.\n\n* Check string type in if expression\n\n* Normalize package root\n\n* Fix typo\n\n* Revert missing line in CHANGELOG.md\n\n* Fix presubmits\n\n* Use the package name to verify extension permissions and deduplication\n\n* Use non-nullable parameters\n\nMake extensionPackage a required non-nullable parameter in extensionEnabledState\nMake packageName non-nullable parameter in TestPackageWithExtension\n\n* fix PR link\n\n* Add pubspec verification to CHANGELOG\n\n* Fix doc comment in lookupExtensionEnabledState and setExtensionEnabledState\n\n* Format\n\n* Move packageName to correct section in constructor"
    },
    {
      "commit": "c19d645d406dd05bfdf8a42458e7fc7b3c3cdd51",
      "tree": "92332b59c793365899fd6b11370c07258a3e73bb",
      "parents": [
        "fd64bd7e5e17010b7c2e55be4e9fcaa8c28c4e6d"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Tue Sep 15 14:17:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 14:17:48 2026 -0700"
      },
      "message": "Add sandbox attribute to extension iframe in DevTools. (#9967)\n\n* Add sandbox attribute to extension iframe in DevTools.\n\nThis change grants these permissions:\n- `allow-scripts`: enables extension JS / Wasm execution.\n- `allow-forms`: permits standard form interactions.\n- `allow-downloads`: allows extensions to export files/logs.\n- `allow-popups` \u0026 `allow-popups-to-escape-sandbox`: allows opening\n   external links.\n\nThis does not grant `allow-same-origin` permission, so extensions can\u0027t\naccess the parent window\u0027s DOM, cookies, or local storage.\n\n* Add pull request URL\n\n* Move string to top-level variable\n\n* Add allow-same-origin to DevTools extension iframe sandbox\n\nFlutter Web extensions require same-origin access for flutter.js to\ninitialize Service Workers and web storage without throwing a\nSecurityError.\n\nThis is still secure because the extension must be enabled, and\nthe sandbox prevents top-level navigation, popups, and modal hijacking.\n\n* Add a timestamp to the extension placeholder\n\nThis is to ensure \"force reload extension\" works.\n\n* Update extension debugging skill\n\n* Revert \"Update extension debugging skill\"\n\nThis reverts commit 4cebdf8cb158d1f8b15e86cd1c5ced930ec75eee.\n\n* Specify permissions for iframe in comment\n\n* Revert \"Add a timestamp to the extension placeholder\"\n\nThis reverts commit 177df19436b9d0face3d23c2c5d15cf25c37940a."
    },
    {
      "commit": "fd64bd7e5e17010b7c2e55be4e9fcaa8c28c4e6d",
      "tree": "45e7d7502bff1021d451a0ad72d7956d923ed1d0",
      "parents": [
        "6e11856bdc12e8f102deab200584d68f4a176d1e"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Fri Sep 11 23:15:24 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 10:45:24 2026 -0700"
      },
      "message": "Fix Flutter frames chart freeze after switching screens (#9960)"
    },
    {
      "commit": "6e11856bdc12e8f102deab200584d68f4a176d1e",
      "tree": "b327e6fbddcae86f2493adba44ff22c5fff2b47f",
      "parents": [
        "c49302eddbe1c67c4c66b7cd3aa3de88ee0b3f1e"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Fri Sep 11 08:24:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 08:24:28 2026 -0700"
      },
      "message": "Change behavior of DEVTOOLS_TOOL_FLUTTER_FROM_PATH (#10001)"
    },
    {
      "commit": "c49302eddbe1c67c4c66b7cd3aa3de88ee0b3f1e",
      "tree": "5b248b4762c54feec858d9fffd1a808e1a12ad39",
      "parents": [
        "f25620f0cbd263c2ab460c0e4fca291802c252ed"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Fri Sep 11 02:16:48 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 13:46:48 2026 -0700"
      },
      "message": "Show widget file path in inspector (#9972)\n\n* Show widget file path in inspector\n\n* Handle dispose and null ids\n\n* update release note\n\n* Move location to the tab bar\n\n* show on all tabs\n\n* fix analyzer\n\n* Grab tab trailing directly\n\n* Update goldens"
    },
    {
      "commit": "f25620f0cbd263c2ab460c0e4fca291802c252ed",
      "tree": "c5b6e10245af1b319799d99fa168b5d5726dcc8d",
      "parents": [
        "98217413399f2d56838f0f7497a3ba48adf6f35c"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Wed Sep 09 14:11:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 14:11:56 2026 -0700"
      },
      "message": "Remove unused NetworkRequest.durationDisplay getter and test (#9992)\n\nRemoves durationDisplay from NetworkRequest and its corresponding unit test in network_model_test.dart. The getter was not used anywhere in DevTools production code (durations are formatted directly via durationText in DurationColumn and HttpRequestOverviewView), which was causing DCM\u0027s check-unused-code to fail with \u0027getter durationDisplay is used only in tests\u0027."
    },
    {
      "commit": "98217413399f2d56838f0f7497a3ba48adf6f35c",
      "tree": "4104adb2ae615479030ad6fa37917a7b4aab89a6",
      "parents": [
        "fbbca8ae52d37330043b970114722022c72736b6"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Thu Sep 03 14:21:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 21:21:15 2026 +0000"
      },
      "message": "[A11y] Add semantics tree UI (#9982)\n\ntracking issue: https://github.com/flutter/devtools/issues/9893 \r\nAdded the tree UI \r\n\u003cimg width\u003d\"1341\" height\u003d\"906\" alt\u003d\"Screenshot 2026-08-27 at 16 59 03\" src\u003d\"https://github.com/user-attachments/assets/23cb465d-48c7-4f79-a916-8524f5b3d6a8\" /\u003e\r\n\r\n### General checklist\r\n\r\n### Issues checklist\r\n\r\n### Tests checklist\r\n\r\n### AI-tooling checklist\r\n\r\n    * [ ] I read the [AI contributions guidelines] and agree to follow them.\r\n    * [ ] I reviewed all AI-generated code before opening this PR.\r\n    * [ ] I understand and am able to discuss the code in this PR.\r\n    * [ ] I have verifed the accuracy of any AI-generated text included in the PR description.\r\n    * [ ] I commit to verifying the accuracy of any AI-generated code or text that I upload in response to review comments.\r\n\r\n### Feature-change checklist \r\n\r\n    * [ ] I added the `release-notes-not-required` label or left a comment requesting the label be added.\r\n    * [ ] I added an entry to `packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md`.\r\n    * [ ] I included before/after screenshots and/or a GIF demo of the new UI to my PR description.\r\n    * [ ] I ran the DevTools app locally to manually verify my changes.\r\n\r\n![build.yaml badge]\r\n\r\nIf you need help, consider asking for help on [Discord].\r\n\r\n[`contributions-welcome`]: https://github.com/flutter/devtools/issues?q\u003dstate%3Aopen%20label%3Acontributions-welcome\r\n[`good-first-issue`]: https://github.com/flutter/devtools/issues?q\u003dstate%3Aopen%20label%3Agood-first-issue\r\n[build.yaml badge]: https://github.com/flutter/devtools/actions/workflows/build.yaml/badge.svg"
    },
    {
      "commit": "fbbca8ae52d37330043b970114722022c72736b6",
      "tree": "0406d191a374751bbd5cc4ee0dd4c523bd907089",
      "parents": [
        "8bcd111a746c26f86d285d9afa96e06dd78040cb"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Sep 03 10:11:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 10:11:27 2026 -0700"
      },
      "message": "Fix some little things for CI (#10000)"
    },
    {
      "commit": "8bcd111a746c26f86d285d9afa96e06dd78040cb",
      "tree": "c9eba10b91da67f4bcd087163788381ed272164b",
      "parents": [
        "c9c5bc8e936a3f8521c2296604778c8ca49a9ade"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Sep 03 07:47:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 07:47:35 2026 -0700"
      },
      "message": "dt: allow DEVTOOLS_TOOL_FLUTTER_FROM_PATH to be used in CI scripts (#9999)"
    },
    {
      "commit": "c9c5bc8e936a3f8521c2296604778c8ca49a9ade",
      "tree": "100c0034b3802ff895f3a2a0f3b80c0f29509de1",
      "parents": [
        "6749dff3d0cea3f424b705d15079851bdad45065"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Sep 01 10:08:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 10:08:49 2026 -0700"
      },
      "message": "Fix flakiness is mac integration tests (#9990)"
    },
    {
      "commit": "6749dff3d0cea3f424b705d15079851bdad45065",
      "tree": "a8112de48eba26abda9927e9ab866e69fb67ce4f",
      "parents": [
        "1be1ff3a457ab10598c2c14cd42851e76ab33036"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Sep 01 09:52:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 09:52:54 2026 -0700"
      },
      "message": "Bump flutter to a38c5c628774a5e5a4e11ceeee6d5bc6a509eef0 (#9987)"
    },
    {
      "commit": "1be1ff3a457ab10598c2c14cd42851e76ab33036",
      "tree": "907ffee4958bb90c42b09363d5ff71370e6d4f62",
      "parents": [
        "5663c1be89736ef8cc8eb13e367423ccf79ce20f"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Aug 31 12:15:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 12:15:03 2026 -0700"
      },
      "message": "Add more scripts for closing-obsolete-issues skill (#9979)"
    },
    {
      "commit": "5663c1be89736ef8cc8eb13e367423ccf79ce20f",
      "tree": "ebd7a26db9ef451806efb65b0a16ac71566beaef",
      "parents": [
        "48d422650b2d82cac5d0becafc0d5fde8c6a8534"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Aug 31 09:38:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 09:38:43 2026 -0700"
      },
      "message": "Mark durationDisplay as visible-for-testing (#9980)"
    },
    {
      "commit": "48d422650b2d82cac5d0becafc0d5fde8c6a8534",
      "tree": "37631a6bed15d5c9e4ca6f019ff859e5f19db027",
      "parents": [
        "69fa777e10867313f661bc2cb013400911f4cff7"
      ],
      "author": {
        "name": "Reid-Agent",
        "email": "269567208+reidbaker-agent@users.noreply.github.com",
        "time": "Mon Aug 31 12:20:49 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 12:20:49 2026 -0400"
      },
      "message": "Update skills_lint to published version ^0.5.1 (#9984)\n\n* Update skills_lint to published version ^0.5.1\n\n- Update tool/pubspec.yaml to depend on published skills_lint: ^0.5.1\n- Remove TODO comment referencing issue #9771\n- Update pubspec.lock\n\nCloses https://github.com/flutter/devtools/issues/9771\n\n* Add @visibleForTesting to NetworkRequest.durationDisplay to fix DCM\n\n---------\n\nCo-authored-by: Reid Baker \u003creidbaker@google.com\u003e"
    },
    {
      "commit": "69fa777e10867313f661bc2cb013400911f4cff7",
      "tree": "76fc2a4a2208b5591af9e897f79ce2d4100fe4ff",
      "parents": [
        "dcb810a1c7dfaffb3884e3a700d6cf5543489735"
      ],
      "author": {
        "name": "Yash R Hosalli",
        "email": "hosalliyash@gmail.com",
        "time": "Wed Aug 26 06:55:18 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 18:25:18 2026 -0700"
      },
      "message": "Adds WebSocket support to Network panel (GSoC\u002726) (#9968)"
    },
    {
      "commit": "dcb810a1c7dfaffb3884e3a700d6cf5543489735",
      "tree": "11aa9c7c610a84ec67d5834882d2b96c1c7bdd23",
      "parents": [
        "0eebad523ed954579a2567a5ea7dbceb00f6fc7a"
      ],
      "author": {
        "name": "Reid-Agent",
        "email": "269567208+reidbaker-agent@users.noreply.github.com",
        "time": "Tue Aug 25 19:07:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 19:07:54 2026 -0400"
      },
      "message": "Migrate from dart_skills_lint to skills_lint (#9974)\n\n* Migrate from dart_skills_lint to skills_lint\n\n- Update tool/pubspec.yaml dependency from dart_skills_lint to skills_lint\n- Rename tool/dart_skills_lint.yaml to tool/skills_lint.yaml and update root key\n- Rename .agents/skills/dart_skills_lint_ignore.json to skills_lint_ignore.json\n- Update validate_skills_test.dart imports and config file path\n- Update validate_skills_hook.sh to use flutter pub run skills_lint\n\n* Update .agents/scripts/validate_skills_hook.sh\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: Reid Baker \u003c1063596+reidbaker@users.noreply.github.com\u003e\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0eebad523ed954579a2567a5ea7dbceb00f6fc7a",
      "tree": "7a028e211f536cfd0e8a5bae5a0a6e285726ec0f",
      "parents": [
        "054c81753445c354ff6cab2f40b24a8872e7b913"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Aug 25 19:06:27 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 11:06:27 2026 -0700"
      },
      "message": "Fix \"gclient sync\" call in \"dt serve\" for Windows (#9976)"
    },
    {
      "commit": "054c81753445c354ff6cab2f40b24a8872e7b913",
      "tree": "80a4758ee97b81ed5d677c26cfefc82fb5acdff1",
      "parents": [
        "c80539b7de733a02308b21096b74a6baa2e2772b"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Wed Aug 19 21:01:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 21:01:54 2026 -0700"
      },
      "message": "Remove dead test function (#9971)"
    },
    {
      "commit": "c80539b7de733a02308b21096b74a6baa2e2772b",
      "tree": "318e5f24f2664a9387f1109a92396f83562c0e11",
      "parents": [
        "eac5eecdbcc44fbf8c1208a9b286d20344e932da"
      ],
      "author": {
        "name": "Muhammad Kamel",
        "email": "mu7ammadkamel@hotmail.com",
        "time": "Wed Aug 19 19:17:13 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 19 09:17:13 2026 -0700"
      },
      "message": "Fix Network tab not capturing requests after hot restart and clear (#9856)\n\n* Fix Network tab not capturing requests after hot restart and clear.\n\nRe-enable HTTP logging and socket profiling when new isolates are spawned,\nreset clear timestamps using the VM timeline, and keep the search field\nenabled while recording.\n\n* Add PR links to Network profiler release notes.\n\n* Address review feedback for Network tab lifecycle fixes.\n\nKeep search enabled when paused with visible requests, handle RPC errors\nduring clear, and wrap isolate profiling re-enable in allowedError.\n\n* Update copyright year to 2026 and refactor timestamp values in network tests for clarity. Adjusted start times in various test cases and improved code readability in the HotRestartNetworkVmService class.\n\n* docs: remove redundant release note for Network tab\n\n* Address review feedback for Network tab lifecycle fixes.\n\nUse VM timeline timestamps in updateLastHttpDataRefreshTime, restore\nclearData helpers and the profiling TODO, and keep the Network search\nfield always enabled."
    },
    {
      "commit": "eac5eecdbcc44fbf8c1208a9b286d20344e932da",
      "tree": "7d03e9e72b491013b8f8d65d09a33e3706c37d9c",
      "parents": [
        "662216f4e1c02b17024f281745299bb8b9e9cae3"
      ],
      "author": {
        "name": "Ben Konyi",
        "email": "bkonyi@google.com",
        "time": "Tue Aug 18 19:15:01 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 18 19:15:01 2026 +0000"
      },
      "message": "Update CODEOWNERS (#9966)\n\nRemoves @bkonyi from network, profiler, and memory sections in CODEOWNERS while retaining ownership of vm_developer and devtools_shared."
    },
    {
      "commit": "662216f4e1c02b17024f281745299bb8b9e9cae3",
      "tree": "0b1f2778124e11a0447cb142e0b436a4365f4904",
      "parents": [
        "17d4542038091dfcdac8953d5f850c476d7020dc"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Mon Aug 17 17:10:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 17:10:06 2026 -0700"
      },
      "message": "Hide extension button when embedded in an IDE (#9956)\n\n* Hide the extension settings action when DevTools is running in an IDE.\n\nFixes https://github.com/flutter/devtools/issues/8507\n\n* Ensure that the extensions action is displayed when showing an\nextension on screen, even when embedded in an IDE.\n\n* Replace https://flutter.dev/ with a data placeholder in\n_controller_web.dart to prevent browser X-Frame-Options\niframe errors during local debugging.\n\n* Add debugging devtools extensions skill\n\n* add to release notes\n\n* format\n\n* Apply suggestions from code review\n\nCo-authored-by: Kenzie Davisson \u003c43759233+kenzieschmoll@users.noreply.github.com\u003e\n\n* Use OS-based browser opening commands\n\n* Refactor HTML into a function\n\n* remove embedMode information from skill, since it\u0027s unrelated\n\n* Extract conditionals into local variable\n\n* Use isEmbedded() to ensure that  embedMode\u003dOne or embedMode\u003dMany are allowed\n\n* format\n\n---------\n\nCo-authored-by: Kenzie Davisson \u003c43759233+kenzieschmoll@users.noreply.github.com\u003e"
    },
    {
      "commit": "17d4542038091dfcdac8953d5f850c476d7020dc",
      "tree": "d056abc3d9605d580acc224ae8ced2638179e4c6",
      "parents": [
        "644500c48412a5ff7c6d98252d86e99545fce9d5"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Mon Aug 17 22:51:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 10:21:08 2026 -0700"
      },
      "message": "Add pin rows to Profile Memory table (#9832)\n\n* Add pin rows to Profile Memory table\n\n* Update packages/devtools_app/lib/src/screens/memory/panes/profile/profile_pane_controller.dart\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* Update packages/devtools_app/lib/src/screens/memory/panes/profile/profile_view.dart\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* fix issues\n\n* Tighten pin column and show icon on hover\n\n* 32-\u003e10\n\n* fix pin hover test\n\n* update img\n\n* Remove unused pin helpers.\n\n* Update profile tab golden.\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "644500c48412a5ff7c6d98252d86e99545fce9d5",
      "tree": "54ad53e7b5b89d3a310aa2e4de3f0b2a67b69f29",
      "parents": [
        "f8209c7d521ab7e59e8ac5c085bf0e0b218156bf"
      ],
      "author": {
        "name": "Yusuf İhsan Görgel",
        "email": "developeryusuf@icloud.com",
        "time": "Thu Aug 13 00:07:00 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 14:07:00 2026 -0700"
      },
      "message": "Fix unreadable release notes blockquote in dark theme (#9957)\n\n* Fix unreadable release notes blockquote in dark theme\n\nMarkdownStyleSheet.fromTheme takes the blockquote text style from the\ntheme but hard codes the fill as Colors.blue.shade100, so the side panel\ndrew onSurface text on light blue. Release notes that open with a\nblockquote, like 2.60.0, were unreadable in the dark theme.\n\nThe panel now passes its own blockquote decoration, and widget tests\nassert the text clears WCAG AA contrast in both themes.\n\n* Point the release note entry at the pull request"
    },
    {
      "commit": "f8209c7d521ab7e59e8ac5c085bf0e0b218156bf",
      "tree": "35ef98980a176f4d2927536fd317c56ee4b5b225",
      "parents": [
        "34ddb37a60798dd31814bbd092c29531c1afbf55"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Wed Aug 12 13:57:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 13:57:06 2026 -0700"
      },
      "message": "Remove unused inspectorErrorCount getter (#9958)"
    },
    {
      "commit": "34ddb37a60798dd31814bbd092c29531c1afbf55",
      "tree": "1ba9f5958a546661633c1f9ff28f696b57f5ecfe",
      "parents": [
        "168bb1706b40a0936c957950fe56386dc7b4e317"
      ],
      "author": {
        "name": "Pranta Dutta",
        "email": "44747303+theprantadutta@users.noreply.github.com",
        "time": "Wed Aug 12 23:24:16 2026 +0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 10:24:16 2026 -0700"
      },
      "message": "Fix RenderFlex overflow in debugging controls at narrow widths (#9949)\n\n* Fix RenderFlex overflow in debugging controls at narrow widths\n\nThe debugging controls drop their button labels below\nDebuggingControls.minWidth, but the remaining icon-only content still\ndoes not fit below roughly 630px, so the controls Row overflowed at\nwidths that are realistic for DevTools embedded in an IDE side panel.\n\nMake the controls scroll horizontally so every control stays reachable\ninstead of being clipped behind an overflow error. The file explorer\nbutton stays pinned outside the scroll view so it does not scroll out of\nreach, which keeps the wide layout visually unchanged.\n\nFixes #4917\n\n* Add release note for the debugging controls overflow fix\n\n* Point the release note at the actual PR number\n\n* Move test setup into a setUp block"
    },
    {
      "commit": "168bb1706b40a0936c957950fe56386dc7b4e317",
      "tree": "7346beef9650d2b3a60a609b16bad9dbe2109b9d",
      "parents": [
        "1d105edcdedbc9758fd2a0807600b8c7e8488aa6"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Wed Aug 12 04:54:02 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 16:24:02 2026 -0700"
      },
      "message": "Move Inspector error tracking out of ErrorBadgeManager (#9923)"
    },
    {
      "commit": "1d105edcdedbc9758fd2a0807600b8c7e8488aa6",
      "tree": "fd272e46e642c4c27d398865fc447211386b5da0",
      "parents": [
        "c867d15e15708ed9fa5cc2b9d40408e395043183"
      ],
      "author": {
        "name": "Abdelrahman Saed",
        "email": "me@bnsaed.com",
        "time": "Wed Aug 12 02:23:11 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 16:23:11 2026 -0700"
      },
      "message": "Add video tutorial link to the Deep Links panel (#9925)\n\n* Add tutorialVideoUrl field to ScreenMetaData for deep links video\n\n* Update VideoTutorialLink to support custom video URLs\n\nUse the tutorialVideoUrl from ScreenMetaData when available,\nfalling back to the default DevTools YouTube video timestamp.\n\n* Use youtu.be short URL format for deep links tutorial video\n\n* Move deep links tutorial video URL to a named constant\n\n* Assert that VideoTutorialLink has a video URL or timestamp\n\n* Add release notes entry for deep links tutorial link"
    },
    {
      "commit": "c867d15e15708ed9fa5cc2b9d40408e395043183",
      "tree": "0fc32eed97b314467d649eb5d81a45d309445f2e",
      "parents": [
        "84c98b7c571c126691f63dc69a954de1b8974894"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Tue Aug 11 16:26:41 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 09:26:41 2026 -0700"
      },
      "message": "Fix a bug in the benchmark script and enhance CSV output (#9955)\n\n* Fix issue causing wasm to always be used even when useWasm \u003d false\n\n* Improve data quality of CSV output.\n\n* pr comments"
    },
    {
      "commit": "84c98b7c571c126691f63dc69a954de1b8974894",
      "tree": "6f4ef6761d28661ab54de315188560f7f87c6748",
      "parents": [
        "7bb8485c692db9db0f7f29d1b11e6fdeebea67d6"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Aug 10 21:04:16 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 14:04:16 2026 -0700"
      },
      "message": "Fix issue with compare_benchmarks.dart script (#9954)"
    },
    {
      "commit": "7bb8485c692db9db0f7f29d1b11e6fdeebea67d6",
      "tree": "dcb9652ccb11f42c89683640b2943a1793152e7e",
      "parents": [
        "a81c94d06a53738e6b2b800acb1310c4141ce86e"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Mon Aug 10 10:23:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 10:23:09 2026 -0700"
      },
      "message": "Fix outdated link in TRIAGE.md (#9947)"
    },
    {
      "commit": "a81c94d06a53738e6b2b800acb1310c4141ce86e",
      "tree": "c8bc392310f71f9b3adb40c1e4dc15fb8285eabb",
      "parents": [
        "94360bf4abfcc4007b30ae3b19fc639d2048233b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 06 12:47:24 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 12:47:24 2026 +0000"
      },
      "message": "Bump dart-lang/setup-dart from 1.7.1 to 1.8.0 (#9950)\n\nBumps [dart-lang/setup-dart](https://github.com/dart-lang/setup-dart) from 1.7.1 to 1.8.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/dart-lang/setup-dart/releases\"\u003edart-lang/setup-dart\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a problem matcher for \u003ccode\u003edart analyze\u003c/code\u003e to automatically create inline annotations on GitHub pull requests.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003epublish.yml\u003c/code\u003e reusable workflow to reference \u003ccode\u003esetup-dart@v1.7.2\u003c/code\u003e (running on Node 24) (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003e#188\u003c/a\u003e[]).\u003c/li\u003e\n\u003cli\u003eUpdate GitHub Action dependencies (\u003ccode\u003eactions/checkout\u003c/code\u003e v7).\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003eundici\u003c/code\u003e to \u003ccode\u003e6.27.0\u003c/code\u003e and update npm dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003e#188\u003c/a\u003e: \u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003edart-lang/setup-dart#188\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Node.js requirement to Node 24.\u003c/li\u003e\n\u003cli\u003eFix open Dependabot alerts by bumping \u003ccode\u003eundici\u003c/code\u003e to \u003ccode\u003e\u0026gt;\u003d6.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate GitHub Action dependencies (\u003ccode\u003e@actions/core\u003c/code\u003e, \u003ccode\u003e@actions/exec\u003c/code\u003e, \u003ccode\u003e@actions/tool-cache\u003c/code\u003e, \u003ccode\u003e@actions/http-client\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate workflow actions to their latest versions (\u003ccode\u003eactions/checkout\u003c/code\u003e v6, \u003ccode\u003esetup-flutter\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/dart-lang/setup-dart/blob/main/CHANGELOG.md\"\u003edart-lang/setup-dart\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a problem matcher for \u003ccode\u003edart analyze\u003c/code\u003e to automatically create inline annotations on GitHub pull requests.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003epublish.yml\u003c/code\u003e reusable workflow to reference \u003ccode\u003esetup-dart@v1.7.2\u003c/code\u003e (running on Node 24) (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003e#188\u003c/a\u003e[]).\u003c/li\u003e\n\u003cli\u003eUpdate GitHub Action dependencies (\u003ccode\u003eactions/checkout\u003c/code\u003e v7).\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003eundici\u003c/code\u003e to \u003ccode\u003e6.27.0\u003c/code\u003e and update npm dependencies.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003e#188\u003c/a\u003e: \u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003edart-lang/setup-dart#188\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Node.js requirement to Node 24.\u003c/li\u003e\n\u003cli\u003eFix open Dependabot alerts by bumping \u003ccode\u003eundici\u003c/code\u003e to \u003ccode\u003e\u0026gt;\u003d6.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate GitHub Action dependencies (\u003ccode\u003e@actions/core\u003c/code\u003e, \u003ccode\u003e@actions/exec\u003c/code\u003e, \u003ccode\u003e@actions/tool-cache\u003c/code\u003e, \u003ccode\u003e@actions/http-client\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUpdate workflow actions to their latest versions (\u003ccode\u003eactions/checkout\u003c/code\u003e v6, \u003ccode\u003esetup-flutter\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRoll \u003ccode\u003eundici\u003c/code\u003e dependency to address \u003ca href\u003d\"https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975\"\u003eCVE-2025-22150\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate to the latest npm dependencies.\u003c/li\u003e\n\u003cli\u003eRecompile the action using the new Dart / JavaScript interop.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eInstall flutter sdk in publishing step, allowing Flutter packages to be\npublished (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/68\"\u003e#68\u003c/a\u003e[])\u003c/p\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/68\"\u003e#68\u003c/a\u003e: \u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/68\"\u003edart-lang/setup-dart#68\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix zip path handling on Windows 11 (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/118\"\u003e#118\u003c/a\u003e[])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/118\"\u003e#118\u003c/a\u003e: \u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/118\"\u003edart-lang/setup-dart#118\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.6.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild JS code.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRoll \u003ccode\u003eundici\u003c/code\u003e dependency to address \u003ca href\u003d\"https://github.com/nodejs/undici/security/advisories/GHSA-m4v8-wqvr-p9f7\"\u003eCVE-2024-30260\u003c/a\u003e and \u003ca href\u003d\"https://github.com/nodejs/undici/security/advisories/GHSA-9qxr-qj54-h672\"\u003eCVE-2024-30261\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/7654d458321ee25acccccfdb86cd48bd95768ff1\"\u003e\u003ccode\u003e7654d45\u003c/code\u003e\u003c/a\u003e chore: prepare v1.8.0 release (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/188\"\u003e#188\u003c/a\u003e) (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/189\"\u003e#189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/43c102f4dc9b9829c862401f0b64c7c9184eab4e\"\u003e\u003ccode\u003e43c102f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 in the github-actions group (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/184\"\u003e#184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/10b57efefac07722403c8b9c95fa68bb09276def\"\u003e\u003ccode\u003e10b57ef\u003c/code\u003e\u003c/a\u003e Bump the npm-dependencies group across 1 directory with 2 updates (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/179\"\u003e#179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/a73965b3c99b30eb092908ce56c429eff91f9634\"\u003e\u003ccode\u003ea73965b\u003c/code\u003e\u003c/a\u003e Bump undici from 6.24.1 to 6.27.0 (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/182\"\u003e#182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/2bd11704788983a6a210731656d0042e2df8b2c1\"\u003e\u003ccode\u003e2bd1170\u003c/code\u003e\u003c/a\u003e Fix failure of new matcher (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/23b5a66dd43e5c8366051dd2dde53e89fa2ef1ea\"\u003e\u003ccode\u003e23b5a66\u003c/code\u003e\u003c/a\u003e feat: add problem matcher for dart analyze and integration tests (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/cb7127289503113089d94a9c7247ada34feeb436\"\u003e\u003ccode\u003ecb71272\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/65eb853c7ba17dde3be364c3d2858773e7144260\"\u003e\u003ccode\u003e65eb853\u003c/code\u003e\u003c/a\u003e chore: prepare v1.7.2 release (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/175\"\u003e#175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/6e0ff0bc3a029a9532ae6a86b1ea4906038921bc\"\u003e\u003ccode\u003e6e0ff0b\u003c/code\u003e\u003c/a\u003e Node 24 (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/174\"\u003e#174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/dart-lang/setup-dart/commit/03a180dbe1de8ea7fb700663cbb7d24ca4bbe82c\"\u003e\u003ccode\u003e03a180d\u003c/code\u003e\u003c/a\u003e Group npm dependency updates (\u003ca href\u003d\"https://redirect.github.com/dart-lang/setup-dart/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/dart-lang/setup-dart/compare/e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c...7654d458321ee25acccccfdb86cd48bd95768ff1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003ddart-lang/setup-dart\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d1.7.1\u0026new-version\u003d1.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\u003c/details\u003e"
    },
    {
      "commit": "94360bf4abfcc4007b30ae3b19fc639d2048233b",
      "tree": "90a494b7244b872c15b5c4bf83daf58f437892bf",
      "parents": [
        "f68b4379c181a923440aea4bca9f42e260f29064"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Aug 03 17:29:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 17:29:18 2026 +0000"
      },
      "message": "Run `dcm check-dependencies` over DevTools packages (#9941)\n\nThis adds the `dcm check-dependencies` check to our CI and resolves (or ignores) findings where appropriate.\r\n\r\nFixes https://github.com/flutter/devtools/issues/9940"
    },
    {
      "commit": "f68b4379c181a923440aea4bca9f42e260f29064",
      "tree": "45cf696f6a606fd9067ff3709dc0bb5b75697b91",
      "parents": [
        "62bcc32478a0be2432328e71cde58bd19d6f7f19"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Fri Jul 31 19:30:36 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 12:30:36 2026 -0700"
      },
      "message": "Run `dcm check-unused-code` over `devtools_test` (#9935)"
    },
    {
      "commit": "62bcc32478a0be2432328e71cde58bd19d6f7f19",
      "tree": "e322e88e6d78e86a415d9509c53186479e69f517",
      "parents": [
        "0681a8a06e23dcfa08b93a55eb460aff9ba4a06b"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Fri Jul 31 18:23:39 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 11:23:39 2026 -0700"
      },
      "message": "Run `dcm check-unused-code` on `devtools_app_shared` (#9934)\n\n* Run `dcm check-unused-code` on devtools_app_shared\n\n* Resolve analysis options issues"
    },
    {
      "commit": "0681a8a06e23dcfa08b93a55eb460aff9ba4a06b",
      "tree": "24aacba4c6ce4781146382ee48d12599bc0f8dcd",
      "parents": [
        "5a980dcee73cd94ac41510104bda62c92857d992"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Fri Jul 31 17:03:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 31 10:03:43 2026 -0700"
      },
      "message": "Run dcm check-unused-code on the devtools_extensions package (#9933)"
    },
    {
      "commit": "5a980dcee73cd94ac41510104bda62c92857d992",
      "tree": "e2ccf15e29f50cb9b2f60df63b35ca79416dae33",
      "parents": [
        "d7c74569cfdc61c039bbf5b2bcd34209d80648fb"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Thu Jul 30 21:05:54 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 14:05:54 2026 -0700"
      },
      "message": "Remove unused code in inspector files. (#9931)\n\n* Remove unused code in inspector_service.dart\n\n* Remove unused code in inspector controllers\n\n* ignore diagnostics node warnings\n\n* formatting\n\n* review comments\n\n* remove unused getter"
    },
    {
      "commit": "d7c74569cfdc61c039bbf5b2bcd34209d80648fb",
      "tree": "1b4c75781e0074ba6c24d5a3758d9409719754e1",
      "parents": [
        "d6079ca4e88d451ec36789b52d0135d309ea958e"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Thu Jul 30 18:38:45 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 11:38:45 2026 -0700"
      },
      "message": "Run dcm unused-code check over devtools_shared (#9932)"
    },
    {
      "commit": "d6079ca4e88d451ec36789b52d0135d309ea958e",
      "tree": "208cda869b5253c6f8659f196ae122e30e74ec44",
      "parents": [
        "d9b12be83a4442d64421180369ecaf483c9683de"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Thu Jul 30 16:43:52 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 09:43:52 2026 -0700"
      },
      "message": "Add initial PR review skills and skill validation hooks. (#9930)\n\n* Add initial PR review skills.\n\n* Add common review patterns and remove duplication\n\n* fix relative paths\n\n* Add skill validation and clean up hooks."
    },
    {
      "commit": "d9b12be83a4442d64421180369ecaf483c9683de",
      "tree": "a619c3d04b55aea8e9a76b5d28fc9b8c3f3715a6",
      "parents": [
        "71c02db0bfb11c17bf54a99eb2864d34bd1a40a1"
      ],
      "author": {
        "name": "John Ryan",
        "email": "ryjohn@google.com",
        "time": "Thu Jul 30 09:31:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 30 09:31:45 2026 -0700"
      },
      "message": "Allow flutter SDK binary to be a symlink (#9924)\n\n* Fix SDK path resolution when Flutter on PATH is a symlink\n\nWhen running `dt update-flutter-sdk --update-on-path`, `FlutterSdk.findFromPathEnvironmentVariable` failed if `flutter` on PATH was a symlink (e.g. `/usr/local/bin/flutter`). It stripped `bin/flutter` from the unresolved symlink path, resulting in `/usr/local` being treated as the SDK root directory.\n\nThis change:\n- Updates `FlutterSdk.findFromPath` to resolve symbolic links before determining the SDK root directory.\n- Updates `UpdateFlutterSdkCommand` to use the remote returned by `findRemote` instead of hardcoding \u0027upstream\u0027.\n- Adds unit tests in `tool/test/model_test.dart` for `FlutterSdk.findFromPath`.\n\n* Revert change to \"findRemote\" behavior\n\n* Revert change to \"findRemote\" behavior\n\n* Simplify symlink resolution using try-catch fallback in FlutterSdk.findFromPath\n\n* Add release note for dt sync symlink fix\n\n* format\n\n* Revert changes to release notes\n\n* extract repeated calls to path.dirname\n\n* Avoid explicit variable type declaration.\n\n* Remove ignore for DCM"
    },
    {
      "commit": "71c02db0bfb11c17bf54a99eb2864d34bd1a40a1",
      "tree": "2fb3a76f0a7bc6d057525beeb8aa8da8df66bacd",
      "parents": [
        "103c983d652776af450ff3b32b57a9e09dd08719"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Wed Jul 29 23:49:34 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 16:49:34 2026 -0700"
      },
      "message": "Attempt to fix flaky tests caused by modifying the same test apps. (#9929)\n\n* Attempt to fix flaky tests caused by modifying the same test apps.\n\n* review comments\n\n* formatting\n\n* use temp directory with inspector service"
    },
    {
      "commit": "103c983d652776af450ff3b32b57a9e09dd08719",
      "tree": "e7607ce8150224854bba773b2e8d9883d7c7e104",
      "parents": [
        "3870ab5f3a68622e4eeba6aec48f21a396fa9929"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Wed Jul 29 22:57:19 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 14:57:19 2026 -0700"
      },
      "message": "Fix the patterns for code blocks and the handling of newlines when matching patterns (#9921)\n\n* Fix the patterns for code blocks and the handling of newlines when matching patterns\n\nTextMate grammars are matched by-line and therefore can never match `\\n`. However our Dart implementation allowed this, which resulted in some bugs when code blocks are not closed.\n\nThis updates the grammar to instead use $ to match the end of the line, and updates the parser to only ever match on the current line and not consumer the newline. With this change, the result matches the output of the TypeScript implementation used for testing in Dart-Code.\n\nThe source PR for this version of the grammar is at https://github.com/dart-lang/dart-syntax-highlight/pull/91 (I\u0027m filing these together because one repo owns the syntax and one owns the parser).\n\nSee Dart-Code/Dart-Code#6130\nSee Dart-Code/Dart-Code#6131\n\n* Update NEXT_RELEASE_NOTES.md"
    },
    {
      "commit": "3870ab5f3a68622e4eeba6aec48f21a396fa9929",
      "tree": "a72dd22c78b298b9c4f25a6f6e416293953d0a5a",
      "parents": [
        "506141e86d35d9148109594b7a89ff79ef2064f3"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Wed Jul 29 21:32:09 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 29 14:32:09 2026 -0700"
      },
      "message": "Remove unused code from `test/` (#9918)"
    },
    {
      "commit": "506141e86d35d9148109594b7a89ff79ef2064f3",
      "tree": "28809e79a2dd7a06752140f4128b6ef5f849b36d",
      "parents": [
        "16814010b0d0a56b8c7e99a9923a43a5f1bf38b4"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Tue Jul 28 21:13:14 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 14:13:14 2026 -0700"
      },
      "message": "Remove unused code in `integration_test` and `shared` (#9916)"
    },
    {
      "commit": "16814010b0d0a56b8c7e99a9923a43a5f1bf38b4",
      "tree": "610f804ab0624c5fedd9426e3439562d198c76c6",
      "parents": [
        "f33f60d29025261d350e3aae2df862ae9526eae6"
      ],
      "author": {
        "name": "Danny Tuppeny",
        "email": "danny@tuppeny.com",
        "time": "Tue Jul 28 17:22:24 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 09:22:24 2026 -0700"
      },
      "message": "Update textmate grammar to latest version (#9920)\n\n* Update textmate grammar to latest version\n\nThis updates the grammar to the latest version from https://github.com/dart-lang/dart-syntax-highlight and regenerates the goldens.\n\n(I have another upcoming change, but to simplify reviewing, I didn\u0027t want to mix it in with previous updates here)\n\n* Remove old reference to new keyword. We don\u0027t treat it as a control keyword anymore.\n\n* Update NEXT_RELEASE_NOTES.md"
    },
    {
      "commit": "f33f60d29025261d350e3aae2df862ae9526eae6",
      "tree": "ba80d705d0fb3fa9a37564569be7dd0a23dac5e7",
      "parents": [
        "b95a83d9c839e861d7e879be394f5c59fb4312fc"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Jul 27 23:09:05 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 16:09:05 2026 -0700"
      },
      "message": "Remove unused code from `services/` (#9919)"
    },
    {
      "commit": "b95a83d9c839e861d7e879be394f5c59fb4312fc",
      "tree": "a947a7ff74c1b813c60670ae889bc05f50b53510",
      "parents": [
        "26fbb752a0211c055ef7e1539036bb5655d8fc55"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Jul 27 22:15:43 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 15:15:43 2026 -0700"
      },
      "message": "Remove unused code from `standalone_ui/` (#9917)"
    },
    {
      "commit": "26fbb752a0211c055ef7e1539036bb5655d8fc55",
      "tree": "a4c9aab6f5d40862fa3eaeeb1336eea6603df598",
      "parents": [
        "86d7bcbcc4883bf2578ed6184f579dc7853f7450"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Jul 27 15:08:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 15:08:19 2026 -0700"
      },
      "message": "Trigger re-layout when resizing CPU flame chart (#9915)"
    },
    {
      "commit": "86d7bcbcc4883bf2578ed6184f579dc7853f7450",
      "tree": "f09b246f1e39c02ef29384d7c371a6b6f575f477",
      "parents": [
        "c5a863ae31d8e16b7e472e1850810638d2718333"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Jul 27 17:10:09 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 10:10:09 2026 -0700"
      },
      "message": "Remove unused code under `screens/` (#9911)\n\n* Add check-unused-code to DCM CI checks.\n\n* exclude public API\n\n* Add excludes\n\n* exclude test/\n\n* exclude service/\n\n* exclude integration_test/\n\n* Ignore false positives in app.dart.\n\n* Remove unused code in extensions/ and framework/\n\n* use if (kDebugMode)\n\n* remove other assert\n\n* Remove unused code from `screens/`\n\n* fix test\n\n* Fix bug and format."
    },
    {
      "commit": "c5a863ae31d8e16b7e472e1850810638d2718333",
      "tree": "e403160bb52bc89722268a659eaa97598dcb382d",
      "parents": [
        "e79b5713ca51b976ceaba0354b5b35a2db2f8697"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Jul 27 16:24:23 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 27 16:24:23 2026 +0000"
      },
      "message": "Removes unused code in DevTools app `extensions/` and `framework/` directories (#9909)\n\nWork towards https://github.com/flutter/devtools/issues/9906\r\n\r\nChained on top of https://github.com/flutter/devtools/pull/9908"
    },
    {
      "commit": "e79b5713ca51b976ceaba0354b5b35a2db2f8697",
      "tree": "2631c624653b66d10d1d80d47cd75f30a8ca0942",
      "parents": [
        "1c7e423c7bc33506d9bc8116cb233357af66d0c5"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Wed Jul 22 10:01:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 10:01:36 2026 -0700"
      },
      "message": "Correct units and cumulative bug in GC times (#9890)\n\nFixes #7080\n\nIn the logging page, GC events were displayed with summaries like idle\ncollection in 290 ms. The value 290 was calculated directly from the cumulative\ntimes (`newSpace.time` and `oldSpace.time`), meaning it represented the total\ncumulative GC time since isolate startup rather than the duration of this\nspecific GC. In reality, the individual collection took 290 microseconds (which\nis 0.29 milliseconds), but since it was displaying the cumulative time of 290\nms, it was off by a factor of 1000x.\n\nIn this fix, we update `_handleGCEvent` to track and subtract the previous\ncumulative GC time from the new cumulative GC time to compute the actual\nduration delta for this specific GC.\n\nAlso format the duration as a millisecond double with 1 decimal place\n(consistent with how frame times are displayed), and appended it to the log\nsummary (e.g. \"idle collection in 100.0 ms\")."
    },
    {
      "commit": "1c7e423c7bc33506d9bc8116cb233357af66d0c5",
      "tree": "74ea7a1b1c06920a2f95508ed9197c008a3fbea0",
      "parents": [
        "cc4971d235264978fbfa5cefef983d5d53007ca8"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Wed Jul 22 00:12:21 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 17:12:21 2026 -0700"
      },
      "message": "Run `dcm check-unused-code` on each PR to find unused code. (#9908)"
    },
    {
      "commit": "cc4971d235264978fbfa5cefef983d5d53007ca8",
      "tree": "8d2e7152361c9c3a818adbc0db4fe43179e850e2",
      "parents": [
        "e41c353ef0d7d1c88f747a9360ccb4c32814de7a"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Jul 20 18:54:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 18:54:50 2026 -0700"
      },
      "message": "network: Fix bad HAR data (#9900)"
    },
    {
      "commit": "e41c353ef0d7d1c88f747a9360ccb4c32814de7a",
      "tree": "b538ce29deeef639bccee3b6cd6345c18f160019",
      "parents": [
        "57f547bcc833eab4e4947d8b8bcff22caccb7b7d"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Fri Jul 17 14:16:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 14:16:57 2026 -0700"
      },
      "message": "Support brightness override in a11y page  (#9898)\n\n* Update accessibility_controller.dart\n\n1\n\n* 1\n\nUpdate overrides_pane.dart\n\nUpdate accessibility_controller.dart\n\ntests\n\nUpdate service_extensions.dart\n\n* resolve comments"
    },
    {
      "commit": "57f547bcc833eab4e4947d8b8bcff22caccb7b7d",
      "tree": "b62508ce78409aced7871e9f65eed2379fac029d",
      "parents": [
        "c30f51de4ddbaf3e9ace9dfb34d329527e7c78cb"
      ],
      "author": {
        "name": "Reid-Agent",
        "email": "269567208+reidbaker-agent@users.noreply.github.com",
        "time": "Fri Jul 17 12:45:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 12:45:10 2026 -0400"
      },
      "message": "feat: migrate devtools to new dart_skills_lint API (#9899)\n\nCo-authored-by: Reid Baker \u003creidbaker@google.com\u003e"
    },
    {
      "commit": "c30f51de4ddbaf3e9ace9dfb34d329527e7c78cb",
      "tree": "22d59cde16d9e0b55d44e338820ffe51e5028bde",
      "parents": [
        "ee630609321790cc960d726b1330b06fb689fb40"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jul 16 16:08:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 16:08:59 2026 -0700"
      },
      "message": "Prevent GC of value during async eval (#9885)"
    },
    {
      "commit": "ee630609321790cc960d726b1330b06fb689fb40",
      "tree": "2c5dca28334debe351c1161a51e3b1751d7a065c",
      "parents": [
        "90487c01746b41e15d6309cf1716cbdb02106c49"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Tue Jul 14 21:45:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 21:45:11 2026 -0700"
      },
      "message": "[A11y] Add UI for AccessibilityOverridesPane (#9892)\n\n* AccessibilityOverridesPane UI\n\n* 1\n\n* resolve comments\n\n* Update overrides_pane.dart\n\n* small fix\n\n* resolve comments\n\n* lint"
    },
    {
      "commit": "90487c01746b41e15d6309cf1716cbdb02106c49",
      "tree": "ff1023ed194c8143f035a3aa226494844ff04585",
      "parents": [
        "21f1838f3a9b138ac377efb953ca5a53c8832e75"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Jul 14 13:55:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 13:55:45 2026 -0700"
      },
      "message": "Publish devtools_shared 14.0.0 (#9891)\n\n* Publish devtools_shared 14.0.0\n\n* whoops"
    },
    {
      "commit": "21f1838f3a9b138ac377efb953ca5a53c8832e75",
      "tree": "b9a057bd1a7a798bea7b2b1b5fb491e907d14ba9",
      "parents": [
        "a4697319c9d2a9a1d32baa9669ffa139b5202546"
      ],
      "author": {
        "name": "Hannah Jin",
        "email": "jhy03261997@gmail.com",
        "time": "Mon Jul 13 16:19:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 23:19:06 2026 +0000"
      },
      "message": "[A11y] Create a11y page with placeholders. (#9889)\n\nThe screen is gated by the FeatureFlags.accessibility flag.\r\n\r\ninternal link: go/devtool-a11y-userjourney \r\n\r\n### General checklist\r\n\r\n### Issues checklist\r\n\r\n### Tests checklist\r\n\r\n### AI-tooling checklist\r\n\r\n    * [ ] I read the [AI contributions guidelines] and agree to follow them.\r\n    * [ ] I reviewed all AI-generated code before opening this PR.\r\n    * [ ] I understand and am able to discuss the code in this PR.\r\n    * [ ] I have verifed the accuracy of any AI-generated text included in the PR description.\r\n    * [ ] I commit to verifying the accuracy of any AI-generated code or text that I upload in response to review comments.\r\n\r\n### Feature-change checklist \r\n\r\n    * [ ] I added the `release-notes-not-required` label or left a comment requesting the label be added.\r\n    * [ ] I added an entry to `packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md`.\r\n    * [ ] I included before/after screenshots and/or a GIF demo of the new UI to my PR description.\r\n    * [ ] I ran the DevTools app locally to manually verify my changes.\r\n\r\n![build.yaml badge]\r\n\r\nIf you need help, consider asking for help on [Discord].\r\n\r\n[`contributions-welcome`]: https://github.com/flutter/devtools/issues?q\u003dstate%3Aopen%20label%3Acontributions-welcome\r\n[`good-first-issue`]: https://github.com/flutter/devtools/issues?q\u003dstate%3Aopen%20label%3Agood-first-issue\r\n[build.yaml badge]: https://github.com/flutter/devtools/actions/workflows/build.yaml/badge.svg"
    },
    {
      "commit": "a4697319c9d2a9a1d32baa9669ffa139b5202546",
      "tree": "d8a55e6c6e3a7551a8d4b6434dbbe208b5282a54",
      "parents": [
        "01fe32deacc05541190c9932177a4922795c3bdb"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Jul 13 12:14:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 12:14:30 2026 -0700"
      },
      "message": "Prepare for long filenames in Flutter repo (#9888)"
    },
    {
      "commit": "01fe32deacc05541190c9932177a4922795c3bdb",
      "tree": "3add3fb207110668160e95b09ac1d942af4c7aee",
      "parents": [
        "f6ba7b4da954c7779a23e2fc5977b625aa52619c"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Jul 13 08:24:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 08:24:53 2026 -0700"
      },
      "message": "Fix links in CONTRIBUTING (#9886)"
    },
    {
      "commit": "f6ba7b4da954c7779a23e2fc5977b625aa52619c",
      "tree": "5f088bc05fdac9a9110d988a3c3f1d54e2a4b24e",
      "parents": [
        "4362d645074e007386717da8d3bd87be4ff30be6"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Fri Jul 10 10:07:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 10:07:58 2026 -0700"
      },
      "message": "debugger: if controller has been disposed, leave showScriptLocation early (#9884)"
    },
    {
      "commit": "4362d645074e007386717da8d3bd87be4ff30be6",
      "tree": "142a057808367313e9ce0da01533ac0c4be47ab0",
      "parents": [
        "34f93800c423cb5b19e1fe3e336198588292b0df"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jul 09 11:52:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 11:52:10 2026 -0700"
      },
      "message": "Increase the timeout when waiting for Chrome to open (#9883)"
    },
    {
      "commit": "34f93800c423cb5b19e1fe3e336198588292b0df",
      "tree": "e8567694c6815540131207a558fcf75a27a9feb8",
      "parents": [
        "048218d8c9606445d84b9beb5b15c78085440c74"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jul 09 07:52:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 07:52:52 2026 -0700"
      },
      "message": "devtools_shared: Use the file package for a file system abstraction for testing (#9872)"
    },
    {
      "commit": "048218d8c9606445d84b9beb5b15c78085440c74",
      "tree": "5181824abdbc700e88df65012f3f4667537cb008",
      "parents": [
        "12d595649f189f1896722623f72599077f476848"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jul 09 06:43:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 06:43:36 2026 -0700"
      },
      "message": "Bump version to 2.61.0 (#9882)"
    },
    {
      "commit": "12d595649f189f1896722623f72599077f476848",
      "tree": "716732e51b70e6ee42dfbf0f081ed283c468cb8a",
      "parents": [
        "dae6342ff345ce8672761a2e2a38f7394eefde13"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Jul 06 12:53:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 12:53:15 2026 -0700"
      },
      "message": "Prepare for release 2.60.0 (#9880)\n\n* Prepare for release 2.60.0\n\n* flutter-candidate-ad80825c24d770a19e33f67800fc0338a3b89ec7"
    },
    {
      "commit": "dae6342ff345ce8672761a2e2a38f7394eefde13",
      "tree": "ba4f68e84726c51cade98fa10272071722a86f41",
      "parents": [
        "489028a288f6f741879b2ba71048d70e4be7b68d"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Mon Jul 06 10:49:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:49:25 2026 -0700"
      },
      "message": "Check Dart formatting in all packages and in tool/ (#9873)\n\n* Check formatting in all packages and in tool/\n\n* feedback\n\n* format"
    },
    {
      "commit": "489028a288f6f741879b2ba71048d70e4be7b68d",
      "tree": "285e5277817b8ea2f89fb4b724e4850906c6c2c1",
      "parents": [
        "a53445b874b52165e15a6d708ec5a194cef05a95"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Mon Jul 06 22:27:21 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 09:57:21 2026 -0700"
      },
      "message": "Fix disconnect reconnect (#9878)\n\n* reconnect to VM service after disconnect without app restart\n\n* Add release note\n\n* Apply code review suggestions\n\n* Apply code review suggestions\n\n* Format disconnect_observer.dart\n\n* Update disconnect observer golden images for Reconnect button\n\n* Remove redundant argument in initVmService call\n\n* fix issue"
    },
    {
      "commit": "a53445b874b52165e15a6d708ec5a194cef05a95",
      "tree": "fc313f48bf300f239acd8196c4e0e3f561659f28",
      "parents": [
        "20b6936f44cad5ef244fdc30baa5130ff58ba3d5"
      ],
      "author": {
        "name": "Adil Burak Şen",
        "email": "56400880+adilburaksen@users.noreply.github.com",
        "time": "Thu Jul 02 20:21:21 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 10:21:21 2026 -0700"
      },
      "message": "fix: validate devtoolsOptionsUri in extensionEnabledState handler (#9834)"
    },
    {
      "commit": "20b6936f44cad5ef244fdc30baa5130ff58ba3d5",
      "tree": "f11d93ab050f76d68f664baff11034204a68df4d",
      "parents": [
        "140594b01bf025712ad6462c3aa16c5d1f10381c"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Jun 30 10:04:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 10:04:32 2026 -0700"
      },
      "message": "Reformat all code with recent Flutter/Dart SDK (#9871)"
    },
    {
      "commit": "140594b01bf025712ad6462c3aa16c5d1f10381c",
      "tree": "4e100e6c971ba559c183fb227d83863a271c929f",
      "parents": [
        "f52f72de7caef9ecb031580042547843b308de97"
      ],
      "author": {
        "name": "Adil Burak Şen",
        "email": "56400880+adilburaksen@users.noreply.github.com",
        "time": "Tue Jun 30 15:50:02 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 05:50:02 2026 -0700"
      },
      "message": "Reject absolute paths in devToolsFileFromPath (#9844)\n\n* Reject absolute paths in devToolsFileFromPath\n\n* Add tests for devToolsFileFromPath path validation\n\n* Add release note for rejecting absolute paths in DevTools file reads\n\n* Use a non-sensitive example path in absolute-path rejection test"
    },
    {
      "commit": "f52f72de7caef9ecb031580042547843b308de97",
      "tree": "08ef34f18350327670b45954812ecfdd01878877",
      "parents": [
        "da43067bee0d711e08c2ac39de6e6b40c784be5a"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Mon Jun 29 19:00:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 12:00:18 2026 -0700"
      },
      "message": "Enable `dispose-class-fields` and `dispose-fields` lints to resolve memory leaks (#9857)"
    },
    {
      "commit": "da43067bee0d711e08c2ac39de6e6b40c784be5a",
      "tree": "a1edacab571f64fd3ce2db803a43210f9c4b26e2",
      "parents": [
        "267027985ed2ee669d815e573eaa73d40858d4d0"
      ],
      "author": {
        "name": "gords2",
        "email": "lolfanlol123456@gmail.com",
        "time": "Thu Jun 25 17:16:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 17:16:59 2026 -0700"
      },
      "message": "Preserve selected feature tab in Performance page exports (#9861)\n\n* Preserve selected feature tab in Performance page exports\n\nThe Performance page tracked the selected feature tab via\n`selectedFeatureTabIndex`, but it was never persisted to offline exports,\nso loading exported data always reset to the first tab.\n\nMirror the Memory page\u0027s existing behavior: serialize the selected tab\nindex into `OfflinePerformanceData` and restore it when loading offline\ndata so the user lands on the tab they exported from.\n\nCloses #5150\n\n* Honor and clamp the restored tab index when loading offline data\n\nAddress review feedback on the offline tab restoration:\n\n- The restored selectedFeatureTabIndex was immediately reset to 0 by the\n  default-feature activation in TabbedPerformanceView. Use the restored\n  index (clamped to the available tabs) when activating the default\n  feature instead of hardcoding 0.\n- The number of visible tabs can be smaller when loading offline data\n  than when it was exported, so an out-of-range index could be passed to\n  AnalyticsTabbedView. Clamp the index passed as initialSelectedIndex.\n- Add a round-trip test for a non-zero selectedTab.\n\n* Add release note for performance export tab fix"
    },
    {
      "commit": "267027985ed2ee669d815e573eaa73d40858d4d0",
      "tree": "609e21dda040c97435acd15cd93a1a42f1c298bd",
      "parents": [
        "fb59fa4915e57fdd4db56d5c42acbd302bf306e9"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Thu Jun 25 15:01:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 15:01:19 2026 -0700"
      },
      "message": "Bump flutter candidate to 7e1e507403236215dd7420e1b2bb5dc5895554ce (#9867)"
    },
    {
      "commit": "fb59fa4915e57fdd4db56d5c42acbd302bf306e9",
      "tree": "333dd8a42ec587b36c5a543567c5d8116f546a80",
      "parents": [
        "f138e3a24a3bb8f32cf3cf5a4827d6fcdf9b3597"
      ],
      "author": {
        "name": "Ishaq Hassan",
        "email": "ishaquehassan@gmail.com",
        "time": "Thu Jun 25 20:55:08 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 08:55:08 2026 -0700"
      },
      "message": "fix: keep network search field enabled after clearing calls (#9855)\n\n* fix: keep network search field enabled after clearing calls\n\nThe Network screen search field was gated on whether any requests were present, so clearing all calls left the field disabled and the query could no longer be edited. Drop the hasRequests gate so the field stays enabled at all times, matching the default search field behavior used elsewhere in DevTools.\n\nFixes #9853\n\n* Add release note entry for network search field fix (#9855)\n\n* refactor: drop redundant filteredData listener in network controls\n\nThe network search field is now always enabled and no longer reads\ncontroller.filteredData in build, so this listener only forced needless\nrebuilds of the controls row on every filter change.\n\n* fix: reload network test fixtures each test to prevent shared-ref drain\n\nClear button mutations on httpProfile/socketProfile in FakeVmServiceWrapper\nclear the underlying lists in place. Since setUpAll shared the same fixture\nrefs across all tests, a test that taps Clear would leave empty profiles for\nthe next test. Move fixture load to setUp so each test gets fresh instances.\n\nFixes CI failures on test_ddc and test_dart2js.\n\n* fix: restore IdeTheme global in network profiler test setUpAll\n\n* test: restore httpProfile load in setUpAll\n\nKeep loading both fixtures in setUpAll like before; the per-test reload in the group setUp is what guarantees a clean copy for the clear-calls test."
    },
    {
      "commit": "f138e3a24a3bb8f32cf3cf5a4827d6fcdf9b3597",
      "tree": "8390bdb54c0f6f70d92bb149b741c2b4af8c333f",
      "parents": [
        "4bc7c7227089f538bfd5f712231fc9a228833478"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Wed Jun 24 15:48:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 15:48:12 2026 -0700"
      },
      "message": "Only validate deep links when connected to a Flutter app (#9865)"
    },
    {
      "commit": "4bc7c7227089f538bfd5f712231fc9a228833478",
      "tree": "ff913322408b6a705890125c331d976168e000b3",
      "parents": [
        "08687295ed1ed25973f1f63e3a928ae930bcb16a"
      ],
      "author": {
        "name": "Khanak Khandelwal",
        "email": "kkhanak512@gmail.com",
        "time": "Wed Jun 24 05:32:42 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 17:02:42 2026 -0700"
      },
      "message": "Fix persistent and disappearing error badges for Inspector (#9805)\n\n* Fix persistent and disappearing error badges for Inspector\n\n* Add release note for error badge fix\n\n* Increase timeout for asyncEval tests on Windows CI\n\n* Revert \"Increase timeout for asyncEval tests on Windows CI\"\n\nThis reverts commit 9b461c3e96af82f2cd6aeba152d13d355dc50511.\n\n* Update packages/devtools_app/lib/src/shared/managers/error_badge_manager.dart\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\n\n* update error badge unread count incrementally\n\n* remove bad merge\n\n---------\n\nCo-authored-by: gemini-code-assist[bot] \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "08687295ed1ed25973f1f63e3a928ae930bcb16a",
      "tree": "176b6207c8c9d1058c86b436397e2b2fe60dfb5f",
      "parents": [
        "a549a2e3fdc02d9edb760cab5408ef59cb3de8b5"
      ],
      "author": {
        "name": "gords2",
        "email": "lolfanlol123456@gmail.com",
        "time": "Tue Jun 23 06:04:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 06:04:24 2026 -0700"
      },
      "message": "Fix bad contrast for highlighted search results in tables (#9863)\n\n* Fix bad contrast for highlighted search results in tables\n\n`searchMatchColorOpaque` and `activeSearchMatchColorOpaque` are blended\nover the row background to highlight search matches. They were migrated\nfrom `withOpacity(0.5)` to `withValues(alpha: 255 / 2)` in #8784; since\n`withValues` expects alpha in the range 0.0-1.0, `255 / 2` clamps to fully\nopaque. Matched rows then got a solid yellow/orange background while the\nrow text kept its theme color, making it unreadable (especially in dark\nmode).\n\nRestore the intended 0.5 alpha so the highlight stays translucent and the\nrow text remains legible, and add a regression test.\n\nFixes #9010\n\n* Rename search match colors to *Translucent; add release note"
    },
    {
      "commit": "a549a2e3fdc02d9edb760cab5408ef59cb3de8b5",
      "tree": "45cf042b8f9785a87f899dca3ac11e77ec45ceed",
      "parents": [
        "646cd3708736d82e4f384ab172a97496295eab33"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 19 12:39:21 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 12:39:21 2026 +0000"
      },
      "message": "Bump actions/checkout from 6.0.2 to 7.0.0 (#9860)\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 7.0.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/actions/checkout/releases\"\u003eactions/checkout\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eblock checking out fork pr for pull_request_target and workflow_run by \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2454\"\u003eactions/checkout#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2458\"\u003eactions/checkout#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump flatted from 3.3.1 to 3.4.2 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2460\"\u003eactions/checkout#2460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump js-yaml from 4.1.0 to 4.2.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2461\"\u003eactions/checkout#2461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/core\u003c/code\u003e and \u003ccode\u003e@​actions/tool-cache\u003c/code\u003e and Remove uuid by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2459\"\u003eactions/checkout#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade module to esm and update dependencies by \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2463\"\u003eactions/checkout#2463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor-npm-dependencies group across 1 directory with 3 updates by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2462\"\u003eactions/checkout#2462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003egetting ready for checkout v7 release by \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2464\"\u003eactions/checkout#2464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate error wording by \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2467\"\u003eactions/checkout#2467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2454\"\u003eactions/checkout#2454\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/actions/checkout/compare/v6.0.3...v7.0.0\"\u003ehttps://github.com/actions/checkout/compare/v6.0.3...v7.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate changelog by \u003ca href\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2357\"\u003eactions/checkout#2357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expand merge commit SHA regex and add SHA-256 test cases by \u003ca href\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2414\"\u003eactions/checkout#2414\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix checkout init for SHA-256 repositories by \u003ca href\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2439\"\u003eactions/checkout#2439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changelog for v6.0.3 by \u003ca href\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2446\"\u003eactions/checkout#2446\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2414\"\u003eactions/checkout#2414\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/actions/checkout/compare/v6...v6.0.3\"\u003ehttps://github.com/actions/checkout/compare/v6...v6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/actions/checkout/blob/main/CHANGELOG.md\"\u003eactions/checkout\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003ev7.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBlock checking out fork PR for pull_request_target and workflow_run by \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2454\"\u003eactions/checkout#2454\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the minor-actions-dependencies group across 1 directory by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2458\"\u003eactions/checkout#2458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump flatted from 3.3.1 to 3.4.2 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2460\"\u003eactions/checkout#2460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump js-yaml from 4.1.0 to 4.2.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2461\"\u003eactions/checkout#2461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003e@​actions/core\u003c/code\u003e and \u003ccode\u003e@​actions/tool-cache\u003c/code\u003e and Remove uuid by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2459\"\u003eactions/checkout#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade module to esm and update dependencies by \u003ca href\u003d\"https://github.com/aiqiaoy\"\u003e\u003ccode\u003e@​aiqiaoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2463\"\u003eactions/checkout#2463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the minor-npm-dependencies group across 1 directory with 3 updates by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2462\"\u003eactions/checkout#2462\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix checkout init for SHA-256 repositories by \u003ca href\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2439\"\u003eactions/checkout#2439\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expand merge commit SHA regex and add SHA-256 test cases by \u003ca href\u003d\"https://github.com/yaananth\"\u003e\u003ccode\u003e@​yaananth\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2414\"\u003eactions/checkout#2414\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix tag handling: preserve annotations and explicit fetch-tags by \u003ca href\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2356\"\u003eactions/checkout#2356\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd worktree support for persist-credentials includeIf by \u003ca href\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2327\"\u003eactions/checkout#2327\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePersist creds to a separate file by \u003ca href\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2286\"\u003eactions/checkout#2286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README to include Node.js 24 support details and requirements by \u003ca href\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2248\"\u003eactions/checkout#2248\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePort v6 cleanup to v5 by \u003ca href\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2301\"\u003eactions/checkout#2301\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate actions checkout to use node 24 by \u003ca href\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2226\"\u003eactions/checkout#2226\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePort v6 cleanup to v4 by \u003ca href\u003d\"https://github.com/ericsciple\"\u003e\u003ccode\u003e@​ericsciple\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2305\"\u003eactions/checkout#2305\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: update README.md by \u003ca href\u003d\"https://github.com/motss\"\u003e\u003ccode\u003e@​motss\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/1971\"\u003eactions/checkout#1971\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd internal repos for checking out multiple repositories by \u003ca href\u003d\"https://github.com/mouismail\"\u003e\u003ccode\u003e@​mouismail\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/1977\"\u003eactions/checkout#1977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation update - add recommended permissions to Readme by \u003ca href\u003d\"https://github.com/benwells\"\u003e\u003ccode\u003e@​benwells\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2043\"\u003eactions/checkout#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust positioning of user email note and permissions heading by \u003ca href\u003d\"https://github.com/joshmgross\"\u003e\u003ccode\u003e@​joshmgross\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2044\"\u003eactions/checkout#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href\u003d\"https://github.com/nebuk89\"\u003e\u003ccode\u003e@​nebuk89\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2194\"\u003eactions/checkout#2194\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CODEOWNERS for actions by \u003ca href\u003d\"https://github.com/TingluoHuang\"\u003e\u003ccode\u003e@​TingluoHuang\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2224\"\u003eactions/checkout#2224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate package dependencies by \u003ca href\u003d\"https://github.com/salmanmkc\"\u003e\u003ccode\u003e@​salmanmkc\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/2236\"\u003eactions/checkout#2236\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eurl-helper.ts\u003c/code\u003e now leverages well-known environment variables by \u003ca href\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/1941\"\u003eactions/checkout#1941\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpand unit test coverage for \u003ccode\u003eisGhes\u003c/code\u003e by \u003ca href\u003d\"https://github.com/jww3\"\u003e\u003ccode\u003e@​jww3\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/1946\"\u003eactions/checkout#1946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck out other refs/* by commit if provided, fall back to ref by \u003ca href\u003d\"https://github.com/orhantoy\"\u003e\u003ccode\u003e@​orhantoy\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/actions/checkout/pull/1924\"\u003eactions/checkout#1924\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0\"\u003e\u003ccode\u003e9c091bb\u003c/code\u003e\u003c/a\u003e update error wording (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2467\"\u003e#2467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/1044a6dea927916f2c38ba5aeffbc0a847b1221a\"\u003e\u003ccode\u003e1044a6d\u003c/code\u003e\u003c/a\u003e getting ready for checkout v7 release (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2464\"\u003e#2464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/f0282184c7ce73ab54c7e4ab5a617122602e575f\"\u003e\u003ccode\u003ef028218\u003c/code\u003e\u003c/a\u003e Bump the minor-npm-dependencies group across 1 directory with 3 updates (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2462\"\u003e#2462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/d914b262ffc244530a203ab40decab34c3abf34d\"\u003e\u003ccode\u003ed914b26\u003c/code\u003e\u003c/a\u003e upgrade module to esm and update dependencies (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2463\"\u003e#2463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/537c7ef99cef6e5ddb5e7ff5d16d14510503801d\"\u003e\u003ccode\u003e537c7ef\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003e@​actions/core\u003c/code\u003e and \u003ccode\u003e@​actions/tool-cache\u003c/code\u003e and Remove uuid (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2459\"\u003e#2459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/130a169078a413d3a5246a393625e8e742f387f6\"\u003e\u003ccode\u003e130a169\u003c/code\u003e\u003c/a\u003e Bump js-yaml from 4.1.0 to 4.2.0 (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2461\"\u003e#2461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/7d09575332117a40b46e5e020664df234cd416f3\"\u003e\u003ccode\u003e7d09575\u003c/code\u003e\u003c/a\u003e Bump flatted from 3.3.1 to 3.4.2 (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2460\"\u003e#2460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/0f9f3aa320cb53abeb534aeb54048075d9697a0e\"\u003e\u003ccode\u003e0f9f3aa\u003c/code\u003e\u003c/a\u003e Bump actions/publish-immutable-action (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2458\"\u003e#2458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/f9e715a95fcd1f9253f77dd28f11e88d2d6460c7\"\u003e\u003ccode\u003ef9e715a\u003c/code\u003e\u003c/a\u003e block checking out fork pr for pull_request_target and workflow_run (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2454\"\u003e#2454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/actions/checkout/commit/df4cb1c069e1874edd31b4311f1884172cec0e10\"\u003e\u003ccode\u003edf4cb1c\u003c/code\u003e\u003c/a\u003e Update changelog for v6.0.3 (\u003ca href\u003d\"https://redirect.github.com/actions/checkout/issues/2446\"\u003e#2446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dactions/checkout\u0026package-manager\u003dgithub_actions\u0026previous-version\u003d6.0.2\u0026new-version\u003d7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\u003c/details\u003e"
    },
    {
      "commit": "646cd3708736d82e4f384ab172a97496295eab33",
      "tree": "0702215317b162d1b5418aee22766cc0e9024245",
      "parents": [
        "e5134ff43127034fd95e109334ef385d912a5b7d"
      ],
      "author": {
        "name": "Kenzie Davisson",
        "email": "43759233+kenzieschmoll@users.noreply.github.com",
        "time": "Thu Jun 18 20:30:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 13:30:44 2026 -0700"
      },
      "message": "Paginate files in the release notes workflow to support large PRs (#9858)"
    },
    {
      "commit": "e5134ff43127034fd95e109334ef385d912a5b7d",
      "tree": "c01b466b439c4a53362eb0742a82f81e9c68ad33",
      "parents": [
        "580b1efc49ff8e06586951408e3395358f969945"
      ],
      "author": {
        "name": "Sam Rawlins",
        "email": "srawlins@google.com",
        "time": "Tue Jun 02 14:09:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 14:09:06 2026 -0700"
      },
      "message": "Bump Dart SDK minimums to Dart 3.11.0. (#9848)"
    }
  ],
  "next": "580b1efc49ff8e06586951408e3395358f969945"
}
