)]}'
{
  "commit": "3cf13bccd329ad052b49559ca8ca3d8692633ccc",
  "tree": "9c5bf5880dcce62535eb05d5dece9b03af9f99f6",
  "parents": [
    "fa1a50455a519297028e694349d73857a8ce4bf4"
  ],
  "author": {
    "name": "philter",
    "email": "hello@rive.app",
    "time": "Fri Mar 13 18:50:40 2026 +0000"
  },
  "committer": {
    "name": "philter",
    "email": "hello@rive.app",
    "time": "Fri Mar 13 18:50:40 2026 +0000"
  },
  "message": "fix(runtime): Don\u0027t early out when processing KeyedObjects with missing objects (#11856) 3eb4211852\nPreviously when a LinearAnimation ran onAddedDirty on all of its keyed objects, it would return early if any keyed objects returned a status other than OK (this could happen in cases where the keyed object itself doesn\u0027t validate, for example, when a constraint doesn\u0027t have a target, and that constraint has a keyed property on the timeline). This PR updates the flow to instead store those keyed objects and after all keyed objects are processed, it removes them from the list, so they will not be processed in future calls to apply().\n\nCo-authored-by: Philip Chung \u003cphilterdesign@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ad5d65cd0cc4b9f224952a56bbe6ed4f5ac00c06",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "d6e279c88b00ae28e87e094d6895f98b77151e07",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "5550547d9e8efb7c7a9ffca0f986f720ba85355a",
      "old_mode": 33188,
      "old_path": "include/rive/animation/linear_animation.hpp",
      "new_id": "6d4d1dc2a363fa3ebc4ced11d39c23229349dc93",
      "new_mode": 33188,
      "new_path": "include/rive/animation/linear_animation.hpp"
    },
    {
      "type": "modify",
      "old_id": "25dd73bea630c602c2cadbe72f9a04ee665b4521",
      "old_mode": 33188,
      "old_path": "src/animation/linear_animation.cpp",
      "new_id": "2af3576057193c0dad901daf6f82945271e9999f",
      "new_mode": 33188,
      "new_path": "src/animation/linear_animation.cpp"
    },
    {
      "type": "modify",
      "old_id": "ee36df012e1819e2d5773df6786c0a7caee09448",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/runtime/linear_animation_test.cpp",
      "new_id": "3fd0de4c5664ae58cceb004050407909f957d0a9",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/runtime/linear_animation_test.cpp"
    }
  ]
}
