)]}'
{
  "commit": "aaa91101383b6e1aadc18fcd556f61016b46b600",
  "tree": "7c017ed71ca87434ea4192c9762da29229d8e4a5",
  "parents": [
    "7f45ad14e45da6320361810113a23da73207ab0a"
  ],
  "author": {
    "name": "philter",
    "email": "hello@rive.app",
    "time": "Thu Oct 01 23:41:08 2026 +0000"
  },
  "committer": {
    "name": "philter",
    "email": "hello@rive.app",
    "time": "Thu Oct 01 23:41:08 2026 +0000"
  },
  "message": "fix(runtime): don\u0027t blur into deleted components when destroying an artboard on an adopted focus manager (#14504) ac3546564e\n~Artboard already makes a pass over m_Objects before deleting anything, to find the view model objects. That pass (renamed gatherVmObjects → preDeletePass) now also calls FocusData::detachFocusable(), which clears the node\u0027s pointer back to its FocusData without touching the manager (which may be freed). Once deletion starts, the blur walk still runs and focus is still cleared on the manager, but no callback can reach this artboard\u0027s components.\n\nCo-authored-by: Philip Chung \u003cphilterdesign@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "700b2f56d6223ce165961c1566872e52acace127",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "dc1d34dbf98ecd3657ca5dabc89a1927aa7308c0",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "7d481d9f57dcb6849d5f303b1b32f62b5eebe809",
      "old_mode": 33188,
      "old_path": "include/rive/focus_data.hpp",
      "new_id": "5646e9e9aba6a87cd643c2d5af2d73c3b85d23d0",
      "new_mode": 33188,
      "new_path": "include/rive/focus_data.hpp"
    },
    {
      "type": "modify",
      "old_id": "9f6b17f61733cbb094ce1a2d59760f2e598db007",
      "old_mode": 33188,
      "old_path": "src/artboard.cpp",
      "new_id": "d0222c21f7b3e2337f1fb414cb86a39a70876299",
      "new_mode": 33188,
      "new_path": "src/artboard.cpp"
    },
    {
      "type": "modify",
      "old_id": "a3508eacfb65fa0ecaf01f5d77992bcc86831879",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/runtime/focus_test.cpp",
      "new_id": "5f9b9074b224c6e967d9c8accca7946cd11c6bdb",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/runtime/focus_test.cpp"
    }
  ]
}
