)]}'
{
  "commit": "720874df61f62641db2a7bc87d840f0181df249d",
  "tree": "64b158587faecb744630113d312b7eeddabf0705",
  "parents": [
    "100a10e8c61d3a99df9219b45d6c6b442b311627"
  ],
  "author": {
    "name": "Milutin Kristofic",
    "email": "milutin@google.com",
    "time": "Fri Jan 16 19:11:16 2026 +0100"
  },
  "committer": {
    "name": "Milutin Kristofic",
    "email": "milutin@google.com",
    "time": "Mon Jan 19 19:23:28 2026 +0100"
  },
  "message": "Fix infinite update loop in gr-autogrow-textarea\n\nThe component was triggering an infinite update loop because it was\nupdating the `tokens` state property inside the `updated()` lifecycle\nmethod. This caused a re-render, which triggered `updated()` again,\nleading to a cycle.\n\nThis change fixes the issue by calculating the tokens in `willUpdate()`\n. This follows the derived state pattern where tokens are updated only\nwhen dependent properties (`value`, `rows`, `maxRows`) change. This\nprevents the infinite loop and optimizes performance by avoiding\nrecalculation in every `render()` call.\n\nRelease-Notes: skip\nChange-Id: If9177d63e4462415e126f896cbd05a4b44078b63\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3dba84bac36bfba709aa034b3a5e28b6dbc4c5bc",
      "old_mode": 33188,
      "old_path": "polygerrit-ui/app/elements/shared/gr-autogrow-textarea/gr-autogrow-textarea.ts",
      "new_id": "2aa769a11569f5edd27b683ae0234ff6136aeb4a",
      "new_mode": 33188,
      "new_path": "polygerrit-ui/app/elements/shared/gr-autogrow-textarea/gr-autogrow-textarea.ts"
    }
  ]
}
