)]}'
{
  "log": [
    {
      "commit": "dbad6f0ca26988081bac6d007be1096cd69f1f8e",
      "tree": "640de0e5139d27f2000f04674b01591f05e78b02",
      "parents": [
        "e27d22afe009d1607f1a2cdba941a46ad6b20904"
      ],
      "author": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Thu May 14 09:28:18 2026 -0700"
      },
      "committer": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Thu May 14 09:28:18 2026 -0700"
      },
      "message": "Add check-result-feedback plugin endpoint\n\nThis change introduces a new plugin endpoint `check-result-feedback`\nwithin the expanded details of a check result. This endpoint wraps the\ndefault \"Was this helpful?\" feedback controls, allowing plugins to\ncustomize or replace the result-level interaction mechanisms. The\n`CheckResult` object is passed as a parameter to the endpoint.\n\n\nGoogle-Bug-Id: b/b/510886865\nRelease-Notes: skip\nChange-Id: I74ced182ff9c3176b196e2ce23561e3f71033658"
    },
    {
      "commit": "e27d22afe009d1607f1a2cdba941a46ad6b20904",
      "tree": "1282f6ea8e90404c0b7bfeb2600291a80de227fd",
      "parents": [
        "a826feef9c697e9a9b299b1c5b6b68eb2daac2dc"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 14 07:28:38 2026 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 14 14:06:15 2026 +0200"
      },
      "message": "Polygerrit: Add resultdb-reporter.mjs to web_test_runner\n\nweb-test-runner.config.mjs imports resultdb-reporter.mjs at runtime,\nbut the shared web_test_runner rule only adds the config file itself to\nthe test runfiles.\n\nBefore the rules_js/pnpm migration this worked implicitly through the\nprevious node_modules and runfiles layout. After switching to pnpm-based\nrunfiles, undeclared runtime files are no longer exposed, causing\nweb_test_runner to fail with ERR_MODULE_NOT_FOUND.\n\nAdd resultdb-reporter.mjs to the shared web_test_runner rule so all\nconsumers of the shared config receive the reporter dependency\nautomatically.\n\nRelease-Notes: skip\nChange-Id: I6f11fd75a47a9b85238304519111360511341e88\n"
    },
    {
      "commit": "a826feef9c697e9a9b299b1c5b6b68eb2daac2dc",
      "tree": "3ace4b1534d60153b9661342953789b00aa11a02",
      "parents": [
        "4437265403e0aa069893fd7767140da71001ddb9"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 14 13:50:38 2026 +0200"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 14 04:50:38 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/delete-project from branch \u0027master\u0027\n  to bdb60b25fe44e9e6e460781e3a3f87fdbe4b4f50\n  - Align tsconfig with ts_project outputs\n    \n    rules_ts validates that path-affecting TypeScript options are known to\n    Bazel. The delete-project tsconfig inherited rootDir from the shared\n    plugin config and also declared an outDir that was overridden by the\n    ts_project rule.\n    \n    Override rootDir locally and remove the stale outDir so the effective\n    tsconfig matches the package-local ts_project outputs.\n    \n    Change-Id: Ic9d6f0310fbcd13d548832112014491bab197c58\n    "
    },
    {
      "commit": "4437265403e0aa069893fd7767140da71001ddb9",
      "tree": "f7443aaf06d3242cd5acb446e171111b247c273a",
      "parents": [
        "d151c19eba45387090f8802e01e13e76dc3a3e6a"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 14 13:16:13 2026 +0200"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 14 04:16:13 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/codemirror-editor from branch \u0027master\u0027\n  to e0d5973d33cca3c2b085f7aad5822fe8be04a748\n  - Align tsconfig with ts_project outputs\n    \n    rules_ts validates that path-affecting TypeScript options are known to\n    Bazel. The codemirror editor tsconfig inherited rootDir from the shared\n    plugin config and also declared an outDir that was overridden by the\n    ts_project rule.\n    \n    Override rootDir locally and remove the stale outDir so the effective\n    tsconfig matches the package-local ts_project outputs.\n    \n    Change-Id: I956a2714df87d22237409adca021b5256b64c749\n    "
    },
    {
      "commit": "d151c19eba45387090f8802e01e13e76dc3a3e6a",
      "tree": "6733e58f59398bb62bb1de64a119b7bdd2f5fe85",
      "parents": [
        "0ef223a57ad1b55aeb72f3cf40b4e71c71abe283",
        "e9d9d22b718d9c9f75374126b62a0fb8d19d45b3"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Wed May 13 16:56:57 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 13 16:56:57 2026 -0700"
      },
      "message": "Merge \"Refactor ResultDB reporter for better artifact handling\""
    },
    {
      "commit": "e9d9d22b718d9c9f75374126b62a0fb8d19d45b3",
      "tree": "c3806dbf3389bdfcc89b789ffc7c6cc700d42f9e",
      "parents": [
        "6585d31fa00429f2cc7f06c310b503db040b54e3"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Wed May 13 16:45:13 2026 -0700"
      },
      "committer": {
        "name": "Sam Saccone",
        "email": "samccone@google.com",
        "time": "Wed May 13 16:48:01 2026 -0700"
      },
      "message": "Refactor ResultDB reporter for better artifact handling\n\nThis change updates the ResultDB reporter to:\n-   Upload visual diff images as `image_diff`, `actual_image`, and `expected_image` artifacts.\n-   Remove HTML embedding of images in the summary, relying on ResultDB\u0027s artifact viewing.\n-   Handle skipped tests correctly.\n-   Report session-level errors as separate test failures.\n-   Ensure all uploads are completed before the reporter finishes.\n-   Specify the base directory for visual regression screenshots\n\nGoogle-Bug-Id: b/510899910\nRelease-Notes: skip\nChange-Id: I5eade429573e6901cf3b5cd48605ef1e51dc4a6a\n"
    },
    {
      "commit": "0ef223a57ad1b55aeb72f3cf40b4e71c71abe283",
      "tree": "bb7a32ab63add9f5e0016519fdea1ffcab8d5f87",
      "parents": [
        "7c6e04ee9a7152975b2c66fcc74fc5eea25b8e49",
        "1c756ef3afdd885bc6df33213aa62e93e1125553"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Wed May 13 15:11:57 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 13 15:11:57 2026 -0700"
      },
      "message": "Merge \"Revert \"Display AI-powered checks with dedicated styling.\"\""
    },
    {
      "commit": "1c756ef3afdd885bc6df33213aa62e93e1125553",
      "tree": "57c0ed8a2bcfc598d9714510f7a8d6362b69649d",
      "parents": [
        "e2d5337c97525f5903571c74a6f12df2d6be0320"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Wed May 13 15:00:29 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 13 15:00:29 2026 -0700"
      },
      "message": "Revert \"Display AI-powered checks with dedicated styling.\"\n\nThis reverts commit e2d5337c97525f5903571c74a6f12df2d6be0320.\n\nReason for revert: Rethinking some of the design\n\nChange-Id: Ifa1dac48d73eca18674b60e1c54eca5629a6ad7c\n"
    },
    {
      "commit": "7c6e04ee9a7152975b2c66fcc74fc5eea25b8e49",
      "tree": "914bf34bbc1b9a22f15b61f3700e573b4e3b27b6",
      "parents": [
        "10a91f9bc294ea5ca24b88907b533aa68e60e81a"
      ],
      "author": {
        "name": "Kevin Berry",
        "email": "kpberry@google.com",
        "time": "Wed May 13 19:07:43 2026 +0000"
      },
      "committer": {
        "name": "Kevin Berry",
        "email": "kpberry@google.com",
        "time": "Wed May 13 13:16:36 2026 -0700"
      },
      "message": "Change \u0027Add/Open/Upload\u0027 to \u0027Edit\u0027\n\nThe name \u0027Add/Open/Upload\u0027 is pretty unintuitive to me. I think \u0027Edit\u0027\nbetter describes the actual behavior of the \u0027Add/Open/Upload\u0027 action,\nand will make it more obvious to users that that page is the correct one\nfor editing a file.\n\nRelease-Notes: Changed the text of the \u0027Add/Open/Upload\u0027 button to \u0027Edit\u0027.\nChange-Id: Ie48bf4f36d9da86744bef1045bf0a42bd2fdd3a0\n"
    },
    {
      "commit": "10a91f9bc294ea5ca24b88907b533aa68e60e81a",
      "tree": "5fa604cc96b83f688887afc5b876c6211ab60f5d",
      "parents": [
        "4496ef518ac8a34d24eb9ab3385ff850daf9fdf5"
      ],
      "author": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Wed May 13 16:38:04 2026 +0000"
      },
      "committer": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Wed May 13 09:42:10 2026 -0700"
      },
      "message": "polygerrit: Fix navigation to unpublished edit to load edit actions\n\nWhen the submit dialog detects an unpublished edit, it warns the user\nand provides a link to the \"unpublished edit\". Clicking this link\npreviously navigated to the change URL with `edit: true` appended\n(e.g. `/c/project/+/123,edit`).\n\nWhile this enabled `editMode` in the UI, it did not ensure that the\nactive patchset was set to the `EDIT` revision (`patchNum` state did\nnot become `\u0027edit\u0027`). Consequently, `gr-change-actions` failed to\ninitialize the action buttons for the edit patchset (such as \"Publish\nedit\" and \"Delete edit\"), as they require `editPatchsetLoaded` to be\ntrue.\n\nThis left the user trapped in edit mode with only the \"Stop editing\"\nbutton available, unable to publish or delete the empty/lingering edit\nthat was blocking submission.\n\nFix this by explicitly navigating to `patchNum: EDIT` instead of using\n`edit: true` in `handleEditTap`. This matches the behavior of\n`gr-change-view` when loading existing edits and guarantees that the\nedit patchset actions are correctly rendered.\n\nRelease-Notes: skip\nGoogle-bug-id: b/480914592\nChange-Id: Ia6e808cda9bd22d7bd4c9c87b59fe4b92cc60457\n"
    },
    {
      "commit": "4496ef518ac8a34d24eb9ab3385ff850daf9fdf5",
      "tree": "e2fa765eb00e8d896dbfc30e2490701ef289c2f0",
      "parents": [
        "6585d31fa00429f2cc7f06c310b503db040b54e3",
        "a0b8f6c70930912d9c5d8bf9c83a19189f398eb6"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Wed May 13 08:59:51 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 13 08:59:51 2026 -0700"
      },
      "message": "Merge \"Fix linter findings in DynamicItemTest\""
    },
    {
      "commit": "6585d31fa00429f2cc7f06c310b503db040b54e3",
      "tree": "29bf5d5fccf835b3aadc35724ef4afd07e61be51",
      "parents": [
        "49b52ffd9a779faa0728c699e1cad9d811372642"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Wed May 13 11:59:47 2026 +0000"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Wed May 13 11:59:47 2026 +0000"
      },
      "message": "Fix linter issues in AccountProtoConverterTest.java\n\nRelease-Notes: skip\nChange-Id: I9a3b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b\n"
    },
    {
      "commit": "a0b8f6c70930912d9c5d8bf9c83a19189f398eb6",
      "tree": "cf78761bf5bda457e6a818242c4d1ac815ff042d",
      "parents": [
        "3d0c9fb1b023855c8bbcf57e15fb74ca6dd224f8"
      ],
      "author": {
        "name": "nitzan",
        "email": "nitzan@google.com",
        "time": "Tue May 12 15:03:31 2026 +0000"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Wed May 13 00:19:35 2026 -0700"
      },
      "message": "Fix linter findings in DynamicItemTest\n\nRelease-Notes: skip\nChange-Id: Ie744006bad583612b28256401c54b72b450c3296\n"
    },
    {
      "commit": "49b52ffd9a779faa0728c699e1cad9d811372642",
      "tree": "23ac6012e6ac905694bda9a7524f27abe48f765e",
      "parents": [
        "1d35c279c6654232ed679b07ecde504430324374"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 20:04:32 2026 -0700"
      },
      "committer": {
        "name": "Sam Saccone",
        "email": "samccone@google.com",
        "time": "Tue May 12 20:07:27 2026 -0700"
      },
      "message": "[Gerrit] revert changes to base-dir and bump pixel diference threshold up\n\nTests can run locally again after the dir change.\n\nGoogle-bug-id: b/510899910\nRelease-Notes: skip\nChange-Id: I7de27acf7bae247b0dd7d2b44fa77fd219349345\n"
    },
    {
      "commit": "1d35c279c6654232ed679b07ecde504430324374",
      "tree": "d34bec1dff31a92e52a671d39a1bf6090ac5a8a5",
      "parents": [
        "15ab2cdb589f89e4e7802419a12d1afada6473b3"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Wed May 13 00:55:25 2026 +0000"
      },
      "committer": {
        "name": "Sam Saccone",
        "email": "samccone@google.com",
        "time": "Tue May 12 17:57:57 2026 -0700"
      },
      "message": "Guarantee complete ResultSink pRPC streaming before Node termination in resultdb-reporter.mjs\n\nWhen Web Test Runner completes testing, it invokes reporter hooks. While\nreportTestFileResults executes dynamically mid-run, the test runner does\nnot block process termination on outstanding asynchronous network\nstreams initiated during per-file reporting.\n\nThis change updates resultdb-reporter.mjs to bind to onTestRunFinished,\nwhich Web Test Runner explicitly awaits before process exit,\nguaranteeing all side-by-side screenshot artifacts fully stream to\nResultSink. Furthermore, it corrects the baseline directory structure to\nscreenshots/Chromium/baseline/ to match golden image storage layouts\n\nGoogle-bug-id: b/510899910\nRelease-Notes: skip\nChange-Id: Ie0b0f3ed544421567a14e59323bde63b51531922\n"
    },
    {
      "commit": "15ab2cdb589f89e4e7802419a12d1afada6473b3",
      "tree": "c58f4e8253748a7dfa36f02dd8217e5e52d52cbd",
      "parents": [
        "15089a9d33e75cae29d6491685b47e9bc11fa738",
        "a78b6ac9f83a0d81164dcce5e262c2d879afd296"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 16:25:26 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 16:25:26 2026 -0700"
      },
      "message": "Merge \"Fix baseline golden directory resolution in visual regression plugin under CI sandboxing\""
    },
    {
      "commit": "a78b6ac9f83a0d81164dcce5e262c2d879afd296",
      "tree": "9c7d11527d1d6ce04d2261e41e63acca2d78f969",
      "parents": [
        "b33446edb70df95ec3352905b5056fae23748167"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 17:50:24 2026 +0000"
      },
      "committer": {
        "name": "Sam Saccone",
        "email": "samccone@google.com",
        "time": "Tue May 12 16:19:25 2026 -0700"
      },
      "message": "Fix baseline golden directory resolution in visual regression plugin under CI sandboxing\n\nWhen web-test-runner executes inside a CI Tryjob wrapper (like\nkitchen-checkout or Bazel sandboxing), the process current working\ndirectory (PWD) is set to the repo root rather than the polygerrit-ui\nsubdirectory.\n\nBecause visualRegressionPlugin previously lacked baseDir, it evaluated\ngolden image paths relative to PWD. In CI sandboxes, this caused the\nplugin to look for goldens in\n/b/s/w/ir/x/w/rc/checkout/screenshots/baseline/Chromium/, which crashed\nthe test runner immediately with exit code 1 before running any tests.\n\nThis change configures baseDir unconditionally relative to\nimport.meta.url in web-test-runner.config.mjs, ensuring the visual\nregression plugin locates golden images perfectly across all CI\nsandboxing environments\n\nGoogle-bug-id: b/510899910\nRelease-Notes: skip\nChange-Id: Iad2c014242b779aeee69a65a4f37becc1259f743\n"
    },
    {
      "commit": "15089a9d33e75cae29d6491685b47e9bc11fa738",
      "tree": "3377fa9cbd5e814cb7224d22e69807502ffd4266",
      "parents": [
        "86589f01d918d891a71d61e9b892febd1d7596e7",
        "03c06d32982e81a3a0fd98ad0576bc11e5496b70"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 15:16:43 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 15:16:43 2026 -0700"
      },
      "message": "Merge \"Fix google.protobuf.Duration canonical JSON encoding in resultdb-reporter.mjs\""
    },
    {
      "commit": "03c06d32982e81a3a0fd98ad0576bc11e5496b70",
      "tree": "abd74ed7fcb9330a3a1a769d5e2d7dbe42f35c92",
      "parents": [
        "b33446edb70df95ec3352905b5056fae23748167"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 17:50:24 2026 +0000"
      },
      "committer": {
        "name": "Andrew Dorsett",
        "email": "andrewdorsett@google.com",
        "time": "Tue May 12 15:16:15 2026 -0700"
      },
      "message": "Fix google.protobuf.Duration canonical JSON encoding in resultdb-reporter.mjs\n\nWhen posting test results to ResultSink via JSON over HTTP pRPC, the\nResultSink Go server expects google.protobuf.Duration fields to be\ncanonical proto3 strings ending in \u0027s\u0027 (e.g. \u00271.123s\u0027).\n\nBecause resultdb-reporter.mjs previously sent duration as an object {\nseconds, nanos }, ResultSink rejected the HTTP payload during test runs.\n\nThis change updates resultdb-reporter.mjs to format duration fields as\ncanonical proto3 strings, ensuring all screenshot test results and image\nartifacts successfully stream to ResultDB\n\nupdated: May 12th, 2026\n\nGoogle-bug-id: b/510899910\nRelease-Notes: skip\nChange-Id: I8119177f8451e54e88d10abac28605f267eef004\n"
    },
    {
      "commit": "86589f01d918d891a71d61e9b892febd1d7596e7",
      "tree": "37bb763d1d3b53e15e124e425f547b7e9cfd9628",
      "parents": [
        "e7cd7f77d7a51a727b432841396e0606bb061362"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "klingarkar@nvidia.com",
        "time": "Tue May 12 12:48:21 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 12:48:21 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027master\u0027\n  to bdf6d450db1a3524ed48d5d66801396300c43492\n  - Support configurable git binary path for SSH remotes\n    \n    Some SSH destinations may not expose \u0027git\u0027 on the non-interactive\n    shell\u0027s PATH, causing \u0027create project\u0027 and \u0027update head\u0027 operations\n    to fail. Add a new \u0027remote.NAME.gitPath\u0027 config option that lets\n    admins provide the absolute path to the \u0027git\u0027 binary on the remote\n    host.\n    \n    Change-Id: I01e32cff5240cb55cf9e0fc0539344b340361ac4\n    "
    },
    {
      "commit": "e7cd7f77d7a51a727b432841396e0606bb061362",
      "tree": "a5222c006e8880d5b9a1964e3f5eb3f39bdf28d3",
      "parents": [
        "f1e8b4df5139e030c6cbf0dd63b0cac11da2411a",
        "5545ae630675b9d53d8b0d0fb150dfb2daf940ec"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 10:56:33 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 10:56:33 2026 -0700"
      },
      "message": "Merge \"Fix screenshot directory resolution under Bazel CI sandboxing in resultdb-reporter.mjs\""
    },
    {
      "commit": "5545ae630675b9d53d8b0d0fb150dfb2daf940ec",
      "tree": "6dbdbf7c1c7587ed0682d5cfec1778002ebb037f",
      "parents": [
        "b33446edb70df95ec3352905b5056fae23748167"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 17:50:24 2026 +0000"
      },
      "committer": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 10:56:06 2026 -0700"
      },
      "message": "Fix screenshot directory resolution under Bazel CI sandboxing in resultdb-reporter.mjs\n\nWhen web-test-runner executes inside a CI Tryjob wrapper (like\nkitchen-checkout or Bazel sandboxing), the process current working\ndirectory (PWD) is set to the repo root rather than the polygerrit-ui\nsubdirectory.\n\nBecause getExistingDir(\u0027screenshots/Chromium/failed\u0027) previously\nevaluated paths relative to PWD, fs.existsSync() returned false in CI\nsandboxes where screenshots reside in\npolygerrit-ui/screenshots/Chromium/failed/.\n\nThis change updates resultdb-reporter.mjs to resolve the screenshots\ndirectory unconditionally relative to the absolute path of\nimport.meta.url, ensuring robust and universal side-by-side screenshot\nuploading across all Tryjob environments.\n\nGoogle-bug-id: b/510899910\nRelease-Notes: skip\nChange-Id: I2c1b034781de5c0fbfeae951102f06182816d2b0\n"
    },
    {
      "commit": "f1e8b4df5139e030c6cbf0dd63b0cac11da2411a",
      "tree": "29509c00fa8622eeca4ec3812ce8b236a985d66b",
      "parents": [
        "abeb086c5a1f04b551d07433d1516616137d7f6c",
        "63629e1e21c70e446cbabc01befd46f9827b15a9"
      ],
      "author": {
        "name": "Laura Hamelin-Owens",
        "email": "haowl@google.com",
        "time": "Tue May 12 10:13:53 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 10:13:53 2026 -0700"
      },
      "message": "Merge \"polygerrit: Expose text selection context via deferred getter\""
    },
    {
      "commit": "abeb086c5a1f04b551d07433d1516616137d7f6c",
      "tree": "b1a4c4317038e365d05f63c1f8551dc5b268bbc9",
      "parents": [
        "daec5aaae24950ff3c75b5b8e60148d974ada89c",
        "7e92eae5777f368a060e1a29905aae740983bf40"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@oss.qualcomm.com",
        "time": "Tue May 12 08:44:45 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 08:44:45 2026 -0700"
      },
      "message": "Merge \"Fix link in doc\""
    },
    {
      "commit": "daec5aaae24950ff3c75b5b8e60148d974ada89c",
      "tree": "2ba5c65b0d03e7b344ad00da3708f1c0cd823598",
      "parents": [
        "a8b93b05d619aa6857dbbfc44538b855001a891e",
        "b33446edb70df95ec3352905b5056fae23748167"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 08:33:09 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 08:33:09 2026 -0700"
      },
      "message": "Merge \"Support uploading dimension mismatch and side-by-side screenshot artifacts to ResultDB\""
    },
    {
      "commit": "b33446edb70df95ec3352905b5056fae23748167",
      "tree": "f69fb9c2dea85cef1836a214fbcf95abc7d65558",
      "parents": [
        "9141240235d52c75e27ad95bbfe8825802efc56e"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 02:54:57 2026 +0000"
      },
      "committer": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 08:32:40 2026 -0700"
      },
      "message": "Support uploading dimension mismatch and side-by-side screenshot artifacts to ResultDB\n\nWhen a screenshot test fails due to a dimension mismatch (e.g., the\nheight of a component changed), @web/test-runner-visual-regression fails\nbefore pixelmatch and outputs \"Screenshot is not the same width and\nheight as the baseline\".\n\nBecause the error message does not contain \"Visual diff failed\" and no\ndiff image is generated, resultdb-reporter.mjs previously ignored these\nfailures.\n\nFurthermore, on Linux CI bots, the screenshot directory is capitalized\nas \"screenshots/Chromium/failed/\", which requires case-insensitive\nhandling.\n\nThis change updates resultdb-reporter.mjs to extract artifact uploading\ninto clean, modular helper functions that inspect\nscreenshots/Chromium/failed/ (and lowercase chromium) when a visual diff\nfailure or dimension mismatch occurs, match the failing test name to the\nactual screenshot file, and upload both the actual screenshot and\nbaseline screenshot to ResultDB so they render side-by-side inline in\nGerrit check summaries.\n\nGoogle-bug-id: b/510899910\nRelease-Notes: skip\nChange-Id: Ied3a153dce84676d45745011b12b20210243cf32\n"
    },
    {
      "commit": "a8b93b05d619aa6857dbbfc44538b855001a891e",
      "tree": "3f9cae551a80cbc6aeefe3831647672f369b59d6",
      "parents": [
        "3d0c9fb1b023855c8bbcf57e15fb74ca6dd224f8",
        "e48cb495d466aeaf03d9fd5f941a50a40952d972"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Tue May 12 08:16:43 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 12 08:16:43 2026 -0700"
      },
      "message": "Merge \"Refactor gr-change-view-integration-shared-styles to support both Polymer and Lit\""
    },
    {
      "commit": "3d0c9fb1b023855c8bbcf57e15fb74ca6dd224f8",
      "tree": "a0660195e2f8e9dc1784d6c771ed58edc94265c1",
      "parents": [
        "1d1715546ac9dc4ff287425ace48f0ecbdc0a4fe"
      ],
      "author": {
        "name": "nitzan",
        "email": "nitzan@google.com",
        "time": "Tue May 12 13:28:02 2026 +0000"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Tue May 12 06:50:25 2026 -0700"
      },
      "message": "Fix linter findings in AccountProtoConverterTest\n\nChange-Id: I598c675807905b7ad984e4e59348746429dc59df\nRelease-Notes: skip\n"
    },
    {
      "commit": "e48cb495d466aeaf03d9fd5f941a50a40952d972",
      "tree": "922013f5eb26cb95e42ef0806451099f92edb00a",
      "parents": [
        "1d1715546ac9dc4ff287425ace48f0ecbdc0a4fe"
      ],
      "author": {
        "name": "milutin",
        "email": "milutin@google.com",
        "time": "Tue May 12 12:07:49 2026 +0000"
      },
      "committer": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Tue May 12 15:06:09 2026 +0200"
      },
      "message": "Refactor gr-change-view-integration-shared-styles to support both Polymer and Lit\n\nThis CL enables a transitional state for the Gerrit Lit migration by\nproviding two concurrent solutions for change view integration styles:\n1. A Lit CSS tagged template literal export\n(changeViewIntegrationStyles) for new Lit-based plugins/themes. 2. The\nlegacy Polymer dom-module registration for existing Polymer-based\nplugins/themes.\n\nThis coexistence allows us to test the new Lit solution safely. Once we\nverify that the Lit implementation works as expected and all\nthemes/plugins are migrated, the Polymer backward compatibility layer\nwill be removed.\n\nExposes LitElement, html, css on window for plugins.\n\nRelease-Notes: skip\nGoogle-Bug-Id: b/267985258\nChange-Id: I78a33fc80cceb9d3b2411e05f965c1ea63d66ab3\n"
    },
    {
      "commit": "1d1715546ac9dc4ff287425ace48f0ecbdc0a4fe",
      "tree": "f37be756d1210bff9e46bed95e7e138a8a8d221a",
      "parents": [
        "06a46bdce88cac0000eb371fbce0d351283b56f3"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Mon May 11 23:47:10 2026 -0700"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Mon May 11 23:47:10 2026 -0700"
      },
      "message": "Move Account[Indexer|IndexRewriter] bindings to the NoteDB module\n\nThe bindings for AccountIndexer and AccountIndexRewriter are now\nprovided in AccountNoteDbWriteStorageModule, as account indexing is\ndependent on the storage system.\n\nGoogle-Bug_Id: b/430083833\nRelease-Notes: skip\nChange-Id: I18c88ed6bf0d8ca1bbedd27f9aeb1c312deaae65"
    },
    {
      "commit": "06a46bdce88cac0000eb371fbce0d351283b56f3",
      "tree": "3a7dd545e467cca9b395ffa7a5e26cfaa23d1803",
      "parents": [
        "9141240235d52c75e27ad95bbfe8825802efc56e"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon May 11 11:05:26 2026 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon May 11 11:10:08 2026 +0200"
      },
      "message": "gerrit_plugin: Remove provided_deps from API\n\nSupport for provided_deps was removed in bazlets in change I82bc541705.\n\nRemove the attribute here as well to keep the APIs in sync. Otherwise,\ngerrit would still accept and forward provided_deps, even though it is\nno longer supported downstream.\n\nRelease-Notes: skip\nChange-Id: I0d658773d4de35f73a725daf35ef5068ebad0cef\n"
    },
    {
      "commit": "9141240235d52c75e27ad95bbfe8825802efc56e",
      "tree": "8d006afc91890477420dc73aa9bcc75f1ee48f6f",
      "parents": [
        "f7d2cc1ebd46630cbffec40981dfea2786eb76d2",
        "e2d5337c97525f5903571c74a6f12df2d6be0320"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Fri May 08 14:55:59 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 08 14:55:59 2026 -0700"
      },
      "message": "Merge \"Display AI-powered checks with dedicated styling.\""
    },
    {
      "commit": "e2d5337c97525f5903571c74a6f12df2d6be0320",
      "tree": "91217a22def055f8e93dcf7f726f499271c8d35e",
      "parents": [
        "f9b23012910016277a970cea36c38dab7123d45c"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Fri May 08 14:53:36 2026 -0700"
      },
      "committer": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Fri May 08 14:53:36 2026 -0700"
      },
      "message": "Display AI-powered checks with dedicated styling.\n\nThis change introduces a new visual representation for check runs and results that are marked as AI-powered. The `iconFor` utility function is updated to return an \"ai\" icon when `isAiPowered` is true. \n\nNote: this means the specific info/warning/error styling for AI findings is gone, but the actions persist for what those actions are.\n\nGoogle-Bug-Id: b/511273483\nRelease-Notes: skip\nChange-Id: I2005563c8c111bf508fc803757addbb212013f64"
    },
    {
      "commit": "f7d2cc1ebd46630cbffec40981dfea2786eb76d2",
      "tree": "9e4f6bd5fa520ae1c0cc58eda4ff5d3590694402",
      "parents": [
        "f68a008fab1b45713db5a87ff889bc6727923fcb"
      ],
      "author": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Fri May 08 13:03:17 2026 -0700"
      },
      "committer": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Fri May 08 13:03:17 2026 -0700"
      },
      "message": "Update checks pleaseFixMessage to avoid duplicating summary and message.\n\nThe generated \"Please fix\" message now only includes the result\u0027s\nmessage once if the summary and message are identical. Otherwise, it\nincludes both the summary and the message, separated by a double\nnewline.\n\nGoogle-Bug-Id: b/511010429\nRelease-Notes: skip\nChange-Id: I2173c08f9c73901ac40cb861acc3cc6f64899bd3"
    },
    {
      "commit": "f68a008fab1b45713db5a87ff889bc6727923fcb",
      "tree": "297145b8bf30c18957a3de8ccbefd00e425f2ace",
      "parents": [
        "404c780362985e61e00dbedbd1a0250f03fcd9e8",
        "72b537372a93c21d1ae4f9c44242ad9d68d1c43a"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Fri May 08 10:24:26 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 08 10:24:26 2026 -0700"
      },
      "message": "Merge \"Add ResultDB reporter for Web Test Runner screenshot tests\""
    },
    {
      "commit": "72b537372a93c21d1ae4f9c44242ad9d68d1c43a",
      "tree": "578c3b47f7ab6b372236ddc0533a00de0c26802c",
      "parents": [
        "173a02580462039b726e71d7320888f01439d485"
      ],
      "author": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Thu May 07 16:48:18 2026 -0700"
      },
      "committer": {
        "name": "Becky Siegel",
        "email": "beckysiegel@google.com",
        "time": "Fri May 08 10:24:09 2026 -0700"
      },
      "message": "Add ResultDB reporter for Web Test Runner screenshot tests\n\nTranslates the Jest ResultDB reporter logic into a custom Web Test Runner\nreporter (resultdb-reporter.mjs) to ensure visual diff artifacts are\nproperly uploaded and linked inline in summaries when tests fail.\n\nSpecifically:\n1. Detects LUCI_CONTEXT to locate the Result Sink.\n2. Flattens nested Mocha test suites.\n3. Extracts failing visual diff PNGs, encodes them as base64, and uploads them as ResultDB artifacts.\n4. Integrates the reporter into web-test-runner.config.mjs.\n\nGoogle-bug-id: 510899910\nRelease-Notes: skip\nTAG\u003dagy\nCONV\u003d631fd7bd-986c-4570-924c-9457a108c247\nChange-Id: I553dee6f774fbaa6c65fc19a8c1620274557b29f\n"
    },
    {
      "commit": "404c780362985e61e00dbedbd1a0250f03fcd9e8",
      "tree": "8aa3b22869d82bb5a658e61165aacfbca9d7cd79",
      "parents": [
        "8efc9f1b569828da7480b123e24ac7c89f004fc3",
        "55e23ea2bcd1c4f3cdb8030b9259f8acb94ae7f5"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri May 08 01:30:05 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 08 01:30:05 2026 -0700"
      },
      "message": "Merge \"Add that CMs are elected in June too\""
    },
    {
      "commit": "55e23ea2bcd1c4f3cdb8030b9259f8acb94ae7f5",
      "tree": "c80baf2d65b6d82cbb30d2912afcfd463a4176e9",
      "parents": [
        "173a02580462039b726e71d7320888f01439d485"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu May 07 21:39:49 2026 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri May 08 01:28:45 2026 -0700"
      },
      "message": "Add that CMs are elected in June too\n\nCurrently dev-process only lists ESC members as being elected, but\ncommunity managers are elected at the same time too.\n\nRelease-Notes: skip\nChange-Id: Ib7a343181257728981da3764eafebd970d093bd4\n"
    },
    {
      "commit": "63629e1e21c70e446cbabc01befd46f9827b15a9",
      "tree": "b766c58ea22c39a24d7d261c87c414ed88135437",
      "parents": [
        "173a02580462039b726e71d7320888f01439d485"
      ],
      "author": {
        "name": "Laura Hamelin",
        "email": "haowl@google.com",
        "time": "Thu May 07 21:27:41 2026 +0000"
      },
      "committer": {
        "name": "Laura Hamelin",
        "email": "haowl@google.com",
        "time": "Fri May 08 00:40:53 2026 +0000"
      },
      "message": "polygerrit: Expose text selection context via deferred getter\n\nBypasses Shadow DOM event retargeting constraints by exposing a deferred\nclosure on the selection action box instead of relying on direct\nproperty access on the event target.\nPassing the closure via the CustomEvent\u0027s detail payload ensures that\nselection metadata (path, side, range, text) can be lazily and safely\nresolved from any level of the DOM hierarchy.\n\nGoogle-Bug-Id: b/505471810\nRelease-Notes: Expose structured text selection context globally\nChange-Id: If0593a0b9c8499813bca49cd9bbdc3fd87e5e168\n"
    },
    {
      "commit": "8efc9f1b569828da7480b123e24ac7c89f004fc3",
      "tree": "c17414e102de5bed1f560f86d7e6113c8f9ea475",
      "parents": [
        "173a02580462039b726e71d7320888f01439d485"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Apr 27 22:46:51 2026 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu May 07 21:46:06 2026 +0100"
      },
      "message": "Test that change-index deletion events are fired without project name\n\nThis is done in preparation for future work, where the project name will\nbe added to the event.\n\nRelease-Notes: skip\nChange-Id: Ic69ee6935633bab175190d736c9c402d392a6fbf\n"
    },
    {
      "commit": "173a02580462039b726e71d7320888f01439d485",
      "tree": "220e64d48fc4aab56dc8a9101ce16070bb0a18aa",
      "parents": [
        "bff930c2f5787adc80bc886604254e389196cb66"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "mfick@nvidia.com",
        "time": "Thu May 07 11:26:13 2026 -0700"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "mfick@nvidia.com",
        "time": "Thu May 07 11:28:28 2026 -0700"
      },
      "message": "Delete the obsolete contrib/git-exproll.sh script\n\nThis script was a neat idea, but it is has been obsolete for several\nyears now. Use the geometric features of git repack now for a similar\nand mostly better approach.\n\nRelease-Notes: Skip\nChange-Id: Ib7f50b9dbf65c402fb36d44ac19684df29268249\n"
    },
    {
      "commit": "bff930c2f5787adc80bc886604254e389196cb66",
      "tree": "d64719b014e9420e0b71ed2d2786d343148f2c55",
      "parents": [
        "e4fbb44b8e1cb54ed8e1e8a6b108b5567188b1b9"
      ],
      "author": {
        "name": "Erik Flodin",
        "email": "erik@flodin.me",
        "time": "Thu May 07 19:52:28 2026 +0200"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 07 10:52:28 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/commit-message-length-validator from branch \u0027master\u0027\n  to 1e08c1ef59b4c812ee046746869e0debc7569d9e\n  - Use validation message enum when creating messages\n    \n    Otherwise \"warning:\" is printed after \"commit xyz:\" when pushing and\n    then it isn\u0027t colorized by git.\n    \n    Change-Id: I6c492fb081fc7697aa61125a28359a126051be0f\n    "
    },
    {
      "commit": "e4fbb44b8e1cb54ed8e1e8a6b108b5567188b1b9",
      "tree": "32902f1d2db88ef706aa260c5b87040cde297d6b",
      "parents": [
        "641275a0198a139ed29f565330674984e41ba856",
        "a7d45fcbd4574b9096c7eda75b687619d8db5cec"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Thu May 07 08:02:30 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 07 08:02:30 2026 -0700"
      },
      "message": "Merge \"Update java-prettify to 1c0ef60424\""
    },
    {
      "commit": "a7d45fcbd4574b9096c7eda75b687619d8db5cec",
      "tree": "cd09a47612dcc6c33ef5485663a38589b4985d33",
      "parents": [
        "7e0748ef380a15f65a23e1b2d141f325e883fe99"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 07 08:53:24 2026 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 07 08:02:00 2026 -0700"
      },
      "message": "Update java-prettify to 1c0ef60424\n\n1c0ef60 bazel: Load java rules from @rules_java instead of built-ins\n\nRelease-Notes: skip\nChange-Id: I29285ab6409a206c76be5a9bc22d915028c91b39\n"
    },
    {
      "commit": "641275a0198a139ed29f565330674984e41ba856",
      "tree": "0ca35a97bb31aae77448206246bf96c7719be829",
      "parents": [
        "70c63462f942c4267a39fa38f0c4dd639eff8a22",
        "a33833e8ef94a6658fb6d80ed66bd09d328f81d2"
      ],
      "author": {
        "name": "Helmut Januschka",
        "email": "helmut@januschka.com",
        "time": "Thu May 07 06:19:52 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 07 06:19:52 2026 -0700"
      },
      "message": "Merge \"Add copy-to-clipboard button for email in account hovercard\""
    },
    {
      "commit": "a33833e8ef94a6658fb6d80ed66bd09d328f81d2",
      "tree": "bd9d21d686b7aa6da922c52dd5a1838e4ddc2ad1",
      "parents": [
        "60edd4788a4e664cca9e1e6414298639978ae957"
      ],
      "author": {
        "name": "Helmut Januschka",
        "email": "helmut@januschka.com",
        "time": "Fri Apr 03 23:32:01 2026 +0200"
      },
      "committer": {
        "name": "Helmut Januschka",
        "email": "helmut@januschka.com",
        "time": "Thu May 07 15:00:30 2026 +0200"
      },
      "message": "Add copy-to-clipboard button for email in account hovercard\n\nWhen hovering over a reviewer or CC chip, the account hovercard\nshows the user\u0027s email address. Previously, copying the email\nrequired manually selecting the text.\n\nThis change adds a small copy icon next to the email address\nthat copies it to the clipboard with a single click, and shows\na confirmation toast. This is useful when composing reply\nmessages that reference specific reviewers by email.\n\nGoogle-Bug-Id: b/none\nRelease-Notes: Add copy-to-clipboard button for email in account hovercard\nChange-Id: Idcd5db4eb534d455e90e3f3d284f92cc25a22d98\n"
    },
    {
      "commit": "70c63462f942c4267a39fa38f0c4dd639eff8a22",
      "tree": "3f3fd05be6f8bee167138288922fb0373f3e1ac1",
      "parents": [
        "7e0748ef380a15f65a23e1b2d141f325e883fe99",
        "6242d8803f6fb6fae350b623d22a9572856d6880"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Thu May 07 00:21:28 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 07 00:21:28 2026 -0700"
      },
      "message": "Merge \"Add GERRIT_BACKEND_FEATURE_RESTRICT_BRANCH_PERMISSIONS constant\""
    },
    {
      "commit": "7e0748ef380a15f65a23e1b2d141f325e883fe99",
      "tree": "8947cdf8897e045cded72e1ffd5eec7290aa1ad5",
      "parents": [
        "05c4ad84f97d8dc4e77927229a7375d8dc5d46fb"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed May 06 21:10:49 2026 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed May 06 21:16:11 2026 +0200"
      },
      "message": "Bump marked version to 18.0.3\n\nThis is a preparation change for updating to aspect_rules_js 3.x.\n\nStarting with aspect_rules_js 3.0.0, \u0027*.md\u0027 files are excluded by\ndefault. That also strips LICENSE.md, which we need for license\ncollection.\n\nUpdate marked to 18.0.3, where the upstream license file was renamed\nfrom LICENSE.md to LICENSE, and adjust the license collection metadata\naccordingly.\n\nSee [1] and [2] for more details.\n\n[1] https://github.com/aspect-build/rules_js/issues/2806\n[2] https://github.com/markedjs/marked/issues/3949\n\nRelease-Notes: skip\nChange-Id: I1b454e95e3e2ce15e27c01f181e43f94883c60af\n"
    },
    {
      "commit": "05c4ad84f97d8dc4e77927229a7375d8dc5d46fb",
      "tree": "ae1aab3617675e7f658ef2bf01dec151065d37d5",
      "parents": [
        "2d3473f624ab1f3a0003871bc8b96081fbb61c44",
        "0be2f1636243be27ee50461ca2b026fbbe524ad1"
      ],
      "author": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Wed May 06 09:25:25 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 06 09:25:25 2026 -0700"
      },
      "message": "Merge \"Make primary actions in gr-change-actions use primary button styling.\""
    },
    {
      "commit": "2d3473f624ab1f3a0003871bc8b96081fbb61c44",
      "tree": "35268b6f080fddafbc30c06b3bb2e42fa34673b4",
      "parents": [
        "93e7a6e6a67235b94cd617731fdc4fffba89e217",
        "4a456d53c27c4794b432bae08c8038b170a2d40d"
      ],
      "author": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Tue May 05 17:01:41 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 05 17:01:41 2026 -0700"
      },
      "message": "Merge \"Instrument telemetry for AI Review Agent chat requests\""
    },
    {
      "commit": "93e7a6e6a67235b94cd617731fdc4fffba89e217",
      "tree": "a014ec55d34f41d6127322eb65a0120dce77fd35",
      "parents": [
        "dc1259e0f16cb5105727011306b82fba462725bb"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "klingarkar@nvidia.com",
        "time": "Tue May 05 15:09:39 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 05 15:09:39 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027master\u0027\n  to 87a975dd6a62d383fc2d3914162365976123e1c2\n  - Fix --remote option to replication start\n    \n    Declaring --remote as a \u0027Set\u003cString\u003e\u0027 field trips args4j\u0027s\n    Setters.create(), which only treats List, Map, and Arrays as\n    multi-value containers. Use a method-based @Option that adds\n    each --remote value into a Set\u003cString\u003e to work around this.\n    \n    Change-Id: Ic4b4242f3c9ac05b822f2b62141ba34270619f70\n    "
    },
    {
      "commit": "4a456d53c27c4794b432bae08c8038b170a2d40d",
      "tree": "bf04285fdb21343f792285fafe8000c8e7ff3183",
      "parents": [
        "dc1259e0f16cb5105727011306b82fba462725bb"
      ],
      "author": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Tue May 05 22:32:12 2026 +0200"
      },
      "committer": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Tue May 05 22:32:12 2026 +0200"
      },
      "message": "Instrument telemetry for AI Review Agent chat requests\n\nStarts a timer using the standard reporting service whenever an AI\nchat request is initiated. Stops the timer and reports latency\nwith metadata on successful completion. On failure, records both\nthe latency and an interaction log containing the error description.\n\nRelease-Notes: skip\nChange-Id: Ie1004373d3cedf8581dae72d7fe52073361f2363\n"
    },
    {
      "commit": "6242d8803f6fb6fae350b623d22a9572856d6880",
      "tree": "312cf5a58d0130eb6e0f67068fc51e0b3a3302c8",
      "parents": [
        "dc1259e0f16cb5105727011306b82fba462725bb"
      ],
      "author": {
        "name": "Josh Brown",
        "email": "sjoshbrown@google.com",
        "time": "Tue May 05 13:09:27 2026 -0700"
      },
      "committer": {
        "name": "Josh Brown",
        "email": "sjoshbrown@google.com",
        "time": "Tue May 05 13:11:59 2026 -0700"
      },
      "message": "Add GERRIT_BACKEND_FEATURE_RESTRICT_BRANCH_PERMISSIONS constant\n\nRelease-Notes: skip\nChange-Id: I143ff200cef8ad276618f531ddb8bd705c224147\n"
    },
    {
      "commit": "dc1259e0f16cb5105727011306b82fba462725bb",
      "tree": "7f53701c171356a9a9c2ef5f560c49604d1b7240",
      "parents": [
        "f9b23012910016277a970cea36c38dab7123d45c",
        "c3be6dbb51406c56009239dc97d114099ce376fe"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Tue May 05 01:13:14 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 05 01:13:14 2026 -0700"
      },
      "message": "Merge \"Add Accounts#randomNIds method\""
    },
    {
      "commit": "c3be6dbb51406c56009239dc97d114099ce376fe",
      "tree": "21a8551f0c9565ddd370c72b064fab46d565e089",
      "parents": [
        "6526eeb32bd2cb324f0474e9dae4f0766c037d38"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Mon May 04 15:31:24 2026 +0000"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Tue May 05 01:09:25 2026 -0700"
      },
      "message": "Add Accounts#randomNIds method\n\nThis method is useful for service initializations, which only require\nthe knowledge of \"any accounts exist\".\n\nThe default implementation ensures that this method works on any Accounts implementation. However, storage-based optimizations are possible.\n\nChange-Id: Icf188e458560b1860bad40dd26b829b206fe827f\nRelease-Notes: skip\nGoogle-Bug-Id: b/299605283\n"
    },
    {
      "commit": "f9b23012910016277a970cea36c38dab7123d45c",
      "tree": "57c0ed8a2bcfc598d9714510f7a8d6362b69649d",
      "parents": [
        "6526eeb32bd2cb324f0474e9dae4f0766c037d38",
        "dba7835b23b3cd20923fe06b3dbed82482e47cab"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@oss.qualcomm.com",
        "time": "Mon May 04 09:01:52 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 04 09:01:52 2026 -0700"
      },
      "message": "Merge changes I71bfdeb0,I4afd321d,I75d1c289\n\n* changes:\n  Avoid user factory call when no group constraint is present\n  Break early when a matching label vote is found without count constraint\n  Avoid post-filtering for plain label index queries\n"
    },
    {
      "commit": "6526eeb32bd2cb324f0474e9dae4f0766c037d38",
      "tree": "045e34e982fd2689b3cca57373cab29bcbd51321",
      "parents": [
        "f32c9d3b5ee3efc7349c00843c72d2527dafe446",
        "96b01959ff23e244a7394c7314c040636429b24e"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Mon May 04 04:02:59 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 04 04:02:59 2026 -0700"
      },
      "message": "Merge \"gr-diff-mode-selector: Use fireAlert to tell users that the diff view has changed\""
    },
    {
      "commit": "f32c9d3b5ee3efc7349c00843c72d2527dafe446",
      "tree": "2fdc3bc80c53d173eb13f84e102a9b6198122173",
      "parents": [
        "a9274deb744b92ba180dd1c93f6a4eacb86fcc4f"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Apr 24 11:17:18 2026 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon May 04 00:25:02 2026 -0700"
      },
      "message": "Mention Copyright header in AGENTS.md file\n\nRelease-Notes: skip\nChange-Id: If46f612bb3930db38a4095632f7cbe49d8dab50a\n"
    },
    {
      "commit": "a9274deb744b92ba180dd1c93f6a4eacb86fcc4f",
      "tree": "0052c14b28b26a546ac2185d6ca9b94797f50829",
      "parents": [
        "0dc732e478059726ea6820e5745a13b15b34edc4",
        "b7cbd042bc3cd707365a8c34a6f8fb3a0a6031c7"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@gmail.com",
        "time": "Sun May 03 09:21:31 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun May 03 09:21:31 2026 -0700"
      },
      "message": "Merge \"Update JGit to 067521170\""
    },
    {
      "commit": "b7cbd042bc3cd707365a8c34a6f8fb3a0a6031c7",
      "tree": "c9efeae1209dbb6b9077394b7a1881ced5f8941f",
      "parents": [
        "e41ff7bba09319e9070023969bc06894b1d44d09"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Apr 30 16:58:03 2026 +0200"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Sun May 03 09:20:57 2026 -0700"
      },
      "message": "Update JGit to 067521170\n\nand update the following dependencies to ensure Gerrit uses the same\nversions as JGit 067521170:\n- bouncycastle to 1.84\n- bytebuddy to 1.18.8\n- mockito to 5.23.0\n- tukaani-xz to 1.12\n\n$ git log --oneline --no-merges d95b54f60...067521170\na11c51984 gitrepo: update git-repo URL in javadocs\n804e29be9 RefDirectory#refreshPathToLooseRef: also refresh loose ref itself\nf23d73e2c RefDirectory#refreshPathToLooseRef: also refresh loose ref itself\na17c4aa42 ReceivePack: Add missing @since tag for new API method\n08212048e TreeWalkConnectivityChecker: Support non-commit objects in refs\n23bec76f5 ReceivePack: make getClientShallowCommits protected\nc3c676c08 DfsObjDatabase: Make createDfsPackFile public\nebf860ed6 DfsPackCompactor: add a pre-commit hook to plug midx calculation\n02b34dc85 Update bouncycastle to 1.84\nb7bd2124c [ssh] Reject host certificates if the certified key is revoked\n377039739 Add new TreeWalkConnectivityChecker\nd89e45b2e Make the PackParser.needNewObjectIds method public\nf9d5dcfb0 orbit: update org.apache.ant to 1.10.17.v20260410-1000\nce36c6cbe MidxMetadataReader: add private constructor and adjust method visibility\ndb23defdc MidxWriter: Write to tmp files and use atomic rename to commit\nb137d4458 Instrument ReceivePack to track time spent in pre-receive hooks\n8fe0aced6 Prepare 7.7.0-SNAPSHOT builds\na71c7e21e JGit v7.7.0.202604061937-m1\n6b47c5617 Update jetty to 12.1.8\n5f54bc05a Update bytebuddy to 1.18.8\nd8418048b push: Report fatal server errors during pack writing\nd54cb2f2b Revert \"push: Report fatal server errors during pack writing\"\n3223a5174 PushConnectionTest: Introducing the limitPackSize() test\n98a6a43dc MidxWriter: Do not accept midx to build new midx\nb60640724 PackDirectory: Integrate Multi-Pack Index (MIDX) support\n3f44108ee PackMidx: A Pack subclass that uses midx\n5683cfe78 PackBitmapIndexRemapper: Throw exception with details in size mismatches\n55890f303 Bazel: bump to 8.6.0 and switch to pure Bzlmod\n8b92307c8 MidxMetadataReader: Helper to read only selected fields in the midx\nd7c138341 WindowCursor/Pack: Move bitmap coverage calculation to the pack\nd72c61b6c [version.sh] Don\u0027t use the pager for the git diff command\n06d66eb95 PackBitmapIndexRemapper: Do not remap if the object order is the same\n7aaf90948 DfsMidxWriter: Do not accept midx as input to build midx\n476d7376d javadoc: Mention midx order in the javadoc\n0b6d03734 MidxPackList: getAllPlainPacks returns object-lookup order\na55ad1a41 MidxPackListTest: Use fake packs for easier test setup\n5f55a84f3 Slightly reword prunePackExpire docs\n4f82a88d3 MultiPackIndex: write midx bitmaps from cli tool\n39deeeb3c MidxWriter: write bitmaps with the midx\n856e29f25 Update org.tukaani:xz to 1.12\n05c005ba7 Update mockito to 5.23.0\n4405ec700 Update Jetty to 12.1.7\n49dd4f22e Update bytebuddy to 1.18.7\n559158a35 Update commons-logging to 1.3.6\n9ab47423c Add jgit-4.40 target platform for next simrel 2026-06\n0e8ee2ab0 Use releases p2 repo in jgit-4.39 target platform\n5ad748aee Add timing metrics to ReceivedPackStatistics\n161a68e03 MultiPackIndexWriter: typo in logging (is chunks, not chuncks)\n6f8293956 Add CLAUDE.md to gitignore file\nc0d5111e9 MultiPackIndexWriter: Encode checksum in base64\n100646622 DfsMidxWriter: Use the input data instead of rereading the midx\na20f4d2d2 DfsMidxWriter: Add a param to toggle bitmap writing\n9de1f3ce1 PullCommandTest: Remove unused variable\n1e6cb59b2 Update URL used to download artifacts from repo.eclipse.org\n1822dcaa5 Fix path of jgit artifacts in local maven repository\na47c7efff MultiPackIndexWriter: report also the checksum in the result\n46b5cf0e9 RefAdvancerWalk: Move to revwalk package\n509b72a9a pgm.MultiPackIndex: Move writing code to MidxWriter\n8236fb4ba Allow extending TernarySearchTree\n11e1fa240 MultiPackIndexWriter: Report progress writing chunks\n1dbac1bfd PackIndexMerger: Add progress monitor to the building process\n24571f682 Bump minimum dependency for Bouncy Castle to 1.83.0\n36cd34fcf Update version of last JGit release to 7.6.0.202603022253-r\n2c030eff6 DfsMidxWriter: Split writing midx and its bitmaps\n0b4b374ec MultiPackIndexLoader: report what chunk is going over size\n42f623732 Prepare 7.7.0-SNAPSHOT builds\n585de8e31 Prepare 7.6.1-SNAPSHOT builds\n86ae4bd31 DfsPackFileMidx: Pass the right pack when building single-pack midx\ne1fefa586 JGit v7.6.0.202603022253-r\ndb7dcf9ee Add AddCommand #addFilepatterns methods\n9c8ba9e35 Bazel: Pin jcl-over-slf4j to SLF4J_VERSION\n401eeaa9a Prepare 7.6.0-SNAPSHOT builds\ncf6fdba16 JGit v7.6.0.202602242313-rc1\nd4ceb3f8d Support diff3 conflict style in merges\n490ed19fc RebaseCommand: Honor the commit message cleanup configuration\na18985148 Remove the option to create \u0027blank issues\u0027 in GitHub\n577b624f6 Refactor handlePackError method to improve readability\nb2868827d PackIndexMerger: Accept a midx as input to build another midx\neff7695f0 DfsPackFileMidxNPacks: Use only the list of packs in midx order\nd85c88013 DfsMidxWriterTest: Rename to DfsMidxWriterBitmapsTest\n065980a92 Update jetty to 12.1.6\ncf1670a31 Update bytebuddy to 1.18.5\n0cc5bdb67 Update commons-codec to 1.21.0\ne73bde337 Orbit: update org.objenesis to 3.5.0\nbb5d998fd DfsMidxWriter: Pass the PackIndexMerger instead of a Map of sources\n9cebcc02a MidxIterators join: compare shifted packId\n52b8488c1 DfsPackFileMidx: Offer localIterator\n8450ee563 Prepare 7.6.0-SNAPSHOT builds\n545e1ff7d JGit v7.6.0.202602181523-m3\n250179289 PackIndexMerger: replace constructor with Builder\nda8d1a834 JGit v7.6.0.202602172005-m3\n0c99df911 MidxIterator: Add reset method\n40e6368b2 PackIndexMerger: remove rawIterator() method\n58dcc0e28 PackIndexMerge: Use deduped iterators instead of deduping while reading\nb104d8c28 PackIndexMerger: use MidxIterators instead of its own\n16e22e72a MidxIterators: Helpers around the MidxIterator\nb994eb49a Do not log packfiles moved away or pruned\n0c46d1ae4 RevWalk: abort computation of merged commits if the monitor is canceled\n\nRelease-Notes: Update JGit to 067521170\nChange-Id: Ic0897648401d62ae14b8636719f2fb2628844050\n"
    },
    {
      "commit": "96b01959ff23e244a7394c7314c040636429b24e",
      "tree": "9747b1a814cb105e10af6936a9d0a5905d9ee297",
      "parents": [
        "0dc732e478059726ea6820e5745a13b15b34edc4"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Sat May 02 09:07:00 2026 -0700"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Sat May 02 09:07:22 2026 -0700"
      },
      "message": "gr-diff-mode-selector: Use fireAlert to tell users that the diff view has changed\n\nRelease-Notes: gr-diff-mode-selector: Use fireAlert to tell users that the diff view has changed\nChange-Id: Ib62e64555800d7ddbe953afadee991fd33211e03\n"
    },
    {
      "commit": "0dc732e478059726ea6820e5745a13b15b34edc4",
      "tree": "40c56549f8754486a47fd79adbd9693f3ce8adba",
      "parents": [
        "d0c644002ba41cd55d5906c673d2459468df475e"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Apr 21 06:57:58 2026 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Fri May 01 15:33:35 2026 -0700"
      },
      "message": "Update google-java-format to 1.35.0\n\nSwitch the default google-java-format version in gjf.sh to 1.35.0,\nupdate the documented version, and reformat the affected file.\n\nRelease-Notes: skip\nChange-Id: If7d9a01fd9b7eb965d7c1682e54173e5620c0dbf\n"
    },
    {
      "commit": "d0c644002ba41cd55d5906c673d2459468df475e",
      "tree": "26156e86ce97db09f6cdf35fe1533c5884a2c4d8",
      "parents": [
        "60ac7d9a70b6d62d3b796acbb681ba85ce7bddae",
        "4a115b40116e735fae9e0c3572001429b41436f7"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@oss.qualcomm.com",
        "time": "Thu Apr 30 10:11:37 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 30 10:11:37 2026 -0700"
      },
      "message": "Merge \"Add Post Review Comment permission and seed defaults\""
    },
    {
      "commit": "60ac7d9a70b6d62d3b796acbb681ba85ce7bddae",
      "tree": "076a614eb81cd8b89f118ab23142b32d64b87904",
      "parents": [
        "e41ff7bba09319e9070023969bc06894b1d44d09",
        "3ae93d26a456aefe75869d2de91ef2b84465764b"
      ],
      "author": {
        "name": "Andrew Dorsett",
        "email": "andrewdorsett@google.com",
        "time": "Thu Apr 30 09:38:14 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 30 09:38:14 2026 -0700"
      },
      "message": "Merge \"Don\u0027t render a link element in Checks panel if no url is provided.\""
    },
    {
      "commit": "0be2f1636243be27ee50461ca2b026fbbe524ad1",
      "tree": "d23974f9d777f30229b290a9a7ef07645b63ca01",
      "parents": [
        "e41ff7bba09319e9070023969bc06894b1d44d09"
      ],
      "author": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Wed Apr 29 16:27:12 2026 -0700"
      },
      "committer": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Wed Apr 29 16:27:12 2026 -0700"
      },
      "message": "Make primary actions in gr-change-actions use primary button styling.\n\nThis change updates gr-change-actions to render UI actions marked as\n`__primary` using the primary button style, rather than always using\nlink styling. \"Quick approve\" is now designated as a primary action. The\nscreenshot tests are updated to reflect these visual changes, including\nadding a dark theme screenshot for wrapped statuses.\n\nGoogle-Bug-Id: b/507882609\nRelease-Notes: skip\nChange-Id: I929b8f41a014b9d88c9b103f2b89a1df0ecfc6b0"
    },
    {
      "commit": "e41ff7bba09319e9070023969bc06894b1d44d09",
      "tree": "3d433813a905ea7e735e8adff5798a99254e9844",
      "parents": [
        "27d6e7ec416a53b51a59320553c3b6ca56852c73",
        "07333f8530b1bc0b2baaf9638078cca514eacd82"
      ],
      "author": {
        "name": "Laura Hamelin-Owens",
        "email": "haowl@google.com",
        "time": "Wed Apr 29 10:27:01 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 29 10:27:01 2026 -0700"
      },
      "message": "Merge \"Revert \"Refactor GrSelectionActionBox to use custom menu\"\""
    },
    {
      "commit": "07333f8530b1bc0b2baaf9638078cca514eacd82",
      "tree": "0813dbbd7def86211916d01162efc3bea1321017",
      "parents": [
        "a4717b3a1359f820a92f9b6ab311ecaa72f59518"
      ],
      "author": {
        "name": "Laura Hamelin-Owens",
        "email": "haowl@google.com",
        "time": "Wed Apr 29 10:04:48 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 29 10:04:48 2026 -0700"
      },
      "message": "Revert \"Refactor GrSelectionActionBox to use custom menu\"\n\nThis reverts commit a4717b3a1359f820a92f9b6ab311ecaa72f59518.\n\nReason for revert: Broke other systems depending on this structure\n\nChange-Id: I624132889bab51e5cf91bfb22a81da35473f6c75\n"
    },
    {
      "commit": "dba7835b23b3cd20923fe06b3dbed82482e47cab",
      "tree": "c290a862ff31f20ea8da65ac0a7f0014b5b3bfbb",
      "parents": [
        "6c032697c164306864eb1ec956c35826284b2b0a"
      ],
      "author": {
        "name": "Ajay Gupta",
        "email": "ajagup@qti.qualcomm.com",
        "time": "Wed Apr 29 15:20:35 2026 +0530"
      },
      "committer": {
        "name": "Ajay Gupta",
        "email": "ajagup@qti.qualcomm.com",
        "time": "Wed Apr 29 15:20:35 2026 +0530"
      },
      "message": "Avoid user factory call when no group constraint is present\n\nGroup membership only needs to be checked when a group is specified in\nthe query. Skip the user factory lookup entirely in the common case\nwhere no group constraint is present.\n\nRelease-Notes: skip\nChange-Id: I71bfdeb01ae591f8f03a17b26436b4d1d4ec9b1f\n"
    },
    {
      "commit": "6c032697c164306864eb1ec956c35826284b2b0a",
      "tree": "14f552c749fe013e87526b342ec565af0056fd98",
      "parents": [
        "6fa439e5dccd6d3a9929df8d4355dbff4da4f330"
      ],
      "author": {
        "name": "Ajay Gupta",
        "email": "ajagup@qti.qualcomm.com",
        "time": "Wed Apr 29 15:19:40 2026 +0530"
      },
      "committer": {
        "name": "Ajay Gupta",
        "email": "ajagup@qti.qualcomm.com",
        "time": "Wed Apr 29 15:19:40 2026 +0530"
      },
      "message": "Break early when a matching label vote is found without count constraint\n\nWhen no count is specified, finding one matching vote is sufficient to\nreturn true. Stop iterating over remaining approvals at that point.\n\nRelease-Notes: skip\nChange-Id: I4afd321de2f451c6e2f3559448e426dceb8c70d0\n"
    },
    {
      "commit": "6fa439e5dccd6d3a9929df8d4355dbff4da4f330",
      "tree": "fd20ea2c6e3c33ddea2539f3e87a432d2150b8d3",
      "parents": [
        "b2de27db35c91ec8e844dfbcbe5743e532be7e19"
      ],
      "author": {
        "name": "Ajay Gupta",
        "email": "ajagup@qti.qualcomm.com",
        "time": "Sat Apr 25 08:38:37 2026 +0530"
      },
      "committer": {
        "name": "Ajay Gupta",
        "email": "ajagup@qti.qualcomm.com",
        "time": "Wed Apr 29 15:09:36 2026 +0530"
      },
      "message": "Avoid post-filtering for plain label index queries\n\nWhen a label query has no group or count constraint, the index result is\nexact — the label value and account are stored verbatim in the index.\nPost-filtering adds no correctness benefit but triggers a fallback that\nre-evaluates the full predicate tree, including branches like comment:\nthat hit NoteDB for every candidate change.\n\nAdd a new predicate type that trusts the index result directly, used\nwhenever no group membership or vote count needs to be verified. The\nsame applies to magic label queries. External groups continue to use\npost-filtering unchanged.\n\nRelease-Notes: Label queries without group or count constraints no longer trigger post-filtering, avoiding unnecessary NoteDB reads.\nChange-Id: I75d1c2896fe69ef1142b1acae6f39a004e3d2abc\n"
    },
    {
      "commit": "3ae93d26a456aefe75869d2de91ef2b84465764b",
      "tree": "ca8f11ed89d2024f4d431db70a2e719dcba0ad15",
      "parents": [
        "27d6e7ec416a53b51a59320553c3b6ca56852c73"
      ],
      "author": {
        "name": "Andrew Dorsett",
        "email": "andrewdorsett@google.com",
        "time": "Tue Apr 28 13:48:21 2026 -0700"
      },
      "committer": {
        "name": "Andrew Dorsett",
        "email": "andrewdorsett@google.com",
        "time": "Tue Apr 28 13:48:21 2026 -0700"
      },
      "message": "Don\u0027t render a link element in Checks panel if no url is provided.\n\nGoogle-Bug-Id: 489373112\nRelease-Notes: skip\nChange-Id: Idd2dac4731de472c62c91681348203750fc4136b"
    },
    {
      "commit": "27d6e7ec416a53b51a59320553c3b6ca56852c73",
      "tree": "d455e269a72f04541510607fd85475a05cc48b9a",
      "parents": [
        "af05ae2caf7796b89af35aeb8492bf0a387525ea",
        "20edac89a52d7ba3820358bb7da93c245f0f07ed"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Tue Apr 28 00:16:58 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 28 00:16:58 2026 -0700"
      },
      "message": "Merge \"Remove stale quote-props eslint suppression\""
    },
    {
      "commit": "af05ae2caf7796b89af35aeb8492bf0a387525ea",
      "tree": "effd404cca492682041f7e24d51a160ba5aa5a0f",
      "parents": [
        "cf687319fe07d2988e0a416ad6d55fe95697b905",
        "a4717b3a1359f820a92f9b6ab311ecaa72f59518"
      ],
      "author": {
        "name": "Laura Hamelin-Owens",
        "email": "haowl@google.com",
        "time": "Mon Apr 27 11:03:41 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 11:03:41 2026 -0700"
      },
      "message": "Merge \"Refactor GrSelectionActionBox to use custom menu\""
    },
    {
      "commit": "a4717b3a1359f820a92f9b6ab311ecaa72f59518",
      "tree": "672a83be0f73dc02af699e72ab8b00fdc520da95",
      "parents": [
        "fe4dff5c479d0786af7bcfff8b92eb6040f2e9db"
      ],
      "author": {
        "name": "Laura Hamelin",
        "email": "haowl@google.com",
        "time": "Thu Apr 16 22:36:11 2026 +0000"
      },
      "committer": {
        "name": "Laura Hamelin",
        "email": "haowl@google.com",
        "time": "Mon Apr 27 17:45:37 2026 +0000"
      },
      "message": "Refactor GrSelectionActionBox to use custom menu\n\nRefactors GrSelectionActionBox to use a custom styled menu instead of\ngr-tooltip. This is the first step towards supporting multiple buttons\nin the selection action box, such as the upcoming \"Explain this code\"\nfeature.\n\nPreviously, GrSelectionActionBox reused gr-tooltip for its positioning\nlogic and styling, but it was not designed to handle interactive\nchildren. This refactoring introduces a dedicated .menu container\nwith styled items.\n\nFor this first commit, the menu only contains the \"Press c to comment\"\naction, maintaining existing functionality while setting up the\nstructure for future extensions.\n\nThe styling has been made theme-aware using CSS variables like\n--dropdown-background-color and --primary-text-color, ensuring it\nadheres to the user\u0027s light or dark mode preference.\n\nWe also ensured that the mousedown event is used to trigger the action\nto capture the text selection before the browser clears it.\n\nChange-Id: If4a46d2e1918a73112186d96337faf59a8465528\nRelease-Notes: Refactored the selection action box in the diff view to use a custom menu instead of a tooltip, improving extensibility and theme awareness.\nTAG\u003dagy\nCONV\u003d0677ef7e-3b55-48db-bf61-1cbab129c778\n"
    },
    {
      "commit": "cf687319fe07d2988e0a416ad6d55fe95697b905",
      "tree": "a436c8d898e95d10f0532515bd215cfed246c0d7",
      "parents": [
        "7c589036c257ceb1e358d5e87f1a6cdfb3e7e8ef",
        "bfca03f0ec30d124814cc9b97eab2391c136e0ce"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:14:16 2026 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:14:30 2026 +0200"
      },
      "message": "Merge branch \u0027stable-3.14\u0027\n\n* stable-3.14:\n  Update git submodules\n  Update git submodules\n  Update git submodules\n  Update git submodules\n  Update git submodules\n  Update bazlets to 31e8579d49\n  Set version to 3.14.0-SNAPSHOT\n  Set version to 3.14.0-rc4\n\nRelease-Notes: skip\nChange-Id: I1d2fbab971764d0db3464f8cde2f43ab46eaff8b\n"
    },
    {
      "commit": "bfca03f0ec30d124814cc9b97eab2391c136e0ce",
      "tree": "656918dd274b74e4887afd0c892e4a9e15003f02",
      "parents": [
        "8234ebda4a14b3e9f57bc4e36bd21ecabc29607b",
        "e1ee70234f3b5808c385da28ee70c733c9dbd408"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:10:08 2026 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:10:18 2026 +0200"
      },
      "message": "Merge branch \u0027stable-3.13\u0027 into stable-3.14\n\n* stable-3.13:\n  Update git submodules\n  Update git submodules\n  Update git submodules\n  Update git submodules\n\nRelease-Notes: skip\nChange-Id: I35c88afbc4c34708eb1ba7fa74eb21ddbaa8dd78\n"
    },
    {
      "commit": "8234ebda4a14b3e9f57bc4e36bd21ecabc29607b",
      "tree": "656918dd274b74e4887afd0c892e4a9e15003f02",
      "parents": [
        "ffb340abdd4eaa79a42e2d764088460a0ba52388"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:04:00 2026 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:07:50 2026 +0200"
      },
      "message": " Update git submodules\n\n* Update plugins/replication from branch \u0027master\u0027\n    to 9b78af806be9cc7131a856f81051ee78d4f8c0e9\n\n  - Add --remote switch to replication start command\n\n    Allow specifying one or more remote names to limit replication to\n    those destinations, without needing to know their URLs.\n\n    Unlike --url which does substring matching on the URL, --remote\n    matches the exact remote name as configured in replication.config.\n\n    Change-Id: I9db7a195d7a1ea8bef92d008a76386a01d0c9286\n\n  - Use of gerrit_plugin and gerrit_plugin_tests rules from bazlets\n\n    Change-Id: If0c4d82b3f77cedccf94b6b74f775176a9d0bf6d\n\nRelease-Notes: Skip\nChange-Id: Iffb26c193df8476e62bff5e142e7600452f6102f\n"
    },
    {
      "commit": "7c589036c257ceb1e358d5e87f1a6cdfb3e7e8ef",
      "tree": "a436c8d898e95d10f0532515bd215cfed246c0d7",
      "parents": [
        "8f0f0bdf6001c151c0f401e7451c6a8d847010a6"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 18:02:23 2026 +0200"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 09:02:23 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027master\u0027\n  to 9b78af806be9cc7131a856f81051ee78d4f8c0e9\n  - Merge branch \u0027stable-3.13\u0027\n    \n    * stable-3.13:\n    \n    Change-Id: I6d695149a9d1120bcfbc8755cbdc89f6c19f6620\n    \n  - Merge branch \u0027stable-3.12\u0027 into stable-3.13\n    \n    * stable-3.12:\n      Add --remote switch to replication start command\n    \n    Change-Id: Ifa94395155956f48dae777e0e41222a79554afbd\n    "
    },
    {
      "commit": "e1ee70234f3b5808c385da28ee70c733c9dbd408",
      "tree": "98ea57c461f0694eadeb0746c43642ea14efff0b",
      "parents": [
        "26bb67d1c722d96b96ee20db34870b5a682d41c7",
        "23c5a240a0c39774e37093c867ad9f41662cf4b3"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 17:46:16 2026 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 17:47:42 2026 +0200"
      },
      "message": "Merge branch \u0027stable-3.12\u0027 into stable-3.13\n\n* stable-3.12:\n  Update git submodules\n  Update git submodules\n\nRelease-Notes: skip\nChange-Id: I95c24bc72866dadce99f184ad513717395ddddb0\n"
    },
    {
      "commit": "26bb67d1c722d96b96ee20db34870b5a682d41c7",
      "tree": "98ea57c461f0694eadeb0746c43642ea14efff0b",
      "parents": [
        "d7f78cdde2602a6cdf123b2033d675eda145184c"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 17:44:22 2026 +0200"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 08:44:22 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027stable-3.13\u0027\n  to 163612b4daba5f3966d9dc646cb755a654a7bb66\n  - Merge branch \u0027stable-3.12\u0027 into stable-3.13\n    \n    * stable-3.12:\n      Add --remote switch to replication start command\n    \n    Change-Id: Ifa94395155956f48dae777e0e41222a79554afbd\n    \n  - Merge branch \u0027stable-3.11\u0027 into stable-3.12\n    \n    * stable-3.11:\n      Add --remote switch to replication start command\n    \n    Change-Id: I414161edf66faf9de4d2b384b479b338bdcb9880\n    \n  - Add --remote switch to replication start command\n    \n    Allow specifying one or more remote names to limit replication to\n    those destinations, without needing to know their URLs.\n    \n    Unlike --url which does substring matching on the URL, --remote\n    matches the exact remote name as configured in replication.config.\n    \n    Change-Id: I9db7a195d7a1ea8bef92d008a76386a01d0c9286\n    "
    },
    {
      "commit": "8f0f0bdf6001c151c0f401e7451c6a8d847010a6",
      "tree": "d090e4e128b8cd7ec8ce77a86e10f384c75ccdb8",
      "parents": [
        "60a472ffcb56d382afef914fd43a86389d4534fb",
        "491c88022fa832a3cee0f7ec1fb3ae5ef7a74c07"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Apr 27 08:35:16 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 08:35:16 2026 -0700"
      },
      "message": "Merge \"Remove broken link in quota docs\""
    },
    {
      "commit": "d7f78cdde2602a6cdf123b2033d675eda145184c",
      "tree": "87edd23d7cbfe564c66262e855398f39364ca83d",
      "parents": [
        "e3f9bb59d062cc46a7a19eede5bfe0b59067cbd1"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 17:05:09 2026 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 17:07:00 2026 +0200"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027stable-3.13\u0027\n  to 8dafd933a883bdd15135a382753e1b9ea447daa0\n\n - Replace legacy non-Javadoc comment with {@inheritDoc}\n\n    Change-Id: I3cf468b60ba4bfb8e948a17681cd6ab91df62f2a\n\n  - Suppress UnnecessaryAssignment in withBaseOnly factory method\n\n    withBaseOnly() intentionally assigns an @Inject field to support an\n    alternate construction path. Suppress Error Prone\u0027s\n    UnnecessaryAssignment warning for this method.\n\n    Change-Id: I30cc92f830d562d87bd0437d8ac374ed0a2f7295\n\n  -  Introduce an educated guess comment on why reflog is disabled on replicas\n\n    When repositories are replicated, their reflog is turned off on the\n    replica side. Add a comment explaining why that choice was possibly made\n    over a decade ago.\n\n    The author of the change is Shawn who passed years ago. The change did\n    not go through reviews at that time so there is no track record of the\n    choice.\n\n    Change-Id: I04de480df0d6012e3a4539fda945d15fc3f4eaa3\n\n  - Allow to specify whether to store reflog for new projects\n\n    Introduce a new remote.NAME.storeRefLog for configuring the\n    core.logallrefupdates in the new repository\u0027s config file when it is\n    created by replication.\n\n    Release-Notes: Allow configuring the reflog for newly created repositories with remote.NAME.storeRefLog config.\n    Bug: Issue 464210139\n    Change-Id: Ia14a4b5829cceb226a537c0651d08f2057fce8aa\n\n  - Fix error_prone pattern AssertEqualsArgumentOrderChecker\n\n    Change-Id: I98d9a8bff87189e2c2349dbcd27fc8ce05263442\n\n  - Remove redundant public modifier in AdminApi interface\n\n    Change-Id: I5296d802a857466d5267e9b77879760efbe1abf8\n\n  -  Catch `URISyntaxException` in TestUriUpdates constructor\n\n    And retrow as RuntimeException so that it doesn\u0027t have to be caught in\n    tests (sometimes with empty catch block that is being flagged as ERROR\n    after migration to newer errorprone).\n\n    Bug: Issue 303819949\n    Change-Id: Ia7a9427f0472bb464104ed7cc24b850e08869118\n\nRelease-Notes: skip\nChange-Id: Idc22b2e38a56e81ac6eb0f7bdfe82cb0c957c048\n"
    },
    {
      "commit": "60a472ffcb56d382afef914fd43a86389d4534fb",
      "tree": "c5d2dd6f8ebf1a2ca15b6bd6971fbd378bae3e90",
      "parents": [
        "19c20a8ebd927d60f8eb92b729aaf8c1d47ed582",
        "ca8496aac00c9338c6a030ce5fc134086f612b67"
      ],
      "author": {
        "name": "Sasa Zivkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Mon Apr 27 07:24:26 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 07:24:26 2026 -0700"
      },
      "message": "Merge \"Update bazlets to 3f9b913f\""
    },
    {
      "commit": "23c5a240a0c39774e37093c867ad9f41662cf4b3",
      "tree": "7b5a577e5b3506f53c1588e755b8c88906a7478a",
      "parents": [
        "6b2cbe072c8d81f8f95abb46440f4a214257cc6c",
        "9a8c320f5735c3278b99a159df30880ca3dc57ec"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 16:13:03 2026 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 16:13:16 2026 +0200"
      },
      "message": "Merge branch \u0027stable-3.11\u0027 into stable-3.12\n\n* stable-3.11:\n  Update git submodules\n\nRelease-Notes: skip\nChange-Id: I9c9a5fd5fc99454fb06abc4ced142de0b96db1df\n"
    },
    {
      "commit": "19c20a8ebd927d60f8eb92b729aaf8c1d47ed582",
      "tree": "b27e98c575813f383581596eb61116e31435a939",
      "parents": [
        "b2de27db35c91ec8e844dfbcbe5743e532be7e19"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 27 16:09:22 2026 +0200"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 07:09:22 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027master\u0027\n  to 1af23a265ad1fba98915e69b5bf928a747c5f5c4\n  - Merge branch \u0027stable-3.12\u0027\n    \n    * stable-3.12:\n      Add --remote switch to replication start command\n    \n    Change-Id: Ic61ad77a3bb4f4347b2e9488b0dba49af9666c15\n    \n  - Merge branch \u0027stable-3.11\u0027 into stable-3.12\n    \n    * stable-3.11:\n      Add --remote switch to replication start command\n    \n    Change-Id: I414161edf66faf9de4d2b384b479b338bdcb9880\n    \n  - Add --remote switch to replication start command\n    \n    Allow specifying one or more remote names to limit replication to\n    those destinations, without needing to know their URLs.\n    \n    Unlike --url which does substring matching on the URL, --remote\n    matches the exact remote name as configured in replication.config.\n    \n    Change-Id: I9db7a195d7a1ea8bef92d008a76386a01d0c9286\n    "
    },
    {
      "commit": "ca8496aac00c9338c6a030ce5fc134086f612b67",
      "tree": "a1386472423567caca48c1ecdc08e263536c003a",
      "parents": [
        "b2de27db35c91ec8e844dfbcbe5743e532be7e19"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Apr 23 21:25:57 2026 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Apr 27 15:43:06 2026 +0200"
      },
      "message": "Update bazlets to 3f9b913f\n\nBazlets changelog:\n\n3f9b913 gerrit_plugin_tests: support plugin and external deps natively\n5005b3d gerrit_plugin: support plugin alias and external deps natively\n\nRelease-Notes: skip\nChange-Id: Ifd98abbc85ce163d78ae942103f28d4bc694c283\n"
    },
    {
      "commit": "6b2cbe072c8d81f8f95abb46440f4a214257cc6c",
      "tree": "7b5a577e5b3506f53c1588e755b8c88906a7478a",
      "parents": [
        "7b10521517d530217fed700af3f34101c61929c0"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 27 14:16:54 2026 +0100"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 27 06:16:54 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027stable-3.12\u0027\n  to 4698ef08af7776834fbe14aa859654ac16c45dba\n  - Merge branch \u0027stable-3.11\u0027 into stable-3.12\n    \n    * stable-3.11:\n      Add --remote switch to replication start command\n    \n    Change-Id: I414161edf66faf9de4d2b384b479b338bdcb9880\n    \n  - Add --remote switch to replication start command\n    \n    Allow specifying one or more remote names to limit replication to\n    those destinations, without needing to know their URLs.\n    \n    Unlike --url which does substring matching on the URL, --remote\n    matches the exact remote name as configured in replication.config.\n    \n    Change-Id: I9db7a195d7a1ea8bef92d008a76386a01d0c9286\n    "
    },
    {
      "commit": "491c88022fa832a3cee0f7ec1fb3ae5ef7a74c07",
      "tree": "51845078efffb7b778d3625f68f5961ec34dfa4f",
      "parents": [
        "b2de27db35c91ec8e844dfbcbe5743e532be7e19"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Apr 29 14:14:43 2025 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Sat Apr 25 03:38:57 2026 -0700"
      },
      "message": "Remove broken link in quota docs\n\nChange Ideb18201551 introduced this link, but seems like it was broken\nfrom the start, as the section only appeared in an earlier patchset of\nthat change.\n\nRelease-Notes: skip\nChange-Id: Icee31d54a54cdc705c25456cf56b6d82ac7a70db\n"
    },
    {
      "commit": "b2de27db35c91ec8e844dfbcbe5743e532be7e19",
      "tree": "234d15ac7a4c7286136c93e9700b1f11220abd96",
      "parents": [
        "ef58c09fa73d915772be990ea81bfee40fc922ea",
        "4be2581f3e7936354eaaefdc0157b7e27efc3943"
      ],
      "author": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Fri Apr 24 14:49:02 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 14:49:02 2026 -0700"
      },
      "message": "Merge \"Hide AI suggested fix spinner when unchecked\""
    },
    {
      "commit": "ef58c09fa73d915772be990ea81bfee40fc922ea",
      "tree": "9bd63a3ecbcb3a19ccadf19f25aa877877305857",
      "parents": [
        "90fae68b0a877d9aaa2570c65c82050b79680ed1",
        "aebd3f4d5486323688ad8a0cf7f95e464b34312f"
      ],
      "author": {
        "name": "Sarah Silva",
        "email": "sarahsilva@google.com",
        "time": "Fri Apr 24 13:05:03 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 13:05:03 2026 -0700"
      },
      "message": "Merge \"Add suggestionId to AI agent reporting details.\""
    },
    {
      "commit": "4be2581f3e7936354eaaefdc0157b7e27efc3943",
      "tree": "7c2549adbf343554b61fb27edb12b0ef193f45a1",
      "parents": [
        "90fae68b0a877d9aaa2570c65c82050b79680ed1"
      ],
      "author": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Fri Apr 24 20:47:57 2026 +0200"
      },
      "committer": {
        "name": "Milutin Kristofic",
        "email": "milutin@google.com",
        "time": "Fri Apr 24 20:47:57 2026 +0200"
      },
      "message": "Hide AI suggested fix spinner when unchecked\n\nGuards the loading spinner visibility with the checkbox state. This\nensures that the spinner is hidden when \"Attach AI-suggested fix\" is\nunchecked, preventing visual distraction while typing. Background\npolling is preserved so that suggestions are available immediately if\nthe user decides to enable the feature.\n\nGoogle-Bug-Id: b/505297767\nRelease-Notes: skip\nChange-Id: Ic211c7fcdd40e776e4ba2785c4bbd1e664cbcf55\n"
    },
    {
      "commit": "9a8c320f5735c3278b99a159df30880ca3dc57ec",
      "tree": "9a4f631af54d2310f5675b3ca775aa145abc164f",
      "parents": [
        "655c20a99685ddb6d0e0d1b64a32bf6ee0b9ae8a"
      ],
      "author": {
        "name": "Adithya Chakilam",
        "email": "achakilam@nvidia.com",
        "time": "Fri Apr 24 10:13:12 2026 -0500"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 08:13:12 2026 -0700"
      },
      "message": "Update git submodules\n\n* Update plugins/replication from branch \u0027stable-3.11\u0027\n  to 24b0f4b53a6cd48295a3aa78f57aa4d59531b639\n  - Add --remote switch to replication start command\n    \n    Allow specifying one or more remote names to limit replication to\n    those destinations, without needing to know their URLs.\n    \n    Unlike --url which does substring matching on the URL, --remote\n    matches the exact remote name as configured in replication.config.\n    \n    Change-Id: I9db7a195d7a1ea8bef92d008a76386a01d0c9286\n    "
    },
    {
      "commit": "90fae68b0a877d9aaa2570c65c82050b79680ed1",
      "tree": "be97abba59551e1cc48c3e5f67ed64878863088b",
      "parents": [
        "72845257afb3b091d294c765e9251d1a45097c0d",
        "0b5a1ca5e94787708d8067669d7ea45b18b46bce"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Apr 24 00:42:43 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 00:42:43 2026 -0700"
      },
      "message": "Merge \"Let AI agents use bazelisk, if available\""
    },
    {
      "commit": "72845257afb3b091d294c765e9251d1a45097c0d",
      "tree": "ac129b2bc5e63e7290108cddca61ff9ab399bc06",
      "parents": [
        "65b15d0f3c70f704f9f04c29833d0d16d9238a22"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Apr 23 13:36:17 2026 +0200"
      },
      "committer": {
        "name": "Sasa Zivkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Apr 23 07:45:03 2026 -0700"
      },
      "message": "Update bazlets to 32ad076\n\nchangelog:\n32ad076 gerrit_plugin: silence unmatched unzip exclude warnings\ncc10409 gerrit_plugin: support plugin-owned LICENSE file\n69156af gerrit_plugin: exclude license files when repacking plugin JARs\n\nRelease-Notes: skip\nChange-Id: I333092596e342a01640d33912a3a74be826227b3\n"
    },
    {
      "commit": "65b15d0f3c70f704f9f04c29833d0d16d9238a22",
      "tree": "c6f1073fadde3244a2c85250c887e11b2315e4bb",
      "parents": [
        "46569507ced54d8ab80d2a86ec847495c45ea1c4",
        "1a3d46ebdeecce44ef4bc279cea74a82b3fcb20d"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 23 02:39:34 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 02:39:34 2026 -0700"
      },
      "message": "Merge \"Use the more generic AGENTS.md context file\""
    },
    {
      "commit": "0b5a1ca5e94787708d8067669d7ea45b18b46bce",
      "tree": "ae4e7495bde5f2a278cedf565778a6c3c68f2ddc",
      "parents": [
        "1a3d46ebdeecce44ef4bc279cea74a82b3fcb20d"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 20 13:27:55 2026 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 22 23:05:12 2026 -0700"
      },
      "message": "Let AI agents use bazelisk, if available\n\nRelease-Notes: skip\nChange-Id: I43085cfff55e8920be9600a4ddee805730da7a04\n"
    },
    {
      "commit": "4a115b40116e735fae9e0c3572001429b41436f7",
      "tree": "c04f5baa4b13aa6d85bb5d7e891dbb7998d4d745",
      "parents": [
        "46569507ced54d8ab80d2a86ec847495c45ea1c4"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Feb 18 18:34:49 2025 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@oss.qualcomm.com",
        "time": "Wed Apr 22 17:42:05 2026 -0700"
      },
      "message": "Add Post Review Comment permission and seed defaults\n\nIntroduce the postReviewComment permission for posting review comments,\nadd the schema helper to grant it on refs/* for Registered Users, and\ninclude it in default All-Projects ACLs. Update tests to confirm the new\npermission is setup correctly.\n\nFor an online upgrade, this schema migration should be run by all hosts\nbefore enabling the new permission. The permission needs to be added to\nallow users without label voting permission to continue posting comments\non changes.\n\nForward-Compatible: checked\nRelease-Notes: Added schema migration for the new Post Review Comment permission\nChange-Id: I81c864c7631c5e64105fc165fd7b2d9d5b5540a5\n"
    },
    {
      "commit": "46569507ced54d8ab80d2a86ec847495c45ea1c4",
      "tree": "79360a1fe51fb10d3acc4bc965f15c5dbd06988a",
      "parents": [
        "5a77b20bd25ceaa99172e3dc25db737b3c142bf4",
        "adf8a9ba6911016dd245ab0d493dd2dd20b541ee"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Apr 22 05:18:42 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 05:18:42 2026 -0700"
      },
      "message": "Merge \"Merge branch \u0027stable-3.14\u0027\""
    },
    {
      "commit": "5a77b20bd25ceaa99172e3dc25db737b3c142bf4",
      "tree": "79360a1fe51fb10d3acc4bc965f15c5dbd06988a",
      "parents": [
        "3eaa90bbeb6216412b36fe2889ce514159aafcc4",
        "f7331e5609832033d682d7f95a566ff2b5da5f2a"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 22 03:48:42 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 03:48:42 2026 -0700"
      },
      "message": "Merge \"Update bazlets to eb041fac\""
    },
    {
      "commit": "3eaa90bbeb6216412b36fe2889ce514159aafcc4",
      "tree": "f6d6c1a4cef5f3744bde014fa3558879f674f02c",
      "parents": [
        "8f6c0f1d3827ae7e80b2b8470ca5e4b2aad3d490",
        "ef22f0462b34d98a7b9d00dcafad48db4782b528"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Wed Apr 22 03:02:53 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 03:02:53 2026 -0700"
      },
      "message": "Merge changes I32937ca8,I7613d40b\n\n* changes:\n  Add TIMEOUT status for submit requirement.\n  Add configurable timeout for submit requirement evaluation\n"
    }
  ],
  "next": "f7331e5609832033d682d7f95a566ff2b5da5f2a"
}
