)]}'
{
  "log": [
    {
      "commit": "f5ae4ea957d9449c8ce63d4da0a3bae62975cf38",
      "tree": "02b2c39b3084b226b7e3d3f93760fdd1fc99fdc7",
      "parents": [
        "d28c8d5c86335a9488fade8fb98467519c5142c2"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Oct 28 17:03:10 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 17:04:08 2025 -0700"
      },
      "message": "Fix unused import warnings\n\nPiperOrigin-RevId: 825266535\nChange-Id: I01dd6538e55b6c161152583ad49b6191c775500e\n"
    },
    {
      "commit": "d28c8d5c86335a9488fade8fb98467519c5142c2",
      "tree": "39c82e10f1b23fbd31790de830e3828fb849895c",
      "parents": [
        "f334f8096bbbf22c9c5112af9b8d77d1597b4578",
        "446a4a94a04b30a8c3aaf7e453c3b073cdf15ad6"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 16:35:06 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 16:35:06 2025 -0700"
      },
      "message": "Merge pull request #18 from google:ssbr-patch-1\n\nPiperOrigin-RevId: 825256803\nChange-Id: I2b7a27195f025f2f7d85a5bf56fcda32374d57af\n"
    },
    {
      "commit": "f334f8096bbbf22c9c5112af9b8d77d1597b4578",
      "tree": "86ecbb19080b3d24a76c10b9cf3459d18fca20bc",
      "parents": [
        "17027e84c0ec10a8f7882081e2ee2787d5c5176c"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Tue Oct 28 16:10:39 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 16:11:37 2025 -0700"
      },
      "message": "Enable consteval-only implicit conversions\n\nPiperOrigin-RevId: 825247774\nChange-Id: I5d4d1596ab34ad1b016ab892a968da9b36b32d2e\n"
    },
    {
      "commit": "446a4a94a04b30a8c3aaf7e453c3b073cdf15ad6",
      "tree": "aa3261e1aa80bf7bb1a5dcffbd203e68695f444c",
      "parents": [
        "17027e84c0ec10a8f7882081e2ee2787d5c5176c"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Tue Oct 28 15:08:43 2025 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 28 15:08:43 2025 -0700"
      },
      "message": "Create a Rust CI workflow for just building cc_bindings_from_rs\n\ncargo test doesn\u0027t work yet (fails to build!), and I\u0027d rather start iterating on the workflow with a subset that does work. So, the idea is, create the workflow, and then enable it and make sure to surface its results internally as well, and then fix coverage and make it run tests and so on."
    },
    {
      "commit": "17027e84c0ec10a8f7882081e2ee2787d5c5176c",
      "tree": "079346fe9c0a53b64f6b0fe4b92ba6276f2da5fb",
      "parents": [
        "5c09f56c60005510d0aa0df0bab8a84c5317860b"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 28 13:11:43 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 13:13:22 2025 -0700"
      },
      "message": "Remove the `do_not_hardcode_status_bridge` feature flag.\n\nIt is no longer needed because the migration is complete.\n\nPiperOrigin-RevId: 825174107\nChange-Id: Iba449a8197511870a9324954a5edcd78c0088327\n"
    },
    {
      "commit": "5c09f56c60005510d0aa0df0bab8a84c5317860b",
      "tree": "d05b848c09ef5417bf263162c6a5cd6efc8e096c",
      "parents": [
        "260f45fda302ac0198a080b9684629feed832213"
      ],
      "author": {
        "name": "Andreas C. Osowski",
        "email": "qwf@google.com",
        "time": "Tue Oct 28 12:53:03 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 12:54:00 2025 -0700"
      },
      "message": "internal change\n\nPiperOrigin-RevId: 825165820\nChange-Id: Iafed4213d0ab8d2055af36a398711d6c91e5db52\n"
    },
    {
      "commit": "260f45fda302ac0198a080b9684629feed832213",
      "tree": "f5b08ec12734729827fc52e424fdc57c3909af05",
      "parents": [
        "1f0a06638e60f83c3e719345760ba023c65868c7"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue Oct 28 12:28:11 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 12:29:27 2025 -0700"
      },
      "message": "Add `non_unpin_ctor` to the list of `:supported` features\n\nPiperOrigin-RevId: 825156271\nChange-Id: I30c49488e4ff593d27e8149a3e31d98ee751d37b\n"
    },
    {
      "commit": "1f0a06638e60f83c3e719345760ba023c65868c7",
      "tree": "028d51964e95f801f248d874ac4604b62e228e5f",
      "parents": [
        "bffa336af87d7274dc88e05585cb0e769a9f7efa"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Tue Oct 28 11:38:13 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 11:40:51 2025 -0700"
      },
      "message": "Do not collect attributed headers for targets that don\u0027t enable Crubit.\n\nWTB: actual profiling tools for my starlark.\n\nSince the number of targets that enable Crubit is very small, and will remain small for a long time, this was hypothesized to have an impact on build performance: instead of carrying around and communicating every single header from every single transitive dep (O(n)), we carry around only the ones that specifically enable Rust/Crubit support.\n\nIt does seem like a good idea on that grounds, and even if performance wins don\u0027t materialize here, it might be a part of the overall story later. That said, performance wins _don\u0027t_ materialize here, and the impact on bazel memory usage and CPU is indistinguishable from the null hypothesis.\n\nStill, literally every CL in the chain to today, except for the immediately previous CL and this one, had a reason for existence other than the end goal of the bug, so there\u0027s only a little bit of wasted work. And it probably is marginally faster and better on memory, even if it\u0027s hard to measure.\n\nOther effects: this does change the error messages: since we don\u0027t know what target a header is on, we can\u0027t say \"enable Crubit on that target!\", but instead say \"enable Crubit on that header!\". But the work necessary for this has all already been done: this is, as of this CL, _purely_ a change to the error comments, and not a particularly large one.\n\n(The work necessary to unblock this was 1. to make it so that if a header is not known, it\u0027s treated the same as if it\u0027s known but Crubit was disabled on the target, and 2. to give error messages that mention the header file, in such an event.)\n\nAs of this CL, AFAIK, there is nothing left to do for the \"shrink target_args\" bug, and we can mark that as closed.\n\nPiperOrigin-RevId: 825135672\nChange-Id: I4cca69ac55410c28fdcc46bed5a08c283d62af48\n"
    },
    {
      "commit": "bffa336af87d7274dc88e05585cb0e769a9f7efa",
      "tree": "f25b2e50e647c8f5e1c913a3d8362903bd583f35",
      "parents": [
        "b85302c0ea7a6b3b7c949a5ace2fd3062d6cc428"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Oct 28 10:54:28 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 10:55:31 2025 -0700"
      },
      "message": "Fix bug around field naming bug.\n\nWith the recent change to `symbol_canonical_name`, we started\nunkeywording more names than we did previously. This caused a collission\nwhere our logic for unkeywording and for field/method name collision was\nto suffix a `_`. We would unkeyword the method name to `operator_` but\nalso uncollied the field name to `operator_`. We now correctly handle\nthis case and uncollide the field name to `operator__`.\n\nPiperOrigin-RevId: 825114473\nChange-Id: Ib7531dd18f85d239aeac2878d3f9ee36f398055c\n"
    },
    {
      "commit": "b85302c0ea7a6b3b7c949a5ace2fd3062d6cc428",
      "tree": "5b7bb4daab3b389204132572f898b4f98bd0902e",
      "parents": [
        "72e9144b06ca9eede051731441ec4b350610e642"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Tue Oct 28 10:30:41 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 10:31:46 2025 -0700"
      },
      "message": "Add more user-relevant pages to the sidebar/sitemap.\n\nOmitted by accident, I think. Hard to deal with manually updating this.\n\nPiperOrigin-RevId: 825103254\nChange-Id: I458a729850d5e040efa87042bf8a92532db32cb7\n"
    },
    {
      "commit": "72e9144b06ca9eede051731441ec4b350610e642",
      "tree": "e6fd4eab4ccf65ae7828930c846678e10bdc6987",
      "parents": [
        "668fe542a65d47e6359a45a1878f9bd1c1fbe4a0"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 28 08:18:09 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 08:19:12 2025 -0700"
      },
      "message": "Internal Change\n\nPiperOrigin-RevId: 825048677\nChange-Id: Ic06254e90f7f392320d0e52e90b9c359df986ee9\n"
    },
    {
      "commit": "668fe542a65d47e6359a45a1878f9bd1c1fbe4a0",
      "tree": "fbd3ecc95c33964009307aeba407b965e15f912b",
      "parents": [
        "58896f5cd1000b4e681c0e42346f85a39fb20a1e"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 28 07:28:19 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 07:29:10 2025 -0700"
      },
      "message": "Internal change\n\nPiperOrigin-RevId: 825029560\nChange-Id: I960e9ef20c635e9306f73e167670e70e367d2283\n"
    },
    {
      "commit": "58896f5cd1000b4e681c0e42346f85a39fb20a1e",
      "tree": "563416bd717e5a640b550864848f92d33adf626b",
      "parents": [
        "3ce0170bf86746dc1e6943b636961c7ab0270980"
      ],
      "author": {
        "name": "Krasimir Georgiev",
        "email": "krasimir@google.com",
        "time": "Tue Oct 28 07:04:02 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 28 07:06:14 2025 -0700"
      },
      "message": "rs_bindings_from_cc: adapt for rules_rust 0.67\n\nNo functional changes intended.\n\nAdapts the aspect for the srcs change from https://github.com/bazelbuild/rules_rust/commit/3f392091ae2aaf124af204eb940a51e67d3692e1.\n\nPiperOrigin-RevId: 825020827\nChange-Id: I653061c45a52e6eb6a265366263e18c0ccb6d99f\n"
    },
    {
      "commit": "3ce0170bf86746dc1e6943b636961c7ab0270980",
      "tree": "b734e8cbd068d136e4a5ff7a5ce8e763de2c5b52",
      "parents": [
        "3daf6bc8598f30d816e0a840789088c3c920553a"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Oct 27 16:21:16 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 27 16:23:18 2025 -0700"
      },
      "message": "Update logic to determine canonical name of a symbol.\n\nGoal of this work is twofold:\n\n1) Remove a usage of HIR and replace it with an rmeta-compatible mid\n   usage.\n2) Consolidate logic for determining canonical names\n\nTo that end this change attempts to maintain previous logic as much as\npossible while changing the underlying implementation to work based off\nof DefId\u0027s and ModChild (rather than HIR paths) and lays out that logic\nin a sole source of truth `symbol_canonical_name`. There is more work we\ncould do, and we could pick better canonical names in some instances,\nbut both of those can build on top of this work once we\u0027re confident it\ndoesn\u0027t have unintended consequences.\n\nPiperOrigin-RevId: 824723116\nChange-Id: I16fed39f9bf671c7e51c37ad43711a844718f196\n"
    },
    {
      "commit": "3daf6bc8598f30d816e0a840789088c3c920553a",
      "tree": "c6fd2ad64bb92a90987c15f6196bb9f069aa7577",
      "parents": [
        "c8ddf8cbff3bed9656adeaf2d8102e6f8a56009d"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 27 11:03:21 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 27 11:06:32 2025 -0700"
      },
      "message": "Create a flag that allows std::vector\u003cSupportedPointer\u003e and absl::StatusOr\u003cSupportedPointer\u003e to be inferable.\n\nOnly impacts `hasInferable` so far, but most users of `hasInferable` have yet to be updated, so this flag is not ready to be enabled beyond the new tests added here.\n\nPiperOrigin-RevId: 824592796\nChange-Id: Ide066af1570652baa955b41ba6562f6aaefb1ad0\n"
    },
    {
      "commit": "c8ddf8cbff3bed9656adeaf2d8102e6f8a56009d",
      "tree": "4a066f855d94b5298c6c6d7bda7802ecbbb1b9d6",
      "parents": [
        "280daeb1cd54872e70c66f01b4cd76c86e12a61c"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 24 06:49:41 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 24 06:51:05 2025 -0700"
      },
      "message": "Break tests up to include only one scenario per test.\n\nAlso make tests more consistent in strategies for grabbing particular Decls, in use of auto, and in naming/capitalization.\n\nAlso remove duplicative test cases and use parameterized tests for some functions to make the input/output more obvious and reduce the focus on the machinery.\n\nPiperOrigin-RevId: 823510868\nChange-Id: Ic3b6cc526baab37f1452d8155267fc46f3d886e5\n"
    },
    {
      "commit": "280daeb1cd54872e70c66f01b4cd76c86e12a61c",
      "tree": "8ea572a9f60b6188885773116d6bc52c2503c4c3",
      "parents": [
        "61b8a544cabe12ff743996aae6c893b5e6219bef",
        "d729c338dcdb3fdb5d69789d6c289b8002d4db7a"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 15:30:29 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 15:30:29 2025 -0700"
      },
      "message": "Merge pull request #17 from google:ssbr-ci\n\nPiperOrigin-RevId: 823210889\nChange-Id: Ic7cd24576ee7a001b756a16a5f1e00e2a0bd0cb3\n"
    },
    {
      "commit": "61b8a544cabe12ff743996aae6c893b5e6219bef",
      "tree": "5a35fe2822dda35876ca1f3643e3754634d8e5bf",
      "parents": [
        "c3fd81f3c0b9e4fbe9f6945dffc678b7233dab7d"
      ],
      "author": {
        "name": "AJ Heller",
        "email": "hork@google.com",
        "time": "Thu Oct 23 15:23:23 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 15:24:44 2025 -0700"
      },
      "message": "Add \"invalid UTF-8\" test to string_view\n\nThis test ensures that a C++ string with invalid UTF-8 contents will cause an error when accessed via a raw_string_view.\n\nPiperOrigin-RevId: 823209178\nChange-Id: I3245f40d1140c3daf3c655b1951a2885e5b17a23\n"
    },
    {
      "commit": "d729c338dcdb3fdb5d69789d6c289b8002d4db7a",
      "tree": "cd34c06c86df446250b4b339bfe3d579201f0c32",
      "parents": [
        "23fe2a7c0a8420fc93580e19f4712beba24202c9"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Thu Oct 23 15:04:04 2025 -0700"
      },
      "committer": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Thu Oct 23 15:10:54 2025 -0700"
      },
      "message": "Use a rust-toolchain.toml file.\n\nThis gets us a much better default build experience:\n`cargo build --bin cc_bindings_from_rs` will automatically use nightly and\nthe required components, instead of requiring this \"oh yeah, what did I need\nto install again?\" setup process.\n\nAnd hey, what do you know, build is still green!\n\nShould probably use a specific nightly, but I\u0027m not sure how that works yet.\n(Since we probably want to test against multiple nightlies, I\u0027m not sure\nif it\u0027s wise to hardcode a specific one here.)\n"
    },
    {
      "commit": "c3fd81f3c0b9e4fbe9f6945dffc678b7233dab7d",
      "tree": "f8362ae0c2311f98252a6af66990fc674a27fcc7",
      "parents": [
        "23fe2a7c0a8420fc93580e19f4712beba24202c9"
      ],
      "author": {
        "name": "Augie Fackler",
        "email": "augie@google.com",
        "time": "Thu Oct 23 14:55:59 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 14:57:43 2025 -0700"
      },
      "message": "run_compiler_test_support: update for rust PR 147022\n\nPiperOrigin-RevId: 823198938\nChange-Id: I975e17e8b60d7683b45c94d31f38aa3686a73e4d\n"
    },
    {
      "commit": "23fe2a7c0a8420fc93580e19f4712beba24202c9",
      "tree": "ccb93bb634aa307638c5203ba2e6a6b6947fb571",
      "parents": [
        "e1b83d7baf4575e0ae253ae7b546804b411e73ea"
      ],
      "author": {
        "name": "Andreas C. Osowski",
        "email": "qwf@google.com",
        "time": "Thu Oct 23 09:33:36 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 09:35:06 2025 -0700"
      },
      "message": "rs_bindings_from_cc: fix protobuf crate name determination logic for nested messages\n\nPiperOrigin-RevId: 823073156\nChange-Id: Iadb4079efee947c916419a2f1283c924d0d2d93d\n"
    },
    {
      "commit": "e1b83d7baf4575e0ae253ae7b546804b411e73ea",
      "tree": "67d9cfe82634b6398d84c31a911cbc4d361cf80d",
      "parents": [
        "9c7e51fa1eb2ab5d12f57c773da1696385334bd7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 23 08:44:47 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 08:46:19 2025 -0700"
      },
      "message": "Handle value_or calls with non-pointer arguments convertible to pointers.\n\nWe permissibly assume the converted pointer is Unknown.\n\nPiperOrigin-RevId: 823056437\nChange-Id: I54e8ea9e7e0210c91888d3ffcf369ccd3ff00e34\n"
    },
    {
      "commit": "9c7e51fa1eb2ab5d12f57c773da1696385334bd7",
      "tree": "9b034915ea8f138195f8bb93a0de6f60d5f30d02",
      "parents": [
        "49610b3cdf0cdfcbbcc9694941efdae193b93b80"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 23 06:41:50 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 23 06:43:27 2025 -0700"
      },
      "message": "Change bridge.rs to be forward compatible for upcoming changes.\n\nFor example, the `TupleAbi` type is an unnecessary wrapper around a tuple, so I\u0027m eliminating that. The more important change though is I\u0027m setting up the codegen so I can transparently swap out the underlying behavior of `unstable_encode!` and `unstable_return!` to a more advanced approach where we allow `CrubitAbi`s to actually store context within them for the transformations to use, meaning codegen needs to be able to construct `CrubitAbi` values. This changes the codegen so that macros accept these values (and crubit generates their construction), but doesn\u0027t do anything with those values yet.\n\nPiperOrigin-RevId: 823017533\nChange-Id: I8bccbfef4103e664b1ffa4ae0919a7f8635162e7\n"
    },
    {
      "commit": "49610b3cdf0cdfcbbcc9694941efdae193b93b80",
      "tree": "aa2826bde63fd177f2857fbe0be7af745cff74fc",
      "parents": [
        "e558ffddf58ca15f0505cfe796e68a3bb9521e6b"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed Oct 22 13:21:01 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 22 16:20:05 2025 -0700"
      },
      "message": "Allow nested arrays of Drop+Default types.\n\nPiperOrigin-RevId: 822714738\nChange-Id: Id2268f95c94910b8f1ece6758e150ba4d9726f0b\n"
    },
    {
      "commit": "e558ffddf58ca15f0505cfe796e68a3bb9521e6b",
      "tree": "c6acf62efc883cc1f714a9ba9996a87a6f1ea11c",
      "parents": [
        "ac769386c2fef296b56a609580fb3c229f27e9ac",
        "b12504be6609d52b7896a8d548c70bee16a9ebb3"
      ],
      "author": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 22 16:18:26 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 22 16:18:26 2025 -0700"
      },
      "message": "Merge pull request #15 from google:ssbr-patch-1\n\nPiperOrigin-RevId: 822327211\nChange-Id: If02bb2932506d25d4ecc054203cb2a000552f9a9\n"
    },
    {
      "commit": "ac769386c2fef296b56a609580fb3c229f27e9ac",
      "tree": "5ac9b40917e9e7bce21c9352d3e6155ef7aaae25",
      "parents": [
        "67b1e4b0dade92bafd46d71ab02edb2b92164fe4"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue Oct 21 14:48:46 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 21 14:50:13 2025 -0700"
      },
      "message": "Enable `:non_unpin_ctor` in the few golden tests where it makes non-trivial changes\n\nThis feature will be added to `:supported` soon, and making this change early keeps the diffs simple in the next change.\n\nPiperOrigin-RevId: 822286053\nChange-Id: I59234c2a19b9fa13335d8a765994714107e9d00e\n"
    },
    {
      "commit": "67b1e4b0dade92bafd46d71ab02edb2b92164fe4",
      "tree": "168b20e73871156b66badad248b12944629ac523",
      "parents": [
        "cb375609b4b2066bdb5faa7715aa2c67793bb380"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue Oct 21 14:47:57 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 21 14:48:47 2025 -0700"
      },
      "message": "Simplify `non_unpin_ctor` feature guards to ignore superset feature `wrapper`\n\nPiperOrigin-RevId: 822285764\nChange-Id: Icc0f057a5ff7a116968196a0e8464d626637e4f8\n"
    },
    {
      "commit": "cb375609b4b2066bdb5faa7715aa2c67793bb380",
      "tree": "a6d9dd1a5068a9f3e3a36824bf5bbcad10d8c81b",
      "parents": [
        "a0bb47a35155c7445305cf0632ca4971d64417b4"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue Oct 21 14:41:29 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 21 14:42:36 2025 -0700"
      },
      "message": "Split `struct/nonunpin` tests into supported and experimental\n\nThe supported tests exercise features in `:non_unpin_ctor` that will become part of `:supported` soon, in the absence of `:wrapper` and `:experimental`. Having those tests in a separate target will make it easy to check that these features work under just `:supported`.\n\nPiperOrigin-RevId: 822283465\nChange-Id: Iea616912131c317e6bbab999bd50859d3c39a556\n"
    },
    {
      "commit": "a0bb47a35155c7445305cf0632ca4971d64417b4",
      "tree": "15c6e8a282843ba9c515d50cbfa22cdef8ac4db2",
      "parents": [
        "e4552703e2c76c504ff086483ebff040af1a15bb"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue Oct 21 13:29:57 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 21 13:31:40 2025 -0700"
      },
      "message": "Include `non_unpin_ctor` feature in `:wrapper` aspect hint\n\nThere is one semantic change with this. When using the `:wrapper` feature without `:experimental`, functions with non-`Unpin` return or parameter types advance from `pub(crate)` to `pub`.\n\nPiperOrigin-RevId: 822253958\nChange-Id: I069248d69af51260385d4ae714531baebb17967a\n"
    },
    {
      "commit": "e4552703e2c76c504ff086483ebff040af1a15bb",
      "tree": "1a6539dae2ae1e917e9c1e5ec26d6f613ef6a863",
      "parents": [
        "9ee57b1f73f0f9db39bad42cd58dfbd5fba8dba5"
      ],
      "author": {
        "name": "Krasimir Georgiev",
        "email": "krasimir@google.com",
        "time": "Tue Oct 21 04:15:45 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 21 04:17:42 2025 -0700"
      },
      "message": "Adapt for rules_rust 0.66.0.\n\nhttps://github.com/bazelbuild/rules_rust/pull/3634, which updates the deps and proc_macro_deps of rustc_compile_action and collect_deps to list.\n\nPiperOrigin-RevId: 822050008\nChange-Id: I73c6feb0335651979c7b4ca637623385e9010704\n"
    },
    {
      "commit": "9ee57b1f73f0f9db39bad42cd58dfbd5fba8dba5",
      "tree": "7c787a2e2d8a81ad680cc5a208df20d40b8d7083",
      "parents": [
        "a32924728f4b4619d7b66cf114669b69d5c7b312"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Oct 20 14:46:07 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 14:47:12 2025 -0700"
      },
      "message": "Migrate matches_qualified_name to use def path.\n\nPiperOrigin-RevId: 821814967\nChange-Id: Id433b8214109d15e3b51ba8c0db5f5b1f17cf3c1\n"
    },
    {
      "commit": "a32924728f4b4619d7b66cf114669b69d5c7b312",
      "tree": "ac6e48950d588138e45c1369b9f7ab38fcc163a0",
      "parents": [
        "6cd3ec0144057bb2ece26d88299e478c7b46f800"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 20 12:28:03 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 12:30:46 2025 -0700"
      },
      "message": "Support \"Get\" method on smart pointers to allow for Google-style-consistent method naming.\n\nPiperOrigin-RevId: 821753487\nChange-Id: I096ea35f8bc25b863bfbcf88effedd27c8fe854c\n"
    },
    {
      "commit": "6cd3ec0144057bb2ece26d88299e478c7b46f800",
      "tree": "3b8863a7ca9cdcdbec5fb9842c9f7fd5dc494b5b",
      "parents": [
        "4e90879d840ad87b3b4380c3211df8d591bf5ca8"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Oct 20 11:57:37 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 11:59:03 2025 -0700"
      },
      "message": "Make formatting command line flags optional.\n\nAs part of standardizing our command line, make formatting optional this\nreduces the number of required flags and means users don\u0027t have to\nprovide a rustfmt and clang-format binary before they can run crubit.\n\nPiperOrigin-RevId: 821741201\nChange-Id: I30ef7dda0a69a7c857e0ed95bb00921bf3419c2b\n"
    },
    {
      "commit": "4e90879d840ad87b3b4380c3211df8d591bf5ca8",
      "tree": "affed691e7c182175bb3d88b6068316f70a717ab",
      "parents": [
        "f1253779ea7d824e2a0b1bcdca096a6a8b171b89"
      ],
      "author": {
        "name": "Augie Fackler",
        "email": "augie@google.com",
        "time": "Mon Oct 20 11:32:20 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 11:33:41 2025 -0700"
      },
      "message": "cc_bindings_from_rs: adapt for Rust PR #144607\n\nPiperOrigin-RevId: 821731960\nChange-Id: I80a9f73d47efd7de666ca5930bb5f439dfdc81ee\n"
    },
    {
      "commit": "f1253779ea7d824e2a0b1bcdca096a6a8b171b89",
      "tree": "995efe180001c7c4e18d4182d27fcd711cb23f09",
      "parents": [
        "8c5f27bd9d923d766b12d2ec8f2546e56d99707b"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 20 08:06:01 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 08:07:31 2025 -0700"
      },
      "message": "Hook up more of the inference with summaries -- first in infer_tu and tests\n\nThis adds a TUSummary proto, to collect each of the individual summaries and the virtual method summary.\n\nFor now, we keep the old infer_tu behavior as well (and parameterize the tests), but we can delete that once we\u0027ve switched the default.\n\nPiperOrigin-RevId: 821652874\nChange-Id: I4604c1cf1bd1f2c814b42016d4ad8207b6b65890\n"
    },
    {
      "commit": "8c5f27bd9d923d766b12d2ec8f2546e56d99707b",
      "tree": "43323e3033f0ac67c07afc5ba7728c9240cd62d1",
      "parents": [
        "ed913f8301f0ebd50398f6aaf1b6957aeb1339c7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 20 06:49:53 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 20 06:52:28 2025 -0700"
      },
      "message": "Integrate LLVM at llvm/llvm-project@d5ce81dc8143\n\nUpdates LLVM usage to match\n[d5ce81dc8143](https://github.com/llvm/llvm-project/commit/d5ce81dc8143)\n\nPiperOrigin-RevId: 821627987\nChange-Id: Ic47ca26026c957b286cfdfb2a0305060b7e21abe\n"
    },
    {
      "commit": "ed913f8301f0ebd50398f6aaf1b6957aeb1339c7",
      "tree": "e728ea209d6495538ddb3bb1ae89d5dc82561dc5",
      "parents": [
        "29690a31672dbc54108ee70cb65fe22570eb1356"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 17 07:35:52 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 17 07:37:14 2025 -0700"
      },
      "message": "Retain propagated_from Evidence field in samples for computed SlotInferences.\n\nThis will retain any future fields added to Evidence unless they are specifically cleared.\n\nPiperOrigin-RevId: 820684621\nChange-Id: I6f2d4699e7b9ed54f39fe00ccb014e07624708cb\n"
    },
    {
      "commit": "29690a31672dbc54108ee70cb65fe22570eb1356",
      "tree": "742bb0b4925ad6d986134ac782d495ed964a9bc8",
      "parents": [
        "94ee64eb57b671c67826d081ee7f820fad2bf72f"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Thu Oct 16 15:53:04 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 15:55:16 2025 -0700"
      },
      "message": "Refactor unsafe checking for constructors\n\nI noticed in an unrelated CL that we were accidentally not checking\nnon-Unpin constructors safety annotations. This CL fixes that and a\ncouple other drive-by fixes:\n\n* Constructors of unsafe types are no longer automatically unsafe\n* Error messages now show which parameters are unsafe\n\nPiperOrigin-RevId: 820427186\nChange-Id: I83f025301021c766d36d865ad6cc7f542c8f6b15\n"
    },
    {
      "commit": "94ee64eb57b671c67826d081ee7f820fad2bf72f",
      "tree": "a3762e23c7baa9e123f04fcf825c037ea5a273ed",
      "parents": [
        "783472e67aa61b457e3820b01249ee2d9c5dfa6b"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 16 14:11:53 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 14:13:00 2025 -0700"
      },
      "message": "Propagate nullability for unique pointers created with `absl::WrapUnique`.\n\nPiperOrigin-RevId: 820389260\nChange-Id: Iccf6b684ffd279324d79c379cc271939475f40c6\n"
    },
    {
      "commit": "783472e67aa61b457e3820b01249ee2d9c5dfa6b",
      "tree": "87fda49d038a5c6f6ade2f12790a684476db47a7",
      "parents": [
        "f350f16271cad10e9b6dad8832bbb1433b1ff9de"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Thu Oct 16 13:24:49 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 13:26:21 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 820370164\nChange-Id: Ib83009c2c61e02287ebb4e9b198a8a5d3c9fa5d1\n"
    },
    {
      "commit": "f350f16271cad10e9b6dad8832bbb1433b1ff9de",
      "tree": "408bd957a36e0c52a9801734786f12ef9d7e584a",
      "parents": [
        "c3ecd15b72022c15ac3e231105cb9cb9af6e0145"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Thu Oct 16 12:29:48 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 12:31:08 2025 -0700"
      },
      "message": "Add a dependency on the tracing crate\n\nPiperOrigin-RevId: 820349867\nChange-Id: I26cbf4ed1d4be795e7ec67564fabe748f91f0561\n"
    },
    {
      "commit": "c3ecd15b72022c15ac3e231105cb9cb9af6e0145",
      "tree": "9fc37a130169323201ba40dff957fda9ec666057",
      "parents": [
        "b15bfb587f299be76d3e6add59a8fc97cd247fe6"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Thu Oct 16 11:08:27 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 11:10:18 2025 -0700"
      },
      "message": "Sort imports in the root Cargo.toml\n\nI intend to edit this file, but first, order.\n\nPiperOrigin-RevId: 820312715\nChange-Id: I5513282fad7099c86f425149ffda1de3b272dfd6\n"
    },
    {
      "commit": "b15bfb587f299be76d3e6add59a8fc97cd247fe6",
      "tree": "1a26cce1f609b27ad0d635fde7644cf75fdc3dcf",
      "parents": [
        "31611b109ac9e06b9060656c127ce0e295b4492a"
      ],
      "author": {
        "name": "Sam McCall",
        "email": "sammccall@google.com",
        "time": "Thu Oct 16 10:11:08 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 10:12:08 2025 -0700"
      },
      "message": "Allow bindings of [[clang::always_inline]] functions\n\nPiperOrigin-RevId: 820286951\nChange-Id: Icbb330d025d6708c634db6364be56d6eb445e104\n"
    },
    {
      "commit": "31611b109ac9e06b9060656c127ce0e295b4492a",
      "tree": "092d2ade98f3725ad4baf9ae5292e1e50eeef3ae",
      "parents": [
        "63d69034fe17853c7191f972d76e98df6ec02da4"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 16 08:21:37 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 08:22:47 2025 -0700"
      },
      "message": "Move functions out of anonymous namespaces and mark them static.\n\nThis fixes lots of clang-tidy findings configured for LLVM style.\n\nPiperOrigin-RevId: 820243661\nChange-Id: I53ea321f6103b9642d978dab05f446c8b283d11b\n"
    },
    {
      "commit": "63d69034fe17853c7191f972d76e98df6ec02da4",
      "tree": "6b2e880175d5436b896333fbff59077aad3d0e15",
      "parents": [
        "4c77f8bc9da78dce0a968270382fd503208a3a6e"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 16 08:07:46 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 08:08:50 2025 -0700"
      },
      "message": "Change function name capitalization to match llvm style and fix clang-tidy finding.\n\nPiperOrigin-RevId: 820238684\nChange-Id: I30248395fff6855c9c2e9e780af1ff7f2d81ffca\n"
    },
    {
      "commit": "4c77f8bc9da78dce0a968270382fd503208a3a6e",
      "tree": "fc0f22820fe7e9cc3de7804fee66aa3a37943672",
      "parents": [
        "728c2da5d65ec41947826dbdc7631e468e96d86a"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 16 07:30:28 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 07:31:57 2025 -0700"
      },
      "message": "Track the original symbol for which evidence was emitted when propagating to related virtual methods within a TU.\n\nPiperOrigin-RevId: 820225628\nChange-Id: Ib1227eae3ccd37937945ced5cbc1434bb071d21e\n"
    },
    {
      "commit": "728c2da5d65ec41947826dbdc7631e468e96d86a",
      "tree": "8f3132ee28a1b8f2ade3ab11c0dcb6408a796349",
      "parents": [
        "55767d191778d2a421a229d3fe446a65912c9865"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Thu Oct 16 07:24:20 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 16 07:25:49 2025 -0700"
      },
      "message": "Support passing and returning layout-compatible [T;N] as values.\n\nSince we can\u0027t pass or return [T;N] directly, do it through memory.\n\nPiperOrigin-RevId: 820223595\nChange-Id: I0f6dfd01fbebd16bc233168f54f073ac5924ad42\n"
    },
    {
      "commit": "55767d191778d2a421a229d3fe446a65912c9865",
      "tree": "52c8da644d05543573893b21eec97d5fb37b0944",
      "parents": [
        "39125e01290f1d4db7bf233076e0bbfebe922a65"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Oct 15 17:41:53 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 15 17:43:56 2025 -0700"
      },
      "message": "Remove absl::Status hardcoding within Crubit tool.\n\nNow that `do_not_hardcode_status_bridge` is enabled and Status + StatusOr are annotated with Crubit bridge annotations, this deletes the logic in rs_bindings_from_cc that substituted for those things. After these changes hit crosstool, I\u0027ll send a followup to remove the `do_not_hardcode_status_bridge` flag itself.\n\nPiperOrigin-RevId: 819981110\nChange-Id: Ib58fe3f210df68e6e0d0087bca9d593cf34b2445\n"
    },
    {
      "commit": "39125e01290f1d4db7bf233076e0bbfebe922a65",
      "tree": "1fd4616ddfe6cdc73aaa0bba07a3e3a04ece798e",
      "parents": [
        "8b7abde056378e527247b504cfd8db2e65297447"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Wed Oct 15 17:41:18 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 15 17:42:51 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819980937\nChange-Id: If14364058e7e7c4f51519d9176ff20b1bda8d534\n"
    },
    {
      "commit": "8b7abde056378e527247b504cfd8db2e65297447",
      "tree": "93d2250e02f65fdb8a9a77f66d107a51b2f64d74",
      "parents": [
        "0f8da770eeecc5f6f983dfeaf1e4ca0b8071ba08"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Wed Oct 15 17:34:36 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 15 17:36:26 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819978895\nChange-Id: I662438b689e8f65fad6d749678a35dd79e4a5220\n"
    },
    {
      "commit": "0f8da770eeecc5f6f983dfeaf1e4ca0b8071ba08",
      "tree": "053c35bfaf48ee420935e51e1d360d252d688a25",
      "parents": [
        "a796ee26d5ea752940107a98091c18a362024e58"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Oct 15 11:40:25 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 15 11:44:35 2025 -0700"
      },
      "message": "Include slot indices in override method summaries, rather than slot counts.\n\nThe full set of indices is needed to correctly detect all inferable slots in overrides with non-consecutive slot indices, e.g. a function with a pointer param but non-pointer return.\n\nAlso add printing capabilities for MethodSummary for easier debugging of tests, fix some clang-tidy findings related to static methods and using llvm range-based APIs instead of the standard library APIs, and remove an unnecessary IWYU pragma.\n\nPiperOrigin-RevId: 819847817\nChange-Id: I56bcf31ab452c681393906cfb762cc1085f30dd6\n"
    },
    {
      "commit": "a796ee26d5ea752940107a98091c18a362024e58",
      "tree": "e81b99f8467f02368c683b68c3e65a0cefe533d9",
      "parents": [
        "c7d2be20e7e52862b668ad7aa1b648fb7167e70f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Oct 15 11:40:01 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 15 11:43:33 2025 -0700"
      },
      "message": "Change C9Co to an RsTypeKind variant.\n\nIt\u0027s not a `UniformReprTemplateType` anymore, so this fixes that. I think it also doesn\u0027t generalize nicely into any of the existing variants. For example, it\u0027s not a bridge type because it\u0027s required to be at the top level, it can\u0027t be composed inside of something else.\n\nIn theory, it actually could be a bridge type, but in practice it cannot because we need to be able to write things like this:\n\n```rust\ntrait CrubitAbi {\n    const SIZE: usize;\n}\n\nfn foo\u003cA: CrubitAbi\u003e() {\n    let _ \u003d [0u8; A::SIZE];\n}\n```\n\nPiperOrigin-RevId: 819847655\nChange-Id: I799356501a49ea8e794cbdb7d64e33940629a44e\n"
    },
    {
      "commit": "c7d2be20e7e52862b668ad7aa1b648fb7167e70f",
      "tree": "32b20d7ae44fb181b06749c2d59f853c8b31adbf",
      "parents": [
        "5c83746f0e0e05331d45c2c9af592dc9ced1cd13"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Oct 15 07:48:42 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 15 07:50:06 2025 -0700"
      },
      "message": "Minor formatting changes.\n\nPiperOrigin-RevId: 819752259\nChange-Id: I078ff7914d7a3765afcb84d183a35ed4ab9837ca\n"
    },
    {
      "commit": "5c83746f0e0e05331d45c2c9af592dc9ced1cd13",
      "tree": "c2ec37b68f13cbfd1c9b001f26aa9d3089e1fded",
      "parents": [
        "e561f2ed3fb5dffb28477efaa711955e8b825cf3"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Tue Oct 14 18:46:36 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 18:47:20 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819500746\nChange-Id: I602729d69cb0ed2383f4778a4a1ecc4bddab4596\n"
    },
    {
      "commit": "e561f2ed3fb5dffb28477efaa711955e8b825cf3",
      "tree": "87402dc8cc0118044b4a4a626cba572ed11e27b8",
      "parents": [
        "e01eb2eb5ab440bccc7b981fab0be6614dad1abd"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Tue Oct 14 18:36:46 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 18:37:44 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819498132\nChange-Id: Iec1e4c29dbdeb9b82eff60bc7f493813a14cc377\n"
    },
    {
      "commit": "e01eb2eb5ab440bccc7b981fab0be6614dad1abd",
      "tree": "4743e74834ae0074f7137d51f56820657f8b8757",
      "parents": [
        "a2e3c2b39738735278c667b202190bb1446cc840"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Tue Oct 14 16:54:51 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 16:55:58 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819460467\nChange-Id: Ie6e6012c9a77e203616a00f45004ea4e7a9ad7d4\n"
    },
    {
      "commit": "a2e3c2b39738735278c667b202190bb1446cc840",
      "tree": "2d3d46809331b845d46715907f01af8d7f252dda",
      "parents": [
        "dc70232f8694bd015c6a377bb4d4a86568397cc9"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Tue Oct 14 16:20:45 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 16:22:07 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819446025\nChange-Id: Ifa2088dc6f11e8e68262ea206782e1a4254b14c4\n"
    },
    {
      "commit": "dc70232f8694bd015c6a377bb4d4a86568397cc9",
      "tree": "2acf014ab27de63b4fb04970b3d4df7fd2e8e708",
      "parents": [
        "64390aa3c76415839f72b50ccf07c8b9d40d7e6d"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Tue Oct 14 16:15:29 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 16:16:54 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 819444018\nChange-Id: I4b82bd5deb1b1951bf1e9988a3dbbcb2fdd9dd00\n"
    },
    {
      "commit": "64390aa3c76415839f72b50ccf07c8b9d40d7e6d",
      "tree": "df003f46bd55ff5340e9045e0260f036bcbefcf0",
      "parents": [
        "b2144f9f5d346b80430a793663727c4c3bd325e6"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Oct 14 10:47:36 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 10:49:14 2025 -0700"
      },
      "message": "Use mdbook include for index.md page\n\nPiperOrigin-RevId: 819299888\nChange-Id: I7a830ffd8f4eb35054c6ae5149b5b0ae80cc1756\n"
    },
    {
      "commit": "b2144f9f5d346b80430a793663727c4c3bd325e6",
      "tree": "cfd4b855b9d5eefd5a61f5e914b7c6ba3f2703bd",
      "parents": [
        "98992d24018fbf5b1d7b41e9faeef28a69cd2b23"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 14 09:48:40 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 09:49:56 2025 -0700"
      },
      "message": "Factor in the argument\u0027s nullability for absl::StatusOr::value_or when determining the result\u0027s nullability.\n\nBecause nullability is not present in the type system, StatusOr considers nullable pointers to be convertible to nonnull pointers. value_or claims to return a value of the template argument type, which papers over any differing nullability of the argument.\n\nPiperOrigin-RevId: 819270300\nChange-Id: I1314ecd4a243f2938e5d8f996d7991266927cd43\n"
    },
    {
      "commit": "98992d24018fbf5b1d7b41e9faeef28a69cd2b23",
      "tree": "260efd8a9c7e141ffec41a3ae4c3da433aeebe02",
      "parents": [
        "8bb2360bf4a93215625e3530d4c21b3736096b75"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 14 09:19:33 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 09:21:01 2025 -0700"
      },
      "message": "Also initialize PointerValue and nullability for smart pointers returned from CallExprs.\n\nDoes not reuse functions for ensuring value and nullability initialization, because CallExprs returning references have special handling to create new StorageLocations each time we transfer.\n\nPiperOrigin-RevId: 819256584\nChange-Id: I16a934b98a9dab99249a6a81d0bed460157c8817\n"
    },
    {
      "commit": "8bb2360bf4a93215625e3530d4c21b3736096b75",
      "tree": "58d11a873e389819954a0c117aca05ebf7d91ef0",
      "parents": [
        "dbb2f3b34d36a28f8ad529ebf74ea7459033bec3"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 14 07:44:23 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 14 07:46:00 2025 -0700"
      },
      "message": "Enable removal of `absl_nullability_conflict` annotations.\n\nThese are a form of Unknown nullability.\n\nPiperOrigin-RevId: 819216856\nChange-Id: I73d3f3f2b23e828fb35534e253a072f9fccb26f8\n"
    },
    {
      "commit": "dbb2f3b34d36a28f8ad529ebf74ea7459033bec3",
      "tree": "3bba0d60928bb6550e7579a223e412ce0dba8e75",
      "parents": [
        "34f8969f94df3114117f73a3e5f998157d03cc7a"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Mon Oct 13 12:01:49 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 13 12:03:06 2025 -0700"
      },
      "message": "Support protobuf enums inside of messages.\n\nStill can\u0027t support top-level enums that have underscores in them. Don\u0027t do that.\n\nThis is about as far as I intend to take the bug, because top-level enums with underscores are really hard unless A) we traverse the whole header to look for the alias, B) convince protoc to emit an annotation.\n\nSo I guess I\u0027m going to mark the bug as fixed, but people can reopen it if they really need this.\n\nPiperOrigin-RevId: 818769375\nChange-Id: I5dbb2fe906f760a7388783c3f07a9c29f5270845\n"
    },
    {
      "commit": "34f8969f94df3114117f73a3e5f998157d03cc7a",
      "tree": "4105b896fc3686282accbe5394dfa25a7d336469",
      "parents": [
        "2ff5d8c38015c2629488008eb2f2fc6462337871"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Mon Oct 13 11:56:16 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 13 11:57:37 2025 -0700"
      },
      "message": "Support protobuf enums that are not nested inside of a message.\n\nTo make this work, I also generalized the path logic that\u0027s used by bridging to also work for ExistingRustType: if it begins with a `::`, it\u0027s treated as an absolute path, but otherwise, it\u0027s treated as being relative to the crate that defined the item.\n\nThis makes it so that we can special-case proto enums and treat them _as if_ they were generated with a `CRUBIT_INTERNAL_RUST_TYPE(ProtoEnum)` declaration.\n\n(You might ask: why not use an enum item, instead of an ExistingRustType enum? The answer is: because then I can make them ABI-incompatible! Plus it seems more accurate, anyway.)\n\nThis doesn\u0027t work for enums nested inside a message because, well, given `message Foo_Bar {enum Bar_Baz {...}}`, we get a type like `Foo_Bar_Bar_Baz`, and there\u0027s no _easy_ way to get to `foo__bar::Bar_Baz` or similar. The enum is defined as the underscored name and aliased in the record, instead of the other way around.\n\nPiperOrigin-RevId: 818767266\nChange-Id: I13cbeb5b2cd511f85f67d481a24563ec245969db\n"
    },
    {
      "commit": "2ff5d8c38015c2629488008eb2f2fc6462337871",
      "tree": "53026aaba7d83737885c1f844bb542c7c0e80505",
      "parents": [
        "1b2e77145a5a652af2bc4865cff22069b9e1901c"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Mon Oct 13 11:50:29 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 13 11:52:55 2025 -0700"
      },
      "message": "Unify bridge-names and existing-rust-type names.\n\nI really regret not pushing for a generic \"let `crate` stand for the current crate name\" proposal! Then we would not need to parse as much of the structure. However, some parsing seems a bit inevitable.\n\nWith this change, both bridge types and types marked `CRUBIT_INTERNAL_RUST_TYPE` can be bridged/mapped to references, pointers, builtin types like `char`, and so on.\n\nThe use case for this is that in a followup CL I want to map proto enums to a crate-relative name using the existing rust type support, but it did not support crate-relative names, only bridging did. And I had to split it out to another change because, honestly, it was getting pretty intensive and really should be reviewed separately.\n\nI\u0027ve added some token unit tests, but the real test is in that it doesn\u0027t break our existing tests (and also, works in the followup CL.)\n\nPiperOrigin-RevId: 818764980\nChange-Id: I6d293c2d03d8c522d357fd3f570689c8c6910bcf\n"
    },
    {
      "commit": "b12504be6609d52b7896a8d548c70bee16a9ebb3",
      "tree": "3c6a9a21da7a7d972b661f291bce6389cd79967b",
      "parents": [
        "5784e57307ea75d1511c9d3a6972cf95763d7b26"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Fri Oct 10 14:31:42 2025 -0700"
      },
      "committer": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Mon Oct 13 17:28:23 2025 +0000"
      },
      "message": "Test PR documenting that we accept PRs\n\nThere is no proof like doing.\n\nThe problem with the other open PRs (oops!) is that they actually do touch lines affected by the copybara transform (that is the whole problem), so our copybara PR workflow won\u0027t work well on them. But this one should work! Probably!\n\nAnyway, this might not work right away, but once it does work, the PR can be merged, and that\u0027s a win. :)\n"
    },
    {
      "commit": "1b2e77145a5a652af2bc4865cff22069b9e1901c",
      "tree": "1661afa77358c265539f4002b6002db9943a52c9",
      "parents": [
        "174f89f1486a413877bb9638a54a807119720503"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Mon Oct 13 09:50:06 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 13 09:51:37 2025 -0700"
      },
      "message": "Make Rust dependency transforms reversible.\n\nAfter this change, a PR can modify a crate dependency and the resulting change can be applied to the google monorepo, but you do need to add some redundant information (because Google\u0027s dependency graph includes said redundant information, so to be a reversible bijective regular regexp transform, it still needs to be restated redundantly.)\n\nJust because the transform doesn\u0027t work doesn\u0027t mean the PR will -- especially for things with minor version numbers, we might only have specific versions in the repo. I guess that\u0027s an extra reason to use `vN` and not `v0_n` :)))\n\nPiperOrigin-RevId: 818707776\nChange-Id: I01a499eb505eec9f731904d3c543ed80e80ae8e7\n"
    },
    {
      "commit": "174f89f1486a413877bb9638a54a807119720503",
      "tree": "50ce1176105230720cc7e3aa5eed59b2e37cce2a",
      "parents": [
        "27e7c87d17003ab081a05c30ab21ea9a91a1132a"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Mon Oct 13 08:24:34 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 13 08:25:31 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 818671274\nChange-Id: Ie445950cf54506634ca4e52a454d9dc2733861fd\n"
    },
    {
      "commit": "27e7c87d17003ab081a05c30ab21ea9a91a1132a",
      "tree": "9b85402b25841436545933f32643b8f39e3d70c1",
      "parents": [
        "5784e57307ea75d1511c9d3a6972cf95763d7b26"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 13 06:37:58 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 13 06:39:47 2025 -0700"
      },
      "message": "Support c9::Co composable bridging\n\nPiperOrigin-RevId: 818630958\nChange-Id: I60bd2cc5d2c8779f7d465b4397d5e2ef99697914\n"
    },
    {
      "commit": "5784e57307ea75d1511c9d3a6972cf95763d7b26",
      "tree": "9a1d4155166d9186671070dd81e214581554eadd",
      "parents": [
        "db48d6ff934f0b30bb5e18cda53007a3c2a91c92"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Fri Oct 10 14:15:05 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 14:16:20 2025 -0700"
      },
      "message": "Test that Crubit\u0027s missing toolchain doesn\u0027t block anything at analysis-time.\n\nNote: I couldn\u0027t pick a platform like haiku because that fails due to no Rust toolchain, things like that. So it needs to be a supported platform for Rust/C++ but not Crubit. This test will probably not live forever. :/\nPiperOrigin-RevId: 817784735\nChange-Id: I16a7631848d3d85b236d5317b90e7a8d68c541ea\n"
    },
    {
      "commit": "db48d6ff934f0b30bb5e18cda53007a3c2a91c92",
      "tree": "e2f0a322581ed74cc8ad3b2562d99ba35278f94d",
      "parents": [
        "cd51adccc7c0e638e7c60dc4e54154daeb3b9a4d"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 10 14:12:52 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 14:14:14 2025 -0700"
      },
      "message": "Add support for serializing VirtualMethodIndex to/from proto.\n\nThis data needs to persist between inference stages.\n\nPiperOrigin-RevId: 817783981\nChange-Id: Ic9dc537e6f5e7e6639338ecf1c6d98d5270b901a\n"
    },
    {
      "commit": "cd51adccc7c0e638e7c60dc4e54154daeb3b9a4d",
      "tree": "beba062b85976476bf2d261c0ea3ce04d0ac5591",
      "parents": [
        "df6f801b53847f8dbe74e57929e83bde2a527fb7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 10 13:28:20 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 13:29:27 2025 -0700"
      },
      "message": "Nullability inference: support overrides from previous inference iterations when processing summarized evidence.\n\nIn the phase2 of inference, SummaryEvidenceCollector can check for overrides of nullability annotations for the given symbol. The nullability of a param is thus adjusted during inference, and the new nullability is used for subsequent evidence collection steps.\n\nThe overlay only applies to \"anonymous\" declarations -- those that are not referenced by name and so not picked up in InferableSlots, nor modeled symbolically.\n\nPiperOrigin-RevId: 817767923\nChange-Id: I2ef9b536689ea5d31ca07977bf5bdb741bf9ba44\n"
    },
    {
      "commit": "df6f801b53847f8dbe74e57929e83bde2a527fb7",
      "tree": "6b3304af606b552052c743ee58b6071070060e5f",
      "parents": [
        "8fc62bbf0d41ad1337c2b4a72474e40df4fcbe04"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 10 13:21:35 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 13:22:55 2025 -0700"
      },
      "message": "Implement evidence collection from serialized CFG summaries.\n\nThis patch completes the second major step of the refactoring. It adds the glue code that loads a serialized summary and feeds it to the (existing) evidence collection component to complete evidence collection.\n\nPiperOrigin-RevId: 817765613\nChange-Id: I0b1f8b3b57d5f4592faa002a65ff2a2e96bc6d6b\n"
    },
    {
      "commit": "8fc62bbf0d41ad1337c2b4a72474e40df4fcbe04",
      "tree": "27d81bfbaf8f5db12764f702324fc7b870b6b869",
      "parents": [
        "bfb3391c6685983a5f20e4b54daa238340f8ef38"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 10 13:08:35 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 13:09:53 2025 -0700"
      },
      "message": "Implement helper functions for loading inference data from protobufs.\n\nThese functions deserialize the data from protobuf representation into their native form.\n\nPiperOrigin-RevId: 817760899\nChange-Id: Ic86e8bf689b8307762a08cd9df08baa8ed426b26\n"
    },
    {
      "commit": "bfb3391c6685983a5f20e4b54daa238340f8ef38",
      "tree": "08d3c8410d7964f5837a0eb70ee7044b0b4261e6",
      "parents": [
        "c6697e95a2a2cf4a280151a4f4483d9a69ac92a7"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 10 11:17:12 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 11:18:42 2025 -0700"
      },
      "message": "Introduce function that summarizes the inference-relevant CFG portions and exports them in a protobuf.\n\nTo avoid code duplication, we refactor SummarizerAndCollector into a templated class that abstracts over the backend \"collector\" class. The new function then reuses the summarization functionality, but exports the summaries in a protobuf, rather than processing them direclty.\n\nThe existing functionality becomes a single standalone function which instantiates the template with the existing evidence collector class.\n\nThis patch includes definition of new protobuf messages to represent the summaries. A basic selection of tests is added to verify the protobuf messages are created as expected.\n\nPiperOrigin-RevId: 817718410\nChange-Id: I32b96843df6ab0d6118ace167cb310be985da968\n"
    },
    {
      "commit": "c6697e95a2a2cf4a280151a4f4483d9a69ac92a7",
      "tree": "f33db25f1b845e4884b9b09337dbfde88f595e1e",
      "parents": [
        "46996abf6e332fb579774a28cb1684052ac823c8"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Fri Oct 10 11:12:35 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 11:14:10 2025 -0700"
      },
      "message": "Make Crubit fail only during action execution when on an unsupported platform.\n\nThis is the most straightforward way I know of to make Crubit Just Work at analysis-time, and be ignored in an unused part of your dependency graph.\n\nAlternatives I tried:\n\n1. fail(): still executes at analysis time, doesn\u0027t allow deferring errors or anything.\n2. return []: works, but leads to confusing errors of the form \"unknown crate foo\".\n3. select() to avoid crubit deps in additional_rust_srcs_for_crubit_bindings: there does not seem to be a way to keep the select() and the toolchain definitions in sync, so I worry that this would inevitably either be too narrow (causing mysterious failures on supported platforms) or too broad (not resolving the bug).\n\nThis approach seems to me to be the one that\u0027s got the best error messages and is most \"guaranteed correct\" by virtue of actually reusing the toolchain selection logic.\n\nThe downside is a bit of extra complexity, and it takes much longer before a build error happens (it doesn\u0027t happen at analysis time).\n\nThis wasn\u0027t considered in the bug report (it was rejected option #4) because it was considered impossible. :D\n\nPiperOrigin-RevId: 817716445\nChange-Id: I9a20708fba4d36cc0b640a279267f740ea856910\n"
    },
    {
      "commit": "46996abf6e332fb579774a28cb1684052ac823c8",
      "tree": "57a68c9b0aa9bc611d3b7c77c2659daeab24302a",
      "parents": [
        "6931e0c8e44ace7124690b0b6873a0b811796f61"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 10 10:22:06 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 10:24:27 2025 -0700"
      },
      "message": "Move solver limit check to end of evidence collection.\n\nThe solver can reach its limit from any use, so its important that we push the check to the latest possible point to make sure we catch this condition. This change moves the check to the last step in `collectEvidenceFromDefinition`.\n\nPiperOrigin-RevId: 817696315\nChange-Id: I2d4272bc524cdd688ca3569e53d6ee1d25bfa9c9\n"
    },
    {
      "commit": "6931e0c8e44ace7124690b0b6873a0b811796f61",
      "tree": "5cab524c64d31892e1e32acf80961f4b9a7894eb",
      "parents": [
        "8c3ed0d1519aed84a4140141b7ed624e1fce4d76"
      ],
      "author": {
        "name": "Henner Zeller",
        "email": "hzeller@google.com",
        "time": "Fri Oct 10 09:46:33 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 09:47:56 2025 -0700"
      },
      "message": "Widen visibility for `cmdline`\n\nPiperOrigin-RevId: 817682312\nChange-Id: I895fb5febf59cebdbe5cd24cabd2f5c2ba391dc4\n"
    },
    {
      "commit": "8c3ed0d1519aed84a4140141b7ed624e1fce4d76",
      "tree": "d74cc9bc44f380757a98a7a242771f08ec4b2432",
      "parents": [
        "3453404a6c4d174a77db278d3b75ee756479af17"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Fri Oct 10 05:24:02 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 10 05:25:35 2025 -0700"
      },
      "message": "annotations: improve naming in the CRUBIT_BRIDGE documentation example.\n\nexample.rs sounds like it should be the Rust version of example.h, but I think\nthis is specifically *not* what it\u0027s intended to be here.\n\nPiperOrigin-RevId: 817599653\nChange-Id: Ie173b831ad1da595e2c1aa5adcddab1cd877d001\n"
    },
    {
      "commit": "3453404a6c4d174a77db278d3b75ee756479af17",
      "tree": "8c7f005fd78af4351c96f5aa4c1efa6ac8bc727b",
      "parents": [
        "f23e882069ba282cb530b03ee8f366d859ab1580"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Thu Oct 09 13:05:00 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 09 13:06:34 2025 -0700"
      },
      "message": "Mark converstion operator functions as `inline`\n\nWithout this, multiple inclusions of the same header\nleads to linker errors.\n\nPiperOrigin-RevId: 817305445\nChange-Id: If13bffb224c13253b3389f4bfa5f61550a37a9d9\n"
    },
    {
      "commit": "f23e882069ba282cb530b03ee8f366d859ab1580",
      "tree": "3c57c5d0388c74f6bbe65ec03046abe4c6ccc341",
      "parents": [
        "5d508a7a4d3cff50b7c379e5e56344c7e64e7190"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Thu Oct 09 11:58:26 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 09 11:59:53 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 817281355\nChange-Id: I3f47f9553833e50ab28a52ce01ec57ff511d2823\n"
    },
    {
      "commit": "5d508a7a4d3cff50b7c379e5e56344c7e64e7190",
      "tree": "3aa9573fa3bd7d2b1457d012e0061dae5a9b8d20",
      "parents": [
        "eec3563a9d6480ab267186f16be6e6c8e43603b5"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Thu Oct 09 03:05:15 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Oct 09 03:07:17 2025 -0700"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 817097829\nChange-Id: I68a33a1249da06246db86597d64cfedd01c11203\n"
    },
    {
      "commit": "eec3563a9d6480ab267186f16be6e6c8e43603b5",
      "tree": "2aae56e2ff02b968e1ef776051cdbdff77dd5fb0",
      "parents": [
        "6b4cdc1c18e11290a00454321eeb8eb74e240913"
      ],
      "author": {
        "name": "Devin Jeanpierre",
        "email": "jeanpierreda@google.com",
        "time": "Wed Oct 08 16:12:58 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 08 16:13:56 2025 -0700"
      },
      "message": "Release vector/unique_ptr.\n\nThis allows Rust users to rely on our Rust reimplementation of std::vector and std::unique_ptr.\n\nIn particular, this places the following constraints on the C++ standard library types vector and unique_ptr:\n\n* ABI changes are mirrored in Rust (before the next release).\n  * We have practice doing this once for `vector`!\n* ABI changes are _mirrorable_ in Rust. Specializations other than `vector\u003cbool\u003e` will not change the layout of the type, and both types will remain Rust-movable (using a raw bitwise copy without additional move logic).\n\nPiperOrigin-RevId: 816902146\nChange-Id: I9139b04b7fc958adb4a5d232f855f7cae1c53962\n"
    },
    {
      "commit": "6b4cdc1c18e11290a00454321eeb8eb74e240913",
      "tree": "f585abdea923f9c7ca65efd1cfc021203978e1af",
      "parents": [
        "098b6100519ec729621a3c67c9db612b97617947"
      ],
      "author": {
        "name": "Taylor Cramer",
        "email": "cramertj@google.com",
        "time": "Wed Oct 08 14:50:26 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 08 14:51:52 2025 -0700"
      },
      "message": "Fix parameter-position bridging in cc_bindings_from_rs\n\nThis was untested and would generate uncompileable bindings\nfollowing https://github.com/google/crubit/commit/e3d59c5c8d17cd5d4a32a992ab379e76b58633b2.\n\nPiperOrigin-RevId: 816871155\nChange-Id: I22ff1dc59f02563823464d1ce637545c8b6c048b\n"
    },
    {
      "commit": "098b6100519ec729621a3c67c9db612b97617947",
      "tree": "a6287e341197e072ccd00283a929b07219f42e54",
      "parents": [
        "2c7802758c2b24b91979918c75cda79ad0fd9c94"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Wed Oct 08 13:06:47 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 08 13:07:57 2025 -0700"
      },
      "message": "Fix repo\n\nPiperOrigin-RevId: 816828872\nChange-Id: I61f65fe7ded5ba8c3f1f820f201c1984817829f0\n"
    },
    {
      "commit": "2c7802758c2b24b91979918c75cda79ad0fd9c94",
      "tree": "d2c57007c70ba5bc61649ff601926afa57ff2550",
      "parents": [
        "b1534ab327f22de01e8f78047e54e0e5a0238c3c"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Wed Oct 08 07:34:55 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 08 07:36:15 2025 -0700"
      },
      "message": "Fix a test comment about the direction of evidence flowing for virtual methods\n\n... for the return nonnull case, the comment seemed flipped.\n\nPiperOrigin-RevId: 816699797\nChange-Id: Ic0ae9bf370c611befaa6e032b489e528de135915\n"
    },
    {
      "commit": "b1534ab327f22de01e8f78047e54e0e5a0238c3c",
      "tree": "8bce7c2b2271ee0a77bc6e483380c2230daff390",
      "parents": [
        "20e210b6adc43a3d1741bbf35649eff848de0232"
      ],
      "author": {
        "name": "Luke Zarko",
        "email": "zarko@google.com",
        "time": "Wed Oct 08 07:28:34 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Oct 08 07:31:05 2025 -0700"
      },
      "message": "Spell `[T; S]` as `std::array\u003clower(T), S\u003e` and test basic uses.\n\nAdd a spelling for fixed-size arrays. These are layout-compatible\nbut not ABI-compatible.\n\nPiperOrigin-RevId: 816697531\nChange-Id: I6a0075d1e830d092a9984bdd5abb5173884cc3b6\n"
    },
    {
      "commit": "20e210b6adc43a3d1741bbf35649eff848de0232",
      "tree": "9ccc5b89920652a91d2793617afe0358ff291234",
      "parents": [
        "22faf16854cabaa77c3ef397f0acb451b0cee7bf"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Tue Oct 07 16:43:13 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 07 16:44:29 2025 -0700"
      },
      "message": "dyn_future: make DynFuture generic over the future\u0027s lifetime.\n\nThis allows it to be used with futures that bind references.\n\nPiperOrigin-RevId: 816432038\nChange-Id: Ie16b75f9d66370fea65d893023fc7b987b9b70e6\n"
    },
    {
      "commit": "22faf16854cabaa77c3ef397f0acb451b0cee7bf",
      "tree": "13518c00de523a54e7a34f7bd1d36ede0c3e96f8",
      "parents": [
        "b41698ec6515caf276d21e72868dd39cfa9b88b7"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Tue Oct 07 15:02:19 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 07 15:03:32 2025 -0700"
      },
      "message": "Initial attempt at mdbook docs.\n\nThis is mostly to give us something tangible to test gh pages/gh actions with.\n\nPiperOrigin-RevId: 816393695\nChange-Id: Id708de31ee2ceca7bf302676d060021a95d82c49\n"
    },
    {
      "commit": "b41698ec6515caf276d21e72868dd39cfa9b88b7",
      "tree": "39ed311177964849e896828c0f980d31ec59fe17",
      "parents": [
        "57aca3852c046c13f2d71d157734be30c1a70276"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Tue Oct 07 11:50:13 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 07 11:51:43 2025 -0700"
      },
      "message": "Add another known and ignored C++ function attribute\n\nThe allowlist in https://github.com/google/crubit/commit/16d18a1d00763f041c648ef3c4f343a7d6cba64f was a bit too narrow and broke a few actively used bindings.\n\nPiperOrigin-RevId: 816312426\nChange-Id: Ib17de245130e7cef8eab6c78c9b7d301a5ba7c4c\n"
    },
    {
      "commit": "57aca3852c046c13f2d71d157734be30c1a70276",
      "tree": "8b2b099b23901bed2f3c5f11ad281644d9ad5996",
      "parents": [
        "0d7914a1d0e964ec3b097398c08b709f12318c71"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Tue Oct 07 10:03:56 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 07 10:05:18 2025 -0700"
      },
      "message": "Prepare c9::Co to allow for bridgeable T\n\nPiperOrigin-RevId: 816262915\nChange-Id: If615b27a38074ba17b9e6b2e80ee535122e0713a\n"
    },
    {
      "commit": "0d7914a1d0e964ec3b097398c08b709f12318c71",
      "tree": "5b5f28dd2f87bb1e429f87a2156a39a7647268c9",
      "parents": [
        "03e0ddd209d4edc20a6fbfbdbbd70cb4d31e96bb"
      ],
      "author": {
        "name": "Krasimir Georgiev",
        "email": "krasimir@google.com",
        "time": "Tue Oct 07 05:19:56 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Oct 07 05:21:28 2025 -0700"
      },
      "message": "crubit: pass pass DepVariantInfo\u0027s attributes explicitly\n\nNo functional changes intended.\n\nThis adapts Crubit for https://github.com/bazelbuild/rules_rust/pull/3645.\n\nPiperOrigin-RevId: 816158847\nChange-Id: I1b95ba97784cee806f3c9238ea0a59d544cd1f2a\n"
    },
    {
      "commit": "03e0ddd209d4edc20a6fbfbdbbd70cb4d31e96bb",
      "tree": "58356ddf63abfab83df9294a1f1e160e97f406a3",
      "parents": [
        "9e06a6cfbf661e2f822f675b53de7913d06a64a4"
      ],
      "author": {
        "name": "Ethan Smith",
        "email": "ethansmith@google.com",
        "time": "Mon Oct 06 15:11:19 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 15:49:11 2025 -0700"
      },
      "message": "Provide conversion operators for `Into` implementations of types.\n\nThis requires modifying our infrastructure to support traits with\ngenerics. I\u0027ve kept this conservative as there are some open design\nquestions on full generics support. We\nonly support generating trait thunks with type generic parameters and\nthose types should not contain free variables.\n\nPiperOrigin-RevId: 815902729\nChange-Id: I7431d06e28b94dcf6ceee133d0d33c720c2904e4\n"
    },
    {
      "commit": "9e06a6cfbf661e2f822f675b53de7913d06a64a4",
      "tree": "bb1fe139fe7a5cff9a644032e01ec9db54f919fb",
      "parents": [
        "9d1596b5f6ff7ed0f3e57a9dc75269a83692679a"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Mon Oct 06 13:54:15 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 13:55:24 2025 -0700"
      },
      "message": "dyn_future: add an unsafe factory function for futures that are not \u0027static.\n\nThis allows them to be used from C++ when it\u0027s known to be safe outside of what\ncan be expressed with the Rust type system.\n\nPiperOrigin-RevId: 815871382\nChange-Id: Ib75cba19b6072a83878f15b6b34e671a96b79a9b\n"
    },
    {
      "commit": "9d1596b5f6ff7ed0f3e57a9dc75269a83692679a",
      "tree": "c8ddbf47e15f5805be9be417ab8388bb7007652a",
      "parents": [
        "16d18a1d00763f041c648ef3c4f343a7d6cba64f"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 06 12:45:49 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 12:47:14 2025 -0700"
      },
      "message": "Fix includes.\n\nPiperOrigin-RevId: 815844403\nChange-Id: Ia8837c319dc90efb71c30eba97e4fb418abf68aa\n"
    },
    {
      "commit": "16d18a1d00763f041c648ef3c4f343a7d6cba64f",
      "tree": "76626d124db1a8892c12d4b553ecb1434b87bcbd",
      "parents": [
        "9acc6a27f2fe2adcbf29734a730b1e4ee104943e"
      ],
      "author": {
        "name": "Michael VanBemmel",
        "email": "mvanbem@google.com",
        "time": "Mon Oct 06 10:45:40 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 10:47:00 2025 -0700"
      },
      "message": "Reject unknown attributes on functions\n\nThese unknown attributes were getting collected, but were left out of the serialized IR and not checked on the Rust side.\n\nPiperOrigin-RevId: 815794322\nChange-Id: Ib5accbb083dc9848a6771b1f0ee2f93dce94360d\n"
    },
    {
      "commit": "9acc6a27f2fe2adcbf29734a730b1e4ee104943e",
      "tree": "76cc37580b5f714a35c41d0839806bbb12d117ba",
      "parents": [
        "3283a9fc8750fc8159693f384f7556f1a025a093"
      ],
      "author": {
        "name": "Aaron Jacobs",
        "email": "jacobsa@google.com",
        "time": "Mon Oct 06 10:44:47 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 10:45:54 2025 -0700"
      },
      "message": "annotations: document that CRUBIT_UNSAFE_IMPL supports multiple markers.\n\nPiperOrigin-RevId: 815793899\nChange-Id: I21e9a20739b695f7cc3d3330f3b1682a910298d1\n"
    },
    {
      "commit": "3283a9fc8750fc8159693f384f7556f1a025a093",
      "tree": "bf46700168bbd211dcad897d587756c7b7d75374",
      "parents": [
        "58b03d53d1456f9100c686ab2f10a09eddb99cd4"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Mon Oct 06 07:13:44 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Oct 06 07:15:56 2025 -0700"
      },
      "message": "Check for underlying raw pointer types from base classes of the nearest smart pointer base class.\n\nWe consider a class to be a smart pointer just for having the _Nullable annotation, but the indication of the underlying raw pointer type may only be, e.g. inside a base class if a class inherits from, e.g. std::unique_ptr\u003cint\u003e.\n\nPiperOrigin-RevId: 815712003\nChange-Id: I4e2241f2f7f8ded2657b811f75bf0eccb86a20cc\n"
    },
    {
      "commit": "58b03d53d1456f9100c686ab2f10a09eddb99cd4",
      "tree": "0ff6aac6d6352ef2e36c5d26a13068a97757079a",
      "parents": [
        "7c5be81be5b497391211cd7cfd1725486eb19cb4"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 03 13:14:06 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 03 13:15:34 2025 -0700"
      },
      "message": "New query for local From impls by argument type.\n\nQuery provides a mapping from argument type (i.e. `MyCrubit` in `impl\nFrom\u003cMyCrubit\u003e for i32`) to the local def id of the impl. This work can\nbe done once and shared between all ADT definitions for conversion\noperator support, so I\u0027ve added it as a new query. It is a relatively\nnarrow query. I think we could expand it to work for known traits of one\nargument, but it wouldn\u0027t make sense to do this for queries of multiple\narguments. Without a concrete usecase, I\u0027ve opted for the narrowest\nfunctionality we need today.\n\nPiperOrigin-RevId: 814804612\nChange-Id: I00da85e406ede6c5182e36c6b15217492a1271ee\n"
    },
    {
      "commit": "7c5be81be5b497391211cd7cfd1725486eb19cb4",
      "tree": "802824ab5bbeb59ed407feeff7a66c43041b424d",
      "parents": [
        "fbf3f8949473d0c327a8076e1df534834ba0f8a8"
      ],
      "author": {
        "name": "Googler",
        "email": "no-reply@google.com",
        "time": "Fri Oct 03 11:11:41 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Oct 03 11:13:07 2025 -0700"
      },
      "message": "Don\u0027t add impossible operator\u003ds to the IR.\n\nPiperOrigin-RevId: 814760281\nChange-Id: I896e753de6842d8ac8b7f79ba72922743f9a6b38\n"
    }
  ],
  "next": "fbf3f8949473d0c327a8076e1df534834ba0f8a8"
}
