)]}'
{
  "commit": "ce667ede75ce09f4c0268ee6094965640fc41675",
  "tree": "e411e4f2d5bcb2aed7617c48f05e6d2d88b2d842",
  "parents": [
    "c4d8870f50df71a445e50e49aba97ae881f528b2"
  ],
  "author": {
    "name": "chunhtai",
    "email": "47866232+chunhtai@users.noreply.github.com",
    "time": "Tue Mar 18 14:01:16 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 18 21:01:16 2025 +0000"
  },
  "message": "Reland role merge (#165330)\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nthe previous pr causes some issue with mobile platform.\nThe change is in second commit\n\n## Pre-launch Checklist\n\n- [ ] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [ ] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [ ] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [ ] I signed the [CLA].\n- [ ] I listed at least one issue that this PR fixes in the description\nabove.\n- [ ] I updated/added relevant documentation (doc comments with `///`).\n- [ ] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [ ] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [ ] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6ca090b91351c1d809fc1064a9d6b4080241cf3c",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/semantics/semantics.dart",
      "new_id": "ff670d417073fbccc10f4b1ce8c3fbff5451247e",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/semantics/semantics.dart"
    },
    {
      "type": "modify",
      "old_id": "aad47130128fce228e597732f2b00d0c08aa529e",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/material/search_test.dart",
      "new_id": "8ee6da85bcfb6da94eee8feaeecdef1352690f79",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/material/search_test.dart"
    },
    {
      "type": "modify",
      "old_id": "5310051e57ae9e307fdbc6de50d540d784dd197e",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/widgets/basic_test.dart",
      "new_id": "7af66de9485b0aa25e776e2ce16e854d5f997598",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/widgets/basic_test.dart"
    }
  ]
}
