)]}'
{
  "log": [
    {
      "commit": "eabdbe19e6a5a68f4064c66a0e1341ed3b8d5413",
      "tree": "9c5f32963f8700355bd1b6645795bb4a049fc518",
      "parents": [
        "573e3794cee8a19b16b9068e0f09251a5ff4e142"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 15:05:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 15:09:38 2026"
      },
      "message": "Fix non-determinism in `toposort` by using input order as a tie-breaker\n\nWhen `toposort` has multiple nodes ready to process (no remaining\npredecessors), it puts them in a `BinaryHeap` and uses the `preferred_order`\nclosure to sort them.  If the closure says two nodes are equal, their order in\nthe heap depended on `HashMap` iteration order, which is non-deterministic.\n\nWe fix this by recording each node\u0027s index in the input iterator. If the\nclosure returns `Equal`, we now fall back to comparing these input indices,\npreferring nodes that came first. This makes the sort fully deterministic.\n\nPiperOrigin-RevId: 912985573\n"
    },
    {
      "commit": "573e3794cee8a19b16b9068e0f09251a5ff4e142",
      "tree": "f410339b8ca005dd44b1ece667d7e480549420d0",
      "parents": [
        "6fdbcb5de28990aa552e9fc36173c3778f206b36"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 15:03:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 15:04:33 2026"
      },
      "message": "Fix non-determinism in JSON IR output for Crubit features\n\nPiperOrigin-RevId: 912985243\n"
    },
    {
      "commit": "6fdbcb5de28990aa552e9fc36173c3778f206b36",
      "tree": "979ce42f7a4f161336c24f7cb8af09c919f7d222",
      "parents": [
        "3a08cc41074610c5c07721fd002543b2877d0ea9"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 14:54:13 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 14:54:53 2026"
      },
      "message": "Sort crate renames in cc_bindings_from_rs for determinism\n\nPiperOrigin-RevId: 912983348\n"
    },
    {
      "commit": "3a08cc41074610c5c07721fd002543b2877d0ea9",
      "tree": "330b85b41498bf4b7d7d5574507e34cf1e7b5408",
      "parents": [
        "1c8dfec42c487900d20fd2c896d80448d088a01c"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Sat May 09 03:15:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 03:16:17 2026"
      },
      "message": "Exclude more bad template instantiations from receiving bindings.\n\nThis CL helps detect three flavors of bad function:\n  * Functions that depend on broken templates (e.g., forward_list\u003cT\u003e::sort\n    for a T that doesn\u0027t have a less).\n  * Functions that call impossible or deleted constructors (forward_list\n    again on a non-copyable T)\n  * Implicit constructors that depend on impossible or deleted\n    constructors\n\nWe need to crawl around the AST because Clang is parsimonious with\ndiagnostics and with template instantiation in general. We explored many\nalternate solutions involving generating expressions or even entirely new\nfunctions to typecheck, but ultimately found success in simply looking\nfor declarations (hand-wavingly) with the bad bit set.\n\nPiperOrigin-RevId: 912817559\n"
    },
    {
      "commit": "1c8dfec42c487900d20fd2c896d80448d088a01c",
      "tree": "04d6126300a653e70b225249508b1874edf5cf51",
      "parents": [
        "d8ecf8d912bd55b0642ebaf328aee98b35df6819"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Sat May 09 02:08:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 02:12:23 2026"
      },
      "message": "Update goldens.\n\nPiperOrigin-RevId: 912799780\n"
    },
    {
      "commit": "d8ecf8d912bd55b0642ebaf328aee98b35df6819",
      "tree": "1c2c37483760581f35ae3f510fac01f1bb8539e8",
      "parents": [
        "65ce8755022e340acd1f0c2f51536b1576152001"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 09 00:12:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 09 00:14:58 2026"
      },
      "message": "Refactor `unique_lifetimes` to return a sorted Vec and fix non-determinism.\n\n`rs_bindings_from_cc` was producing non-deterministic output because\n`unique_lifetimes` returned an iterator that preserved the non-deterministic\norder of its inputs (specifically when inputs were derived from `HashSet`\niteration).\n\nThis CL refactors `unique_lifetimes` to return a sorted `Vec\u003cLifetime\u003e`,\nensuring that all callers get a deterministic order by default. This fixes\npotential non-determinism in several places flagged by automated review.\n\nPiperOrigin-RevId: 912765722\n"
    },
    {
      "commit": "65ce8755022e340acd1f0c2f51536b1576152001",
      "tree": "c465a58e1540c6c626c645394093f92175cf32b5",
      "parents": [
        "425998e1c552db7becf2a7e98da369d7f6d09195"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Fri May 08 23:53:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 08 23:54:30 2026"
      },
      "message": "Update goldens.\n\nPiperOrigin-RevId: 912758836\n"
    },
    {
      "commit": "425998e1c552db7becf2a7e98da369d7f6d09195",
      "tree": "1f23f2d2e0759e3b0e04e83b43b1bd4cda1f6e01",
      "parents": [
        "4bcfdbe60e444152dc26d35461733a407dee63db"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri May 08 20:38:17 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 08 20:39:18 2026"
      },
      "message": "Use `rustc` instead of `build`.\n\nThis allows passing rustc arguments via `--` which is used by corrosion.\n\nPiperOrigin-RevId: 912673961\n"
    },
    {
      "commit": "4bcfdbe60e444152dc26d35461733a407dee63db",
      "tree": "1a0a1adc65d760d8c5165d70475cacb803cabd45",
      "parents": [
        "3a0affa1d09c817ac3403c02b31949ded03cd13f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri May 08 17:36:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 08 17:39:01 2026"
      },
      "message": "Remove an unnecessary include of test_headers\n\nPiperOrigin-RevId: 912592138\n"
    },
    {
      "commit": "3a0affa1d09c817ac3403c02b31949ded03cd13f",
      "tree": "e9ad78741c3d13c3f3ad5b8319cb7189f373a6c0",
      "parents": [
        "bf286595f226508de5c3baaf61c8b2a573a31022"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu May 07 23:26:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 23:27:38 2026"
      },
      "message": "Ask `dependabot` to ignore major version updates.\n\nPiperOrigin-RevId: 912214838\n"
    },
    {
      "commit": "bf286595f226508de5c3baaf61c8b2a573a31022",
      "tree": "a31c0ca101e341b68da78eb149636425ab65a49f",
      "parents": [
        "434402e6969ed25798afe3b29a629eb80dddb32e",
        "18a07f86e8f88560bed82b133ecc9c00faea1f52"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 21:31:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 21:31:37 2026"
      },
      "message": "Merge pull request #973 from anforowicz:cargo-lock-and-initial-dependabot-config\n\nPiperOrigin-RevId: 912155289\n"
    },
    {
      "commit": "434402e6969ed25798afe3b29a629eb80dddb32e",
      "tree": "bccca1a4df51867265cf086fb35cceb5bdcb83c3",
      "parents": [
        "5d56ff8578a413e2bbb3ad2830e4e5e4aba5fc25"
      ],
      "author": {
        "name": "Augie Fackler",
        "email": "augie@google.com",
        "time": "Thu May 07 17:31:17 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 17:32:13 2026"
      },
      "message": "rs_bindings_from_cc: add a missing unsafe inside an unsafe function in generated code\n\nNeeded for edition 2024.\n\nPiperOrigin-RevId: 912034690\n"
    },
    {
      "commit": "5d56ff8578a413e2bbb3ad2830e4e5e4aba5fc25",
      "tree": "6cc2621194b9659feacd6efa9e673a7e22a7200c",
      "parents": [
        "d9d208db28e9954732d8ade54292f9200fa0c47f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 07 15:33:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 15:33:54 2026"
      },
      "message": "Move proto_matchers test util to inference\n\nIt is only used there, and avoids having a dependency on protobuf in the main checker directory.\n\nPiperOrigin-RevId: 911978497\n"
    },
    {
      "commit": "d9d208db28e9954732d8ade54292f9200fa0c47f",
      "tree": "f06418116ad1316c233ddcc3b937a19923e7e1ac",
      "parents": [
        "75e6f08fb614820ed451def4e47495bd86c30238"
      ],
      "author": {
        "name": "Fabian Wolff",
        "email": "fwolff@google.com",
        "time": "Thu May 07 13:06:09 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 13:06:43 2026"
      },
      "message": "Adjust `#[rustversion]` guards for `Unnormalized` to `2026-04-20`.\n\nPiperOrigin-RevId: 911922117\n"
    },
    {
      "commit": "75e6f08fb614820ed451def4e47495bd86c30238",
      "tree": "62b4b356a6ee6c856ba44c304145e8a94352aca0",
      "parents": [
        "e4c008a8ba3a1cf49d85af27b1ce8993d217d05f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu May 07 08:57:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 08:58:32 2026"
      },
      "message": "No public description\n\nPiperOrigin-RevId: 911825371\n"
    },
    {
      "commit": "e4c008a8ba3a1cf49d85af27b1ce8993d217d05f",
      "tree": "b5ab21d8000579b51e3d7bb0ee353b552c1711d7",
      "parents": [
        "885d648a838e16f8d312f666be158982c697acc3"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 06 22:24:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 22:24:44 2026"
      },
      "message": "Wrap CRUBIT_THREAD_SAFE types in UnsafeCell\n\nFor types annotated with CRUBIT_THREAD_SAFE, replace the normal Rust struct\nfields with a single opaque UnsafeCell\u003c[MaybeUninit\u003cu8\u003e; SIZE]\u003e body.\nThis enables interior mutability, allowing non-const C++ methods to be\ncalled through shared references.\n\nThis also prevents standard Rust `#[derive(Copy, Clone)]` generation,\nand forces an explicit alignment override since the opaque byte array body\nhas alignment 1.\n\nPiperOrigin-RevId: 911579009\n"
    },
    {
      "commit": "885d648a838e16f8d312f666be158982c697acc3",
      "tree": "099251f4c7fee19a2aafd11488bf525233daf5b8",
      "parents": [
        "fbbdcc8127b389b56dbb017effe5c4d52a3b3c22"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed May 06 21:25:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 21:26:11 2026"
      },
      "message": "Handle pattern types in query_compiler.\n\nThis fixes an oncoming toolcahin breakage from upstream rust.\n\nInitial handling of these is conservative to prevent impending\nbreakages. A more proper treatment of them is warranted.\n\nPiperOrigin-RevId: 911548611\n"
    },
    {
      "commit": "18a07f86e8f88560bed82b133ecc9c00faea1f52",
      "tree": "8a27384be4d39a8f20759d140cc4ac1030bf077e",
      "parents": [
        "cca42b28dffd4e3543fc38283236d5e83d05d3cd"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@chromium.org",
        "time": "Wed May 06 18:16:13 2026"
      },
      "committer": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@chromium.org",
        "time": "Wed May 06 18:19:52 2026"
      },
      "message": "Initial `Cargo.lock` and `dependabot.yml`.\n"
    },
    {
      "commit": "fbbdcc8127b389b56dbb017effe5c4d52a3b3c22",
      "tree": "427c71fccfb39408d593d5a175f2ea28d86a4052",
      "parents": [
        "67163eb55454a3e0fa079cca66971f8853e236a1"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 06 18:12:52 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 18:14:55 2026"
      },
      "message": "Run RustClippy on third_party/crubit/rs_bindings_from_cc\n\nPiperOrigin-RevId: 911440416\n"
    },
    {
      "commit": "67163eb55454a3e0fa079cca66971f8853e236a1",
      "tree": "30278b56c2e50d4e36141086a17f065748de7c71",
      "parents": [
        "ca4f34025a785e859c834a8c17005d2217633fe5"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 06 17:44:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 17:45:17 2026"
      },
      "message": "Crubit: fix unhelpful error message for imported C++ types passed by value\n\nPiperOrigin-RevId: 911424186\n"
    },
    {
      "commit": "ca4f34025a785e859c834a8c17005d2217633fe5",
      "tree": "1bf1a1118a8141db7295b7956dde30034802f7b5",
      "parents": [
        "1c5ebc6baa400cc4283c868d2ffa6809fadba882"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed May 06 17:10:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 17:11:16 2026"
      },
      "message": "Add logos\n\n~~~~~~~~~~~~~~~~~~~~~~~\nCardi lives under the C\n~~~~~~~~~~~~~~~~~~~~~~~\n\nPiperOrigin-RevId: 911404877\n"
    },
    {
      "commit": "1c5ebc6baa400cc4283c868d2ffa6809fadba882",
      "tree": "60a612fe5fb8cafe34a83293f82065c4ad2bba4f",
      "parents": [
        "a2ad09055dc71f8a09560a0f2dbd4da15d343295"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 06 16:29:21 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 16:29:54 2026"
      },
      "message": "Add Send/Sync derivation for CRUBIT_THREAD_SAFE types and add tests\n\nPiperOrigin-RevId: 911383047\n"
    },
    {
      "commit": "a2ad09055dc71f8a09560a0f2dbd4da15d343295",
      "tree": "58bf1c00de22520939c20521ddac4e06413255ec",
      "parents": [
        "6960284b59f7ca2abbd34b91adc7af7b4e440f31"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed May 06 15:53:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 15:54:40 2026"
      },
      "message": "More consistently use the concatenated nested namespaces\n\nIn most of the files we use `namespace clang::tidy::nullability`, already -- just updating more.\n\nThis helps make it easier \"sed\" rename later, if want to.\n\nPiperOrigin-RevId: 911365024\n"
    },
    {
      "commit": "6960284b59f7ca2abbd34b91adc7af7b4e440f31",
      "tree": "3e23ef4d8095a11d2ad00e8c4d749f2cd776a8f9",
      "parents": [
        "24e17872972df025a8a074728095485ae390a4db"
      ],
      "author": {
        "name": "Jordan Rupprecht",
        "email": "rupprecht@google.com",
        "time": "Wed May 06 14:57:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 06 15:02:05 2026"
      },
      "message": "Integrate LLVM at llvm/llvm-project@4f40fe10a4da\n\nUpdates LLVM usage to match\n[4f40fe10a4da](https://github.com/llvm/llvm-project/commit/4f40fe10a4da)\n\nPiperOrigin-RevId: 911338310\n"
    },
    {
      "commit": "24e17872972df025a8a074728095485ae390a4db",
      "tree": "f8bc37ca1384f74ee583c11b100ec4be1faa3d4e",
      "parents": [
        "7bd70c15d6f43dcd7b74e4ca5c09378dbb89a6d5"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 05 23:16:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 23:17:05 2026"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 910973765\n"
    },
    {
      "commit": "7bd70c15d6f43dcd7b74e4ca5c09378dbb89a6d5",
      "tree": "b0dcb8071bc6f54aeb08f98046f9b17efa164b77",
      "parents": [
        "ec973168390cce23918a4d9aef1763cd68288933"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 05 22:58:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 22:59:44 2026"
      },
      "message": "Mark our headers with IWYU pragmas to point at the correct header.\n\nThis is a kludgy solution, but it is low cost and easy to change later.\nIt requires we manually add the pragma to new headers we expect users to\nimport.\n\nPiperOrigin-RevId: 910964686\n"
    },
    {
      "commit": "ec973168390cce23918a4d9aef1763cd68288933",
      "tree": "91e14465b9f0566824f9cb1b86976128bd6d49b4",
      "parents": [
        "90c107ea216b7bbe85b49c8c92052da7532ec245"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue May 05 22:26:30 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 22:27:06 2026"
      },
      "message": "Fix unsafe_op_in_unsafe_fn warnings in dyn_futures.rs\n\nPiperOrigin-RevId: 910946937\n"
    },
    {
      "commit": "90c107ea216b7bbe85b49c8c92052da7532ec245",
      "tree": "049210f9235de04a913d11f2032aef683532d9a1",
      "parents": [
        "cca42b28dffd4e3543fc38283236d5e83d05d3cd"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue May 05 21:56:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 21:56:57 2026"
      },
      "message": "Remove bandaid for stdlib types.\n\nNow that we have bindings for stdlib types, we can remove the hack for them.\n\nPiperOrigin-RevId: 910930836\n"
    },
    {
      "commit": "cca42b28dffd4e3543fc38283236d5e83d05d3cd",
      "tree": "2525a5749e5855db8b7670d46b0512072cfe796e",
      "parents": [
        "2c19e060fa53694d6b1d02f5c5b7fc1732ff5341"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue May 05 18:57:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 18:58:11 2026"
      },
      "message": "Migrate to 2024 edition\n\nPiperOrigin-RevId: 910826828\n"
    },
    {
      "commit": "2c19e060fa53694d6b1d02f5c5b7fc1732ff5341",
      "tree": "67e8e7814e1cb93c6a8d263ca9f0b3140a31e9bc",
      "parents": [
        "58d7bcfeb0b1196e8507bdd753585b8351339655"
      ],
      "author": {
        "name": "Marcel Hlopko",
        "email": "hlopko@google.com",
        "time": "Tue May 05 14:31:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 14:32:44 2026"
      },
      "message": "Move ctor to edition 2024\n\nPiperOrigin-RevId: 910676640\n"
    },
    {
      "commit": "58d7bcfeb0b1196e8507bdd753585b8351339655",
      "tree": "b26b438932f67462bc9a04f2006c3841d788dfa8",
      "parents": [
        "6babde527a1d443b6fd2dd384f4aae9900112da6"
      ],
      "author": {
        "name": "Marcel Hlopko",
        "email": "hlopko@google.com",
        "time": "Tue May 05 12:26:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 12:27:41 2026"
      },
      "message": "Migrate //third_party/crubit to edition 2024\n\nPiperOrigin-RevId: 910616844\n"
    },
    {
      "commit": "6babde527a1d443b6fd2dd384f4aae9900112da6",
      "tree": "1874c06ef395e1dbab328f7931c2134f5f689be2",
      "parents": [
        "24f831280dd1bef44bca930d31142ced842a5bad"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 05 11:07:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 11:08:30 2026"
      },
      "message": "Disable code generation for thread_local variables.\n\nPiperOrigin-RevId: 910580805\n"
    },
    {
      "commit": "24f831280dd1bef44bca930d31142ced842a5bad",
      "tree": "832162bcbbccabe21ac2689472a31f97dfd3f6ea",
      "parents": [
        "36c0a44e2d1f3d70957ca1f1ff8cbbd90ac51025"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 05 10:51:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 10:52:10 2026"
      },
      "message": "Add support for unsafe constructor bindings and fix passing convention thunks\n\nThis commit adds UnsafeCtorNew and UnsafeFrom traits to handle constructors with unsafe parameters, and fixes layout compatible or ctor passing convention thunks for C ABI compatible types.\n\nPiperOrigin-RevId: 910572992\n"
    },
    {
      "commit": "36c0a44e2d1f3d70957ca1f1ff8cbbd90ac51025",
      "tree": "c3a5b92503c8b33462576ac12811155eddd7fb67",
      "parents": [
        "0cd000ea146f4c92063ac49242c1425c0843568f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 05 10:06:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 10:07:31 2026"
      },
      "message": "Reduce overloads of ImportUnsupportedItem in ImportContext.\n\nPiperOrigin-RevId: 910555180\n"
    },
    {
      "commit": "0cd000ea146f4c92063ac49242c1425c0843568f",
      "tree": "985756551351310ff1630ef5ed7a37bdb2c63fa8",
      "parents": [
        "68405104d2bc9351a6dd5c3aac281c1e756d28b3"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 05 09:57:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 09:59:07 2026"
      },
      "message": "Propagate `must_bind_` flag to `ImportUnsupportedItem` in `FunctionDeclImporter`.\nThis ensures that failure to bind a function annotated with `CRUBIT_MUST_BIND`\nresults in a hard error during analysis, rather than generating invalid bindings.\n\nAlso updated `ImportContext` interface and `Importer` implementation to support\npassing `is_hard_error` to `ImportUnsupportedItem`.\n\nPiperOrigin-RevId: 910551184\n"
    },
    {
      "commit": "68405104d2bc9351a6dd5c3aac281c1e756d28b3",
      "tree": "eaa336b7f1614ff5409fa2452235ec1728889af8",
      "parents": [
        "d9ada01eb86caff6593242b03faf1fc78c7942ac"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 05 09:54:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 09:55:20 2026"
      },
      "message": "Crubit fails with \"unknown attribute\" error when encountering [[clang::coro_wrapper]] on functions.\nThis attribute is a static analysis hint and does not affect the ABI or type layout.\nWe verified that all 7 Clang coroutine attributes are safe to ignore regarding ABI.\n\nThis CL centralizes the ignoring of these attributes in CollectUnknownAttrs in ast_util.cc.\nIt also cleans up cxx_record.cc to remove redundant checks.\nA regression test is added to verify the fix.\n\nPiperOrigin-RevId: 910550138\n"
    },
    {
      "commit": "d9ada01eb86caff6593242b03faf1fc78c7942ac",
      "tree": "493be5b0cd826574a7f651cd4c24717c9fdcc1ac",
      "parents": [
        "93b6193d2465dc3df0189566a144a74639fa30ee"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue May 05 09:46:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 09:47:00 2026"
      },
      "message": "Crubit: improve error message for unbindable type used by value\n\nWhen a type cannot be bound (results in RsTypeKind::Error), and it is used by value in a function, the error message was missing the actual type name.\nThis CL updates check_by_value in rs_snippet.rs to include the symbol name in the error message.\n\nPiperOrigin-RevId: 910546676\n"
    },
    {
      "commit": "93b6193d2465dc3df0189566a144a74639fa30ee",
      "tree": "6117b7d544a292d03831d1dc1c96143da9a02f15",
      "parents": [
        "88d66ead5f04163998e9836f7316c896faf241b9"
      ],
      "author": {
        "name": "Marcel Hlopko",
        "email": "hlopko@google.com",
        "time": "Tue May 05 08:36:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 05 08:36:56 2026"
      },
      "message": "Remove unneeded feature\n\nPiperOrigin-RevId: 910517279\n"
    },
    {
      "commit": "88d66ead5f04163998e9836f7316c896faf241b9",
      "tree": "628ffb54700fa8bbaf3528f284607e5c3af220c6",
      "parents": [
        "6fa05b4b6f9f6adea253a12f030126bd531395dc"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 04 23:32:50 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 23:33:45 2026"
      },
      "message": "Add some more tips n\u0027 tricks to the cargo build docs.\n\nPlease feel free to add your own or revise.\n\nPiperOrigin-RevId: 910309308\n"
    },
    {
      "commit": "6fa05b4b6f9f6adea253a12f030126bd531395dc",
      "tree": "55146849bd62dffb0483d58ad3576394a5e7332f",
      "parents": [
        "a84a3a419b0c35e967d617599e0904af3609b2b2"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 04 23:12:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 23:13:29 2026"
      },
      "message": "Re-use unsupported def error message for must_bind.\n\nPreviously we constructed an ad-hoc error message that didn\u0027t include\nthe same metadata as our unsupported def message (notably source\nlocation was lacking). This recitifies that so we show the same error\nmessage everywhere.\n\nPiperOrigin-RevId: 910299068\n"
    },
    {
      "commit": "a84a3a419b0c35e967d617599e0904af3609b2b2",
      "tree": "a49d93c8f03fc4272ecba6423be5f860a2017aa9",
      "parents": [
        "5adfb24a5bd6b8b812cc4f2805d381d0b258dbe7"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon May 04 22:09:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 22:10:57 2026"
      },
      "message": "Cover `std::iter::Iterator` bindings in unit tests.\n\nPiperOrigin-RevId: 910265763\n"
    },
    {
      "commit": "5adfb24a5bd6b8b812cc4f2805d381d0b258dbe7",
      "tree": "fd1b00a29cddab92ea90b474f4a8aed148bcad11",
      "parents": [
        "15d84b5acb2f894757cf3ba470e847574c62c203"
      ],
      "author": {
        "name": "Jordan Rupprecht",
        "email": "rupprecht@google.com",
        "time": "Mon May 04 21:33:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 21:34:11 2026"
      },
      "message": "Integrate LLVM at llvm/llvm-project@665984f5b327\n\nUpdates LLVM usage to match\n[665984f5b327](https://github.com/llvm/llvm-project/commit/665984f5b327)\n\nPiperOrigin-RevId: 910246464\n"
    },
    {
      "commit": "15d84b5acb2f894757cf3ba470e847574c62c203",
      "tree": "403b6a4fc1963db47bbf45faafa0ed55badd58ca",
      "parents": [
        "f7fe9fd3d1e64f2918f0291a20362c88f5de9ba2"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon May 04 21:06:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 21:06:50 2026"
      },
      "message": "Generate bindings for `std::iter::Iterator`.\n\nAfter this CL, `rs::core::iter::Iterator::impl\u003cstdlib::MyStruct\u003e` gets\ngenerated, and contains a valid definition of an `Item` type alias.\nBindings of `next` don\u0027t yet work - they require additional work.\n\nPiperOrigin-RevId: 910231525\n"
    },
    {
      "commit": "f7fe9fd3d1e64f2918f0291a20362c88f5de9ba2",
      "tree": "5bc44f985b33578e76348652b91a68bce5f38a9d",
      "parents": [
        "89b276a8e2c77eb56ad973a50cb7759c1daa5f56"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Mon May 04 20:44:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 20:45:19 2026"
      },
      "message": "Adapt to unstable rustc API changes\n\n1. The `HashStable` trait was renamed to `StableHash`, and its method was also renamed to match.\n\n    https://github.com/rust-lang/rust/pull/156030\n\n2. `rustc_hir::attrs::AttributeKind::{NoStd, NoCore}` are now fieldless.\n\n    https://github.com/rust-lang/rust/pull/156065\n\nPiperOrigin-RevId: 910219736\n"
    },
    {
      "commit": "89b276a8e2c77eb56ad973a50cb7759c1daa5f56",
      "tree": "43fedd0d5be682b8aa1ce931fa84ac49ef126361",
      "parents": [
        "b9ecd10fc86211ed597beb04fc1c52c00eb64506"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Mon May 04 18:44:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 18:46:06 2026"
      },
      "message": "assume_lifetimes: infer lifetimes for Co\u003cT\u003e and support Co\u003cT\u0026\u003e\n\nThe actual lifetime inference part of this CL is pretty simple!\n(Though we still need to properly handle `coro_lifetimebound`.)\nMost of the difficulty came from CRefs and bound lifetime names\nbeing used where they hadn\u0027t previously. It\u0027s a good thing that we\nadded CRef support early, since that\u0027s helping shake out a bunch\nof these issues.\n\nThe bulk of this change turns out to be a simple but long structural\nrecursion on `RsTypeKind` that renames all lifetimes to `\u0027static`.\nThis turns out to be necessary to spell types properly for bridging.\n\nThere are a few classes in `internal` namespaces that are causing us\nproblems; ideally we should figure out what\u0027s going on, or we should\nmark those classes in their actual headers as `CRUBIT_DO_NOT_BIND`.\n\nPiperOrigin-RevId: 910152023\n"
    },
    {
      "commit": "b9ecd10fc86211ed597beb04fc1c52c00eb64506",
      "tree": "68aa06c04dc9a969e0bb2d9a2afd72760751b4a9",
      "parents": [
        "3a121134dcff4b0f74f77465ffbd6cd5574bc57d"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 04 18:44:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 18:45:40 2026"
      },
      "message": "Use renamed crates when checking for includes.\n\nPreviously we would fail to find `--crate-header` for types in\ndependecies because we look them up without accounting for renames. For\nprotos this means we look up `crate_proto` when our crate header is for\n`crate_rust_proto` and fail to find definitions.\n\nPiperOrigin-RevId: 910152011\n"
    },
    {
      "commit": "3a121134dcff4b0f74f77465ffbd6cd5574bc57d",
      "tree": "d5784d280c88a24261ef674ca703c5286e02779f",
      "parents": [
        "fd27e36d813895ffca7d6a6b3ee4874f5a5012d3"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Mon May 04 16:39:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 16:42:23 2026"
      },
      "message": "Fix target_args_test\n\nPiperOrigin-RevId: 910080207\n"
    },
    {
      "commit": "fd27e36d813895ffca7d6a6b3ee4874f5a5012d3",
      "tree": "3f1646c1f70ee03dbf14fc96efc0724b85b1d12b",
      "parents": [
        "77d07a0e52052453e5a73552ae409009476a1159"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon May 04 16:18:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 04 16:19:24 2026"
      },
      "message": "Correctly set unsafe-allow-abi-mismatch flag.\n\nI was originally passing multiple instances of the flag but should\u0027ve\npassed one instance with a comma separated list. Multiple instances were\nclobbering the previous instance so we weren\u0027t properly allowing needed\nmismatches.\n\nPiperOrigin-RevId: 910069872\n"
    },
    {
      "commit": "77d07a0e52052453e5a73552ae409009476a1159",
      "tree": "1076691c05cca419870320ebcc41ae8950d7543a",
      "parents": [
        "3000d7dd9f3d79fd213b2a9782758940b8c4af46"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Sat May 02 00:36:34 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat May 02 00:38:11 2026"
      },
      "message": "Add support for custom DropImpl in CRUBIT_OWNED_POINTEE and refactor IR.\n\n- Support an optional second argument in CRUBIT_OWNED_POINTEE to specify\n  a custom DropImpl method name.\n- Refactor Crubit IR to group owned_ptr_type and drop_impl into a single\n  OwnedPtrConfig struct.\n- Apply default value of \"DropImpl\" at annotation parsing time.\n- Add GetAnnotationWithStringArgs helper in common/annotation_reader.h\n  and use it in cxx_record.cc.\n\nPiperOrigin-RevId: 908983034\n"
    },
    {
      "commit": "3000d7dd9f3d79fd213b2a9782758940b8c4af46",
      "tree": "2067f4026a8ecc4091945ce52b1481ebf1371f5a",
      "parents": [
        "bca7fece0c6994b285264352bbc86564fef3bdcc"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri May 01 22:59:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 23:00:07 2026"
      },
      "message": "Suppress unsupported item comments for libcxx\n\nPiperOrigin-RevId: 908942883\n"
    },
    {
      "commit": "bca7fece0c6994b285264352bbc86564fef3bdcc",
      "tree": "a6769ce93b40fdc29826c13da9698920775907df",
      "parents": [
        "6d48a9fd48407fc6e778338ccf4201001d1f27e7"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri May 01 22:16:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 22:17:42 2026"
      },
      "message": "Update enable-rmeta-interface to accept a boolean value.\n\nI am learning a lot about clap I already thought I understood.\n\nPiperOrigin-RevId: 908922608\n"
    },
    {
      "commit": "6d48a9fd48407fc6e778338ccf4201001d1f27e7",
      "tree": "b445e0294298e6fe01cb9f85c6b924773703de3f",
      "parents": [
        "4237b0f3267656b30bfe05991cdeee459b8398a5"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri May 01 21:01:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 21:02:11 2026"
      },
      "message": "Update to layout-compatible StatusCode and StatusCodeError types\n\nPiperOrigin-RevId: 908887690\n"
    },
    {
      "commit": "4237b0f3267656b30bfe05991cdeee459b8398a5",
      "tree": "7b6a7e379df6c6526799e236d6ddda9baa8be1c0",
      "parents": [
        "bee20b5882907b492a0a4c6670b794ff8e68cca3"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Fri May 01 17:36:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 01 17:37:33 2026"
      },
      "message": "Only use the `FSigKind` trait if it exists.\n\nThis broke Chromium yesterday, broke our nightly test matrix today, and will break the next upstream integrate for the Google monorepo today or tomorrow or whatever idk the schedule.\n\nPiperOrigin-RevId: 908799252\n"
    },
    {
      "commit": "bee20b5882907b492a0a4c6670b794ff8e68cca3",
      "tree": "bb2c21a3498df61be25530dc659e6c36feab8fd8",
      "parents": [
        "c35598f34a078188746eb4d1e2b918c66bbe1278"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Thu Apr 30 23:53:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 23:54:50 2026"
      },
      "message": "Make `FnCtor::new` unsafe.\n\nThis can be atomic because Crubit already generates unsafe blocks unconditionally. (Global testing will catch me if I am wrong.)\n\nTypically should separate the function definition from the unsafe function call, which is ergonomically annoying, but it\u0027s reasonable enough. However, it\u0027s absolutely vital in the ctor macro, to avoid silently allowing unsafe code. Unfortunately... the simple `let f \u003d |...| {...}; FnCtor::new(f)` does not compile. I needed to add a hack to coerce it to a `FnOnce`, where Rust would infer an `Fn` (and therefore fail to compile).\n\nPiperOrigin-RevId: 908450270\n"
    },
    {
      "commit": "c35598f34a078188746eb4d1e2b918c66bbe1278",
      "tree": "1879288d0184ab257949d8e07bfc593ffb4b7215",
      "parents": [
        "5f024356a4ef93822949babff2918fe4050f0c1c"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 30 21:23:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 21:24:21 2026"
      },
      "message": "Extend build_integration GN with support for rust_library.\n\nI\u0027m mostly teeing off of the GN for crubit/support in chromium.\n\nPiperOrigin-RevId: 908375431\n"
    },
    {
      "commit": "5f024356a4ef93822949babff2918fe4050f0c1c",
      "tree": "e7624f100251e5f6d332dc8ce2d89e901012b95c",
      "parents": [
        "969339ff92a44086a46b567a01b5261e0651b2dc"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Apr 30 20:47:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 20:48:13 2026"
      },
      "message": "Add end-to-end tests for Bazel bindings for `core` crate.\n\nPiperOrigin-RevId: 908355197\n"
    },
    {
      "commit": "969339ff92a44086a46b567a01b5261e0651b2dc",
      "tree": "e3df7fa4bfbe12d280b51a5df182ee0469313f9f",
      "parents": [
        "4eb74eeab981a0dd80da68eaa4bb1cb3a6aa5885"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 30 17:51:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 17:52:09 2026"
      },
      "message": "Trait impls depend on their self type (where relevant).\n\nWe saw a breakage due to impls being placed before their self type\nstruct in bindings. This was because the prereqs for an impl only listed\nthe trait and not the self type.\n\nI tried to add a golden for this but couldn\u0027t construct a minimal\nexampel that replicated the breakage. If you have one, please let me\nknow.\n\nPiperOrigin-RevId: 908263560\n"
    },
    {
      "commit": "4eb74eeab981a0dd80da68eaa4bb1cb3a6aa5885",
      "tree": "0138bdccd74a2054cd88f3e9c9478a3e9c6fa2c9",
      "parents": [
        "610c64cb4717f938f2eff0bfead327d462087471"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Apr 30 16:00:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 16:01:20 2026"
      },
      "message": "Internal-only change\n\nPiperOrigin-RevId: 908205924\n"
    },
    {
      "commit": "610c64cb4717f938f2eff0bfead327d462087471",
      "tree": "d4043d1c5b3e2ad2fe242975332da3e700c98ae0",
      "parents": [
        "9292728f52e3d2dceb23cadee2e5d4195e6467e9"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Apr 30 11:11:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 11:15:28 2026"
      },
      "message": "Rename `dest` to `__crubit_dest` (and similarly for `__return` and `__return_abi_buffer`) in `generate_func_body` to avoid variable shadowing.\n\nPiperOrigin-RevId: 908085023\n"
    },
    {
      "commit": "9292728f52e3d2dceb23cadee2e5d4195e6467e9",
      "tree": "3a40316d225b43e9e3757841117516dc58f77298",
      "parents": [
        "4e5e740197f00514d1817965bde0569fd181bd66"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Apr 30 00:47:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 00:48:36 2026"
      },
      "message": "No public description\n\nPiperOrigin-RevId: 907868887\n"
    },
    {
      "commit": "4e5e740197f00514d1817965bde0569fd181bd66",
      "tree": "ecb45f38de0aa8e8a4557a42b9b8f6903984dd3d",
      "parents": [
        "37b141ba5d50654342bb55b01dcd542c65ed32b0"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 30 00:10:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 00:11:41 2026"
      },
      "message": "Use relocated path for extra rust sources not builtin path.\n\nWith this change unknown commit can use naive equality (instead of\ncontains) because our paths now line up.\n\nPiperOrigin-RevId: 907854422\n"
    },
    {
      "commit": "37b141ba5d50654342bb55b01dcd542c65ed32b0",
      "tree": "ecf4b9f46bbd2b07a543ad6268d952ca6e5ed732",
      "parents": [
        "ad31706c7963606b5c352a3a173b0eb0dead2c1d"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 30 00:03:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 30 00:04:24 2026"
      },
      "message": "Use a total order consistently across definitions and template\nspecializations.\n\nWe had some lingering nondet between definitions and specializations. I\ncan\u0027t fully explain why, but I suspect it is due to an intricacy around\nour type ordering _technically_ allowing for different types to be\nconsidered equal. In the interest of consistency we now have one order\nwe use everywhere:\n\n1. Order by the `local_hash` of DefPathHash\n2. If our hashes are equal, order by path_str.\n\nFor types the stable_hash and pretty printed type are used. Pretty\nprinted types can allow for distinct types to be considered equal.\nLifetimes names that both print `\u0027t` could be considered distinct under\nthe hood, but we use pretty printed types to distinguish our template\nspecializations in the bindings, so this is already an issue.\nExpectation is that we anonymize regions such that this does not arise.\n\nTested with `check_determinism.par` and I no longer see the nondet.\n\nPiperOrigin-RevId: 907851371\n"
    },
    {
      "commit": "ad31706c7963606b5c352a3a173b0eb0dead2c1d",
      "tree": "b3e64aea30fb501f187a73ec69f01bc6680851cf",
      "parents": [
        "dfeeec53329bf0f1613790edfc8d24aa64acc9c9"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Apr 29 23:43:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 29 23:44:35 2026"
      },
      "message": "Add ignore-symbols-from-files flag.\n\nThe new flag is a list of files that is used to prevent bindings for\nsymbols that come from a file in the list.\n\nIt will be used to exclude generated bindings involving\nadditional_rust_srcs. These rust source files are meant to provide nicer\nC++ APIs and shouldn\u0027t be bound in C++ (the original C++ library should\nbe used as is).\n\nPiperOrigin-RevId: 907843588\n"
    },
    {
      "commit": "dfeeec53329bf0f1613790edfc8d24aa64acc9c9",
      "tree": "48d9de6d863bbcb7245380b8f080880557fb1556",
      "parents": [
        "1c204c72085cd082dcc6aa5767af93ef758ed046"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Apr 29 22:04:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 29 22:04:41 2026"
      },
      "message": "Track additional rust srcs in RustBindingsFromCc provider.\n\nThis will be used by cc_bindings_from_rs to avoid generating bindings\nfor symbols that appear in additional_rust_srcs. These symbols should be\nrust only and should not recieve C++ bindings.\n\nPiperOrigin-RevId: 907796479\n"
    },
    {
      "commit": "1c204c72085cd082dcc6aa5767af93ef758ed046",
      "tree": "a1644a8d33e67fdbf3dc9e7c99eaf4e5f004639b",
      "parents": [
        "4c4eae705f29a9d18c0c01db9428eba1b42f3dc5"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Apr 29 21:39:25 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 29 21:40:15 2026"
      },
      "message": "Use Crubit\u0027s run_compiler for run_with_rmetas.\n\nThis simplifies the implementation of `run_with_rmetas` significantly\nand allows us to share more logic with the non run_with_rmetas\nimplementation. It fixes a source of churn as we can now strictly rely\non the CLI inteface and avoid constructing a config manually (which\nchurns often with nightly versions).\n\nFix a revealed breakage in template specializations where deduplication\nwasn\u0027t working as intended. I can confirm this is caused by this change\nbut not how. Previously we weren\u0027t replacing self_ty regions with static\ncausing us to consider similar types (for our purposes) as distinct. I\nwould have expected this to show up before this change.\n\nPiperOrigin-RevId: 907784922\n"
    },
    {
      "commit": "4c4eae705f29a9d18c0c01db9428eba1b42f3dc5",
      "tree": "d6bf7f62c7df8f18346535e67abb8aeaaa90db46",
      "parents": [
        "fb012e66e4cc197bfac6f55003cab8fc1f6eb32f"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed Apr 29 14:06:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 29 14:07:38 2026"
      },
      "message": "assume_lifetimes: support `absl::span`s (+ other future template decls)\n\nThis CL adds a `template_args` field to the Decl enumerator of\n`CcTypeVariant` and defers to that field when considering the\nelement types of `TemplateSpecializationKind`. This is necessary\nbecause we need some way to attach lifetimes to specific `CcType`s,\nand our representation for template instantiations fixes type\narguments for each instantiation (so, e.g., you can\u0027t have a\nspan\u003cstring_view $a\u003e and a span\u003cstring_view $b\u003e in the same program).\n\nPiperOrigin-RevId: 907569946\n"
    },
    {
      "commit": "fb012e66e4cc197bfac6f55003cab8fc1f6eb32f",
      "tree": "c4933d539f91f8ec99e457308eabde3533ca6dad",
      "parents": [
        "ca4ffb864702fc262b9f4cdcb69b0ae05783fb45"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Apr 28 22:47:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 22:48:23 2026"
      },
      "message": "Add CRUBIT_THREAD_SAFE annotation and update IR\n\nThis commit introduces the CRUBIT_THREAD_SAFE annotation, updates the IR\nto store it, and adds IR tests.\n\nPiperOrigin-RevId: 907219116\n"
    },
    {
      "commit": "ca4ffb864702fc262b9f4cdcb69b0ae05783fb45",
      "tree": "d6378e4cae0acca36d79ea61f1e7aaaf4c52f6c2",
      "parents": [
        "53b6ef9dbdec73452f1e983c88c4a8cac2d9ac0d"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Apr 28 20:18:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 20:19:08 2026"
      },
      "message": "Remove C++23 use of std::unexpected from result.h.\n\nIn practice, this turns out to not work how we want because\n`std::unexpected` imposes more constraints on it\u0027s template parameter\nthan we do (it can\u0027t be a forward declared type). It\u0027d be nice if we\ncould reuse types, but given it\u0027s a compilation error remove them in\nfavor of always using our own types.\n\nPiperOrigin-RevId: 907144725\n"
    },
    {
      "commit": "53b6ef9dbdec73452f1e983c88c4a8cac2d9ac0d",
      "tree": "937f9ec7025f1cad8db4adf3cb69582199ea0b63",
      "parents": [
        "7ba6c1838c5d7f0f09d62262876597bbaceefcbb"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Apr 28 19:58:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 19:59:22 2026"
      },
      "message": "Make AdtCoreBindings DefId optional.\n\nThis is in preparation to resuse this code for `rs_std::Tuple` which\ndoes not have a meaningful DefId.\n\nPiperOrigin-RevId: 907134489\n"
    },
    {
      "commit": "7ba6c1838c5d7f0f09d62262876597bbaceefcbb",
      "tree": "1779f0e2a846127879393aaadbb268f180f030c8",
      "parents": [
        "1539a879b06359a9bd8557262b41838168c6ea0b"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Apr 28 19:43:08 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 19:44:07 2026"
      },
      "message": "Run our OSS CI jobs in parallel rather than sequence.\n\nUpdate CMake action to cache the CMake build directory betweeen runs.\n\nPiperOrigin-RevId: 907126439\n"
    },
    {
      "commit": "1539a879b06359a9bd8557262b41838168c6ea0b",
      "tree": "78a43ccee14c2a983f2a59690a70426c64e9495a",
      "parents": [
        "8650234a49613d01ad0ff994564b0353c65f233a"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Tue Apr 28 19:07:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 19:08:33 2026"
      },
      "message": "rs_bindings_from_cc: properly detect protobuf messages.\n\nThe proper way to do this test is to check whether a type\nderives from proto2::MessageLite. The existing code gets\npart of the way there (the three classes we check all derive\nfrom MessageLite, some more trivially than others), but this\nwill make us forward-compatible.\n\nPiperOrigin-RevId: 907108868\n"
    },
    {
      "commit": "8650234a49613d01ad0ff994564b0353c65f233a",
      "tree": "b31581243ed9f9165321820db4f43902c3be46e9",
      "parents": [
        "b4dc14b66ded20ce6b505ff0f16380f239a5366d"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Tue Apr 28 18:31:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 18:31:56 2026"
      },
      "message": "Update goldens.\n\nPiperOrigin-RevId: 907089726\n"
    },
    {
      "commit": "b4dc14b66ded20ce6b505ff0f16380f239a5366d",
      "tree": "344bf04fa17becd78768196c4685e8bbe090a530",
      "parents": [
        "c7e073ff3d8dcb1cc65daa3b59a3eb3ac8b46b52"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Tue Apr 28 16:42:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 16:43:12 2026"
      },
      "message": "Add `traits.md` to `mdbook`\u0027s `SUMMARY.md`.\n\nHopefully this fixes the dangling \"traits\" link at\nhttps://crubit.rs/rust/index.html\n\nThis commit also opportunistically mentions lack of support\nfor standard library traits.\n\nPiperOrigin-RevId: 907027923\n"
    },
    {
      "commit": "c7e073ff3d8dcb1cc65daa3b59a3eb3ac8b46b52",
      "tree": "c12652b07db19d608693561b8a91e7802baf9914",
      "parents": [
        "92b818eedd2ee6df69d0518d538370e2f157725f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Apr 28 13:05:03 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 13:06:01 2026"
      },
      "message": "Remove `fmt` feature gating as launched\n\nIt\u0027s worked!\n\nPiperOrigin-RevId: 906932419\n"
    },
    {
      "commit": "92b818eedd2ee6df69d0518d538370e2f157725f",
      "tree": "e922902dfe6c78b41cfcae187a30b2d93f05750d",
      "parents": [
        "2d581e97e5a41cd978f74b8a5ca8605d20b497cf"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Apr 28 01:00:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 28 01:01:45 2026"
      },
      "message": "Move and simplify the `displayables` golden test.\n\nPreviously, the golden test depends heavily on brittle C++ standard library details. Now, the new golden test header contains just `DisplayableStruct` and `DisplayableEnum`, without including other headers.\n\nPiperOrigin-RevId: 906648625\n"
    },
    {
      "commit": "2d581e97e5a41cd978f74b8a5ca8605d20b497cf",
      "tree": "b717c91c0c27b78b5179c864eb2377e9a22ff66f",
      "parents": [
        "65ebefef17efad31e3d3600f26f5c36ee2865c11"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Apr 27 22:18:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 27 22:19:50 2026"
      },
      "message": "Introduce tuple.h for layout compat rs_std::Tuple.\n\nPiperOrigin-RevId: 906570232\n"
    },
    {
      "commit": "65ebefef17efad31e3d3600f26f5c36ee2865c11",
      "tree": "87481ac3a4deddba6e64e46b9dba84a73a59d685",
      "parents": [
        "c27f41f6f54fa41981a58e253fad0353179e3e84"
      ],
      "author": {
        "name": "Andreas C. Osowski",
        "email": "qwf@google.com",
        "time": "Mon Apr 27 22:11:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 27 22:12:11 2026"
      },
      "message": "Use a custom hasher for template specialisation comparisons.\n\nThe prior implementation relied on string comparisons which would compare types incorrectly.\n\nPiperOrigin-RevId: 906566390\n"
    },
    {
      "commit": "c27f41f6f54fa41981a58e253fad0353179e3e84",
      "tree": "21a5fc362698c425a94ac0ebaf5fb89c5ba3df77",
      "parents": [
        "2febe44fabb49470657a9278ee1f269940a2c565"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Apr 27 19:45:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 27 19:46:48 2026"
      },
      "message": "Rework #[recursively_pinned] to prevent unwanted direct initialization\n\n- Replaced the `#[non_exhaustive]` attribute with a private field of type alias `ctor::macro_internal::MustUseCtorToInitialize`.\n- Appended the hidden field at the back for unnamed fields (tuple structs/variants) to preserve field index alignment.\n- Note: This means that DST tuple structs/variants are not supported due to the requirement that the unsized field must be the last field, which conflicts with the hidden field insertion.\n\nPiperOrigin-RevId: 906497692\n"
    },
    {
      "commit": "2febe44fabb49470657a9278ee1f269940a2c565",
      "tree": "1b3cef34d364d48c9cabeb50a065141b2fc10fc8",
      "parents": [
        "c70977f7dbe5b4c18b8642d8c3ac8dbf0044b407"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Apr 27 14:59:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 27 15:00:30 2026"
      },
      "message": "Internal-only change\n\nPiperOrigin-RevId: 906359360\n"
    },
    {
      "commit": "c70977f7dbe5b4c18b8642d8c3ac8dbf0044b407",
      "tree": "8b2f36f1100276555f171133dbf1c916baf78da6",
      "parents": [
        "0b1bf63574de50939fe88000ad18925c9e8337da"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Apr 24 21:29:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 24 21:31:00 2026"
      },
      "message": "Add cmake example project to OSS Presubmit.\n\nPiperOrigin-RevId: 905222512\n"
    },
    {
      "commit": "0b1bf63574de50939fe88000ad18925c9e8337da",
      "tree": "98270b15306238f26c809fc4361b8247e0d8cd86",
      "parents": [
        "544297d35d070683d67b458a1b17f318860962de"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Apr 24 18:04:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 24 18:06:01 2026"
      },
      "message": "Add a fastpath rejection for isNullable\n\nOften, we are given a nonnull pointer, e.g., for `diagnoseCallExpr`, the callee is typically a function pointer (https://github.com/google/crubit/blob/d10700e008716291413d5564436b535d03c36d34/nullability/pointer_nullability_diagnosis.cc#L793), even if it\u0027s a direct call. In such direct call cases, the function pointer is definitely nonnull, but isNullable will go through more work than needed querying the solver (setting up flow condition constraints, etc. as it doesn\u0027t get the fastpath here https://github.com/llvm/llvm-project/blob/6f115abef8c9c4b3fdec9bbc0c54b578c31b1e5b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp#L190 for `proves`)\n\nPiperOrigin-RevId: 905123418\n"
    },
    {
      "commit": "544297d35d070683d67b458a1b17f318860962de",
      "tree": "4054b97af2bd3d08d4ec361444ebd94c96ad84c8",
      "parents": [
        "fbb5543f4341f3f236eb904bbc29ecd9fe229e41"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri Apr 24 17:24:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 24 17:25:11 2026"
      },
      "message": "Use `ABSL_CHECK` instead of `CHECK`.\n\nThis avoids the conflict with Chromium\u0027s definition of `CHECK`\nfrom `//base/check.h`.\n\nPiperOrigin-RevId: 905101877\n"
    },
    {
      "commit": "fbb5543f4341f3f236eb904bbc29ecd9fe229e41",
      "tree": "98b8acdd711bc446334369fe395f9f2e8ce9bcc7",
      "parents": [
        "1d9f03a3bd048579f8d2c76a7e0093e770b24279"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Apr 24 13:44:47 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 24 13:45:53 2026"
      },
      "message": "Add a bunch more AnyInvocable tests and fix a bunch of bugs\n\nI actually exercised all RsTypeKind cases now so hopefully nothing else can slip through...\n\nPiperOrigin-RevId: 905001296\n"
    },
    {
      "commit": "1d9f03a3bd048579f8d2c76a7e0093e770b24279",
      "tree": "5402b47fcd87e8e761c28fcaadd52fc49da3f24e",
      "parents": [
        "9aab9f553ab69a519be82802201e754eaf59e2f3"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 23 21:33:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 21:34:15 2026"
      },
      "message": "Add implicit depedency on std, core, and alloc bindings.\n\nThis makes bindings to std, core, and alloc available to any generated\nbindings. It is done as a separate attribute so that they are only\nincluded in the aspect and not the aspect and the `toolchain_bindings`\nrule (which would cause a cycle).\n\nPiperOrigin-RevId: 904640346\n"
    },
    {
      "commit": "9aab9f553ab69a519be82802201e754eaf59e2f3",
      "tree": "2cb47b2631fad7b65958097c98579977a742bcc3",
      "parents": [
        "b5234f4a5f38ac7a73ad04a636063498025aedd2"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 23 19:42:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 19:42:42 2026"
      },
      "message": "Example CMake project.\n\nIncluded in this CL are some changes required to get the subcommand working\nend to end.\nA followup CL will add this as a test to build this in our OSS CI.\n\nPiperOrigin-RevId: 904588708\n"
    },
    {
      "commit": "b5234f4a5f38ac7a73ad04a636063498025aedd2",
      "tree": "fb7e07476e73e2b6869a445e1dfb2d03ed415830",
      "parents": [
        "93f10d2281a3cf4bf45635279998b5cbd5ed72c6"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 23 19:15:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 19:16:29 2026"
      },
      "message": "Run our nightly test matrix later.\n\nRunning our test matrix at midnight causes it to run before today\u0027s\nnightly rust version is available, causing a day\u0027s delay in seeing\nbreakages. Move our tests to run later, so that the latest nightly is\navailable when we run.\n\nPiperOrigin-RevId: 904576534\n"
    },
    {
      "commit": "93f10d2281a3cf4bf45635279998b5cbd5ed72c6",
      "tree": "70da3dbf3f6712820549b4dfc13babd214c28913",
      "parents": [
        "18d4069e822eae1595a0c2bec27e893b947fa0d3"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 23 17:37:41 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 17:38:21 2026"
      },
      "message": "I accidentally fixed us to a particular nightly version.\n\nFix nightly breakages.\nWe should be testing against \"nightly\" not a particular date of nightly.\n\nPiperOrigin-RevId: 904527654\n"
    },
    {
      "commit": "18d4069e822eae1595a0c2bec27e893b947fa0d3",
      "tree": "1e34223740478a15624e52ecfc4fe45b06f01a71",
      "parents": [
        "dd8477bee74c96ae35d09cfeb772798ea1b34218"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Apr 23 14:20:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 14:21:55 2026"
      },
      "message": "Model pass through behavior of our `ArgCaptureAbortIf*` support functions\n\nOtherwise, we it looks like the return of those `ArgCaptureAbortIf*` get checked, but not the original inputs, and we end up accidentally inferring Nullable for the return of `Target` in this case:\n\n```\nint* _Nullable Get(int x);\nint* Target() {\n  int* _Nullable p \u003d Get(-1);\n  CHECK(p !\u003d nullptr);\n  return p;\n}\n```\n\nPiperOrigin-RevId: 904443703\n"
    },
    {
      "commit": "dd8477bee74c96ae35d09cfeb772798ea1b34218",
      "tree": "39fd3fb791e313a96dc4aa1f37fdf17146f47c2d",
      "parents": [
        "4a4a18f97c6ee8e76e2e36ea6d0430a9a2d78242"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Apr 23 01:34:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 23 01:35:16 2026"
      },
      "message": "Suppress `Wignored-attirubtes` in generated bindings.\n\nGenerated bindings cause `ext_cannot_use_trivial_abi_warnings`, which we\nwant to ignore. We\u0027re okay with the trivail abi not applying and crubit\nrelies on the annotation for it\u0027s usage of the type.\n\nPiperOrigin-RevId: 904156637\n"
    },
    {
      "commit": "4a4a18f97c6ee8e76e2e36ea6d0430a9a2d78242",
      "tree": "4fa67c2bda740b879a61c3920b45b4999a6f57e4",
      "parents": [
        "e6f99c83948db80a2f92b06550786a24a7617d24"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Apr 22 18:55:27 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 18:56:15 2026"
      },
      "message": "Include `\u003cbit\u003e` when generated code calls `bitcast`.\n\nPiperOrigin-RevId: 903966562\n"
    },
    {
      "commit": "e6f99c83948db80a2f92b06550786a24a7617d24",
      "tree": "86bc57203c8975b05619669649c8674c3c733818",
      "parents": [
        "d10700e008716291413d5564436b535d03c36d34"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Apr 22 18:48:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 18:51:08 2026"
      },
      "message": "Prepare cc_bindings_from_rs to generate Rust 2024 valid syntax.\n\nPiperOrigin-RevId: 903962902\n"
    },
    {
      "commit": "d10700e008716291413d5564436b535d03c36d34",
      "tree": "27459dd311a2707f97505949d5aeb3e19fd82c5d",
      "parents": [
        "b63789b5f499573d0b5750bbf5ed93b5fc9bc93f"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed Apr 22 14:10:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 14:11:17 2026"
      },
      "message": "Move the logic for choosing cref representations lower; don\u0027t Pin uselessly.\n\nIt turns out that we already carry around almost all the context we need\nto decide whether a reference `is_cref` when lowering `CcType`s to\n`RsTypeKind`s. This means that we can remove `is_cref` from `ir.rs`\nwithout significantly complicating lowering. In turn, this will make it\neasier for us to deal with crefs as type parameters. (There is no\nreasonable way to apply a modified `CcType` to a (e.g.) `Record` `CcType`,\nbecause `Record`s are monomorphized. This is a problem if we want to,\nsay, represent Co\u003cT\u0026\u003e in return position as Co\u003cCMut\u003c\u0027_, T\u003e\u003e but in\nparameter position as an ordinary reference. We get around this by\ndeferring the cref decision instead of recording it in the IR.\n(This problem is more complicated than it seems because of structural\ntypes and function types.))\n\nThis CL also addresses some TODOs about `Pin` and crefs. We can then\nremove the last experimental opt-out from assumed lifetimes.\n\nPiperOrigin-RevId: 903830990\n"
    },
    {
      "commit": "b63789b5f499573d0b5750bbf5ed93b5fc9bc93f",
      "tree": "1f6482e66c626a3e542fe7797a66ee75bdcef11a",
      "parents": [
        "cb5022cd596e517310ca161bd8a68296261950c9"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Apr 22 12:32:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 22 12:33:54 2026"
      },
      "message": "Eliminate usage of RPITIT for Ctor\n\nThis was causing strange conflicts with auto trait leakage, where `Send` sometimes wasn\u0027t leaking when we would expect it to. By changing to concrete types, `Send` details are carried along naturally in the concrete types, which we know works.\n\nTo illustrate this weird behavior with auto trait leaking in RPITIT, see https://play.rust-lang.org/?version\u003dstable\u0026mode\u003ddebug\u0026edition\u003d2024\u0026gist\u003de51202f42e9296a0b6364adee83667c4\n\nPiperOrigin-RevId: 903788010\n"
    },
    {
      "commit": "cb5022cd596e517310ca161bd8a68296261950c9",
      "tree": "8696e693063228cf779dfd4313a52fe1886bc84c",
      "parents": [
        "1c97ab3210e3857e3c565ac353534d975918ae38"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Tue Apr 21 22:35:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 22:35:45 2026"
      },
      "message": "Update limits.md to be more of an overview of Crubit\u0027s planned capabilities.\n\nSome of the things I like about this version:\n\n1. I\u0027ve broken down some of the rows in the table (or reworded them) to match actual planning we\u0027re doing.\n2. then, for the parts that we specifically are planning, I\u0027ve actually marked them as planned.\n\nWhere it falls short:\n\n* I\u0027ve given a brief overview here, but it might both contain more and less than people are interested in. (I did resist the urge to make each one very long: each feature could have many pages of discussion.)\n* Depending on target audience, this might not capture what people want to know.\n* There is some ambiguity on whether/when we should estimate / measure the percentage of functions that have property X (what\u0027s meant to go in this doc), vs the percentage of the functions we have support for (which would need to be tracked in a dashboard that updates dynamically, and shouldn\u0027t be covered by this doc).\n\nPiperOrigin-RevId: 903459563\n"
    },
    {
      "commit": "1c97ab3210e3857e3c565ac353534d975918ae38",
      "tree": "88cca50d1501692f8559e7727cb9f5426b0c210a",
      "parents": [
        "1972e25908722b3da6e33ee781ded83c6f5fcdc6"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Apr 21 20:53:54 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 20:54:50 2026"
      },
      "message": "Rename crubit_bridge_rust in generated crate.\n\nWe want our publicly hosted crate to be named `crubit_bridge_rust` (for\nnamespacing reasons), but our bindings reference it using `bridge_rust`.\n\nPiperOrigin-RevId: 903409114\n"
    },
    {
      "commit": "1972e25908722b3da6e33ee781ded83c6f5fcdc6",
      "tree": "34e8f6e0ba0f64a32f7a077645af150b0c086512",
      "parents": [
        "9b0cd3258896c914d7d0eafedb63ec21cb1a9233"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Apr 21 18:52:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 18:52:36 2026"
      },
      "message": "Replace more Abseil CHECK with llvm::reportFatalInternalError.\n\nNo functionality change intended. This is more verbose, but reducing the dependency makes it easier to upstream.\n\nPiperOrigin-RevId: 903348886\n"
    },
    {
      "commit": "9b0cd3258896c914d7d0eafedb63ec21cb1a9233",
      "tree": "1ac1177dcc1dc9d497af5d3fda27d17bc125d92a",
      "parents": [
        "e88e947e41e9ec3e45ee2caa0f2e1a0f86563c43"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Apr 21 18:47:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 18:48:16 2026"
      },
      "message": "Name thunks with stable_crate_id instead of crate_hash.\n\nWe encountered an issue where thunk names were misaligned, causing\nlinker failures, due to crate_hash not lining up. This is because\ncrate_hash uses contents of the crate as part of it\u0027s hash. All we need\nis a unique stable hash for the crate itself (not it\u0027s contents), so\nstable crate id suits our needs while not depending on crate contents.\n\nPiperOrigin-RevId: 903346615\n"
    },
    {
      "commit": "e88e947e41e9ec3e45ee2caa0f2e1a0f86563c43",
      "tree": "bc9f45780057d444ab95c63e3815a7c42c49c429",
      "parents": [
        "336f55e8384e09db13497252927c7a2e9400a9ae"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Apr 21 17:11:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 17:15:01 2026"
      },
      "message": "Use deterministic type names in bindings generation errors\n\nThis avoids the use of nondeterministic type names which\nsometimes included LLVM pointer hashes.\n\nPiperOrigin-RevId: 903294237\n"
    },
    {
      "commit": "336f55e8384e09db13497252927c7a2e9400a9ae",
      "tree": "5072bc489751002aadd04b1aa41d0657238de82f",
      "parents": [
        "66130c5f88ed339171ebb04a01de5d7694303e4c"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Apr 21 17:08:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 17:11:24 2026"
      },
      "message": "Fix non-deterministic sorting in rs_bindings_from_cc\n\nThis change fixes non-deterministic generation of Crubit bindings by:\n1. Using llvm::stable_sort instead of llvm::sort in importer.cc.\n2. Filtering and sorting out-of-line children before adding them to parent records in importer.cc.\n\nPiperOrigin-RevId: 903292784\n"
    },
    {
      "commit": "66130c5f88ed339171ebb04a01de5d7694303e4c",
      "tree": "9c46ffd6e342ce19e4bbcdb6cc192b8355281e19",
      "parents": [
        "20e3cbc5e9b4f8a4b105c8d8f9bcdd4651353c32"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Tue Apr 21 16:31:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 21 16:32:10 2026"
      },
      "message": "(Prepare to) update ffi_11 in crates.io to see if this unbricks releaze-plz.\n\nRight now release-plz scans all the way back in history to 2025, at which point it notices our workspace was broken back then, and chokes. I can\u0027t find a way to disable this, but maybe having a more recent release would make it not look back that far.\n\nIf not, maybe I need to use something other than release-plz.\n\nPiperOrigin-RevId: 903274062\n"
    }
  ],
  "next": "20e3cbc5e9b4f8a4b105c8d8f9bcdd4651353c32"
}
