)]}'
{
  "log": [
    {
      "commit": "c14be26926d2617d422313c866ed09a0f106ec15",
      "tree": "04cc6b12b46849968ded468ab2cb42afd505b38e",
      "parents": [
        "61a58c8ccdb340b4c441930606d92c105c7c2bfe"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Sep 08 13:54:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 13:55:26 2026 -0700"
      },
      "message": "Only bind cpp_types with placeholders that are movable.\n\nPiperOrigin-RevId: 978099675\n"
    },
    {
      "commit": "61a58c8ccdb340b4c441930606d92c105c7c2bfe",
      "tree": "79977c6d068b0dc9fc5552c8c103921294c3cbc7",
      "parents": [
        "fde68902ff65e4f4a83a569e1b81e17fadb4fe8b",
        "21ec7e707a63118a8938eed9ca649b18c7111107"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 11:42:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 11:42:12 2026 -0700"
      },
      "message": "Merge pull request #1969 from google:mvanbem-nightly\n\nPiperOrigin-RevId: 978024467\n"
    },
    {
      "commit": "21ec7e707a63118a8938eed9ca649b18c7111107",
      "tree": "79977c6d068b0dc9fc5552c8c103921294c3cbc7",
      "parents": [
        "fde68902ff65e4f4a83a569e1b81e17fadb4fe8b"
      ],
      "author": {
        "name": "mvanbem",
        "email": "mvanbem@google.com",
        "time": "Tue Sep 08 10:10:07 2026 -0700"
      },
      "committer": {
        "name": "mvanbem",
        "email": "mvanbem@google.com",
        "time": "Tue Sep 08 10:42:43 2026 -0700"
      },
      "message": "Adapt to upstream rustc changes\n\nThis change fixes the build starting with nightly-2026-09-06.\n\nResolves #1967\n"
    },
    {
      "commit": "fde68902ff65e4f4a83a569e1b81e17fadb4fe8b",
      "tree": "c3dcc8e616a90f148d340a2b01ff0cfa048a1562",
      "parents": [
        "538d2c14f05a27165319b256cbd4e9593ff1da7f"
      ],
      "author": {
        "name": "Loris Reiff",
        "email": "liblor@google.com",
        "time": "Tue Sep 08 00:30:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 00:30:49 2026 -0700"
      },
      "message": "Fix broken latest auto tag workflow for crubit.\n\nCommit 5ef8ede [broke](https://github.com/google/crubit/actions/runs/31146100819) the github action with `persist-credentials: false`.\n\nPiperOrigin-RevId: 977738101\n"
    },
    {
      "commit": "538d2c14f05a27165319b256cbd4e9593ff1da7f",
      "tree": "35d59a4dae0ce250cabce82e963e7597d9b8433a",
      "parents": [
        "026184f229cbf10be0b69ec244da3841438ffb55"
      ],
      "author": {
        "name": "Loris Reiff",
        "email": "liblor@google.com",
        "time": "Tue Sep 08 00:18:30 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 08 00:19:36 2026 -0700"
      },
      "message": "Fix broken links in documentation.\n\nPiperOrigin-RevId: 977733641\n"
    },
    {
      "commit": "026184f229cbf10be0b69ec244da3841438ffb55",
      "tree": "cd370edfc7af3f3f63a92487a10f996966e4aa96",
      "parents": [
        "6e856fe23f0dc6755ee394ead76d4c7894091015"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Sep 07 17:14:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 07 17:15:41 2026 -0700"
      },
      "message": "Fix crosstool blockers.\n\nTwo blockers:\n* Tuple fields didn\u0027t depend on their field types causing incomplete\n  type compilation errors\n* Specializations that weren\u0027t movable weren\u0027t always wrapped in\n  `rs::Movable` causing us to try and call Movable apis on the\n  underlying specialization (causing compilation errors)\n\nImpacted targets were impacted by both these issues, so I\u0027ve opted to\nfix them in one CL.\n\nPiperOrigin-RevId: 977615250\n"
    },
    {
      "commit": "6e856fe23f0dc6755ee394ead76d4c7894091015",
      "tree": "0a9c5eeb69a0fd5d58d59c9d65b1c4ea39e69b70",
      "parents": [
        "c0961ba7661982f46274390b7354c8a6d9732c25"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Fri Sep 04 16:14:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 16:16:00 2026 -0700"
      },
      "message": "Return error when formatting a trait name fails.\n\nPreviously this was a hard panic, which behaves poorly in practice. This\ncode assumed that the trait name would always have a\nsymbol_canonical_name by the time we called it here, but that turned out\nto not be true. Rather than uphold that invariant swap it to return an\nerror and produce a comment.\n\nPiperOrigin-RevId: 976542507\n"
    },
    {
      "commit": "c0961ba7661982f46274390b7354c8a6d9732c25",
      "tree": "d1cd137ca7bf661cf8ead57e31d6d73f5b9a8da4",
      "parents": [
        "70733aa9a6b7699300dc401d998a51b393ed74b9"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri Sep 04 14:39:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 14:41:02 2026 -0700"
      },
      "message": "Cargo build of `rs_bindings_from_cc` (using Bazel C++ dependencies).\n\nThis commit enables building the `rs_bindings_from_cc` binary using\nCargo by reusing Bazel-built static libraries and pre-generated headers\nfor Abseil, LLVM/Clang, and Protobuf.\n\nChanges:\n1. Environment Setup \u0026 Protobuf Pre-generation:\n   - Adds `cargo/build/generate_proto_headers.py` to pre-generate C++\n     Protobuf headers (`.pb.h`/`.pb.cc`) into a shared directory\n     upfront, avoiding file races during concurrent Cargo builds.\n   - Adds `cargo/build/setup_bazel_env.py` to discover Bazel prebuilt\n     dependencies, merge static archives using hermetic `llvm-ar`\n     with input manifest caching, pre-generate Protobuf headers, and\n     emit `target/bazel_outputs/bazel-env.sh` (as well as updating\n     `GITHUB_ENV` in CI).\n\n2. C++ Support Crate Builds (`cargo/build/`):\n   - Updates `protobuf.rs` to locate pre-generated `.pb.cc` sources\n     via `collect_generated_proto_sources`, replacing dynamic `protoc`\n     invocations in `build.rs`.\n   - Handles empty/header-only C++ libraries in `lib.rs` with an\n     `empty.cc` placeholder.\n   - Adds `-DLLVM_ON_UNIX` to C++ compilation flags in `flags.rs`.\n\n3. CI Integration \u0026 Documentation:\n   - Updates `.github/workflows/rust.yml` to build\n     `rs_bindings_from_cc_main` and `@protobuf//:protoc`, run\n     `setup_bazel_env.py`, and verify `cargo build -p\n     rs_bindings_from_cc`.\n   - Adds `docs/overview/cargo_build_protobuf.md` explaining why C++\n     proto headers are pre-generated upfront while Rust proto code is\n     generated in `build.rs`.\n   - Documents the Cargo build workflow in\n     `docs/overview/cargo_build.md`.\n\nPiperOrigin-RevId: 976502033\n"
    },
    {
      "commit": "70733aa9a6b7699300dc401d998a51b393ed74b9",
      "tree": "5b39be841aeac6d1342274e2a0b97880b19226fc",
      "parents": [
        "2377ecdbbf8d8c383770c19d04aee868afa9f3d9"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Sep 04 14:05:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 14:06:56 2026 -0700"
      },
      "message": "Support `local_defines` in `rs_bindings_from_cc`.\n\nForward `local_defines` from the C++ target to both the bindings generation step (`create_compile_variables`) and the implementation compilation step (`cc_common.compile`). This allows users to specify target-local preprocessor macros without leaking them transitively to dependent targets.\n\nAlso update `absl_status` examples, documentation, and skills to recommend `local_defines \u003d [\"CRUBIT_NEW_STATUS\"]`.\n\nPiperOrigin-RevId: 976486662\n"
    },
    {
      "commit": "2377ecdbbf8d8c383770c19d04aee868afa9f3d9",
      "tree": "7344f54a9dcc7a25813d49024f2e306ddcc03bf8",
      "parents": [
        "6e787dcd926cd1f35b3f2fc942a4b71500361374"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Sep 04 13:51:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 13:52:06 2026 -0700"
      },
      "message": "Add support in `cc_bindings_from_rs` for calling Rust functions that take\ncallable arguments:\n- `impl Fn / FnMut / FnOnce`\n- `\u0026dyn Fn / \u0026mut dyn FnMut`\n- `Box\u003cdyn Fn / FnMut / FnOnce\u003e`\n\nWhen Rust accepts a callable that can outlive the call (such as `Box\u003cdyn ...\u003e` or a\n`\u0027static` bound), C++ bindings expose an owning `rs::Fn\u003cSignature\u003e`. Otherwise,\nnon-owning `rs::FnRef\u003cSignature\u003e` is exposed.\n\nNon-ABI-compatible but layout-compatible callable arguments and return values are\npassed by pointer across closure trampolines using Crubit\u0027s function thunking conventions,\nwith zero overhead when types are C-ABI compatible by value.\n\nBoth `rs::Fn` and `rs::FnRef` are implemented without Abseil dependencies in\n`third_party/crubit/support/rs_std/` and are fully memcpy-relocatable, ensuring sound\npass-by-value across Rust FFI.\n\nPiperOrigin-RevId: 976479557\n"
    },
    {
      "commit": "6e787dcd926cd1f35b3f2fc942a4b71500361374",
      "tree": "68c4e58600b471e071804ab16ed9a66b9a33e160",
      "parents": [
        "50587342207cc9a35d509fed0fd2a347878b412a"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Sep 04 10:11:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 10:11:59 2026 -0700"
      },
      "message": "Do not generate C++ bindings for types in unbindable source files.\n\nEnsure that ADT types defined in files that should not receive bindings\n(e.g., source files of `rust_api_from_cpp` passed via\n`--ignore-symbols-from-files` or marked `#[crubit::do_not_bind]`) fail\n`format_ty_for_cc`. This prevents downstream crates from emitting C++\ndeclarations that reference nonexistent types in C++.\n\nPiperOrigin-RevId: 976376167\n"
    },
    {
      "commit": "50587342207cc9a35d509fed0fd2a347878b412a",
      "tree": "25a44dcce89a363faa07f43457c10784ad7f2b35",
      "parents": [
        "75d008898e1797d5a43e584aa82ba12d7ef4a994"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Fri Sep 04 09:56:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 09:57:41 2026 -0700"
      },
      "message": "Reorganize unique_ptr API to encourage Box conversion\n\nPiperOrigin-RevId: 976368581\n"
    },
    {
      "commit": "75d008898e1797d5a43e584aa82ba12d7ef4a994",
      "tree": "8bfd50c260cbd2668e275e9a13693086db590c09",
      "parents": [
        "bc02699a709091e682dc50ce217fa814fd82e33e"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Fri Sep 04 09:09:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 04 09:10:52 2026 -0700"
      },
      "message": "Avoid the following warning: unused variable: `formatted_ty`.\n\nPiperOrigin-RevId: 976347470\n"
    },
    {
      "commit": "bc02699a709091e682dc50ce217fa814fd82e33e",
      "tree": "6ad6ac046ca8fe05b6754fd8d60460e0a2b0be1d",
      "parents": [
        "0e481d64f076c582b049628b7ebbb4b461e6dd27"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Sep 03 11:22:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 11:24:09 2026 -0700"
      },
      "message": "Add shared_ptr::{from_unique_ptr, from_virtual_unique_ptr}\n\nPiperOrigin-RevId: 975831001\n"
    },
    {
      "commit": "0e481d64f076c582b049628b7ebbb4b461e6dd27",
      "tree": "c438af484820f016a37b748a076cce0f5ee3055b",
      "parents": [
        "fe11c1a3e10725f0b865678dcc0009651526aef4"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Sep 03 08:53:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 08:57:25 2026 -0700"
      },
      "message": "Internal-only change.\n\nPiperOrigin-RevId: 975753553\n"
    },
    {
      "commit": "fe11c1a3e10725f0b865678dcc0009651526aef4",
      "tree": "a2ff39abba3c7082969f34fe1d70383b7a7e7215",
      "parents": [
        "09ad8b641be5f64bf4b0a5287ada39d2a729a6f9"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Thu Sep 03 08:51:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 08:53:08 2026 -0700"
      },
      "message": "Emit template struct at generic adt definition site.\n\nWe will parse specializations of these generic structs and emit them for usage\nin bindings.\n\nPiperOrigin-RevId: 975752672\n"
    },
    {
      "commit": "09ad8b641be5f64bf4b0a5287ada39d2a729a6f9",
      "tree": "57ffea53145f3fee1f811c7c229b4a8b58b1d859",
      "parents": [
        "eb45be829150f2b7a2b1f71c629d9f667d28be41"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Thu Sep 03 08:30:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 08:32:16 2026 -0700"
      },
      "message": "Refactor C++ dependency and path discovery helpers in cargo/build.\n\n- Consolidate directory reading, archive filtering, and stem handling\n  into `paths::collect_static_libs`, deduplicating code across\n  `absl.rs`, `clang.rs`, and `protobuf.rs`.\n- Move `LIB_EXTENSION` into `paths.rs` as a module-private constant.\n- Introduce `paths::get_env_paths` to validate environment variable\n  paths and support both comma and OS path list separators.\n- Modernize Cargo instruction syntax to double-colon form (`cargo::`).\n- Ensure complete I/O by using `write_all` in Cargo output helpers.\n\nNote that the refactored code is not load-bearing and is currently\nnot covered by any OSS nor Google-internal CQ/CI.  The refactored\ncode will become load-bearing once the OSS CQ/CI starts to use\n`cargo build` to build the `_sys` crates (in a follow-up CL / PR).\n\nPiperOrigin-RevId: 975743388\n"
    },
    {
      "commit": "eb45be829150f2b7a2b1f71c629d9f667d28be41",
      "tree": "f9bb12f16d2c46576682056a007c746b1aea2e9b",
      "parents": [
        "96f16830d3f5a4333dbac64dd804745f6ce773a5"
      ],
      "author": {
        "name": "Tim Neumann",
        "email": "timnn@google.com",
        "time": "Thu Sep 03 08:03:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 08:04:58 2026 -0700"
      },
      "message": "Fix broken sitemap link.\n\nPiperOrigin-RevId: 975732271\n"
    },
    {
      "commit": "96f16830d3f5a4333dbac64dd804745f6ce773a5",
      "tree": "e57273553e107673bce7b21182e48d38ca2e0c06",
      "parents": [
        "768292fe66b20456f02b521eae8902907554c78c"
      ],
      "author": {
        "name": "Fabian Wolff",
        "email": "fwolff@google.com",
        "time": "Thu Sep 03 04:01:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 03 04:02:44 2026 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 975646332\n"
    },
    {
      "commit": "768292fe66b20456f02b521eae8902907554c78c",
      "tree": "f078e0b1487b78e2f79a04f6c78947882113d719",
      "parents": [
        "7bd44d04be3328cbeb0416ea0a3dbc089cab16a4"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Sep 02 17:05:41 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 17:06:50 2026 -0700"
      },
      "message": "Fixes around should_receive_bindings.\n\nRecent changes have turned over some new bugs that are fixed by this CL:\n\n* Items that are `!should_receive_bindings` should not have\n  `symbol_canonical_name`s.\n* Symbols in ignored files that are annotated with cpp_type should\n  receive bindings.\n\nThis is broaching the abstraction. A flag called\nignore_symbols_from_file shouldn\u0027t have to concern itself with cpp_type,\nbut that is a problem for a future CL.\n\nPiperOrigin-RevId: 975408289\n"
    },
    {
      "commit": "7bd44d04be3328cbeb0416ea0a3dbc089cab16a4",
      "tree": "94d97b0e15ad020c675722887ec956f97c898395",
      "parents": [
        "25ce9ffa6bab8bdb887c1426efd143218b747df6"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Sep 02 16:40:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 16:42:28 2026 -0700"
      },
      "message": "Split self-referential constants into declaration and definition.\n\nRust inherent constants that reference their Self type were emitted as\nC++ static constexpr\u0027s that also referenced their self type. This causes\na compilation error because a C++ class type is not available when a\nstatic constexpr is evaluated, causing errors around incomplete types.\n\nWe break this by emitting self-referential constants into declaration and definition.\n\nPiperOrigin-RevId: 975397489\n"
    },
    {
      "commit": "25ce9ffa6bab8bdb887c1426efd143218b747df6",
      "tree": "a2bc63e26eb4ef834f23e71340880de672c12fc7",
      "parents": [
        "f7ae99792c79359c0311014978a4576d448c4f0d"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Sep 02 13:33:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:14:58 2026 -0700"
      },
      "message": "Clean up an error code that is now the same as ExpectedNonnull\n\nPreviously we used a different error code to show a different note and have a note-range. Now we just attach the `NoteMessage` + `NoteRange` and could reuse the same error code.\n\nPiperOrigin-RevId: 975295694\n"
    },
    {
      "commit": "f7ae99792c79359c0311014978a4576d448c4f0d",
      "tree": "afd1ef8d41c877d1551b83a6cd664b6de0982ab1",
      "parents": [
        "d63bcc6429c5bbc20608081e8009622f9fdbd3fc"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Sep 02 11:42:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:13:51 2026 -0700"
      },
      "message": "Use SourceLocation rather than private FileAndLine struct\n\nPiperOrigin-RevId: 975243584\n"
    },
    {
      "commit": "d63bcc6429c5bbc20608081e8009622f9fdbd3fc",
      "tree": "372737e0898bbedf552ad55c1bad546a02787db6",
      "parents": [
        "34a2ebe15ba3333b38974f09fcfe4aacce9540c5"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Sep 02 10:33:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:12:43 2026 -0700"
      },
      "message": "Internal-only change.\n\nPiperOrigin-RevId: 975207263\n"
    },
    {
      "commit": "34a2ebe15ba3333b38974f09fcfe4aacce9540c5",
      "tree": "c5dbba036639a1f4cb731f47ab7d654a7dddf4c2",
      "parents": [
        "9472610884a8acdc61ef71f4eaac462ab5ebb1fa"
      ],
      "author": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Wed Sep 02 10:23:42 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:11:36 2026 -0700"
      },
      "message": "Unify Protobuf version to 36.1 across Bazel and Cargo.\n\nProtobuf versions previously diverged between Bazel (36.0.bcr.1) and\nCargo (4.35.0-release), causing version mismatch errors when (after\nseparate follow-up changes) starting to build proto-dependent crates via\nCargo using Bazel-generated protoc.\n\nThis change unifies Protobuf to 36.1 across both build systems:\n- Bump Bazel protobuf dependency and single_version_override to\n  36.1.bcr.1 in MODULE.bazel.\n- Update patches/protobuf_visibility.patch line offsets for Protobuf\n  36.1.\n- Bump Cargo protobuf and protobuf-codegen dependencies to\n  4.36.1-release in Cargo.toml.\n- Update Cargo.lock, Cargo.Bazel.lock, and MODULE.bazel.lock.\n- Update protoc version to 36.1 in .github/workflows/rust.yml.\n\nPiperOrigin-RevId: 975201537\n"
    },
    {
      "commit": "9472610884a8acdc61ef71f4eaac462ab5ebb1fa",
      "tree": "84c542e1dfa9426440e322d32d7cfb914012d509",
      "parents": [
        "96668da5f13b6688032297f041fbaae5e7a5f9be"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Sep 02 09:08:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:10:29 2026 -0700"
      },
      "message": "Add user defined generics case to TemplateSpecializations.\n\nPiperOrigin-RevId: 975162968\n"
    },
    {
      "commit": "96668da5f13b6688032297f041fbaae5e7a5f9be",
      "tree": "9069ad96adb6216c30dccd862fccd7b6321d1753",
      "parents": [
        "f0a85545ae6c868336d02c03806ddc5036d8cdf0"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Sep 02 07:49:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:09:23 2026 -0700"
      },
      "message": "Add a few more benchmarks distilled from a few examples\n\n(a) One has lots of short-circuit conditions in ifs plus early returns\n  - this adds lots of constraints to the flow condition, though most\n    of the constraints may not actually be relevant to pointers\n  - the short-circuiting leads to lots of pairwise calls to joinFlowConditions\n    interleaving AND and OR (not as clean for buildCNF later)\n(b) One has lots of member updates\n(c) One has a large static array\n  - related to a FIXME for doing too much Env.fork()\n\nPiperOrigin-RevId: 975128624\n"
    },
    {
      "commit": "f0a85545ae6c868336d02c03806ddc5036d8cdf0",
      "tree": "97c82b661abe4744830183c1d59d3e20143a7465",
      "parents": [
        "64af787868d7c0c9504fa35cafd5936fe8940f23"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Sep 02 04:15:23 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:08:14 2026 -0700"
      },
      "message": "Internal-only change.\n\nPiperOrigin-RevId: 975047295\n"
    },
    {
      "commit": "64af787868d7c0c9504fa35cafd5936fe8940f23",
      "tree": "3a8925a910b4a63315c5c3a631ea39ef3a7b4fd8",
      "parents": [
        "a8f5427311286afd2b4accc575dd1a3f679f5480"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Tue Sep 01 23:09:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:06:59 2026 -0700"
      },
      "message": "Fixes for template instantiation.\n\nThis change, without loss of generality wrt *Mut variants:\n  - Stops trying to generate std::ops::Index implementations for CRef returns (which is impossible) and CcIndex returns (which we may want to revisit)\n  - Fixes a problem with !Unpin types and thunks for CcIndexMut\n  - Does not generate CcIndex implementations when the return type would have an unbound lifetime.\n\nPiperOrigin-RevId: 974919424\n"
    },
    {
      "commit": "a8f5427311286afd2b4accc575dd1a3f679f5480",
      "tree": "f9ae4a377ef757a061af9a30ece32d47f353bd1f",
      "parents": [
        "a336c62f143fa8fc653819e52aaf142bef6b0280"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Sep 01 16:07:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 02 15:05:46 2026 -0700"
      },
      "message": "Support Rust Protobuf message fields, references, and pointers in cc_bindings_from_rs.\n\n- Add proto::Rust\u003cT\u003e (proto2::Rust\u003cT\u003e) in support/protobuf/rust.h as a non-nullable, movable C++ smart pointer layout-compatible with Rust-owned Protobuf message handles.\n- Support Protobuf message fields in structs via proto::Rust\u003cCppProto\u003e.\n- Support Protobuf message references (\u0026Proto), raw pointers (*const Proto), and generic containers (Vec\u003cT\u003e, NewStatusOr\u003cT\u003e) in layout-compatible positions.\n\nPiperOrigin-RevId: 974760036\n"
    },
    {
      "commit": "a336c62f143fa8fc653819e52aaf142bef6b0280",
      "tree": "670c12c8ae51c30f0f3e65755e0a4f0be2f8810d",
      "parents": [
        "a53973a952056acd5cdf5a21c254c6c95e16d8bb"
      ],
      "author": {
        "name": "Augie Fackler",
        "email": "augie@google.com",
        "time": "Tue Sep 01 14:41:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 14:42:51 2026 -0700"
      },
      "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 11:31:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 11:32:25 2026 -0700"
      },
      "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 07:42:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 01 07:45:05 2026 -0700"
      },
      "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 16:37:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 16:38:38 2026 -0700"
      },
      "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 14:39:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 14:41:13 2026 -0700"
      },
      "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 12:37:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 12:39:20 2026 -0700"
      },
      "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 11:11:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 11:12:14 2026 -0700"
      },
      "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 09:21:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 09:23:28 2026 -0700"
      },
      "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 09:01:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 09:03:35 2026 -0700"
      },
      "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 04:44:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 04:45:44 2026 -0700"
      },
      "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 04:02:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 31 04:04:06 2026 -0700"
      },
      "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": "Fri Aug 28 17:38:57 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 17:40:24 2026 -0700"
      },
      "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 16:38:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 16:40:16 2026 -0700"
      },
      "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 16:02:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 16:10:14 2026 -0700"
      },
      "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 15:54:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 16:05:03 2026 -0700"
      },
      "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 15:48:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 16:03:21 2026 -0700"
      },
      "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 15:48:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 15:58:13 2026 -0700"
      },
      "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 15:47:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 15:54:03 2026 -0700"
      },
      "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 15:47:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 15:49:05 2026 -0700"
      },
      "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 15:26:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 15:28:26 2026 -0700"
      },
      "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 09:54:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 09:58:53 2026 -0700"
      },
      "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 08:22:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 08:23:45 2026 -0700"
      },
      "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 08:05:23 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 08:07:16 2026 -0700"
      },
      "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 02:35:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 02:37:24 2026 -0700"
      },
      "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 02:29:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 28 02:32:00 2026 -0700"
      },
      "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": "Thu Aug 27 19:15:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 19:17:33 2026 -0700"
      },
      "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 15:14:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 15:16:09 2026 -0700"
      },
      "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 14:16:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 14:19:00 2026 -0700"
      },
      "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 13:52:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 13:53:33 2026 -0700"
      },
      "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 11:13:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 11:16:08 2026 -0700"
      },
      "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 11:04:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 11:05:54 2026 -0700"
      },
      "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 10:49:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 10:54:12 2026 -0700"
      },
      "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 03:41:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 03:45:11 2026 -0700"
      },
      "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 01:55:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 27 01:56:44 2026 -0700"
      },
      "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": "Wed Aug 26 20:22:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 20:23:56 2026 -0700"
      },
      "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": "Wed Aug 26 20:04:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 20:07:07 2026 -0700"
      },
      "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 16:10:19 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 16:14:37 2026 -0700"
      },
      "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 15:22:26 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 15:24:12 2026 -0700"
      },
      "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 14:44:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:50:18 2026 -0700"
      },
      "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 14:45:46 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:45:46 2026 -0700"
      },
      "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 14:37:30 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:39:16 2026 -0700"
      },
      "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 14:18:57 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:23:38 2026 -0700"
      },
      "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 14:17:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:19:02 2026 -0700"
      },
      "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 +0000"
      },
      "committer": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Wed Aug 26 20:40:37 2026 +0000"
      },
      "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 13:37:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 13:39:21 2026 -0700"
      },
      "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 12:41:04 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 12:43:00 2026 -0700"
      },
      "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 12:09:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 12:11:06 2026 -0700"
      },
      "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 11:06:11 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 11:09:45 2026 -0700"
      },
      "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 09:31:33 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 09:34:27 2026 -0700"
      },
      "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 08:40:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 08:43:25 2026 -0700"
      },
      "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": "Tue Aug 25 18:32:23 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 18:34:28 2026 -0700"
      },
      "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 15:55:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 15:58:49 2026 -0700"
      },
      "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 14:16:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 14:19:04 2026 -0700"
      },
      "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 13:41:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 13:43:31 2026 -0700"
      },
      "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 10:54:42 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 10:55:43 2026 -0700"
      },
      "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 10:36:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 10:40:58 2026 -0700"
      },
      "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 10:34:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 10:36:00 2026 -0700"
      },
      "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 08:55:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 08:55:35 2026 -0700"
      },
      "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 +0000"
      },
      "committer": {
        "name": "Lukasz Anforowicz",
        "email": "lukasza@google.com",
        "time": "Tue Aug 25 15:29:00 2026 +0000"
      },
      "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 02:26:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 25 02:28:01 2026 -0700"
      },
      "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": "Mon Aug 24 17:54:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 17:55:49 2026 -0700"
      },
      "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": "Mon Aug 24 17:25:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 17:29:26 2026 -0700"
      },
      "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": "Mon Aug 24 17:23:51 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 17:24:52 2026 -0700"
      },
      "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": "Mon Aug 24 17:06:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 17:10:14 2026 -0700"
      },
      "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 16:16:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 24 16:21:09 2026 -0700"
      },
      "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 15:30:57 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 15:34:12 2026 -0700"
      },
      "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 12:40:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 12:47:44 2026 -0700"
      },
      "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 11:44:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 11:45:23 2026 -0700"
      },
      "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 11:23:00 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 11:24:16 2026 -0700"
      },
      "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": "Thu Aug 20 17:21:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Aug 20 17:22:34 2026 -0700"
      },
      "message": "Roll protobuf to 4.35.0-release in Cargo.\n\nPiperOrigin-RevId: 968149114\n"
    }
  ],
  "next": "f1cac0e4898866e1c2656cbcd79d865acececccf"
}
