)]}'
{
  "log": [
    {
      "commit": "a336c62f143fa8fc653819e52aaf142bef6b0280",
      "tree": "670c12c8ae51c30f0f3e65755e0a4f0be2f8810d",
      "parents": [
        "a53973a952056acd5cdf5a21c254c6c95e16d8bb"
      ],
      "author": {
        "name": "Augie Fackler",
        "email": "augie@google.com",
        "time": "Tue Sep 01 21:41:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 21:42:51 2026"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 974715331\n"
    },
    {
      "commit": "a53973a952056acd5cdf5a21c254c6c95e16d8bb",
      "tree": "52f5436c43a5be4e1cd287bf561e6b1404a9aa22",
      "parents": [
        "a7b33215fa0cdd7963bc097e413091da112e2f40"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Tue Sep 01 18:31:02 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 18:32:25 2026"
      },
      "message": "Expand Bazel CI to build rs_bindings_from_cc_main.\n\nThis change expands the GitHub CI Bazel build in `rust.yml` to build\n`rs_bindings_from_cc:rs_bindings_from_cc_main`, replacing the previous\npartial targets.\n\nPiperOrigin-RevId: 974611581\n"
    },
    {
      "commit": "a7b33215fa0cdd7963bc097e413091da112e2f40",
      "tree": "c4023464f6096ba69155b2750cbf9a772fde1243",
      "parents": [
        "ce2ec577802e896a9a721737df262966e95866e5"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Sep 01 14:42:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 14:45:05 2026"
      },
      "message": "Remove gates on AsyncFnSendModuloRegions feature since its enabled globally now\n\nPiperOrigin-RevId: 974491707\n"
    },
    {
      "commit": "ce2ec577802e896a9a721737df262966e95866e5",
      "tree": "17c63ed48d22ccab1524666decefddf782a36752",
      "parents": [
        "435eb2607f2e1b803fcdad6bc126afaf398787fc"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon Aug 31 23:37:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 23:38:38 2026"
      },
      "message": "Add reference to another potential fix for `protobuf_visibility.patch`.\n\nPiperOrigin-RevId: 974143546\n"
    },
    {
      "commit": "435eb2607f2e1b803fcdad6bc126afaf398787fc",
      "tree": "d18d9f106d9d7549177b8867c509bc14e38101e5",
      "parents": [
        "070d7edb1cac38bb15902511c36b45a7f17acfe3"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon Aug 31 21:39:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 21:41:13 2026"
      },
      "message": "Cover `rs_bindings_from_cc:ir` target in OSS Bazel builds.\n\nPiperOrigin-RevId: 974085711\n"
    },
    {
      "commit": "070d7edb1cac38bb15902511c36b45a7f17acfe3",
      "tree": "abeca644dd8b4cc277247d8c7120f3b8ea8ad14b",
      "parents": [
        "b3635f444c6795a1553d935062dbe2e1b3d0f7bf"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Aug 31 19:37:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 19:39:20 2026"
      },
      "message": "rs_bindings_from_cc: support nonstatic async fns\n\nThis change adds \"async_fn_send_modulo_regions\" to the SUPPORTED_FEATURES list in global_features.bzl. Consequently, the explicit aspect hint is removed from the async_fn test BUILD file as it is now supported by default.\n\nPiperOrigin-RevId: 974021555\n"
    },
    {
      "commit": "b3635f444c6795a1553d935062dbe2e1b3d0f7bf",
      "tree": "04ac38979491d51a1eca26e4d04c617c578f739c",
      "parents": [
        "317a41c9f6dd824eebd0120c4d17798096990e2f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Aug 31 18:11:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 18:12:14 2026"
      },
      "message": "Make format_ty_for_rs aware of AlwaysSpecializeGenericsInCppApiFromRust flag\n\nFor context, I\u0027m trying to enable the feature flag globally. But there are some targets that rely on `Option`-returning functions to return `std::optional` and use methods like `value_or`. When the flag is enabled on these targets, they suddenly break because `rs::Option` doesn\u0027t have a `value_or` method. So I was then trying to go through these sus targets one by one and enable their flag eagerly with an atomic fix to their code, and this mostly worked. But I found that methods returning `Option\u003cusize\u003e` were broken. This fixes that, which will allow me to fix those targets early.\n\nPiperOrigin-RevId: 973980135\n"
    },
    {
      "commit": "317a41c9f6dd824eebd0120c4d17798096990e2f",
      "tree": "d266a8a1095b015b88f62c7297e26d32e6d21bcf",
      "parents": [
        "c5c3f436893fa8aeccef49de84fab62bb785e97d"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Aug 31 16:21:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 16:23:28 2026"
      },
      "message": "Internal-only change.\n\nPiperOrigin-RevId: 973919880\n"
    },
    {
      "commit": "c5c3f436893fa8aeccef49de84fab62bb785e97d",
      "tree": "eca95e7403496bfeed496084dcc68ae07b5db7e9",
      "parents": [
        "40ab45127b5c5221a7ad1a0b64c1547f6e96fe2f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Aug 31 16:01:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 16:03:35 2026"
      },
      "message": "Remove CppMoveConstructibleAnnotation Crubit feature from \"all\"\n\nWe really need to distinguish between \"unstable feature\" and \"migration feature flag\". It\u0027s super annoying that \"all\", by default, means both.\n\nPiperOrigin-RevId: 973910306\n"
    },
    {
      "commit": "40ab45127b5c5221a7ad1a0b64c1547f6e96fe2f",
      "tree": "2139062395b1da50ef093cc43f64d28916b0805f",
      "parents": [
        "3cfae5ea8b66da79b665042e8ad424a937d52f17"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Mon Aug 31 11:44:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 11:45:44 2026"
      },
      "message": "`assume_lifetimes`: run build_cleaner.\n\nPiperOrigin-RevId: 973811269\n"
    },
    {
      "commit": "3cfae5ea8b66da79b665042e8ad424a937d52f17",
      "tree": "79cad7d31ba757f7de306d9111e9be22bff2d7d2",
      "parents": [
        "4b0a271e44430ece6ad5afced5d4f771642580ae"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Aug 31 11:02:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 11:04:06 2026"
      },
      "message": "Enable iOS platform testing for cc_bindings_from_rs integration tests.\n\nPiperOrigin-RevId: 973795763\n"
    },
    {
      "commit": "4b0a271e44430ece6ad5afced5d4f771642580ae",
      "tree": "4e4fe33c424868841b285038f09f67e568457c60",
      "parents": [
        "e5296ba28143bd4e4b49c8d2f0e4531b368cd537"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Sat Aug 29 00:38:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Aug 29 00:40:24 2026"
      },
      "message": "Wrap non-C++-movable types in rs::Movable in cc_bindings_from_rs.\n\nPiperOrigin-RevId: 972875959\n"
    },
    {
      "commit": "e5296ba28143bd4e4b49c8d2f0e4531b368cd537",
      "tree": "a1c0ad17da6e76082605e78221dc784769f35f2a",
      "parents": [
        "408d9d9293ac155f7433a37579cd0813e25d54ec"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Aug 28 23:38:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 23:40:16 2026"
      },
      "message": "Clarify example snippet\n\nPiperOrigin-RevId: 972852265\n"
    },
    {
      "commit": "408d9d9293ac155f7433a37579cd0813e25d54ec",
      "tree": "ece08bc341af95c810d4d0e131efbd779f40add4",
      "parents": [
        "83ee701ab13f7b694d45b127d46dcc71d5b6dd3c"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Aug 28 23:02:12 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 23:10:14 2026"
      },
      "message": "Add support for C++ Protobuf references in Crubit and update status migration guide.\n\nPiperOrigin-RevId: 972836745\n"
    },
    {
      "commit": "83ee701ab13f7b694d45b127d46dcc71d5b6dd3c",
      "tree": "ba8ca19d7e6eb5eedcb19038089614b84c4d90e3",
      "parents": [
        "f79733742f5c854163a951b384d0339322bebb2f"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Aug 28 22:54:14 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 23:05:03 2026"
      },
      "message": "Do not emit size/align assertions for ExistingRustType with incomplete template args\n\nWhen a C++ template annotated with `CRUBIT_INTERNAL_RUST_TYPE` (such as `absl::StatusOr\u003cT\u003e` under `CRUBIT_NEW_STATUS`) is instantiated with a type that is incomplete or forward-declared in Rust (e.g., `IncompleteRecord`), the C++ size obtained from Clang AST does not match the Rust size (where `Incomplete` is 0-sized). Generating const size/align assertions in this case results in compile-time assertion panics in rustc.\n\nThis change checks if `ExistingRustType` contains any incomplete template argument type before emitting size and alignment assertions.\n\nPiperOrigin-RevId: 972833457\n"
    },
    {
      "commit": "f79733742f5c854163a951b384d0339322bebb2f",
      "tree": "f5bba158488fdc7b1504dcc2057ee102f3d387f9",
      "parents": [
        "8877c47dfea0ea7aa207b003f581c83c0feb7bc1"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 28 22:48:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 23:03:21 2026"
      },
      "message": "Fix up `#![no_core]` probe logic.\n\nTesting this on Chrome and discovered this does not work as expected. I\ndon\u0027t know of a good way to test this in our repo, but if we can figure\none out it\u0027d be helpful.\n\nPiperOrigin-RevId: 972830469\n"
    },
    {
      "commit": "8877c47dfea0ea7aa207b003f581c83c0feb7bc1",
      "tree": "6fc1d00a14edd8006a681c644b216981389d92cc",
      "parents": [
        "eb0de055101fc92cf80059d718ed5da7f0c49f77"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Aug 28 22:48:39 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 22:58:13 2026"
      },
      "message": "Refuse to generate bindings for unique_ptr\u003cT\u003e when T implements Delete\n\nPiperOrigin-RevId: 972830459\n"
    },
    {
      "commit": "eb0de055101fc92cf80059d718ed5da7f0c49f77",
      "tree": "91f34cb35b68f0d475d066f4e142619ef6afff94",
      "parents": [
        "ae9c60367ebc113134d565b0ce23610e852ba9e7"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 28 22:47:55 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 22:54:03 2026"
      },
      "message": "std::get and structured binding support for rs_std::Tuple.\n\nThis will allow using the `auto [field0, field1, ..]` syntax which\nshould ease migration to layout compat tuple.\n\nPiperOrigin-RevId: 972830142\n"
    },
    {
      "commit": "ae9c60367ebc113134d565b0ce23610e852ba9e7",
      "tree": "4f529096cb02e86bad11e8bebfca612cf691c918",
      "parents": [
        "d74b7ca96432f2f9db1a511ac5c42ebe01c6dffb"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 28 22:47:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 22:49:05 2026"
      },
      "message": "Fix golden_test promo logic.\n\nWhile iterating I got into a situation where I could not fix the golden\nby updating due to introducing a change and reverting said change\nleaving stale goldens for a particular tier. Update the logic so that we\nshould now correctly clear out the goldens in that instance.\n\nPiperOrigin-RevId: 972830018\n"
    },
    {
      "commit": "d74b7ca96432f2f9db1a511ac5c42ebe01c6dffb",
      "tree": "699ddbef0ccf7c8957f553e6f6b33a60e1d8d2f3",
      "parents": [
        "3d91bc1dd985c3ee35b8260f9a61466894ede848"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Aug 28 22:26:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 22:28:26 2026"
      },
      "message": "Update Cargo.lock to sync with workspace dependencies.\n\nPiperOrigin-RevId: 972819667\n"
    },
    {
      "commit": "3d91bc1dd985c3ee35b8260f9a61466894ede848",
      "tree": "063525719aed3f8f7af2b063f4698432fc7fd3fe",
      "parents": [
        "29d16ff969b7539a7a79204b671087d613166f77"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Aug 28 16:54:38 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 16:58:53 2026"
      },
      "message": "Skip bindings for fortified and variadic standard library functions.\n\nAndroid Fortify introduces `sprintf` and `snprintf` overloads (with `enable_if`, `diagnose_if`, and variadics) that trigger `-Wformat-security` errors when wrapped in generated C++ thunks.\n\nThis change:\n- Skips functions with `enable_if` or `diagnose_if` attributes.\n- Skips variadic functions requiring C++ thunks.\n\nPiperOrigin-RevId: 972644863\n"
    },
    {
      "commit": "29d16ff969b7539a7a79204b671087d613166f77",
      "tree": "14011533f0039c5cfd6ed4880e1b8f14df952875",
      "parents": [
        "95265bf48c4f0228eaaae3981db1040c742a2d65"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Aug 28 15:22:28 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 15:23:45 2026"
      },
      "message": "Add CppMoveConstructibleAnnotation Crubit feature flag\n\nGuards the `CRUBIT_ANNOTATE: cpp_move_constructible\u003d` doc comment annotation on struct/union record bindings behind the new `CppMoveConstructibleAnnotation` Crubit feature flag instead of emitting it unconditionally.\n\nPiperOrigin-RevId: 972602237\n"
    },
    {
      "commit": "95265bf48c4f0228eaaae3981db1040c742a2d65",
      "tree": "b1560a84fa6e17b572a7d694076976a8690c8f3e",
      "parents": [
        "1a562b8de332ee3c7bd15c2aaacc460f1f91197c"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 28 15:05:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 15:07:16 2026"
      },
      "message": "Provide field access to rs_std::Tuple members.\n\nRefactor generate_fields logic to be reusable for Tuples. Call the\nresulting function for tuple specializations so they receive explicit\nfields rather than an opaque byte buffer (when possible).\n\nPiperOrigin-RevId: 972595012\n"
    },
    {
      "commit": "1a562b8de332ee3c7bd15c2aaacc460f1f91197c",
      "tree": "d86526cbea649f1697c67284096bc1d360e398d7",
      "parents": [
        "003ebae9276600a06e2d75595e2990ce8269b010"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Aug 28 09:35:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 09:37:24 2026"
      },
      "message": "Enable iOS platform testing for golden test targets.\n\nPiperOrigin-RevId: 972456683\n"
    },
    {
      "commit": "003ebae9276600a06e2d75595e2990ce8269b010",
      "tree": "54e4c6dc2f925d43f5e218b5bd4212ca8a9c31e0",
      "parents": [
        "309428c5ff94c8b17c7c39d40f576808e3d08394"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Aug 28 09:29:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 09:32:00 2026"
      },
      "message": "Enable death tests for iOS platform.\n\nPiperOrigin-RevId: 972454147\n"
    },
    {
      "commit": "309428c5ff94c8b17c7c39d40f576808e3d08394",
      "tree": "daba69884330aafae234056fd64eac8380bf1418",
      "parents": [
        "8f751907a6b583285b3739067992879bab1c0213"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Aug 28 02:15:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 02:17:33 2026"
      },
      "message": "Automatic code cleanup.\n\nPiperOrigin-RevId: 972283272\n"
    },
    {
      "commit": "8f751907a6b583285b3739067992879bab1c0213",
      "tree": "156c1d509f9a0623ef35ca96068c205f7ec67227",
      "parents": [
        "cf53ce5d2e23731e795f47eb82ccfad7a95875d4"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 27 22:14:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 22:16:09 2026"
      },
      "message": "Automatic code cleanup.\n\nPiperOrigin-RevId: 972181999\n"
    },
    {
      "commit": "cf53ce5d2e23731e795f47eb82ccfad7a95875d4",
      "tree": "67c118e9e0fb157bbf726daeb9afc9cc4480d8bd",
      "parents": [
        "f986acf4f509cddbf1411b9330e912b55282d7bf"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Aug 27 21:16:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 21:19:00 2026"
      },
      "message": "Use fully normalized type for guard names.\n\nWe had an issue where guard names would use type aliases leading to\nduplicate template specializations. We fix this by normalizing to remove\nthe aliases before printing the guard names.\n\nPiperOrigin-RevId: 972153387\n"
    },
    {
      "commit": "f986acf4f509cddbf1411b9330e912b55282d7bf",
      "tree": "f16d3c3e8fddb3f43a963db511a82cf5ed34140d",
      "parents": [
        "87cbf15e6ca3fccf98df82fd9d3f5714375505c1"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 27 20:52:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 20:53:33 2026"
      },
      "message": "Fix move constructability checks\n\nPreviously when we wanted to ask this question, what we would actually check is \"could this Rust type, if translated to C++, have a move constructor defined in terms of traits on the Rust type\". When what we really wanted to be asking was \"if this type originated from C++ (via rs_bindings_from_cc), was it move constructible? If it originated in Rust, \u003csame logic as before\u003e\"\n\nI did this by implementing an `is_cpp_move_constructible` query in cc_bindings_from_rs.\n\nThis query determines whether a given Rust type is move-constructible in C++. It handles:\n- Primitives, references, and raw pointers (which are trivially movable).\n- Standard template specializations, tuples, and arrays by recursively checking their element types.\n- Imported C++ types by checking the presence of the cpp_move_constructible attribute.\n- Pure Rust ADTs by checking if Crubit can generate move operations for them.\n\nPiperOrigin-RevId: 972139535\n"
    },
    {
      "commit": "87cbf15e6ca3fccf98df82fd9d3f5714375505c1",
      "tree": "1ebc7fbd62085bfe0c0ac11b0e83987cf7f67b7c",
      "parents": [
        "8b1c5db0ff10ad97d1461026254fe889596560df"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Thu Aug 27 18:13:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 18:16:08 2026"
      },
      "message": "Emits a warning on structs, enums, and unions defined in the `srcs` of a `rust_api_from_cpp` target that will not receive C++ bindings, and introduces `#[allow_unbindable_type]` (`CRUBIT_ALLOW_UNBINDABLE_TYPE`) to opt out of the warning.\n\nPiperOrigin-RevId: 972055156\n"
    },
    {
      "commit": "8b1c5db0ff10ad97d1461026254fe889596560df",
      "tree": "f6998f063d82801d547a2700f374f7f7f30a3afd",
      "parents": [
        "857d489054bf5d477a613245c2fcfff0ba310dc2"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 27 18:04:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 18:05:54 2026"
      },
      "message": "Reproduce non-move-constructible failure\n\nToday, cc_bindings_from_rs incorrectly reports some types as non-C++ movable. This happens because cc_bindings_from_rs isn\u0027t actually checking if the C++ type is movable, it\u0027s checking \"could I generate a C++ move constructor from what I know about the Rust type\". Which is the wrong question to ask when the type _already exists_ in C++.\n\nThe test exercises this, and thus doesn\u0027t compile. In a followup change, the fix will uncomment the test to show that it now works.\n\nPiperOrigin-RevId: 972049539\n"
    },
    {
      "commit": "857d489054bf5d477a613245c2fcfff0ba310dc2",
      "tree": "15891224faa446eddbb0b278faa3c99a773bba82",
      "parents": [
        "b4f9f89136dff9cef7dfa5fb09f483e553a57072"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Thu Aug 27 17:49:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 17:54:12 2026"
      },
      "message": "Implement `From` / `CtorNew` instead of `Into` for conversion operators.\n\nPiperOrigin-RevId: 972041481\n"
    },
    {
      "commit": "b4f9f89136dff9cef7dfa5fb09f483e553a57072",
      "tree": "4be497db3c5d5dcea24b89af8b041576644dfd22",
      "parents": [
        "7ac06e60d7b37ca212439c2024d8775803c69c7b"
      ],
      "author": {
        "name": "Zgroza Klimek",
        "email": "zgroza@google.com",
        "time": "Thu Aug 27 10:41:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 10:45:11 2026"
      },
      "message": "Add nullability annotations to slice_ref.h.\n\nPiperOrigin-RevId: 971856442\n"
    },
    {
      "commit": "7ac06e60d7b37ca212439c2024d8775803c69c7b",
      "tree": "b3a4fb6f18bf0237dec5e915ba2e3a7d95785559",
      "parents": [
        "ea4748750f2024fb5051d2f4c697831931160200"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 27 08:55:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 08:56:44 2026"
      },
      "message": "Enable iOS platform testing for bunch of test targets in cc_bindings_from_rs.\n\nPiperOrigin-RevId: 971810816\n"
    },
    {
      "commit": "ea4748750f2024fb5051d2f4c697831931160200",
      "tree": "0d49304ae4c15538a7b4e39011f59ab6e3e3c170",
      "parents": [
        "63f3844121a33f6e375d755663bdb43310b8c230"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 27 03:22:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 03:23:56 2026"
      },
      "message": "Support `clang::VisibilityAttr` on user C++ declarations.\n\nPreviously, `rs_bindings_from_cc` only recognized `clang::VisibilityAttr` for records in the std:: namespace, and rejected all other user declarations  with \"Attributes are not supported: visibility\", causing valid exported C++ APIs, including those annotated with `???_EXPORT` or symbol visibility macros to be silently omitted as `UnsupportedItem`.\n\nPiperOrigin-RevId: 971669956\n"
    },
    {
      "commit": "63f3844121a33f6e375d755663bdb43310b8c230",
      "tree": "d527a166bdb34de055714529bfec41e44cbd4061",
      "parents": [
        "5aa8523d46661eefb596b8c557f435f6f5bb7ad1"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 27 03:04:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 03:07:07 2026"
      },
      "message": "Support operators for function signature checks.\n\nPiperOrigin-RevId: 971663848\n"
    },
    {
      "commit": "5aa8523d46661eefb596b8c557f435f6f5bb7ad1",
      "tree": "a500e0a1209a9021215d9657daf134074ed005e1",
      "parents": [
        "7f9b5ab1f503fa1202ec41e418e3c1247e545f64"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 26 23:10:19 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 23:14:37 2026"
      },
      "message": "Introduce a custom gMock matcher for GetExprAsBool in annotation_reader_test.cc.\n\nThis change defines an currying `MakeExprAsBoolMatcher` function to replace local lambda-based ResultOf assertions, making the tests cleaner and more readable.\n\nPiperOrigin-RevId: 971558177\n"
    },
    {
      "commit": "7f9b5ab1f503fa1202ec41e418e3c1247e545f64",
      "tree": "15b6da9af07f8148db67879452ef5ef83796232a",
      "parents": [
        "6a19e3ad32a8a28b3f4bb67881a2a83cdfb26221"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 26 22:22:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 22:24:12 2026"
      },
      "message": "Integrate LLVM at llvm/llvm-project@ab547095ead5\n\nUpdates LLVM usage to match\n[ab547095ead5](https://github.com/llvm/llvm-project/commit/ab547095ead5)\n\nPiperOrigin-RevId: 971533461\n"
    },
    {
      "commit": "6a19e3ad32a8a28b3f4bb67881a2a83cdfb26221",
      "tree": "bc854565cf182e038e6e032efcc13ee543ebde0f",
      "parents": [
        "bba376315a11ae1751cd4a809c990591db0afbed"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Aug 26 21:44:06 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:50:18 2026"
      },
      "message": "Add `layout_compat_string` feature flag to unconditionally use layout-compatible `cpp_std::string` rather than bridged `cpp_std::string_wrapper`\n\nPiperOrigin-RevId: 971511810\n"
    },
    {
      "commit": "bba376315a11ae1751cd4a809c990591db0afbed",
      "tree": "8456c6f63782b8b649fd079b361ae8f4becfdbc9",
      "parents": [
        "0cd296c8982f6ac0aff28b8487740f7411e4ae73",
        "511b38d407e21175f0c7df9d5dfff35f95052d11"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:45:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:45:46 2026"
      },
      "message": "Merge pull request #1757 from anforowicz:clang-dependency\n\nPiperOrigin-RevId: 971511759\n"
    },
    {
      "commit": "0cd296c8982f6ac0aff28b8487740f7411e4ae73",
      "tree": "55b8606001aa564fe29bb3df403e75cc88c21cdb",
      "parents": [
        "a6c61128288dba7fdbbfc8ed4370d23aae811558"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Aug 26 21:37:30 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:39:16 2026"
      },
      "message": "Update type alais logic to be more accurate.\n\nWe used to check a type alias had the same number of types/consts/etc to\nconsider it a pass through. This did not work in practice, so replace it\nwith a better check that ensures our generics are actually the same type\nin the same order to consider it a pass through.\n\nPiperOrigin-RevId: 971508086\n"
    },
    {
      "commit": "a6c61128288dba7fdbbfc8ed4370d23aae811558",
      "tree": "86b3ec5ef5ea50c9da809a8a777113f83accba21",
      "parents": [
        "06433c83a40b3abf20eb6438b820702ceb2bc4d0"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 26 21:18:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:23:38 2026"
      },
      "message": "Rename {Move,Copy}CtorStyle and has_{move,copy}_ctor_and_assignment_operator\n\nThese names are extremely misleading because they suggest information on how the corresponding C++ type will behave, rather than _how we would make the C++ type behave is we generated it purely from the information on the Rust type_.\n\nIn particular, it falls apart for Rust types that have an existing C++ type that already exists. In cases where the Rust type came from a C++ type via rs_bindings_from_cc, this could literally return the wrong answer (\"your type, which literally corresponds to a movable C++ type, won\u0027t be movable in C++ because I looked at its shape in Rust and it doesn\u0027t implement Default mhm.\")\n\nBy itself, this doesn\u0027t fix anything. But it will make followup bugfixing changes more intuitive.\n\nPiperOrigin-RevId: 971497455\n"
    },
    {
      "commit": "06433c83a40b3abf20eb6438b820702ceb2bc4d0",
      "tree": "4363a7b286203a9d00efd8923e3626482875dcb8",
      "parents": [
        "e06c086cc70e5a09d32b897d29f61fb0255b26dd"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Wed Aug 26 21:17:37 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 21:19:02 2026"
      },
      "message": "Use wildcard match for unsupported `DefKind`s in `supports_attrs`.\n\nPiperOrigin-RevId: 971496596\n"
    },
    {
      "commit": "511b38d407e21175f0c7df9d5dfff35f95052d11",
      "tree": "5794c8ca31a2f1bd3edf7c659ace8a757975f140",
      "parents": [
        "5bd876485ea46ee9ea64210a46eba5c01fdb387f"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Wed May 06 21:02:24 2026"
      },
      "committer": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Wed Aug 26 20:40:37 2026"
      },
      "message": "Bazel build of `rs_bindings_from_cc:cc_ir`.\n\nThe primary change and the goal of this commit is enabling building of\nthe `cc_ir` target and covering this target via GitHub CI/CQ (see the\none line change in `rust.yml`). This primary change is supported by\nteaching Bazel how to build LLVM/Clang from sources:\n\n- Migrating LLVM dependency to Bzlmod and replacing the old\n  WORKSPACE-based loader with a new module extension\n  (`llvm_extension.bzl`) that downloads LLVM source and configures\n  host dependencies (`zlib`, `libxml2`, `zstd`).\n- Using Clang/LLVM dependency locked to a specific Git commit hash\n  specified in `MODULE.bazel`: `llvm_ext.configure(commit \u003d \"...\")`.\n    - We use Renovate (via `.github/renovate.json`) to automate rolls -\n      it will open a PR to update the commit hash as/when needed.\n    - Note that `MODULE.bazel` asks for Clang/LLVM `22.1.0` to be used\n      as a compiler (i.e. the `llvm_ext.configure` compiler is **not**\n      used during Bazel builds - it only becomes part of the\n      `rs_bindings_from_cc` tool).\n- The Clang/LLVM dependency needs to be patched to account for\n  unsupported platforms. This kind of patching mimics how other OSS\n  projects work with Clang/LLVM:\n    - https://github.com/google/xls/blob/64bf93a3963dc6fd55b749e457e3345c91a5091f/dependency_support/llvm/platforms_config.patch\n    - https://github.com/carbon-language/carbon-lang/blob/f58de06c0dbd506573620d8f2873923a8697c925/bazel/llvm_project/0011_Temporarily_remove_reference_to_hermetic_toolchain.patch\n"
    },
    {
      "commit": "e06c086cc70e5a09d32b897d29f61fb0255b26dd",
      "tree": "24a1412b64e12fb974d74bf6f2a2e4a51dad6013",
      "parents": [
        "5bd876485ea46ee9ea64210a46eba5c01fdb387f"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Aug 26 20:37:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 20:39:21 2026"
      },
      "message": "Support constexpr bindings for Rust consts of simple aggregate types\n\nPiperOrigin-RevId: 971473366\n"
    },
    {
      "commit": "5bd876485ea46ee9ea64210a46eba5c01fdb387f",
      "tree": "d92bdc24da34716abdd321ade81c5d3862233990",
      "parents": [
        "c58b12551f6fbc4be6c03c21c0212f0fe86896f7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 26 19:41:04 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 19:43:00 2026"
      },
      "message": "Encourage depending on //support/public:cc_std via deps rather than cc_deps.\n\nPiperOrigin-RevId: 971441740\n"
    },
    {
      "commit": "c58b12551f6fbc4be6c03c21c0212f0fe86896f7",
      "tree": "2ff3590fd119c6e8e9f714cfe380edcfde11526a",
      "parents": [
        "fd195da64e3f3817db94c503ff72666317611e0b"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Aug 26 19:09:59 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 19:11:06 2026"
      },
      "message": "Add support for layout-compatible std::string bindings.\n\nThis change generates bindings to `new_string` when `std::string` appears\nin a context that requires a layout-compatible type (behind pointers/references,\nin fields, or as template arguments).\n\nPiperOrigin-RevId: 971425355\n"
    },
    {
      "commit": "fd195da64e3f3817db94c503ff72666317611e0b",
      "tree": "e32c4188690c43b46d828746bda7aa5587a63add",
      "parents": [
        "11d53a7430f529344b2b99dedd836197eab10d54"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 26 18:06:11 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 18:09:45 2026"
      },
      "message": "Emit info for correct C++ -\u003e Rust -\u003e C++ round tripping.\n\nThis isn\u0027t the full story, but just implements that logic of ensuring that information can be emitted from rs_bindings_from_cc and consumed by cc_bindings_from_rs. A followup change will change cc_bindings_from_rs to use that information.\n\nNote that cpp_move_constructible is needed for b/545883191, but we\u0027ll eventually want to pass more information like cpp_default_constructible, cpp_copy_constructible, and friends so things like `rs::Tuple` specializations can correctly compute their own constructors and assignment operators. Right now those suffer the same issues, but require modifying the IR proto and that felt noisy to do all in one CL.\n\nPiperOrigin-RevId: 971385792\n"
    },
    {
      "commit": "11d53a7430f529344b2b99dedd836197eab10d54",
      "tree": "6ba9f23d747025a6feb227c5a1710c8bbc7cc66c",
      "parents": [
        "4b8ff896e925cbc201135b5b077cc4869d219be6"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 26 16:31:33 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 16:34:27 2026"
      },
      "message": "Apply best practices to C++ tests in Crubit\n\nPiperOrigin-RevId: 971331068\n"
    },
    {
      "commit": "4b8ff896e925cbc201135b5b077cc4869d219be6",
      "tree": "fa594521011af80a2cc9d3dd0eaac4d485befb07",
      "parents": [
        "e0f06a7391f56508f1e3069041a9de2bb083782b"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Wed Aug 26 15:40:01 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 15:43:25 2026"
      },
      "message": "Remove redundant `harness \u003d \"libtest\"` from `rust_test` rules.\n\nPiperOrigin-RevId: 971305109\n"
    },
    {
      "commit": "e0f06a7391f56508f1e3069041a9de2bb083782b",
      "tree": "6152739511560597f7a2d4989c70bc36504451a8",
      "parents": [
        "6048715f06c649f449672df1af1bc8ee3bb3fc8e"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Aug 26 01:32:23 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 01:34:28 2026"
      },
      "message": "Remove the legacy deprecated `cc_std::std::string` alias and migrate tests and documentation to use `cc_std::std::string_wrapper`.\n\nPiperOrigin-RevId: 970930354\n"
    },
    {
      "commit": "6048715f06c649f449672df1af1bc8ee3bb3fc8e",
      "tree": "07cccb68c891f467acbff83d1f67c39ea3de74a7",
      "parents": [
        "83ac0a3ccaa0680931dcba2f34b674dd0f44a38e"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 25 22:55:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 22:58:49 2026"
      },
      "message": "Generate AbslHashValue and std::hash support for types implementing the Hash trait.\n\nPiperOrigin-RevId: 970852761\n"
    },
    {
      "commit": "83ac0a3ccaa0680931dcba2f34b674dd0f44a38e",
      "tree": "b8dace1f3de7412b4ca0c6ddd170c6a1205d3d6b",
      "parents": [
        "469f4b1688d142cd42e95b58537b8f2775ed961f"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 25 21:16:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 21:19:04 2026"
      },
      "message": "Add `cpp_std` support library re-exporting `cc_std::std::*`.\n\nPiperOrigin-RevId: 970789872\n"
    },
    {
      "commit": "469f4b1688d142cd42e95b58537b8f2775ed961f",
      "tree": "3dafe9b20d686b81c342b0f7f3616ecbef996cde",
      "parents": [
        "8a5c16fdb9d45fa9852082eda8c39ebc97fbed29"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Tue Aug 25 20:41:43 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 20:43:31 2026"
      },
      "message": "Add an antifeature for template_instantiation, no_template_instantiation\n\nThis facilitates globally turning template_instantiation on.\n\nThere is some additional Starlark work to be done in a followup to create\na blocklist.\n\nPiperOrigin-RevId: 970765228\n"
    },
    {
      "commit": "8a5c16fdb9d45fa9852082eda8c39ebc97fbed29",
      "tree": "05f09699e13f4ebc8e0a0150a009a9814c60b5a6",
      "parents": [
        "a9875b7824d95b21018f09bdcc7fd38e99aa0ca7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Aug 25 17:54:42 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 17:55:43 2026"
      },
      "message": "Use Abseil idioms for RAII cleanup, non-owning callbacks, and container algorithms\n\nI noticed that some areas with necessary cleanup after invoking a callback could be improved with `absl::Cleanup`, and that we were also using the allocating and deprecated `std::function` when we should be using `absl::FunctionRef`. I also cleaned up some lints suggesting to use `absl::c_sort` and `absl::c_transform` as opposed to the `std` variants.\n\nPiperOrigin-RevId: 970660531\n"
    },
    {
      "commit": "a9875b7824d95b21018f09bdcc7fd38e99aa0ca7",
      "tree": "dd9ea3c19652639f3cb15cbe1212175aaec737f1",
      "parents": [
        "16022875371df89c2f1892a4293c0bd1067ba258"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Aug 25 17:36:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 17:40:58 2026"
      },
      "message": "Clean up unused variable in operator[] bindings and enforce return type constness check\n\nIn https://github.com/google/crubit/commit/129abed6315a76bb0b91e496befa62ccf0e15a3c, `output_pointee_cc_type` was left unused in `generate_cc_operator_index_nonmut_impls` and `generate_cc_operator_index_mut_impls`. I was going to just delete it, but realized that the return-type constness check would be lost, so I moved it to the new code below it.\n\nPiperOrigin-RevId: 970648075\n"
    },
    {
      "commit": "16022875371df89c2f1892a4293c0bd1067ba258",
      "tree": "125d166201eb7015ab17dc00747df3723504abc8",
      "parents": [
        "c3c1e54708489bc29549988be1ddee04daa9279a"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Tue Aug 25 17:34:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 17:36:00 2026"
      },
      "message": "Do not bind to functions with unsatisfied trailing results clauses\n\n... or to functions that would transitively depend on same.\n\nA previous version of this CL looked at isIneligibleOrNotSelected(),\nbut this bit is apparently changed at various points during typechecking,\nand is not reliable for making this determination.\n\nDocumentation about this seems to be sparse (Clang says:\n```\n    /// For member functions of complete types, whether this is an ineligible\n    /// special member function or an unselected destructor. See\n    /// [class.mem.special].\n```\n)\n\nbut `class.mem.special` doesn\u0027t seem to be a valid standard reference?\n\nThe relevant thing that\u0027s happening here is that we have a default member\nfunction that won\u0027t be generated because its requires clause is not\nsatisfied:\n\n```\n  _LIBCPP_HIDE_FROM_ABI atomic()\n    requires is_default_constructible_v\u003c_Tp\u003e\n  \u003d default;\n```\n\nThis change directly checks whether the trailing constraint is satisfied.\nIf not, we will not bind the function.\n\nPiperOrigin-RevId: 970646733\n"
    },
    {
      "commit": "c3c1e54708489bc29549988be1ddee04daa9279a",
      "tree": "4be3cc18b12adf2f1003c5c676f228b8fcc480c5",
      "parents": [
        "5845aac7d40051f7bd0362523e978960ce8fbb29",
        "7b33ad9280bfe896965a3b0b0635880b00a4cb85"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 15:55:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 15:55:35 2026"
      },
      "message": "Merge pull request #1853 from anforowicz:readonly-gcs-for-everyone\n\nPiperOrigin-RevId: 970583010\n"
    },
    {
      "commit": "7b33ad9280bfe896965a3b0b0635880b00a4cb85",
      "tree": "90fdf77a7259d72cd9ebe3a62645e7051a344c06",
      "parents": [
        "1aaa78526c3f015672a87fb4a0b0a096c0ac9ff9"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Mon Aug 17 20:53:16 2026"
      },
      "committer": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Tue Aug 25 15:29:00 2026"
      },
      "message": "Leverage read-only GCS cache access for forks and disable disk cache.\n\nContext: Authenticated vs Unauthenticated GitHub Workflows\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSome GitHub workflows run with access to credentials like the Google\nCloud key granting read-write access to the Google Cloud Storage (GCS)\nbucket intended for caching Bazel build artifacts (see `GCP_SA_KEY` in\n`.github/workflows/rust.yml`).  Examples of such authenticated workflows\nare:\n\n* Pushes to main via Copybara (google3 \u003d\u003e GitHub export)\n* Internal PRs within google/crubit (branch-to-main)\n\nAccess to `GCP_SA_KEY` is withheld from other GitHub workflows (e.g. if\nthey may contain untrusted changes that could attempt to exfiltrate\n`GCP_SA_KEY` if given access).  A prime example of such unauthenticated\nworkflows are PRs from forks.\n\nContext: Unauthenticated readonly GCS access\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSince recently (see the internal b/547927549) read-only access to\nCrubit\u0027s GCS bucket has been made publicly available - going forward it\ndoesn\u0027t require a key or other credentials.  Read-write access is still\nrestricted to trusted, authenticated workflows.\n\nChanges in this commit\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThis commit improves workflow performance of unauthenticated workflows.\nThis is done in preparation for a follow-up PR which will start to\nbuild a subset of LLVM/Clang needed by `rs_bindings_from_cc`.\n\nBefore this commit unauthenticated workflows would use \"disk cache\"\nwhere GitHub can preserve some directories from the machine running the\nworkflow.  This was sub-optimal because:\n\n* A cap of 10GB would likely be insufficient for caching build artifacts\n  from building LLVM/Clang - potentially leading to evictions and\n  thrashing.\n* Unpacking and packing a monolithic tarball was adding considerable\n  latency to the workflows even without yet covering LLVM/Clang (with\n  \"Setup Bazel\" step taking 2 minutes or more).\n* Using a different caching mechanism for authenticated and\n  unauthenticated workflows would mean that PRs from forks could\n  initially hit a cold, empty cache.\n\nAfter this commit using \"disk cache\" is disabled for Bazel and\nunauthenticated workflows are directed to use a granular, on-demand\nGCS-based caching in read-only mode.  This is expected to result in\nbetter performance.\n"
    },
    {
      "commit": "5845aac7d40051f7bd0362523e978960ce8fbb29",
      "tree": "d6caf1783cf75210777da50b34ca7c5a3ac34223",
      "parents": [
        "1aaa78526c3f015672a87fb4a0b0a096c0ac9ff9"
      ],
      "author": {
        "name": "Marcel Hlopko",
        "email": "hlopko@google.com",
        "time": "Tue Aug 25 09:26:49 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 09:28:01 2026"
      },
      "message": "Use aspect predicate instead of a static list\n\nThis CL is a NOOP. It will allow us to be more specific in deciding which attributes to follow (e.g. based on the build rule). Those changes come in followup CLs.\n\nPiperOrigin-RevId: 970411372\n"
    },
    {
      "commit": "1aaa78526c3f015672a87fb4a0b0a096c0ac9ff9",
      "tree": "b17fbdec90cb25456fb1e51cd3603e3033a65d23",
      "parents": [
        "51808de1db245077e336644c2b880ee443cc40fa"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 25 00:54:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 00:55:49 2026"
      },
      "message": "Add support for `--emit` flag to `rust_with_cpp_fmt`\n\nSupport `--emit stdout` and `--emit files` in `rust_with_cpp_fmt` so that\nformatters and IDE tooling invoking it as a `rustfmt` replacement can pass\n`--emit` without triggering argument parse errors.\n\nPiperOrigin-RevId: 970197695\n"
    },
    {
      "commit": "51808de1db245077e336644c2b880ee443cc40fa",
      "tree": "461c2e18819e8b1706f646ef16d02bc0861630c3",
      "parents": [
        "819ffadfd6f440286d0c7f2cfc663d3e23dd09f1"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Tue Aug 25 00:25:36 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 00:29:26 2026"
      },
      "message": "Export `rs_bindings_from_cc/profiling.cc` with stubs.\n\nPiperOrigin-RevId: 970184168\n"
    },
    {
      "commit": "819ffadfd6f440286d0c7f2cfc663d3e23dd09f1",
      "tree": "26b6cdc605a5327736a3665c66ad1a1b8fa18fea",
      "parents": [
        "1c0b8c3f270c2b246f886cb5afafa80720b60a42"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 25 00:23:51 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 00:24:52 2026"
      },
      "message": "Add C++ aggregate initialization support in cc_bindings_from_rs\n\nPiperOrigin-RevId: 970183352\n"
    },
    {
      "commit": "1c0b8c3f270c2b246f886cb5afafa80720b60a42",
      "tree": "8dc78448e0df5f55c7fef7f8a54c2fd951d49d91",
      "parents": [
        "68bf4ad1b5f41932fb18487d4d15870915dd2457"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 25 00:06:35 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 00:10:14 2026"
      },
      "message": "Fix nightly compiler breakages in Crubit.\n\n1. In newer nightly rustc versions (since 2026-08-22), `CrateType` was moved to `rustc_structures::CrateType`. Use `rustversion` conditional imports so that Crubit builds across both older and newer rustc toolchain versions.\n2. In newer nightly rustc versions, types with unrevealed opaque types (such as `std::env::SplitPaths`) cause an internal compiler error (delayed bug) in `tcx.layout_of`. Guard `query_compiler::get_layout` to check for unrevealed opaque types before calling `layout_of`.\n\nPiperOrigin-RevId: 970174368\n"
    },
    {
      "commit": "68bf4ad1b5f41932fb18487d4d15870915dd2457",
      "tree": "3f70c59409912da3f1a05b381f488421bc98c803",
      "parents": [
        "fd192b0594f39e9107c8b606490a83f06606ceb2"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Aug 24 23:16:50 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 23:21:09 2026"
      },
      "message": "Fix up path to CrateType.\n\nRefactor upstream moved CrateType such that is is no longer publicly available at it\u0027s old path. We can use cfg_accessible to accomodate both paths.\n\nPiperOrigin-RevId: 970146761\n"
    },
    {
      "commit": "fd192b0594f39e9107c8b606490a83f06606ceb2",
      "tree": "29ecd697e859324f83b50eee167cf47ee9fd93de",
      "parents": [
        "f9202f30c6f7f46854f877b2fb9aaa3f2064da91"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 21 22:30:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 22:34:12 2026"
      },
      "message": "Mark into conversion operators `const`.\n\nWhen our Into self type is copy, we can mark the corresponding operator\nconst.\n\nPiperOrigin-RevId: 968725543\n"
    },
    {
      "commit": "f9202f30c6f7f46854f877b2fb9aaa3f2064da91",
      "tree": "8b842855ac192f061b4f5315adecdfdaeefd05d7",
      "parents": [
        "28d56a8a4cc316ad831b69f528c5fd456d7c7651"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 21 19:40:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 19:47:44 2026"
      },
      "message": "Add C++ support for Rust unit type () in Option\n\nPiperOrigin-RevId: 968638059\n"
    },
    {
      "commit": "28d56a8a4cc316ad831b69f528c5fd456d7c7651",
      "tree": "b22cdb500dbf67c514e68c43a90b61cf2e8509be",
      "parents": [
        "2b7d5d32c9b0468e5739267fe30a013623a9b4d6"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri Aug 21 18:44:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 18:45:23 2026"
      },
      "message": "No public description\n\nPiperOrigin-RevId: 968609977\n"
    },
    {
      "commit": "2b7d5d32c9b0468e5739267fe30a013623a9b4d6",
      "tree": "899c01787d07f75650ce6c27a477d5a4a7bf2518",
      "parents": [
        "1c14524449cf3959edafbfd28c66e2eb518e980e"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Aug 21 18:23:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 18:24:16 2026"
      },
      "message": "Fix nightly breakage.\n\nSome renames as part of a larger refactor upstream.\n\nPiperOrigin-RevId: 968598948\n"
    },
    {
      "commit": "1c14524449cf3959edafbfd28c66e2eb518e980e",
      "tree": "02b77a82b7a31cdc8554d88a34d018cc8d18ffd1",
      "parents": [
        "f1cac0e4898866e1c2656cbcd79d865acececccf"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri Aug 21 00:21:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 00:22:34 2026"
      },
      "message": "Roll protobuf to 4.35.0-release in Cargo.\n\nPiperOrigin-RevId: 968149114\n"
    },
    {
      "commit": "f1cac0e4898866e1c2656cbcd79d865acececccf",
      "tree": "8e98e0488efdbf4064929686857efb7d8497c750",
      "parents": [
        "9ae383157ea161e3d2f1384d0b90e55193032514"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Aug 20 23:46:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 23:47:29 2026"
      },
      "message": "Fix how Bazel protobuf labels are exported by Copybara to GitHub.\n\nPiperOrigin-RevId: 968132344\n"
    },
    {
      "commit": "9ae383157ea161e3d2f1384d0b90e55193032514",
      "tree": "d9c5a417965976600ebb1512b0be4d744cdbc791",
      "parents": [
        "19d0678c01c70b98f2a7738ff6f5bf2c0bace317"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Aug 20 20:28:31 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 20:29:17 2026"
      },
      "message": "Use `proto.into_option().map` instead of `Into::\u003cOption\u003cu64\u003e\u003e::into`.\n\nPiperOrigin-RevId: 968020418\n"
    },
    {
      "commit": "19d0678c01c70b98f2a7738ff6f5bf2c0bace317",
      "tree": "29fdbbcc73b3141c89de6e992bc28e06ad962cb1",
      "parents": [
        "9986bb6ac5309b04cb38b59d496473f1831e5b11"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Thu Aug 20 20:24:53 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 20:26:06 2026"
      },
      "message": "Migrate Crubit examples, docs, skills, and evals to new absl::Status/StatusOr types.\n\nPiperOrigin-RevId: 968018173\n"
    },
    {
      "commit": "9986bb6ac5309b04cb38b59d496473f1831e5b11",
      "tree": "0dfa7042f8f3c79ec01f156fa2015fa9fd8e10b2",
      "parents": [
        "07ae0b14b678af1187dc41e89fe46e2b7943f79b"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Aug 20 20:07:24 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 20:08:08 2026"
      },
      "message": "Mark coroutines as not supported by value (for now).\n\nToday we crash on a coroutine which is not the inteded behavior.\n\nPiperOrigin-RevId: 968007610\n"
    },
    {
      "commit": "07ae0b14b678af1187dc41e89fe46e2b7943f79b",
      "tree": "44865874d7f7687888e37801e7cdfded9925eaac",
      "parents": [
        "39b902b96d5857feda587ba91889881165c0e007"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Aug 20 19:53:45 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 19:55:30 2026"
      },
      "message": "Represent item ids as an **unsigned** integer.\n\nThis avoids the following ClangTidy warnings:\n\n\u003e implicit conversion changes signedness: \u0027ValueType\u0027 (aka \u0027unsigned long\u0027) to\n\u003e \u0027::int64_t\u0027 (aka \u0027long\u0027)\n\nWhich otherwise would be reported in a handful of places like:\nhttps://github.com/google/crubit/blob/ff8c61cc3c6a4bc0a0bba754e6e94a5ed57d1806/rs_bindings_from_cc/importers/enum.cc#L180\n\nPiperOrigin-RevId: 967998911\n"
    },
    {
      "commit": "39b902b96d5857feda587ba91889881165c0e007",
      "tree": "7c4f6a05a26ccd5d9ccf94cee5e1a8b860c2bb92",
      "parents": [
        "ff8c61cc3c6a4bc0a0bba754e6e94a5ed57d1806"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Aug 20 18:40:22 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 18:41:04 2026"
      },
      "message": "Add nullability annotations and use const-ref where appropriate.\n\nMotivation:\n\n* `const-ref` is recommended by the Google C++ Style Guide when null is\n  not a valid input - see:\n  https://google.github.io/styleguide/cppguide.html#Inputs_and_Outputs:\n  \"Non-optional input parameters should usually be values or const\n  references\"\n* `absl_null` and `absn_notnull` are useful in general\n* Chromium opts into `-Wnullability-completenes` and currently Crubit\u0027s\n  `.bazelrc` mimics this.  Whether this is desirable in the long-term\n  may not be settled yet, but this doesn\u0027t change the other two\n  motivation points above.\n\nThe changes in this CL focus on C++ sources related to\n`rs_bindings_from_cc:bazel_types`, `rs_bindings_from_cc:cmdline_flags`,\nand `rs_bindings_from_cc:cc_ir`.  This mostly translates into 3 headers:\n`decl_importer.h`, `importer.h`, and `ir.h`.  The CL starts by changing\nfunction signatures in these headers to have their parameters and return\nvalues either annotated with `absl_null` or `absl_nonnull`, or converted\ninto a const-ref type.  The document at\nhttps://hackmd.io/@j0VZsNQdQjaCpnCPOYU3RA/ByVRHc4Pze justifies for each\nrefactored item why it can be considered non-nullable VS nullable.\n\nOther changes in this CL are a mostly mechanical follow-up to adjust for\nchanges related to const-ref types.\n\nPiperOrigin-RevId: 967954393\n"
    },
    {
      "commit": "ff8c61cc3c6a4bc0a0bba754e6e94a5ed57d1806",
      "tree": "97840da9a207f7b9e446b930c2ddaabb6bb91ad2",
      "parents": [
        "f88979fd227d98fdfcc272505d22c9a0c11f4a48"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 20 15:13:50 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 15:15:09 2026"
      },
      "message": "Fix constant expression comparison and boolean type validation in annotation_reader.\n\n- Compare AST expression types using `ASTContext::hasSameType` in `CheckExpressionsAreSameConstant` to correctly treat typedefs and type aliases as equivalent.\n- Validate that the expression is a boolean type in `GetExprAsBool` before constant evaluation to prevent implicit conversions from non-boolean integers.\n- Expand unit tests and modernize GMock matchers across annotation_reader_test.\n\nPiperOrigin-RevId: 967832599\n"
    },
    {
      "commit": "f88979fd227d98fdfcc272505d22c9a0c11f4a48",
      "tree": "e9481436bb13550b9affcdba37d17ee5f1f2c098",
      "parents": [
        "b1297aa8406393339aa72d539a25616714a080a9"
      ],
      "author": {
        "name": "Andrew Le",
        "email": "andrewhle@google.com",
        "time": "Thu Aug 20 14:45:16 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 14:46:16 2026"
      },
      "message": "Add cardi SVG asset files\n\nPiperOrigin-RevId: 967818678\n"
    },
    {
      "commit": "b1297aa8406393339aa72d539a25616714a080a9",
      "tree": "bd84cd5b58d2f8adea4c8f6975bd11f7efc38560",
      "parents": [
        "aebe4682e0d3542dc8bdb4d2be1276b1910a9137"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 20 12:21:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 12:23:06 2026"
      },
      "message": "Rewrite GetAnnotationWithStringArg in terms of GetAnnotationWithStringArgs\n\nThis reduces the amount of business logic that Crubit needs to maintain.\n\nPiperOrigin-RevId: 967757355\n"
    },
    {
      "commit": "aebe4682e0d3542dc8bdb4d2be1276b1910a9137",
      "tree": "bf206444e1d5d716b60d9493f0b36859e329edd2",
      "parents": [
        "0d06d95788b06c54497968b36cf50c0480c63aac"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Aug 20 02:33:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 02:34:04 2026"
      },
      "message": "Transform `.proto.h` into `.pb.h` `#include`s.\n\nThis transformation rewrites includes of `.proto.h` files under\nCrubit to `.pb.h` when exporting to GitHub, and reverses it when\nimporting. This is needed because OSS Bazel only generates `.pb.h`\nheaders for protos.\n\nPiperOrigin-RevId: 967533395\n"
    },
    {
      "commit": "0d06d95788b06c54497968b36cf50c0480c63aac",
      "tree": "c68513cdffb3b4206aa3c2fc382f7b2171780431",
      "parents": [
        "bf584611d2d5f444f0f59da752eb466686729a1c"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Aug 20 01:18:05 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 01:18:44 2026"
      },
      "message": "Extract proto libraries into *separate* Cargo `_sys` crates.\n\nThis CL fixes the Cargo build for `rs_bindings_from_cc` by generating separate\nCargo crates for `cc_proto_library` targets. This specifically avoids problems\nwhen a library depends on a `cc_library` that depends on a `cc_proto_library`.\nSuch a transitive dependency wouldn\u0027t work before this CL.\n\nTested manually, by testing a WIP Cargo build of `rs_bindings_from_cc` after\napplying changes generated by this CL.\n\nPiperOrigin-RevId: 967511390\n"
    },
    {
      "commit": "bf584611d2d5f444f0f59da752eb466686729a1c",
      "tree": "c600b94e9f050f119e5b4bb735e69348ff45feb1",
      "parents": [
        "129abed6315a76bb0b91e496befa62ccf0e15a3c"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Aug 20 00:28:32 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 00:32:32 2026"
      },
      "message": "Introduce CrateOwnershipRank\n\nIn an upcoming CL, I was getting weird behavior because of types that are unstably defined in core and stably reexported from std. Then when another crate reexported from std, e.g. `pub use std::io::Error as IoError;`, it wouldn\u0027t be able to find the correct owner.\n\nAdding `CrateOwnershipRank` formalizes who \"owns\" the crate and understands that types defined unstably in core and stably reexported from std canonically belong to std.\n\nPiperOrigin-RevId: 967493392\n"
    },
    {
      "commit": "129abed6315a76bb0b91e496befa62ccf0e15a3c",
      "tree": "c8a63c97506fc6836ab3f176a41a625094526232",
      "parents": [
        "a2d318c49ecc46821951e0ab96005a2c21275598"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Thu Aug 20 00:28:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 00:29:03 2026"
      },
      "message": "Use the same return_type computed in rs_type_kinds_for_func in\napi_func_shape_for_operator_index.\n\nPreviously, api_func_shape_for_operator_index extracted the inner type using\nfunc.return_type().pointee_type() after re-running rs_type_kind. This dropped\nimportant information (like whether the type is incomplete).\n\nPiperOrigin-RevId: 967493191\n"
    },
    {
      "commit": "a2d318c49ecc46821951e0ab96005a2c21275598",
      "tree": "c175c72245cd1aa8476bc6a69e694c31b747f4f4",
      "parents": [
        "8db8fea93ebb9e378ada4c30db2f6bd3c4e1dab0"
      ],
      "author": {
        "name": "Andrew Le",
        "email": "andrewhle@google.com",
        "time": "Wed Aug 19 23:44:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:49:43 2026"
      },
      "message": "Split inline_cpp examples into focused, standalone example files to clean up mdBook\n\nPiperOrigin-RevId: 967476731\n"
    },
    {
      "commit": "8db8fea93ebb9e378ada4c30db2f6bd3c4e1dab0",
      "tree": "1a5eac06874cee5b978496f54abf66b7ad8ddc91",
      "parents": [
        "aace684be024d10d7e946244dc916321fa1ea50b",
        "0d01ebf0d1449a56f2ae52e76d2cb23b03037e37"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:46:15 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:46:15 2026"
      },
      "message": "Merge pull request #1793 from anforowicz:onboard-renovate\n\nPiperOrigin-RevId: 967475899\n"
    },
    {
      "commit": "aace684be024d10d7e946244dc916321fa1ea50b",
      "tree": "130f89d9495cca0128195af30f02ee1a0b17cbcf",
      "parents": [
        "7e8f0a53c82c2c24613ecdaf7bb31c06fa0f8ce5"
      ],
      "author": {
        "name": "Andrew Le",
        "email": "andrewhle@google.com",
        "time": "Wed Aug 19 23:42:00 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:42:46 2026"
      },
      "message": "Document carcinize C++ to Rust migration tool in Crubit documentation.\n\nPiperOrigin-RevId: 967475526\n"
    },
    {
      "commit": "7e8f0a53c82c2c24613ecdaf7bb31c06fa0f8ce5",
      "tree": "a8a17cceec9cae2c2501be6722e60bb6dadf995d",
      "parents": [
        "f9a0ec23de88da7decb60377f60dfe1d5b48693c"
      ],
      "author": {
        "name": "Andrew Le",
        "email": "andrewhle@google.com",
        "time": "Wed Aug 19 23:10:18 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 23:11:51 2026"
      },
      "message": "Add carcinize examples under examples/cpp/carcinize for live snippet in g3docs\n\nPiperOrigin-RevId: 967461042\n"
    },
    {
      "commit": "f9a0ec23de88da7decb60377f60dfe1d5b48693c",
      "tree": "811b0168ea306942a8d9be8ebfa413994666284e",
      "parents": [
        "86aa557ceb6a1ebd6b1f1fe1460c955fce84159a"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed Aug 19 21:37:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 21:38:50 2026"
      },
      "message": "Exclude oo_casting from experimental features.\n\nPiperOrigin-RevId: 967415751\n"
    },
    {
      "commit": "86aa557ceb6a1ebd6b1f1fe1460c955fce84159a",
      "tree": "f0fd0ae4bb99c9685ef14c5e0a032f4f1ffb4042",
      "parents": [
        "fff6ffb5286a63c5b3e93854a80247fd5cbe5ea2"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Aug 19 21:32:26 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 21:33:51 2026"
      },
      "message": "Add unit type support to option.h\n\nWhen `rs::Option` is specialized with `rs::unit`, we want to remove\nmethods that provide access to the underlying some value and only\nprovide methods that check that Some is set.\n\nPiperOrigin-RevId: 967413374\n"
    },
    {
      "commit": "fff6ffb5286a63c5b3e93854a80247fd5cbe5ea2",
      "tree": "b2b728d65810c5955009212a276318a92816e2f8",
      "parents": [
        "e1ddc7e329e12dbbc4d6d9b57a76e719a886b02a"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Aug 19 18:44:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 18:45:34 2026"
      },
      "message": "Enable assume_lifetimes for //third_party/crubit/examples/cpp/virtual:example_lib\n\nPiperOrigin-RevId: 967325431\n"
    },
    {
      "commit": "e1ddc7e329e12dbbc4d6d9b57a76e719a886b02a",
      "tree": "c2fbcdfe3c0fd039407fafdd10c35ed466c83adc",
      "parents": [
        "1b686589fb2da4e0ed3da2e241a5f8340eb3e280"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 19 18:33:58 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 18:34:44 2026"
      },
      "message": "Fix includes in annotation_reader_test.cc\n\nPiperOrigin-RevId: 967319958\n"
    },
    {
      "commit": "1b686589fb2da4e0ed3da2e241a5f8340eb3e280",
      "tree": "67a33c2d8f925ed0e6d077a4c62afab90db5bfc5",
      "parents": [
        "733ea22bc84e8f2b547975c42afddc57f7cb4398"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Aug 19 18:17:48 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 18:20:22 2026"
      },
      "message": "Clean up build files\n\nPiperOrigin-RevId: 967311646\n"
    },
    {
      "commit": "733ea22bc84e8f2b547975c42afddc57f7cb4398",
      "tree": "a4137162485bfa7232ac345c4bf01f7efe0f982c",
      "parents": [
        "491410172aef147b28a4c08d0fe66e19bc3e577d"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Aug 19 16:08:10 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 16:09:10 2026"
      },
      "message": "Use hard-coded loops for small array inputs in CheckNoMutableAliasing.\n\nFor arbitrary sized spans, we sort and then compare them to determine\noverlap. For small arrays this is overhead that has proved noticeable\nfor hot functions (see unknown commit). Instead, we emit loops with\nhard-coded upperbounds to allow for unrolling and better optimization.\n\nPiperOrigin-RevId: 967242860\n"
    },
    {
      "commit": "491410172aef147b28a4c08d0fe66e19bc3e577d",
      "tree": "bc06ec645607e00622be47028230b06f82c0ad50",
      "parents": [
        "6e1fdc80fcfc30526794a1d08eb51713860ee114"
      ],
      "author": {
        "name": "Marcel Hlopko",
        "email": "hlopko@google.com",
        "time": "Wed Aug 19 08:40:40 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 19 08:41:37 2026"
      },
      "message": "Remove unnecessary aspect traversal attribute\n\nPiperOrigin-RevId: 967061279\n"
    },
    {
      "commit": "6e1fdc80fcfc30526794a1d08eb51713860ee114",
      "tree": "df99d51508a852367accb49ef3c661e7d19d4620",
      "parents": [
        "7ba4d1d08fa757fe44512c32205df43b4c7198dd"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Tue Aug 18 23:24:44 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 23:25:33 2026"
      },
      "message": "Remove `harness` from `BUILD` file (unsupported by OSS `rules_rust`).\n\nPiperOrigin-RevId: 966866230\n"
    },
    {
      "commit": "7ba4d1d08fa757fe44512c32205df43b4c7198dd",
      "tree": "7daf2498ab9c5c55c49d41ead4a66ef30692bd7a",
      "parents": [
        "91fe0524e313c2c22f0f94e4c13f694044f40e8b"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Aug 18 21:29:07 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 21:30:30 2026"
      },
      "message": "Map specializations involving size types to fixed width integer types.\n\nThis solves a coherence issue around specializations where usize/u64 are\ndifferent types in Rust but sometimes the same type in C++ (depending on\nplatform). When they are the same type, having both specializations\npresent, such as if Rust code uses `Option\u003cusize\u003e` and Option\u003cu64\u003e`,\nproduces bindings that fail to compile due to duplicate definitions. We\nsolve this by pre-emptively turning our specialization of\n`Option\u003cusize\u003e` into a specialization of `Option\u003cu64\u003e`.\n\nPiperOrigin-RevId: 966808294\n"
    },
    {
      "commit": "91fe0524e313c2c22f0f94e4c13f694044f40e8b",
      "tree": "387f7178ee3824b591b1408edcf0a9171f175f8b",
      "parents": [
        "5b98f2a6763692749655c200fdd9ace2f99715cb"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 18 21:21:56 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 21:23:07 2026"
      },
      "message": "Enable assume_lifetimes for //third_party/crubit/examples/cpp/method:example_lib\n\nPiperOrigin-RevId: 966804441\n"
    },
    {
      "commit": "5b98f2a6763692749655c200fdd9ace2f99715cb",
      "tree": "0b2c0488a28adc8e484931a8a925d66206cb1c4c",
      "parents": [
        "b3e1b3ef6cf840c3ba56e8dd58b0721e4cfd89ac"
      ],
      "author": {
        "name": "Andrew Le",
        "email": "andrewhle@google.com",
        "time": "Tue Aug 18 21:05:57 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 21:07:29 2026"
      },
      "message": "Document inline_cpp! and embedded C++ support in Crubit documentation.\n\nPiperOrigin-RevId: 966795726\n"
    },
    {
      "commit": "b3e1b3ef6cf840c3ba56e8dd58b0721e4cfd89ac",
      "tree": "c6076a476e7aa0ce2dbee07f83abe953b155bc33",
      "parents": [
        "9b7ed2298de52d08bee11d8938d91aa5c1302330"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Aug 18 20:57:20 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 20:58:49 2026"
      },
      "message": "Document that additional Rust sources do not include the prelude\n\nPiperOrigin-RevId: 966790520\n"
    },
    {
      "commit": "9b7ed2298de52d08bee11d8938d91aa5c1302330",
      "tree": "12d54a119874ebda780162fcecf314771fef2606",
      "parents": [
        "d5e1653251240e7d1346627927245da8caab30f1"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Aug 18 20:38:46 2026"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 18 20:40:38 2026"
      },
      "message": "Demonstrate declval issues in constructor member initializer list\n\nThis adds a golden test that shows that there\u0027s an issue with how we generate constructors, since it should have a `Clone` impl but today does not receive one. See line 804 of third_party/crubit/rs_bindings_from_cc/test/struct/constructors/constructors_rs_api.rs.\n\nIn a followup change, I\u0027ll fix the issue and the diffs on the golden will clearly demonstrate that the issue has been correctly fixed.\n\nPiperOrigin-RevId: 966779515\n"
    }
  ],
  "next": "d5e1653251240e7d1346627927245da8caab30f1"
}
