)]}'
{
  "commit": "9f20e5d9bbd345ca94b86804c39f419cffbf6ab0",
  "tree": "57374fd64d59793a37e653277577f671ca003694",
  "parents": [
    "873d02183cb670c541efaedfdb1a60066b894cb6"
  ],
  "author": {
    "name": "Matthew Kosarek",
    "email": "matt.kosarek@canonical.com",
    "time": "Thu Mar 12 09:30:35 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Mar 12 13:30:35 2026 +0000"
  },
  "message": "Adding the SatelliteWindowController interface to `_window.dart` (#182903)\n\n## What\u0027s new?\n- Added the concept of a `SatelliteWindowController` and\n`SatelliteWindow` widget to the `_window.dart` API\n- Wrote tests for it\n- Throwing \"unsupported\" for all existing `WindowingOwner`s when trying\nto create it\n- Stubbed it in the example application\n- Implemented a \"happy\" implementation in the `flutter_test` package\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [X] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6ed7262f1ddaf19c6fc0ee31e017f0c519726ace",
      "new_mode": 33188,
      "new_path": "examples/api/lib/widgets/windows/satellite.0.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2f3bef2fc6a91c7a766c214d6368f67ce3806fd",
      "new_mode": 33188,
      "new_path": "examples/api/test/widgets/windows/satellite.0_test.dart"
    },
    {
      "type": "modify",
      "old_id": "35e636e89ae7f3878286651c6672ba4c3dc9791a",
      "old_mode": 33188,
      "old_path": "examples/multiple_windows/lib/app/main_window.dart",
      "new_id": "e83ce705bd38edc352f7e5d7886bd8736c9045ab",
      "new_mode": 33188,
      "new_path": "examples/multiple_windows/lib/app/main_window.dart"
    },
    {
      "type": "modify",
      "old_id": "5b1d7c1f4393840ec6e754ea3fc8475b0ec42dae",
      "old_mode": 33188,
      "old_path": "examples/multiple_windows/lib/app/window_content.dart",
      "new_id": "dac69e1415ae28a57fcc047b50fdab5d9e05fd13",
      "new_mode": 33188,
      "new_path": "examples/multiple_windows/lib/app/window_content.dart"
    },
    {
      "type": "modify",
      "old_id": "a108d56eca1392af9cfb56cc6d9612759420a085",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/_window.dart",
      "new_id": "bfec2df65c1ee29f84b77ac2f3c5730f05a20771",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/_window.dart"
    },
    {
      "type": "modify",
      "old_id": "ca9fccd6029325b85a60048d680804808c831413",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/_window_linux.dart",
      "new_id": "9f8a99b21fa14267fc3bbd5ab8395cf40e607459",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/_window_linux.dart"
    },
    {
      "type": "modify",
      "old_id": "a4c71f2778089aa4d704023931f99d2251264ce6",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/_window_macos.dart",
      "new_id": "ee5d9473cbf86e2c4dae21b6c6e410085cd1ffbb",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/_window_macos.dart"
    },
    {
      "type": "modify",
      "old_id": "1b2684cdca61ba1c2e98410ed162a31be1c3cdc5",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/_window_win32.dart",
      "new_id": "aff7e52abdfa5fb3dbf4473d1a088471351bb436",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/_window_win32.dart"
    },
    {
      "type": "modify",
      "old_id": "5e7d4250c118d41e387166ce375f6a6ba01462e3",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/widgets/windowing_test.dart",
      "new_id": "fe4721018064f6dbbd0993ad3adba828bc4c8a45",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/widgets/windowing_test.dart"
    },
    {
      "type": "modify",
      "old_id": "8ec53720b7a79b05d72a388f13997e8b0d7b55dc",
      "old_mode": 33188,
      "old_path": "packages/flutter_test/lib/src/binding.dart",
      "new_id": "0ffc907608a75c7cf9816c1040b270cf60371467",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/lib/src/binding.dart"
    }
  ]
}
