)]}'
{
  "commit": "26b06bb502957ae333f47e4c8f3f83815039d0d3",
  "tree": "6e74a4d3372acb635b1e2b0053a3ecd550c33f07",
  "parents": [
    "75bfdae5be7aa36e413378a78c14cfa8595f934c"
  ],
  "author": {
    "name": "Jeremy Howard",
    "email": "github@jhoward.fastmail.fm",
    "time": "Thu Aug 27 17:18:44 2026 +1000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 27 07:18:44 2026 +0000"
  },
  "message": "[Metal] Fall back to the system default device (#24839)\n\nOn an M5 Max running macOS 26.6 inside a Codex sandbox, we observed\n`MTLCopyAllDevices()` return an empty array in a fresh process even\nthough `MTLCreateSystemDefaultDevice()` returned a valid device. IREE\nsnapshots the first enumeration result when creating its Metal driver,\nso an initially empty result leaves that driver permanently without\ndevices.\n\nInstead, when enumeration is empty, we use the default device as a\none-device fallback.\n\nFixes #24834.\n\nAI assistance disclosure: I used OpenAI Codex substantially to inspect\nthe implementation, trace the failure, implement the change, and prepare\nthis PR (but not write this description). I reviewed and understand the\nresulting code and analysis.\n\n---------\n\nSigned-off-by: Jeremy Howard \u003cgithub@jhoward.fastmail.fm\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "11e99142ea9da9efd315259214f601b9fa842acb",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/CMakeLists.txt",
      "new_id": "5cc0c04b91e4d7ee75882506246486882c0dbe36",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "4f72aa657a7b4e5515ccc8518b8b668d0702daca",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/metal_driver.m",
      "new_id": "bd052801322a2f610ac5140005f4ed499ed5046e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/metal_driver.m"
    }
  ]
}
