)]}'
{
  "commit": "3c38ccb4f4b0f5e3eeff0fea3446613d30e5e62b",
  "tree": "c314a0a6517cce1b589359fb837a00a29bba9b89",
  "parents": [
    "be629212b7e828d452fe8f66612bb785f86abd76"
  ],
  "author": {
    "name": "Pascal Welsch",
    "email": "pascal@phntm.xyz",
    "time": "Sat Jun 13 00:20:28 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 12 22:20:28 2026 +0000"
  },
  "message": "Compare isModifiedAfter against the given time (#187727)\n\nFixes #187725, regression was introduced in #187488\n\n`DevFSFileContent.isModifiedAfter` returned `true` whenever the cached\n`_fileStat` was `null`, ignoring the time argument entirely. `_fileStat`\nis the sync baseline written only by `markClean()` the entries of a\nfreshly built `AssetBundle` are never marked clean, so `_fileStat` is\nalways `null` for them and `isModifiedAfter` always reported them as\nmodified.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md\n\nCo-authored-by: Kevin Moore \u003ckevmoo@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8914b9fe2bd87f2211eb7b330574b2e76dfd1dbc",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/devfs.dart",
      "new_id": "038a3dedaab5f2ad70bc569f54afac795f15d905",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/devfs.dart"
    },
    {
      "type": "modify",
      "old_id": "d7952ada1ac30049aa29b77687efcf2692d8cf87",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/devfs_test.dart",
      "new_id": "5638af4a27fd153056a5d2f695adf4c6c5e55fc8",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/devfs_test.dart"
    }
  ]
}
