)]}'
{
  "log": [
    {
      "commit": "c2f7f49db33251283f11f98a77e569b66ce86375",
      "tree": "83c3ebaa82b6a60183b4cfb610ebeb71651dceb4",
      "parents": [
        "41ffbe42d8a20c6b7d8a78c12f8738924e5da7bf"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Aug 26 14:44:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 26 14:45:37 2026 -0700"
      },
      "message": "BEGIN_PUBLIC\nPrevent DoS and thread starvation in Redfish session token refresh.\n\nRedfishSessionAuthPlugin held the main mutex across synchronous network\ncalls during token refresh, which could block all proxy threads.\n\nThis change separates the network refresh logic from the state mutex using a\ndedicated fetch mutex. It also adds a 15-second cooldown and double-checked\nlocking to prevent repeated forced refreshes from causing thread starvation.\nEND_PUBLIC\n\nPiperOrigin-RevId: 971512071\nChange-Id: Ieaf8c6d172105d930b8dcd0831bd9e09104d8203\n"
    },
    {
      "commit": "41ffbe42d8a20c6b7d8a78c12f8738924e5da7bf",
      "tree": "400b9c48989017a083ddb0109001af50b5d76694",
      "parents": [
        "bb97fd009fb40d8b123aaa242800196d5cd31621"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Fri Aug 21 17:04:40 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Aug 21 17:05:34 2026 -0700"
      },
      "message": "Bound metric label cardinality for user-controlled Redfish URIs.\n\nBEGIN_PUBLIC\nBound metric label cardinality for user-controlled Redfish URIs.\n\nThe Redfish passthrough plugin used the raw, user-controlled request path\ndirectly as the uri metric label. An attacker sending requests to endlessly\nmany random paths (e.g. /redfish/v1/fake-node-${RANDOM}) forced the metrics\nbackend and the log_monitoring hash maps to allocate a new cell/entry per\nunique path, growing memory without bound until the proxy OOMs (Metrics\nCardinality Explosion DoS).\n\nIntroduce BoundedUriLabel(), a thread-safe helper that strips the query string\nand admits at most kMaxDistinctUriLabels (1000) distinct paths, collapsing any\nfurther path into a single \"\u003cother\u003e\" bucket. This bounds the number of distinct\nlabels a metric can ever grow to. Applying it at the passthrough call sites\nprotects both metric backends with one change, keeps absl::string_view label\ntypes (no lifetime changes), and preserves per-URI observability for normal\ntraffic. Add unit tests, including a flood test asserting the cardinality bound.\nEND_PUBLIC\n\nPiperOrigin-RevId: 968775037\nChange-Id: I326c5666e3a71dbe078cd299a9b8a5f117661fc7\n"
    },
    {
      "commit": "bb97fd009fb40d8b123aaa242800196d5cd31621",
      "tree": "368124d5b6bbac9f0eeb0a263f79987d1db6bb1f",
      "parents": [
        "f8df0496b31493738b1562fe325df5dc9a55cc94"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Sun Aug 16 14:03:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Aug 16 14:03:28 2026 -0700"
      },
      "message": "[vBMC][Equillibrium] Fix Timer::Start TOCTOU Race Condition Leads to Memory Corruption and Custom Ticker Deadlock issue.\n\nBEGIN_PUBLIC\nFix Timer::Start TOCTOU Race Condition Leads to Memory Corruption and Custom Ticker Deadlock issue.\nEND_PUBLIC\n\nTimer::Start had two concurrency issues:\n\n1. TOCTOU race: Start checked state_ \u003d\u003d kIdle under the mutex, then called\ntimer_mutex_.Await() which released the lock while state_ was still kIdle.\nA concurrent Start call could acquire the lock, pass the idle check, and\noverwrite tick_thread_, destroying an active thread before it is joined.\n\n2. Custom ticker deadlock: When a custom Ticker lambda was passed, it replaced\nthe entire Tick() thread function. Since state_ is private and only Tick()\nsets state_ \u003d kTicking, the Await(CheckTickingOrEnd) condition in Start\ncould never be satisfied, permanently deadlocking the caller.\n\nSolutions: Add a kStarting intermediate state set immediately after the idle check but\nbefore releasing the mutex to Await. Wrap custom tickers in a\nstate-managing lambda that sets state_ \u003d kTicking before invoking the\nticker, Reset state_ back to kIdle if\nthe thread fails to start.\nPiperOrigin-RevId: 965622743\nChange-Id: Icb7cfd701de0c16f9d7fe98ecbe30c564095e393\n"
    },
    {
      "commit": "f8df0496b31493738b1562fe325df5dc9a55cc94",
      "tree": "54e9f2fed1b60a9d49bf09c13197c3f4eb6507ef",
      "parents": [
        "57d9cf9a206180237f2c87749101eb298fb2c257"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Tue Aug 11 13:57:01 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 11 13:57:20 2026 -0700"
      },
      "message": "[vBMC][Equillibrium] Fix missing unix_socket_path mapping in ToHttpClientRequest leads to SSRF and Credential Exposure issue\n\nToHttpClientRequest() omitted the unix_socket_path_ member when constructing the ecclesia::HttpClient::HttpRequest output. Requests intended for Unix Domain Socket transport silently fell back to standard TCP/IP networking via the URI, breaking UDS isolation guarantees.\n\nBEGIN_PUBLIC\nFix missing unix_socket_path mapping in ToHttpClientRequest leads to SSRF and Credential Exposure issue\n\nJust manually map and insert the internal unix_socket_path_\nEND_PUBLIC\n\nPiperOrigin-RevId: 962983363\nChange-Id: If8a94a0081b15fd9c076e8ca6cf8005120199126\n"
    },
    {
      "commit": "57d9cf9a206180237f2c87749101eb298fb2c257",
      "tree": "7a8cb4e82b183333cdcf81c36fa9439c30f9beb1",
      "parents": [
        "42337aaf9353c304cae910bd5c921b52c2482992"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Tue Aug 11 12:31:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Aug 11 12:32:08 2026 -0700"
      },
      "message": "[vBMC][Equillibrium]  Fix process In-Flight Network Requests Use-After-Free via Object Destruction Ordering Flaw\n\nSwap the declaration index of queue_ and proxies_ within ProxyBuilder directly inside the class definition. Specifically:\\ncpp\\n  std::unique_ptr\u003cvoyager::DeferrablePriorityQueue\u003e queue_;\\n  std::list\u003cProxy\u003e proxies_;\\n\\nThis forces all active network listeners across Proxy units to securely stop operations before memory release is propagated for native resources.\n\nBEGIN_PUBLIC\nFix process In-Flight Network Requests Use-After-Free via Object Destruction Ordering Flaw\nEND_PUBLIC\n\nPiperOrigin-RevId: 962932767\nChange-Id: I331d1a47ab68a2c2d7a007c1fb1386ecb244d700\n"
    },
    {
      "commit": "42337aaf9353c304cae910bd5c921b52c2482992",
      "tree": "de43cd9bc858084a01bef2d09a58c3961cec0db8",
      "parents": [
        "34e3411fd294cf838decdc7a2ad9b57059be5386"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Aug 03 13:14:36 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Aug 03 13:14:59 2026 -0700"
      },
      "message": "Add platform_type metric and configuration to vbmc daemons\n\nAdds a platform_type string configuration field to the Configuration proto and registers a new Streamz gauge metric `platform_type` (/vbmc/platform_type) to report the configured platform type.\n\nDuring server initialization in `main.cc`, the platform type string from configuration is recorded in the metric gauge. Platform GCL configs set the appropriate platform identifier string.\n\nBEGIN_PUBLIC\nAdd platform_type field to Configuration proto and metric reporting.\nEND_PUBLIC\n\nTested:\n- Ran //platforms/vbmc/monitoring:streamz_monitoring_test with --runs_per_test\u003d2 (PASSED).\n- Verified compilation of //platforms/vbmc/platform/... binaries.\nPiperOrigin-RevId: 958539891\nChange-Id: Id868079f375162255e41d51d15c9afde87f1fe2b\n"
    },
    {
      "commit": "34e3411fd294cf838decdc7a2ad9b57059be5386",
      "tree": "4b6b781447756fe02b17c01333c4d9635cb9fef5",
      "parents": [
        "95508903bf82c5956e53c66d1134b16ef2ca4d7b"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Thu Jul 30 12:46:45 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 30 12:47:04 2026 -0700"
      },
      "message": "Fix Missing Log Fetches Data Race in vBMC\n\nBEGIN_PUBLIC\nIntroduced a mutex in events_manager to guard the init expiry flag using absl::MutexLock. This guarantees proper chronological synchronization between event processing and init expiry, preventing missed alarm fetches and memory faults.\nEND_PUBLIC\n\nPiperOrigin-RevId: 956682579\nChange-Id: I4cd5d4489ebff30b49327c1b8a48ee5dbe80b687\n"
    },
    {
      "commit": "95508903bf82c5956e53c66d1134b16ef2ca4d7b",
      "tree": "6a5e4333fe2f6bb8d7b0da12217fdcb58d085cd3",
      "parents": [
        "13d6a68ad29bd86acbe9068087c9fdbeaa887601"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Jul 22 20:09:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jul 22 20:09:38 2026 -0700"
      },
      "message": "Fix 5 ClangInliner findings:\n\nDetails for what is fixed can be found at the top of each file.\n\nSee go/inliner-lsc for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just grant approval!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/inliner-bug for category ClangInliner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #third_party-googletest-googlemock-include-gmock-gmock-actions.h\n\nBEGIN_PUBLIC\nAutomated Code Change\nEND_PUBLIC\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 952481261\nChange-Id: I23f5290f2b86ed129b333eb9c793b3f9ae41a034\n"
    },
    {
      "commit": "13d6a68ad29bd86acbe9068087c9fdbeaa887601",
      "tree": "b45bff3cc671e4811406f4a94d00e4d8909bda96",
      "parents": [
        "36ca45a8ae56f51c7b0ba6b7c92238403a7fa412"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Tue Jul 14 00:23:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jul 14 00:24:08 2026 -0700"
      },
      "message": "Fix 12 ClangInliner findings:\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is testing::Invoke. (12 times)\n\nSee go/inliner-lsc for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just grant approval!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/inliner-bug for category ClangInliner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #third_party-googletest-googlemock-include-gmock-gmock-actions.h\n\nBEGIN_PUBLIC\nAutomated Code Change\nEND_PUBLIC\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 947491282\nChange-Id: Ia9d98dc23d8de3e8ce818ccc010e20ac12bef9be\n"
    },
    {
      "commit": "36ca45a8ae56f51c7b0ba6b7c92238403a7fa412",
      "tree": "e59621c96d866e249b91e4f57eabb2aa948cfe28",
      "parents": [
        "5c8d8bef2381f6cd3aa295fa9bbd760c67e2838d"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Thu Jul 09 14:38:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 09 14:38:27 2026 -0700"
      },
      "message": "Fix Proxy Initialization Synchronization in vBMC\n\nBEGIN_PUBLIC\nEliminated polling loops and unsafe cross-thread boolean reads. Added an absl::Notification to the Proxy framework to expose AwaitInit(), and properly guarded the proxy_ pointer with absl::Mutex. This resolves deadlocks, UB, and TSAN warnings during initialization.\nAlso replaced deprecated absl::MutexLock pointer constructors (lock(\u0026mutex_)) with reference constructors (lock(mutex_)) to adhere to updated Abseil guidelines.\nEND_PUBLIC\n\nPiperOrigin-RevId: 945322189\nChange-Id: I610fd10ce5bbf2c6f4bf6cced7e5d78be3d8ade1\n"
    },
    {
      "commit": "5c8d8bef2381f6cd3aa295fa9bbd760c67e2838d",
      "tree": "af12d775a2069010da919413eeb75dd8a84944dc",
      "parents": [
        "ce8fb42981e9434af272a85fb4b74abdae94b142"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Mon Jul 06 20:56:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 20:56:59 2026 -0700"
      },
      "message": "Included header \"third_party/absl/base/no_destructor.h\" is not used directly\n\n ⚠️ Did submitting this CL break you?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL. If need approval immediately, ask in go/global-rollbacks-chat.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just grant approval!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #UnusedInclude\n\nBEGIN_PUBLIC\nAutomated Code Change\nEND_PUBLIC\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 943644258\nChange-Id: I56cd0312e44b015500cc41157a37c85f6645c101\n"
    },
    {
      "commit": "ce8fb42981e9434af272a85fb4b74abdae94b142",
      "tree": "1c69ec1dafc3e1df3aee33441b66ac036936de99",
      "parents": [
        "30ec0742b47f9fd5ae5840e21439619767c9a489"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Mon Jul 06 20:55:56 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 06 20:56:25 2026 -0700"
      },
      "message": "Used header \u003cfunctional\u003e is not included directly\n\n ⚠️ Did submitting this CL break you?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL. If need approval immediately, ask in go/global-rollbacks-chat.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just grant approval!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #MissingInclude\n\nBEGIN_PUBLIC\nAutomated Code Change\nEND_PUBLIC\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 943644228\nChange-Id: I572f0ac10b3e4d5c9f0af937be7b610ea3bd2c01\n"
    },
    {
      "commit": "30ec0742b47f9fd5ae5840e21439619767c9a489",
      "tree": "0d0c60347e0c09217d72b89d28ca9abe9d7e3731",
      "parents": [
        "4488525128a75078c198250b716eacebf775e210"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Mon Jun 29 22:40:23 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 22:40:50 2026 -0700"
      },
      "message": "Used header \"third_party/absl/base/log_severity.h\" is not included directly\n\n ⚠️ Did submitting this CL break you?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL. If need approval immediately, ask in go/global-rollbacks-chat.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just grant approval!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #MissingInclude\n\nBEGIN_PUBLIC\nAutomated Code Change\nEND_PUBLIC\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 940235865\nChange-Id: I9a0e8d3fecf9977786f45c64b01e4e9bbcb01ec1\n"
    },
    {
      "commit": "4488525128a75078c198250b716eacebf775e210",
      "tree": "055809c54533b6473328f192b0976db958f0361f",
      "parents": [
        "01cbab76067940f5fef1af3b1f30a8a7498dac7f"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Jun 29 14:59:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 15:00:08 2026 -0700"
      },
      "message": "Fix Use-After-Free in G3Thread and DeferredStatus\n\nAddress two Use-After-Free (UAF) vulnerabilities:\n\n1. In G3Thread destructor, call Join() if the thread was started but not yet\n   joined. This ensures the background thread terminates before its captured\n   state is deallocated.\n2. In DeferredStatus, store the synchronization state in a SharedState managed\n   by std::shared_ptr, and have the Setter callback capture it by value.\n   This keeps the state alive even if the DeferredStatus owner is destroyed.\n\nAdded G3ThreadTest.DestructorJoins and DeferredStatusTest.CallbackOutlivesDeferredStatus.\n\nBEGIN_PUBLIC\nFix Use-After-Free vulnerabilities in G3Thread and DeferredStatus.\nEND_PUBLIC\n\nPiperOrigin-RevId: 940048910\nChange-Id: I73ae2a5f2b55eee5531dc934269e7df120667357\n"
    },
    {
      "commit": "01cbab76067940f5fef1af3b1f30a8a7498dac7f",
      "tree": "c9cb9bdc2b5e4790897612ad2baba681563e3c71",
      "parents": [
        "6ef59157f54ef6db1d3cfb457f61f4b0b520fa12"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Jun 29 14:15:34 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 14:15:55 2026 -0700"
      },
      "message": "Fix path traversal bypass in ResourceMatches by normalizing URIs\n\nBEGIN_PUBLIC\nFix path traversal bypass in ResourceMatches by URL path normalization\n\nAn attacker could bypass subtree authorization checks by using relative path\noperators (e.g., /authorized_path/../../unauthorized_path). This change resolves\nthe vulnerability by implementing a custom path normalization utility in the\nutils directory that resolves dot operators (\u0027.\u0027 and \u0027..\u0027) before checking\nresource paths, while keeping query parameters intact.\nEND_PUBLIC\n\nMoved path-related helper functions (UrlDecode, NormalizePath, NormalizeUrl) from\nresource_authz.cc to new utils/url library. Added unit tests under utils/url_test.cc\nand resource_authz_test.cc.\n\nPiperOrigin-RevId: 940025023\nChange-Id: I9267a00277f70a2e696db770a2ef8c1b8f56c0cd\n"
    },
    {
      "commit": "6ef59157f54ef6db1d3cfb457f61f4b0b520fa12",
      "tree": "184d4a133326c1bd6bff4cf28e96b8cf95026dbe",
      "parents": [
        "2e7ce373f49bf5b47bbb97e8f22dd126a0fceff0"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Mon Jun 29 11:54:13 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 29 11:54:33 2026 -0700"
      },
      "message": "Fix critical concurrency bugs in platform plugins and event manager\n\nBEGIN_PUBLIC\nFix multiple concurrency and thread-safety issues in platform plugins and event manager:\n\n- Priority Queue Linked-List Corruption:\n  Resolved an issue where concurrent timeout events enqueued the same static Job instance, corrupting the queue. Fixed by replacing the static Job with dynamic allocation.\n\n- Thread-Unsafe Plugin Registration (Crashes):\n  Resolved an issue where concurrent registration requests triggered concurrent Reset() calls, leading to crashes. Fixed by protecting CPER and eg plugin registration flows with locks.\nEND_PUBLIC\n\nSOme issues has been fixed in b/938842107, so removed from this CL\n\nPiperOrigin-RevId: 939953115\nChange-Id: I46599933c6c1c48188948007113b59f8d94be7cc\n"
    },
    {
      "commit": "2e7ce373f49bf5b47bbb97e8f22dd126a0fceff0",
      "tree": "01928bc6ecbc3c81175120e38181c88bf37a4f84",
      "parents": [
        "a844ef53deddc2cd151fa18acd24c9e1d6099f0e"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri Jun 26 18:07:59 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 26 18:09:46 2026 -0700"
      },
      "message": "Fix query parameter bypass in ResourceMatches by URL-decoding query params\n\nBEGIN_PUBLIC\nFix query parameter bypass in ResourceMatches by URL-decoding query params\n\nWeb clients can bypass subtree query expansion restrictions by URL-encoding\ncharacters (e.g., `%24expand\u003d` instead of `$expand\u003d`). The proxy was previously\nperforming a literal substring match on the raw URL which failed to catch this.\nThis change implements a simple custom URL-decoder to decode query parameters\nbefore checking for the presence of \"$expand\u003d\".\nEND_PUBLIC\n\nVerified by adding test cases in resource_authz_test.cc confirming that all\nURL-encoded variations are correctly blocked.\n\nPiperOrigin-RevId: 938859413\nChange-Id: I2b15abcbef041a9560143c94b34c876896ff9fdb\n"
    },
    {
      "commit": "a844ef53deddc2cd151fa18acd24c9e1d6099f0e",
      "tree": "d1f5157ac958518e852dc00dda81de10e6fe9c30",
      "parents": [
        "60723a2c3c978dc17d5c1de43b9c97feb3ef56b5"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri Jun 26 17:15:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jun 26 17:15:19 2026 -0700"
      },
      "message": "Fix concurrent races in events manager and oauth plugin\n\nUpdate events manager and oauth plugin to fix multiple concurrent execution race conditions.\n\nBEGIN_PUBLIC\nFix concurrent races in events manager and oauth plugin\nEND_PUBLIC\n\n- Guard events_cns_dir_ string in BaseEventsManager with mutex_ to prevent concurrent read/write data races.\n- Mutex-protect BaseEventsManager::Reset() using a new reset_mutex_ to avoid concurrent thread join use-after-free crashes.\n- Guard OAuth token caching and expiration timestamps in RedfishOAuthPlugin using double-checked locking, avoiding holding mutex during blocking MintToken RPCs.\n- Register absl/synchronization dependency in proxy BUILD file.\n\nVerify:\n- Compiles successfully.\n- All proxy unit tests pass successfully.\nPiperOrigin-RevId: 938842107\nChange-Id: Ic3dfd33451bcb5de92fafe46c35bca41435c03a4\n"
    },
    {
      "commit": "60723a2c3c978dc17d5c1de43b9c97feb3ef56b5",
      "tree": "36afe5dd7ab8190de0ac44c259c74a34aff61b38",
      "parents": [
        "1f283af740fc6989aa30947150252113aefad583"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jun 24 11:12:12 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 11:12:34 2026 -0700"
      },
      "message": "Fix unhandled nlohmann::json exceptions in proxy CPER, SSH, and SSE plugins\n\nBEGIN_PUBLIC\nFix unhandled JSON exceptions in proxy CPER, SSH, and SSE plugins\n\nThis change resolves unhandled nlohmann::json exceptions in the proxy daemon by:\n1. Adding object-type check validations before performing key search lookups (.find()) in CperEventsManager.\n2. Replacing stdout/stderr dump serialization (.dump()) in SshActionsPlugin with an error-replacing dump handler that silently handles invalid UTF-8 bytes.\n3. Adding object type check validation inside the reasons array parsing loop in SSE event.\nEND_PUBLIC\n\nThese validations prevent programmatic proxy crashes (Denial of Service) when parsing malformed or unexpected JSON structures from BMC endpoints. Verified with all proxy unit tests.\n\nPiperOrigin-RevId: 937448659\nChange-Id: I613db6efa63bb3c421d45c0af80378be57d09cd6\n"
    },
    {
      "commit": "1f283af740fc6989aa30947150252113aefad583",
      "tree": "97c1caa1c9d7affb0b4d96dc2ba5586af6c62a8b",
      "parents": [
        "eaa345ad5a25781088edf04fab5515122faa61c9"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jun 24 10:00:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 24 10:00:50 2026 -0700"
      },
      "message": "Fix multiple uncaught json exceptions leading to proxy crashes\n\nCheck that nlohmann::json inputs are objects and arrays before executing\nmember functions (.find(), operator[], range loops) that require them.\nPreviously, primitive inputs from upstream sources would trigger uncaught\nnlohmann::json::type_error exceptions and crash the daemon (DoS).\n\nSpecifically updated:\n- cper/manager.cc (GetStringField, GetPartLocationContext, UpdateMappingFromLinks, IterateCollection, InitRemapping)\n- sse_plugin/event.cc (FindReasonIdFromOemPath)\n- redfish_session_auth.cc (UpdateOAuthToken timeout parsing)\n\nVerified by compiling and running all proxy tests under MSan successfully.\n\nBEGIN_PUBLIC\nFix multiple uncaught json exceptions leading to proxy crashes.\nEND_PUBLIC\n\nPiperOrigin-RevId: 937402670\nChange-Id: I9d724ec14ec110d27a1a79e198c1e812e18ed80f\n"
    },
    {
      "commit": "eaa345ad5a25781088edf04fab5515122faa61c9",
      "tree": "f01df58e8ad4952f6d4f8ad52d7e1d1d379dd8a6",
      "parents": [
        "45bc04afffc94c3754fa2c7d6cc6736f6fbfff55"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jun 23 17:08:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 17:10:49 2026 -0700"
      },
      "message": "Fix permanent Redfish proxy auth DoS by updating cache state on login failure\n\nIn CredentialsFileManager::RunLogin, update last_try_result_ when the login function fails. This ensures that the manager does not incorrectly treat invalid credentials in memory as valid.\n\nAdditionally, change the cache file reload check from \"else if\" to \"if\" to ensure that the cache file on disk is checked for rotated credentials when the active credentials stop working.\n\nTested:\n- Run remote_credentials_test (with the new RotatedCacheFileIsInspected test).\n\nBEGIN_PUBLIC\nFix permanent Redfish proxy authentication Denial of Service.\nEND_PUBLIC\n\nPiperOrigin-RevId: 936978053\nChange-Id: Ifc07c160fa0323e60394594e8658698c95a79201\n"
    },
    {
      "commit": "45bc04afffc94c3754fa2c7d6cc6736f6fbfff55",
      "tree": "8755da8ffa24ba52abd1193fea0f9b777ef377dd",
      "parents": [
        "6cafd355e54cb5baf1c5c9e223072c09894e6bf6"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jun 23 17:04:58 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 23 17:05:21 2026 -0700"
      },
      "message": "Fix deadlock in RemoteCollectorStorageManager by releasing lock during callback execution\n\nBEGIN_PUBLIC\nFix deadlock in RemoteCollectorStorageManager by releasing lock during callback execution.\nEND_PUBLIC\n\nInvoking EventStorageManager::EventHandler::OnEvent callback while holding the internal mutex causes deadlocks if the callback re-enters the storage manager (e.g. calling ResetEventHandler on error paths).\n\nTo fix this, refactored RemoteCollectorStorageManager to obtain a pointer to the handler, release the lock, and invoke OnEvent safely outside the locked scope. Added active callback thread tracking in EventStorageManager to block ResetEventHandler and Reset calls until all concurrent callbacks have finished executing. Bypassed the block if the re-entrant call is made on the same thread to prevent self-deadlock.\n\nVerified by running new and existing unit tests:\n- RemoteCollectorStorageManagerTest.ReentrantResetEventHandlerDoesNotDeadlock\n- //third_party/milotic/internal/cc/proxy/sse_plugin:collector_storage_manager_test\n- //third_party/milotic/internal/cc/proxy/sse_plugin:storage_manager_test\n- //third_party/milotic/internal/cc/proxy/cper:manager_test\n\nPiperOrigin-RevId: 936976417\nChange-Id: I69e1c54e7190ae102181c7121f1cf6227df9e27b\n"
    },
    {
      "commit": "6cafd355e54cb5baf1c5c9e223072c09894e6bf6",
      "tree": "cdef5fd16777903cd9a267e37158bb51a7b28cec",
      "parents": [
        "216788e529204bb5d2841c233b0f5e1e41747880"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jun 17 11:28:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 17 11:28:43 2026 -0700"
      },
      "message": "Fix crash in SshActionsPlugin::GetCommand on invalid JSON request body\n\nIf the request body JSON is invalid or discarded, return InvalidArgumentError\ninstead of calling find() on it which causes assertion failures and server crash.\n\nBEGIN_PUBLIC\nFix crash in SshActionsPlugin::GetCommand on invalid JSON request body\n\nIf the request body JSON is invalid or discarded, return InvalidArgumentError\ninstead of calling find() on it which causes assertion failures and server crash.\nEND_PUBLIC\n\nPiperOrigin-RevId: 933833749\nChange-Id: Ia44daef2602b97d21cf907cd6d610b9be4226885\n"
    },
    {
      "commit": "216788e529204bb5d2841c233b0f5e1e41747880",
      "tree": "78795cb5576a72f686beacc56dea9de359600c46",
      "parents": [
        "6ffd3d118bbdbc04753ac215a512bba7d8905034"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jun 16 14:09:21 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 16 14:09:45 2026 -0700"
      },
      "message": "Fix undefined behavior in std::isalnum inside ShellEscape\n\nPass static_cast\u003cunsigned char\u003e(c) to std::isalnum to prevent undefined behavior when\nnon-ASCII/UTF-8 input values trigger sign-extension to negative integers.\n\nAdded unit test to verify escaping of non-ASCII characters.\n\nBEGIN_PUBLIC\nFix undefined behavior in std::isalnum inside ShellEscape\n\nPass static_cast\u003cunsigned char\u003e(c) to std::isalnum to prevent undefined behavior when\nnon-ASCII/UTF-8 input values trigger sign-extension to negative integers.\nEND_PUBLIC\n\nPiperOrigin-RevId: 933290984\nChange-Id: I223c9b86faae40bda35f111f24eb50686688e6ac\n"
    },
    {
      "commit": "6ffd3d118bbdbc04753ac215a512bba7d8905034",
      "tree": "6e6739151a6106496ba72b02c9774ffd9ac50951",
      "parents": [
        "24921f423abc5a433a1b5226c336124dc81284a8"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jun 16 13:30:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 16 13:30:34 2026 -0700"
      },
      "message": "Fix Denial of Service via std::string Nullptr Instantiation in FakeAuthContext\n\nCheck value.data() before std::string instantiation to avoid crash/terminate from nullptr.\n\nAdded unit test to verify EmptyPropertyDoesNotCrash.\n\nBEGIN_PUBLIC\nFix Denial of Service via std::string Nullptr Instantiation in FakeAuthContext\n\nCheck value.data() before std::string instantiation to avoid crash/terminate from nullptr.\nEND_PUBLIC\n\nPiperOrigin-RevId: 933269357\nChange-Id: I86e4283371a4164941a0fa3eac027b8835815b37\n"
    },
    {
      "commit": "24921f423abc5a433a1b5226c336124dc81284a8",
      "tree": "63ce78c38d9838af1b638a54fc7aa0ee83bfada5",
      "parents": [
        "6a89f0b274a1a8d27f1fd410b1069ddf525a5365"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Tue May 19 01:38:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 19 01:38:32 2026 -0700"
      },
      "message": "Fix 12 IncludeCleaner findings:\n* Included header \"util/task/status_macros.h\" is not used directly (6 times)\n* Used header \"third_party/absl/status/status_macros.h\" is not included directly (6 times)\n\n ⚠️ Did submitting this CL break you?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just grant approval!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #MissingInclude #UnusedInclude\n\nBEGIN_PUBLIC\nAutomated Code Change\nEND_PUBLIC\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 917686377\nChange-Id: I92f1eface80e56eca7e4ab9c37dd692874618f1d\n"
    },
    {
      "commit": "6a89f0b274a1a8d27f1fd410b1069ddf525a5365",
      "tree": "9882e71bc67d2e13d3ed21ee198cbac13874c007",
      "parents": [
        "f88890252b6ba3cdb8bcc1ffce7c23f188dd79f0"
      ],
      "author": {
        "name": "Derek Mauro",
        "email": "dmauro@google.com",
        "time": "Thu May 07 09:58:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 07 09:59:03 2026 -0700"
      },
      "message": "BEGIN_PUBLIC\nAdd MonotonicClock to Gloop\nEND_PUBLIC\n\nTested:\n  Presubmit\n  TGP: http://test/OCL:911333601:BASE:911970201:1778166807185:b9c931ad\nPiperOrigin-RevId: 912017807\nChange-Id: I65fa6ce2bd46be6a20df2144cd3047d1e5a04e4b\n"
    },
    {
      "commit": "f88890252b6ba3cdb8bcc1ffce7c23f188dd79f0",
      "tree": "1611f617656d0927577f1889204ecb034887c31b",
      "parents": [
        "646e2cbb64efa77487cca51dcfdadbef17a7fb11"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Mar 31 10:27:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 31 10:27:58 2026 -0700"
      },
      "message": "Add QueryParameterValidatorPlugin to validate Redfish query parameters.\n\nThis plugin allows configuring which Redfish query parameters are permitted and provides specific validation rules for parameters like $expand (e.g., allowed options, max levels) and $select (e.g., regex pattern). Requests with disallowed or invalid query parameters will be rejected with a 400 Bad Request response.\n\nPiperOrigin-RevId: 892418944\nChange-Id: Ic1f71e98ab4c85687516fa7ace02df1de328c5fd\n"
    },
    {
      "commit": "646e2cbb64efa77487cca51dcfdadbef17a7fb11",
      "tree": "ee3890d13a85fa087cb9cd340f61f8e7b704d949",
      "parents": [
        "7ac2a1253bedbd1f5d1896b9563f52eb795a8490"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Mar 31 10:19:30 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 31 10:19:49 2026 -0700"
      },
      "message": "Prevent starting the stream thread if the plugin is in a stopping state.\n\nPiperOrigin-RevId: 892413885\nChange-Id: I2008551dc4657e20e18a3b280b1c9f9fe6863b49\n"
    },
    {
      "commit": "7ac2a1253bedbd1f5d1896b9563f52eb795a8490",
      "tree": "f479af0fb81e5586d4fa4a535f85a811ff27c460",
      "parents": [
        "01a4dec3c7b87a22b80fd684c559f059c0081a29"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Mar 26 09:29:28 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 26 09:30:40 2026 -0700"
      },
      "message": "Add mutex protection to BaseMachineState members.\n\nThis change introduces a mutex to guard the state variables within BaseMachineState and its derived classes, such as health, timestamps, and event IDs. This ensures thread safety when multiple threads access or modify these state variables. Additionally, calls to Shutdown() are added to destructors where necessary to ensure proper cleanup.\n\nPiperOrigin-RevId: 889887042\nChange-Id: I7c2278ed073444af0e563e0ae3ee661803b376ed\n"
    },
    {
      "commit": "01a4dec3c7b87a22b80fd684c559f059c0081a29",
      "tree": "013a9d0faee5ae0414c05461a5aa48287dd2366a",
      "parents": [
        "cc7a12e15c3446ededf17ac3f2bcb523c95e2b1f"
      ],
      "author": {
        "name": "Derek Mauro",
        "email": "dmauro@google.com",
        "time": "Mon Mar 23 12:29:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 23 12:29:53 2026 -0700"
      },
      "message": "Move the legacy type aliases for the util::Clock and\nutil::SimulatedClock to the absl headers. This should allow more LSC\nCLs to go through, especially for other core code, since removing\nutil/time/clock.h will no longer break code relying on transitive\nincludes to get the type aliases.\n\nBEGIN_PUBLIC\nMinor changes to #includes\nEND_PUBLIC\n\nPiperOrigin-RevId: 888224533\nChange-Id: I59ad7b404eff872a575019a77ed24766dc18e23f\n"
    },
    {
      "commit": "cc7a12e15c3446ededf17ac3f2bcb523c95e2b1f",
      "tree": "f724173431e3581e71fb7db0e109c67acb861277",
      "parents": [
        "45a3e722a11a6966122a7167d82708aedea2e4db"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Mar 19 12:06:54 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 19 12:07:16 2026 -0700"
      },
      "message": "Fix Use-After-Free bugs in metrics by using std::string\n\nThis change updates ephemeral metric fields from `absl::string_view`\nto `std::string`.\n\nThe metric framework aggregates labels asynchronously. Using a non-owning\n`string_view` for dynamically constructed strings (like hostnames or parsed\nURIs) leaves dangling pointers when the original string is destroyed.\nReplacing them with `std::string` ensures the framework safely owns a copy\nof the data.\n\nPiperOrigin-RevId: 886304558\nChange-Id: Iaf7a29e09481b8295306cf307637ba1c14022991\n"
    },
    {
      "commit": "45a3e722a11a6966122a7167d82708aedea2e4db",
      "tree": "4a2c587145c208a5968378d33c5fc231083f4cf8",
      "parents": [
        "e46e68f316450a35c27d63ea043c2819d4f7cacb"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Mar 04 20:32:34 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 04 20:32:52 2026 -0800"
      },
      "message": "Fix 1 IncludeCleaner finding:\n* Used header \"third_party/voyager/protos/voyager_telemetry.proto.h\" is not included directly\n\n ⚠️ Did submitting this CL break you?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #MissingInclude\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 878804235\nChange-Id: I526885b0841b8e76a220cfe0d04a9e07fbdd9079\n"
    },
    {
      "commit": "e46e68f316450a35c27d63ea043c2819d4f7cacb",
      "tree": "6a63b1f22616414582d77ae695825fa296e6a81e",
      "parents": [
        "4bfc63c518f8ae45ce723e6c5b525b9056d554a0"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Tue Mar 03 13:30:40 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 03 13:30:58 2026 -0800"
      },
      "message": "[vBMC] Fix SIGSEGV in ssh_actions_plugin_fuzz_test.\n\nThe fuzzer was previously failing with a SIGSEGV because the plugin\nwas not properly initialized, leaving the ssh_client_ pointer as null.\n\nThis CL refactors the fuzzer to use a minimal Proxy environment,\nwhich correctly calls Initialize() and hooks up the MockSshClient.\n\nTested: Verified fix with standalone reproduction test. Fuzzer now passes with ASan.\n\nThis CL was generated by an MCP server owned by the Gemini CLI for Google team.\nSee go/gemini-cli-install for more information.\n\n#coding-mcp\n\nPiperOrigin-RevId: 878101719\nChange-Id: Ib1257a7987f52bac3b33ccf2083135bbabc99f51\n"
    },
    {
      "commit": "4bfc63c518f8ae45ce723e6c5b525b9056d554a0",
      "tree": "b1d8b5ebb8e69d8f7ddf88f3c2d966fdb8c556d2",
      "parents": [
        "a48f031129853d0a99bfd2bdc5f31646a6e8a2ee"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Mar 03 13:14:35 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 03 13:15:01 2026 -0800"
      },
      "message": "Improve JSON parsing safety in CreateEvent.\n\nAdd a check to ensure the input JSON is an object. Use find() and is_string() to safely access JSON members, preventing issues with missing keys or incorrect types.\n\nPiperOrigin-RevId: 878093630\nChange-Id: Ia345cd77822fd63b4562c39e43d66d8570066041\n"
    },
    {
      "commit": "a48f031129853d0a99bfd2bdc5f31646a6e8a2ee",
      "tree": "e08bc5d8d62333f0e6557641e140373d81073d08",
      "parents": [
        "236480dc58f8945be309955175dae75d9bafb860"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Fri Feb 27 00:14:16 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 27 00:15:43 2026 -0800"
      },
      "message": "[vBMC] Consolidate and expand fuzzing coverage.\n\nThis CL consolidates all FUZZ_TEST functions into dedicated _fuzz_test.cc\nfiles and introduces a new proxy_fuzz_test for URL sanitization.\n\n1. sse_parser_fuzz_test: Fuzzes raw byte streams from untrusted BMCs.\n2. cper_event_fuzz_test: Fuzzes binary hardware error parsing.\n3. resource_authz_fuzz_test: Fuzzes URL path authorization (includes moved tests).\n4. ssh_actions_plugin_fuzz_test: Fuzzes gRPC-driven SSH command generation.\n5. voyager_fqp_fuzz_test: Fuzzes Voyager Field Query Path parsing.\n6. proxy_fuzz_test: Fuzzes URL query parameter sanitization logic.\n\nAlso updated copy.bara.sky to include the new fuzz test files for export.\n\nTested: All 6 fuzzers verified to build and run successfully.\n\nThis CL was generated by an MCP server owned by the Gemini CLI for Google team.\nSee go/gemini-cli-install for more information.\n\n#coding-mcp\n\nPiperOrigin-RevId: 876098337\nChange-Id: I32ed1011fd207d601d5e892d13a5cb87c277b142\n"
    },
    {
      "commit": "236480dc58f8945be309955175dae75d9bafb860",
      "tree": "fc7de589f3167ac8a095c637758ce90d23e5c160",
      "parents": [
        "8ab2d3f58f3935872c8c7289582bf4ad35a66f35"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Feb 24 11:30:27 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 24 11:30:54 2026 -0800"
      },
      "message": "Add shell escaping for arguments in SSH actions.\n\nThis change introduces a ShellEscape function to properly escape arguments provided to SSH actions. This prevents potential shell injection vulnerabilities by ensuring that user-supplied strings are safely quoted when substituted into the command template.\n\nPiperOrigin-RevId: 874713148\nChange-Id: Ifc294df2b86c0764ae9b557717ea41d2fa6d971f\n"
    },
    {
      "commit": "8ab2d3f58f3935872c8c7289582bf4ad35a66f35",
      "tree": "67ad65ebf0e3b6600b7c44e1f3bac83258368b8d",
      "parents": [
        "09431c4156646d9e28030db23733bd75d90254e7"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Feb 24 11:06:53 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 24 11:07:22 2026 -0800"
      },
      "message": "Use nlohmann::json to construct the session login request body.\n\nThis change replaces the use of absl::StrFormat with nlohmann::json for building the JSON payload sent to the Redfish SessionService. This ensures that username and password values are properly escaped, preventing potential JSON injection vulnerabilities. A new test case is added to verify that malicious input in the username field is safely handled.\n\nPiperOrigin-RevId: 874701092\nChange-Id: I77626f1d4884ea7aed261bb81979eb72c73da06b\n"
    },
    {
      "commit": "09431c4156646d9e28030db23733bd75d90254e7",
      "tree": "db14f40d608043b2937d55bd84880657438ec0e0",
      "parents": [
        "fa85eb95e96633db562a5f5f06a7e6c8cb5e84d9"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Feb 18 02:04:20 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 18 02:04:48 2026 -0800"
      },
      "message": "Fix 1 ClangInliner finding:\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::Base64Escape.\n\nSee go/inliner-lsc for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/inliner-bug for category ClangInliner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #third_party-absl-strings-escaping.h\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 871747583\nChange-Id: I32e8a679af6c96c7f8c20f60e01cd35d7106b42d\n"
    },
    {
      "commit": "fa85eb95e96633db562a5f5f06a7e6c8cb5e84d9",
      "tree": "a4ea09f3c9f8f32fac3ffaec9ce0b90a73298dc4",
      "parents": [
        "ede36fc427d79fb5374688a9a8a2a6a6d7a01ff2"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Feb 17 19:30:54 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 17 19:31:29 2026 -0800"
      },
      "message": "Improve error message for collector ID mismatch.\n\nWhen a PUT request is received with a connection ID different from the one already registered, include the conflicting connection ID in the unauthorized response body.\n\nPiperOrigin-RevId: 871610567\nChange-Id: Ia17bd4d8e38c64b1053acf4755035b18130ace9b\n"
    },
    {
      "commit": "ede36fc427d79fb5374688a9a8a2a6a6d7a01ff2",
      "tree": "855fcfda8642b6326f46332059d162eb751a2780",
      "parents": [
        "e2c9f831956b20487b8b22037441f559dae62269"
      ],
      "author": {
        "name": "Mike Kruskal",
        "email": "mkruskal@google.com",
        "time": "Mon Feb 09 16:32:06 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 09 16:32:40 2026 -0800"
      },
      "message": "Run IncludeCleaner and build_cleaner over //util directories\n\nThis directory is opted out of the google-wide IncludeCleaner cl-robot category due to issues with test coverage.  These cls all have TGP applied to account for that, but otherwise simply run the same tooling.\n\nTested:\n    TAP for global presubmit queue\n    http://test/OCL:866263157:BASE:866961773:1770497539262:8f46e048\nPiperOrigin-RevId: 867826695\nChange-Id: I1486281e11ad67d4705811d33bced82bbec90a5d\n"
    },
    {
      "commit": "e2c9f831956b20487b8b22037441f559dae62269",
      "tree": "a7a40368e5d0f24955f5baff8418e962fa40cead",
      "parents": [
        "04448639391a046bc5cbd32529e2dfc008de3f2d"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri Feb 06 13:20:28 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 06 13:20:51 2026 -0800"
      },
      "message": "Prioritize local authorization rules over permission ID rules.\n\nThe authorization policy evaluation now processes rules with `local` permissions before those with `permission_id` within each mapping. This ensures that more specific local checks are performed before falling back to permission ID-based checks.\n\nPiperOrigin-RevId: 866589190\nChange-Id: Ia91f28b9592440016469e7109bab4c9bb14c3c1b\n"
    },
    {
      "commit": "04448639391a046bc5cbd32529e2dfc008de3f2d",
      "tree": "3b4e7f95af6a16a689dd8d0e0a1f6f1fcf8a206d",
      "parents": [
        "d425e98d1fb9b8650a97317ce49742ef21919131"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri Feb 06 12:29:04 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 06 12:31:07 2026 -0800"
      },
      "message": "Replace DCHECK with CHECK in test_plugin.cc.\n\nThe methods in test_plugin.cc are not expected to be called. Changing DCHECK to CHECK ensures that the program will terminate in all build modes if these methods are unexpectedly invoked, rather than just in debug builds.\n\nThis is blocking new package release\n\nPiperOrigin-RevId: 866567898\nChange-Id: I5d213838e9f04f95dae17a0d3797886e37835bcd\n"
    },
    {
      "commit": "d425e98d1fb9b8650a97317ce49742ef21919131",
      "tree": "1367778db43c2da4c1428922c420af8494240ff3",
      "parents": [
        "cd192ab191249da5a588311cd024cfea37b067ea"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri Feb 06 11:44:52 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 06 11:45:25 2026 -0800"
      },
      "message": "Migrate Milotic proxy and vbmc to absl::Clock.\n\nFollowing the removal of clock.cc in cl/862160171, this change replaces util::Clock with the absl::Clock interface across Milotic and vbmc platforms.\n\nKey changes:\n\nRefactored Clock Injection: Switched from util::Clock* pointers to absl::Clock\u0026 references in constructors and member variables\nUpdated Dependencies: Replaced //util/time:clock with //third_party/absl/time:clock_interface and :simulated_clock in BUILD files.\nEnvironment Compatibility: Added temporary local copies of clock_interface files to support the gBMC environment until its absl version is updated.\n\nPiperOrigin-RevId: 866550337\nChange-Id: Idc4167bbf50e2dd70f91c108b8d99d412feb339c\n"
    },
    {
      "commit": "cd192ab191249da5a588311cd024cfea37b067ea",
      "tree": "97fa183a35f0f067e2f73d216fa30d3251b2fdf5",
      "parents": [
        "a565562735b8270f5f3ec86f15ee9f73d87cf8bc"
      ],
      "author": {
        "name": "Derek Mauro",
        "email": "dmauro@google.com",
        "time": "Thu Jan 29 12:35:29 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 29 12:36:00 2026 -0800"
      },
      "message": "Use the inliner on util::Clock and util::SimulatedClock\n\nPiperOrigin-RevId: 862852287\nChange-Id: Ice8850c3f654d0be42d1ad2fb6f23b87c28be518\n"
    },
    {
      "commit": "a565562735b8270f5f3ec86f15ee9f73d87cf8bc",
      "tree": "76162fec324f698b4c3e4c6f6cb27819762fa889",
      "parents": [
        "da8f57c09056e0d33e5074f636a73ea7ea84742b"
      ],
      "author": {
        "name": "Derek Mauro",
        "email": "dmauro@google.com",
        "time": "Wed Jan 28 03:55:22 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 28 03:55:58 2026 -0800"
      },
      "message": "Move util::Clock and util::SimulatedClock to //third_party/absl as\nabsl::Clock and absl::SimulatedClock.\n\nThe new file //third_party/absl/time/clock_interface.h was used\ninstead of clock.h because //third_party/absl/synchronization.h\nalready depends on clock.h, and since absl::Clock depends on\nabsl::Mutex, this would introduce a circular dependency.\n\nutil/time/clock.h is updated to provide using declarations maintaining\nbackward compatibility for existing C++ users.\n\nThe non-null pointer-returning RealClock() is deprecated in favor\nof a reference returning GetRealClock().\n\nThe Python bindings have also been refactored:\n  * New CLIF wrappers are added in third_party/absl/time/python for the new\n    Abseil classes.\n  * util/time/python:clock is converted into a pure Python forwarding module\n    that re-exports the absl classes, preserving compatibility for Python\n    consumers.\n  * Existing CLIF consumers of //util/time/python:clock (via clif_deps) have\n    been migrated to depend directly on\n    //third_party/absl/time/python:clock_interface and\n    //third_party/absl/time/python:simulated_clock, as the forwarding layer\n    does not support CLIF-level dependency. As far as I can tell there is\n    no way to do this without doing it in a single CL.\n\nThis change does not export the code to GitHub. A follow-up will do that\nafter OSS testing.\n\nBEGIN_PUBLIC\nInternal change\nEND_PUBLIC\n\nTested:\n  TGP: http://test/OCL:856753097:BASE:861154164:1769435594442:dffd0c65\n\ngqm-relnote: n/a\nPiperOrigin-RevId: 862160171\nChange-Id: Id578a8ad47c1a59b83701c2083a8b01ed3ed8282\n"
    },
    {
      "commit": "da8f57c09056e0d33e5074f636a73ea7ea84742b",
      "tree": "e9ca1722f5664f1ab8303659420c7b3a44f104fb",
      "parents": [
        "4d10f262abfbc49d12943bddc75ec2c604c9bfa0"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jan 27 17:08:56 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 27 17:09:21 2026 -0800"
      },
      "message": "Add more test cases for CPER event parsing.\n\nThis change adds test cases to cover various error scenarios in `CperEvent::ParseRedfishEvent` and `CperEvent::ParseReplayEvents`, including missing or malformed fields like OriginOfCondition and CPER OEM data.\n\nPiperOrigin-RevId: 861947757\nChange-Id: Ia7f29ef8179f0f2d9eab8402d3330c150c1e5f4f\n"
    },
    {
      "commit": "4d10f262abfbc49d12943bddc75ec2c604c9bfa0",
      "tree": "bc0f46396fb645b78794b3f7cbabb5c68f5c08e9",
      "parents": [
        "d439b2e4c7e2759b8cb701b676c9b7f272a66a70"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jan 21 12:53:37 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 21 12:53:56 2026 -0800"
      },
      "message": "Add more unit tests to event_test.cc for better coverage.\n\nThis change adds tests for:\n-   EventSeverityToString and StringToEventSeverity conversions.\n-   Event::ToProto for both Redfish and CPER events.\n-   Event::is_cper_event and Event::cper_event_data accessors.\n-   Error handling in Event::ParseReplayEvents for invalid JSON.\n-   Error handling in FindEventMessageId for missing, non-string, or malformed MessageId.\n-   Error handling in FindReasonId when OEM Faults is not an array.\n-   Coverage for all EventSeverity enum values when looking up in the registry.\n-   Error handling in FindReasonIdMessageArgs for key mismatches and non-array MessageArgs.\n\nPiperOrigin-RevId: 859224617\nChange-Id: Ib9faa43b47687bb3400c9f31f60a9cde70725857\n"
    },
    {
      "commit": "d439b2e4c7e2759b8cb701b676c9b7f272a66a70",
      "tree": "c6c4b540ef126432df7b9233831773dbec567d2f",
      "parents": [
        "5e281c6070bbb59bc68c25f2f0e1873316a59dd5"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Jan 21 01:03:06 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 21 01:05:50 2026 -0800"
      },
      "message": "Fix 1 IncludeCleaner finding:\n* Used header \"third_party/milotic/internal/cc/proxy/proxy_config.proto.h\" is not included directly\n\n ⚠️ Did submitting this CL break you?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #MissingInclude\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 858965904\nChange-Id: I33dc7d7a42148c664c4afee219cfc3ba3e893c0e\n"
    },
    {
      "commit": "5e281c6070bbb59bc68c25f2f0e1873316a59dd5",
      "tree": "cd2b16c28e0ff64e514df0006b8edc31774e967f",
      "parents": [
        "3284fddae896eddb13ee81c254ffe84bd5b1c3da"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jan 20 16:35:49 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 20 16:36:15 2026 -0800"
      },
      "message": "Add more comprehensive tests for RemoteCollectorStorageManager.\n\nThis change adds tests to verify the blocking behavior of RetrieveProcessedEvents using a separate thread. It also includes failure tests for methods like SaveEvent, SaveCperEvent, SaveLogs, ArchiveProcessedEvents, and SendHeartbeat when no event handler has been set. Additionally, tests for successfully saving CPER events and sending heartbeats are added.\n\nPiperOrigin-RevId: 858806341\nChange-Id: I352a3054416c9a559d41d0df2f2648b738b59877\n"
    },
    {
      "commit": "3284fddae896eddb13ee81c254ffe84bd5b1c3da",
      "tree": "8d476ba3b7dbe18f34032d7de1600aef5c3285dd",
      "parents": [
        "65853b0996372c37ed75b7bf530fa10e7926bc04"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Jan 13 17:01:23 2026 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 13 17:01:52 2026 -0800"
      },
      "message": "Add more unit tests for various proxy components.\n\nThe changes include new tests for:\n-   FakeAuthContext methods like IsPeerAuthenticated and GetPeerIdentityPropertyName.\n-   FakeRedfishPlugin\u0027s handling of requests and subscriptions.\n-   RedfishSessionAuth when the Location header is missing.\n-   RemoteCredentialsFileManager\u0027s HasSources and handling of write failures.\n-   Unimplemented credential fetcher/reader/writer functions.\n-   MockRedfishPlugin and MockEventHandler to verify all methods are mockable.\n-   MockSshClient, MockExecutionCallbacks, and MockExecutionContext to verify mock functionality.\n-   TestPlugin and TestDummyPlugin behaviors.\n\nPiperOrigin-RevId: 855942020\nChange-Id: Ia0df4bfc86e593b39654b19d3bdb2c20d718ae93\n"
    },
    {
      "commit": "65853b0996372c37ed75b7bf530fa10e7926bc04",
      "tree": "31283f92d0a3527b47ccb171faad88ed5a29d394",
      "parents": [
        "75fd18b47025b0ca16e6eda45b4a92e21a1019e3"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Dec 10 14:29:24 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Dec 10 14:29:51 2025 -0800"
      },
      "message": "Add thread start retry logic and improve logging in Timer.\n\nThis change introduces a retry mechanism when starting the internal thread in the Timer class to handle potential resource exhaustion. It also enhances logging by including the current timer state in error and informational messages, and adds a helper function to convert TimerState enums to strings.\n\nPiperOrigin-RevId: 842881893\nChange-Id: I36bbda5b063548a75ffb06c8bd902b5981562711\n"
    },
    {
      "commit": "75fd18b47025b0ca16e6eda45b4a92e21a1019e3",
      "tree": "0f5fc4a0d97b20dd6d323e44c0a9d62b5bc38af5",
      "parents": [
        "ea6ae5b653a1bdd7cdb25e0b374026216b08cdf4"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Sep 25 12:07:45 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 25 12:08:18 2025 -0700"
      },
      "message": "Wait for gRPC server to fully shut down in Proxy destructor.\n\nAdding `server_-\u003eWait()` after `server_-\u003eShutdown()` ensures that the gRPC server has completed its shutdown process and released all resources before the `Proxy` object is destroyed.\n\nRef: https://coroner.corp.google.com/#/crash/80b60a03-0000-2a67-96ae-14223bc4243e\nPiperOrigin-RevId: 811447385\nChange-Id: Ibb889f8f8db2e8bb1ae5e219c8a9e8101d00e742\n"
    },
    {
      "commit": "ea6ae5b653a1bdd7cdb25e0b374026216b08cdf4",
      "tree": "3ebf53fb86d9ff0061902b71038f95e0879caf8b",
      "parents": [
        "281fecaf4f5a26a077ee210aa4f12615a44ae54b"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Sep 10 14:35:53 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 10 14:36:29 2025 -0700"
      },
      "message": "#vbmc: Support Emergent health state\n\nPiperOrigin-RevId: 805518808\nChange-Id: I0973b2de2997698a5e062eeafaa28d1bd951ba89\n"
    },
    {
      "commit": "281fecaf4f5a26a077ee210aa4f12615a44ae54b",
      "tree": "143f17fc13548223a17072d158c5fa579ba6fbe8",
      "parents": [
        "ba3abb1d17cc65e53b05402175015d714f5aa8d5"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Thu Sep 04 11:31:04 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 04 11:31:34 2025 -0700"
      },
      "message": "#vbmc - Add metrics for SSH actions\n\nAlso fixes a timing dependency in the unit tests that became more likely to cause flakiness after this change.\n\nPiperOrigin-RevId: 803107800\nChange-Id: I55564cb580cce85dbab7bf85fb94c8061327cb01\n"
    },
    {
      "commit": "ba3abb1d17cc65e53b05402175015d714f5aa8d5",
      "tree": "e427483565167f4c3d40667d813fed521c080298",
      "parents": [
        "d37f991b4dd68f8656946e325f4f0a7d75cc4f40"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Wed Sep 03 10:54:10 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 03 10:54:47 2025 -0700"
      },
      "message": "#vbmc - Add metrics for SSH connect latency\n\nPiperOrigin-RevId: 802621301\nChange-Id: I9600c09c7f0a2f9f575344a39074bb53b5eb4359\n"
    },
    {
      "commit": "d37f991b4dd68f8656946e325f4f0a7d75cc4f40",
      "tree": "6e6cbf5d42b88d83266216d08283b4b3263728b3",
      "parents": [
        "d968414c28e811c6b4fd625f682b6654ed1686fc"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Sep 03 10:21:12 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 03 10:21:51 2025 -0700"
      },
      "message": "#vbmc: Replace the deprecated variant of the MutexLock constructor\n\nPiperOrigin-RevId: 802607380\nChange-Id: I950cb972880da31cf244ccb1b782aa99e0075a92\n"
    },
    {
      "commit": "d968414c28e811c6b4fd625f682b6654ed1686fc",
      "tree": "628f73c1041ede255fafd8f9a1a0bca6425411e1",
      "parents": [
        "e9255f1dea18a9f7fd8f7e3e2eba15d08482683b"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Sep 03 04:29:28 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 03 04:30:09 2025 -0700"
      },
      "message": "Fix 11 ClangInliner findings:\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::MutexLock::MutexLock. (11 times)\n\nSee go/inliner-lsc for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/inliner-bug for category ClangInliner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #third_party-absl-synchronization-mutex.h\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 802497545\nChange-Id: Id5ec4f699a0152330c0322ddd28ae585e5fa516f\n"
    },
    {
      "commit": "e9255f1dea18a9f7fd8f7e3e2eba15d08482683b",
      "tree": "a930a90b4e326608b898f1833fdf838b1af3e358",
      "parents": [
        "f2b5b34af386727c0913e6cb62e93acc39b10902"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Wed Aug 13 02:05:31 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Aug 13 02:06:02 2025 -0700"
      },
      "message": "Fix 53 ClangInliner findings:\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::MutexLock::MutexLock. (24 times)\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::Mutex::Unlock. (12 times)\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::Mutex::Lock. (10 times)\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::ReaderMutexLock::ReaderMutexLock. (4 times)\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::WriterMutexLock::WriterMutexLock.\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::Mutex::ReaderLock.\n* The use of this symbol has been deprecated and marked for inlining. The function being deprecated is absl::Mutex::ReaderUnlock.\n\nSee go/inliner-lsc for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/inliner-bug for category ClangInliner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #third_party-absl-synchronization-mutex.h\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 794471533\nChange-Id: Ieba49b2557e2e915d6566f659ed2b30d358d0db6\n"
    },
    {
      "commit": "f2b5b34af386727c0913e6cb62e93acc39b10902",
      "tree": "bdc662518e3a7854ec0ad604ad48126d0889f192",
      "parents": [
        "a5e8724fa6c07c32b690f54dc8cb93f34f979eed"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Mon Jul 14 23:08:57 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jul 14 23:09:41 2025 -0700"
      },
      "message": "Fix 1 IncludeCleaner finding:\n* Used header \"third_party/milotic/internal/cc/proxy/proxy_config.proto.h\" is not included directly\n\n ⚠️ Problems with this CL?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#clrobot #MissingInclude\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 783192597\nChange-Id: I8691fa15d493d8f9cdccfd7300ec0a8d01c6665b\n"
    },
    {
      "commit": "a5e8724fa6c07c32b690f54dc8cb93f34f979eed",
      "tree": "b9a97e18a66c1ee7e2a469773301d90f13671fcc",
      "parents": [
        "ff7e98755a749323816c5806bd0b2e1562046dcf"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Jul 10 15:14:28 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 10 15:15:03 2025 -0700"
      },
      "message": "#vbmc: Use class for Host, ProxyRequest and ProxyResponse\n\nThis helps in using different hosts for both SSH and gRPC requests\n\nPiperOrigin-RevId: 781701194\nChange-Id: If224040e17194e3362f9c9482952f232d0527f86\n"
    },
    {
      "commit": "ff7e98755a749323816c5806bd0b2e1562046dcf",
      "tree": "40f9c9882c48d6b3b56d6aa872fe2568307eb283",
      "parents": [
        "da1529794f346bd85c1a38950b9f8b37b8fbf4f3"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Jul 10 13:14:43 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jul 10 13:15:17 2025 -0700"
      },
      "message": "#vbmc: Add config to read target hostname from Offline NEA\n\nPiperOrigin-RevId: 781654009\nChange-Id: Ia5c23f8ce192f013818a518a6b0ac703b7879912\n"
    },
    {
      "commit": "da1529794f346bd85c1a38950b9f8b37b8fbf4f3",
      "tree": "355f379e936b39455d4e20da83928a035c79261c",
      "parents": [
        "089564f57a49cdc4fc0c49c3bf06f872ae9bd8c0"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Jun 23 16:08:44 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 23 16:09:16 2025 -0700"
      },
      "message": "#vbmc: Read and set fallback target address in proxy and ssh options\n\nUsage will be added in subsequent CLs\n\nPiperOrigin-RevId: 774962962\nChange-Id: I4ff86bb646bccde639136f3b8ff70aa68ec2dd00\n"
    },
    {
      "commit": "089564f57a49cdc4fc0c49c3bf06f872ae9bd8c0",
      "tree": "e3d10e171329ef57dd8db3d7cea43825e8a88db0",
      "parents": [
        "a37246e490c030852d97b0c9c60278bddb8879aa"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Jun 23 15:43:50 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 23 15:44:19 2025 -0700"
      },
      "message": "#vbmc: Add fallback targets in proto config\n\nThis is added to support BMCNet address as fallback\n\nPiperOrigin-RevId: 774954532\nChange-Id: I2546606a83ea59390aacfdfa20487892d3e42b01\n"
    },
    {
      "commit": "a37246e490c030852d97b0c9c60278bddb8879aa",
      "tree": "828ea773d3c2adeed2124d80e85bd4de8e9604ca",
      "parents": [
        "ddb9ec72218e205aa74b262402e39b41a3a261d2"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jun 04 16:29:56 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 04 16:30:31 2025 -0700"
      },
      "message": "#vbmc: Update GetOrigin function to support both formats for OriginOfCondition.\n\nIn older HMC version OriginOfCondition is present in [Links][OriginOfCondition][@odata.id], while in newer version its present in [OriginOfCondition][@odata.id]\n\nThis changes allow both format to be read by vBMC and update the error counters for the correct component.\n\nPiperOrigin-RevId: 767331118\nChange-Id: Icadef998063ce039b659e0106a0a4d7e67da7d49\n"
    },
    {
      "commit": "ddb9ec72218e205aa74b262402e39b41a3a261d2",
      "tree": "5789ee35b17e2cbb7b978e1e4d933146d1b94b3a",
      "parents": [
        "96d29a01cec52e4d2ae4c366938e20b6cf00d461"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri May 23 13:04:26 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 23 13:05:12 2025 -0700"
      },
      "message": "#vbmc: Parse and send CPER data for all events\n\nCurrently we were only parsing and sending events to collector for !OK events\n\nMemory and CPU error counters are still only updated for Critical events.\n\nPiperOrigin-RevId: 762538918\nChange-Id: I34d8b59d03c18f96468b2d4be95d20084f7941bf\n"
    },
    {
      "commit": "96d29a01cec52e4d2ae4c366938e20b6cf00d461",
      "tree": "66faf1abdec770ab47f724c16aa89efe24110e4a",
      "parents": [
        "ccba34143616b9fa792052bcb920af932c1c503f"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu May 22 14:41:47 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 22 14:42:26 2025 -0700"
      },
      "message": "#vbmc: Use Redfish V1 Stub in grpc passthrough if OAuth token is present\n\nReference https://source.corp.google.com/piper///depot/google3/platforms/milotic/tool/grpc_dynamic_raw.cc;l\u003d151\n\nPiperOrigin-RevId: 762131787\nChange-Id: Ie07b312893b68e9c4e95b728e898b3fa85f9f6fe\n"
    },
    {
      "commit": "ccba34143616b9fa792052bcb920af932c1c503f",
      "tree": "22774dae7d3d87d89562d4e86f2528009f63479a",
      "parents": [
        "0564287253b481b1b318d59ececba72eb4b56976"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Tue May 20 13:18:41 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 20 13:19:14 2025 -0700"
      },
      "message": "#vbmc: Add port number to HiscToken\n\nPiperOrigin-RevId: 761204149\nChange-Id: Iee00e5485b3cc7475aa89462ba6da5afaf3b4640\n"
    },
    {
      "commit": "0564287253b481b1b318d59ececba72eb4b56976",
      "tree": "990ad52fd9161c7a5551170763207bba5d0613af",
      "parents": [
        "ccfadce4b796e0e9401ae366ec9503f39244f311"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Tue May 20 11:08:22 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 20 11:09:05 2025 -0700"
      },
      "message": "Add name to proxy\n\nThis is mostly useful when we need to determine which proxy was the source of a log entry.\n\nPiperOrigin-RevId: 761154272\nChange-Id: I2e349bb6f2c0a1fc91355474f8fb23f001815ca5\n"
    },
    {
      "commit": "ccfadce4b796e0e9401ae366ec9503f39244f311",
      "tree": "5fae63b112f186fea65809cc7e5a6b0f0992c36d",
      "parents": [
        "e66ccbec8e17a4e7ee66eed55e4981952c96bff8"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon May 19 14:52:23 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 19 14:52:55 2025 -0700"
      },
      "message": "#vbmc: Add new plugin config for Redfish OAuth plugin\n\nThis plugin will intercept and add OAuth token to the request before being sent by the passthrough plugin\n\nPiperOrigin-RevId: 760780271\nChange-Id: I2d9123589f471cfc7876f14c26784cc58c0221f8\n"
    },
    {
      "commit": "e66ccbec8e17a4e7ee66eed55e4981952c96bff8",
      "tree": "5c2ea9a56fc03e57cd22688de1af23d6f0e12f54",
      "parents": [
        "27c1866520c80313aadee6be93e240429c30c408"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon May 19 14:36:23 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 19 14:36:56 2025 -0700"
      },
      "message": "Remove absl nullability macros when copying into gBMC.\n\nReference: cl/741341364, cl/746124354\nPiperOrigin-RevId: 760774356\nChange-Id: Ifed9b731a78fe3bd3c2d6e5192738a637203370f\n"
    },
    {
      "commit": "27c1866520c80313aadee6be93e240429c30c408",
      "tree": "099b575515d0f118baaea63ae029316eef205a12",
      "parents": [
        "5eed2866b9416e59449f9529ea4f49c4e379a963"
      ],
      "author": {
        "name": "Yassin Ezbakhe",
        "email": "yasez@google.com",
        "time": "Mon Apr 14 01:54:51 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 14 01:55:20 2025 -0700"
      },
      "message": "`SimulatedClock`: Add example code using `testing::testvalue` to replace `WaitUntilThreadsAsleep`.\n\nPiperOrigin-RevId: 747310159\nChange-Id: I8f7ec2ebb0bac7fab7a3157e38ec6cbe84f33889\n"
    },
    {
      "commit": "5eed2866b9416e59449f9529ea4f49c4e379a963",
      "tree": "a16ee34c01bd1be7969fb03d6c34e7a9fdc8dd7b",
      "parents": [
        "e7f3143b40ac29a1d019c3576d4c760f4e70def9"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Thu Apr 10 12:10:40 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 10 12:11:18 2025 -0700"
      },
      "message": "Migrate template alias nullability annotations to macros.\n\nabsl::Nonnull -\u003e absl_nonnull, absl::Nullable -\u003e absl_nullable, and absl::NullabilityUnknown -\u003e absl_nullability_unknown. The new macros are positioned as a qualifier on the affected type, similar to const, rather than as a templated type wrapping the affected type.\n\nSee go/cxx-nullability-syntax-change and go/nullability-annotation-alias-to-macro-migration for more details.\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 746124354\nChange-Id: Ifd8e4b75b42dba251f7d537fe160a03d0332b705\n"
    },
    {
      "commit": "e7f3143b40ac29a1d019c3576d4c760f4e70def9",
      "tree": "9b738e6f1f146578312abe79f26a8c0d471834ab",
      "parents": [
        "1cd5e48da717d1731004fe3877d834e6fabdf7b9"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Thu Apr 03 00:17:58 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 03 00:18:44 2025 -0700"
      },
      "message": "Fix 1 IncludeCleaner finding:\n* Used header \"third_party/milotic/internal/cc/proxy/proxy_config.proto.h\" is not included directly\n\n ⚠️ Problems with this CL?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#codehealth\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 743439559\nChange-Id: I9fa758b549980284177e1bd87adc35bdb04c118a\n"
    },
    {
      "commit": "1cd5e48da717d1731004fe3877d834e6fabdf7b9",
      "tree": "4d9c4b5ed9ee925f30c393108f84583ee7c08583",
      "parents": [
        "bdc270c1f8e8fcc07bb120af91271fed7d3a44fc"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Thu Mar 27 13:19:13 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 27 13:19:47 2025 -0700"
      },
      "message": "Write an empty object instead of null if there are no counter values\n\nPiperOrigin-RevId: 741259238\nChange-Id: I410ad0b7c387c08b8b929ee2175d06d8b521dbc8\n"
    },
    {
      "commit": "bdc270c1f8e8fcc07bb120af91271fed7d3a44fc",
      "tree": "a134c4dbafc65dad11f28b8f6d5e21670e504db7",
      "parents": [
        "83376dbfcbb67eb4e85f673fba9f5d5b2125baa8"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Mar 27 09:34:48 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 27 09:35:28 2025 -0700"
      },
      "message": "#vbmc: Handle replay events from Collector for Stellaris\n\nUpdate check for Cpu errors in CPER, if OriginOfCondition is present we assume that CPU error is present\n\nPiperOrigin-RevId: 741182900\nChange-Id: I08d93431e9095337ca48715653e3da47b4babe27\n"
    },
    {
      "commit": "83376dbfcbb67eb4e85f673fba9f5d5b2125baa8",
      "tree": "99a4004a187b05182b2db88996bec6e3bfb96eed",
      "parents": [
        "69acf9b6091544f36d9e5b5f543ad92147e876ef"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Mar 26 17:48:55 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 26 17:49:25 2025 -0700"
      },
      "message": "Add APIs for ForceKill and ResetErrorCounters in Stellaris CPER plugin\n\nPiperOrigin-RevId: 740962150\nChange-Id: I8f6d642be1ac7bb226ad84362544997a7811d510\n"
    },
    {
      "commit": "69acf9b6091544f36d9e5b5f543ad92147e876ef",
      "tree": "e04c090f80bfca70be7ebd71a0b3331e8c59507a",
      "parents": [
        "5adb3ea5e0b569db22e9ee7eb9232b06500edd3f"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Wed Mar 26 17:03:35 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 26 17:04:05 2025 -0700"
      },
      "message": "#vbmc - Save counters to local file\n\nSave counters to a local file as detailed in go/grace-error-count.\n\nPiperOrigin-RevId: 740951792\nChange-Id: I83effe7b797898e5f98a5a1b4efcbcd5a5072baf\n"
    },
    {
      "commit": "5adb3ea5e0b569db22e9ee7eb9232b06500edd3f",
      "tree": "1807e6d133cde30713c6b2232eac7ed9d76e8acc",
      "parents": [
        "f1c6815659dd3cb1ec2d23dac7732d494fb92538"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Wed Mar 26 15:38:16 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 26 15:38:50 2025 -0700"
      },
      "message": "#vbmc: Map memory OriginOfCondition to Memory resource\n\nPiperOrigin-RevId: 740927149\nChange-Id: Ida68d3a6635ad48a67b0c83c77463ea84f914ac6\n"
    },
    {
      "commit": "f1c6815659dd3cb1ec2d23dac7732d494fb92538",
      "tree": "2fff73588c00401a85abfa14a8defd6ce4ce46cb",
      "parents": [
        "8b0af97ad7a4440d71ba0acde5481d0b7777acf6"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Wed Mar 26 14:28:33 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 26 14:28:58 2025 -0700"
      },
      "message": "#vbmc - Make sleeps interruptible in EventManager\n\nWhen sleeping in EventManager threads, it is possible that the thread is stopped because of a restart or shutdown. While a sleep will eventually wake up in prod, unit tests that use a simulated clock may result in the sleep never returning because the clock was not advanced sufficiently. This change makes the sleep get interrupted if the state changes to stop.\n\nPiperOrigin-RevId: 740904247\nChange-Id: I38ee7f2c151beefd7980b0bb5fe8018428e03ba9\n"
    },
    {
      "commit": "8b0af97ad7a4440d71ba0acde5481d0b7777acf6",
      "tree": "9ee741c0082b96b11eefc2f8014d4d60a196ce1a",
      "parents": [
        "3c26ebd7002a0bee21b8ca7239433de29b9a4819"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Mon Mar 24 18:07:02 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 24 18:07:35 2025 -0700"
      },
      "message": "#vbmc Add async version of GetRedfishResource API\n\nPiperOrigin-RevId: 740138243\nChange-Id: Ie499fa7c7ce77cb8d4787e640450248fc49b7b68\n"
    },
    {
      "commit": "3c26ebd7002a0bee21b8ca7239433de29b9a4819",
      "tree": "f7bbc31022d499828439d977ae698538fb6c72b2",
      "parents": [
        "6914a43790e2d383e7b1a956c9279eb2f9a3b819"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Mar 24 14:43:02 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 24 14:43:42 2025 -0700"
      },
      "message": "Update vbmc socket paths for multi CN platforms\n\n/var/run/vbmc/compute-node-0-rpc.socket --\u003e /var/run/vbmc/compute-node-0/rpc.socket\n/var/run/vbmc/compute-node-1-rpc.socket --\u003e /var/run/vbmc/compute-node-1/rpc.socket\n\nUsage update is added in the child CL\n\nPiperOrigin-RevId: 740077755\nChange-Id: Ia1d8c448a045264b5f786a47266482e044ea3797\n"
    },
    {
      "commit": "6914a43790e2d383e7b1a956c9279eb2f9a3b819",
      "tree": "81d72e04904ba27e100e3729d4897c30e788526e",
      "parents": [
        "e090187048cada686cd159aa4b0f48ad4b8bddbb"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Mon Mar 24 12:07:09 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 24 12:07:58 2025 -0700"
      },
      "message": "#vbmc Interrupt event queue on shutdown\n\nPiperOrigin-RevId: 740025000\nChange-Id: Ied5aa762161b224156a3c61a5d074deb8cca3227\n"
    },
    {
      "commit": "e090187048cada686cd159aa4b0f48ad4b8bddbb",
      "tree": "3d54a066baf94ecba906fceced7a51309fcdfbba",
      "parents": [
        "f181bcca7bcb762a6eeb21169719dcb4368f91ad"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Fri Mar 21 12:25:03 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 21 12:25:42 2025 -0700"
      },
      "message": "#vbmc Only update error counters on critical events\n\nPiperOrigin-RevId: 739262414\nChange-Id: I3cd2a6b95c5f91d91b22dfc806295df60468e808\n"
    },
    {
      "commit": "f181bcca7bcb762a6eeb21169719dcb4368f91ad",
      "tree": "6babe87fefccb1b1f6443350ba00e63e465991e8",
      "parents": [
        "532772c7b0088596d81c3e525d3a291616e4e754"
      ],
      "author": {
        "name": "Craig Tiller",
        "email": "ctiller@google.com",
        "time": "Wed Mar 19 11:14:29 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 19 11:15:07 2025 -0700"
      },
      "message": "Migrate away from third_party/grpc/google_specific status.h\n\nRedirect usage of third_party/grpc/google_specific/grpcpp/{support,impl}/status.h to third_party/grpc/include/grpcpp/status.h by changing include statements.\n\nThe former is an internal name that unfortunately leaked quite widely. The latter is the canonical name we’d like to use moving forward.\n\nTested:\n    TAP --sample ran all affected tests and none failed\n    http://test/OCL:738061072:BASE:738207206:1742348993056:4209083c\nPiperOrigin-RevId: 738470240\nChange-Id: I5e449e085ad9010339111a6049069c462eca34d7\n"
    },
    {
      "commit": "532772c7b0088596d81c3e525d3a291616e4e754",
      "tree": "386b1bc2c6694b5438e8fb6fb969ed1af9fc1258",
      "parents": [
        "ebe6da9aaab76d125a57119c3206cb3e313383ed"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Fri Mar 14 13:05:00 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 14 13:05:27 2025 -0700"
      },
      "message": "#vbmc - Add error counters to machine state\n\nPiperOrigin-RevId: 736960683\nChange-Id: Ie9d87e0fd8bfbeeb44f579fa1419da4856b532e2\n"
    },
    {
      "commit": "ebe6da9aaab76d125a57119c3206cb3e313383ed",
      "tree": "c3b45c86a0e2bf78cdcb1d4b826d0848bd18a58b",
      "parents": [
        "c667ff2b98dc98f7bc5c92c502465edb0de82b2e"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Thu Mar 13 13:18:37 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 13 13:19:07 2025 -0700"
      },
      "message": "#vbmc: Parse CPU errors in CPER data\n\nPiperOrigin-RevId: 736616431\nChange-Id: I5320f96198ab553e344fc93ba92053f793dde70c\n"
    },
    {
      "commit": "c667ff2b98dc98f7bc5c92c502465edb0de82b2e",
      "tree": "706eb678595d4fdb6cddf18079b19ecafa1fbacd",
      "parents": [
        "b65e5989875f47a88ca99a4c91068e9376df547d"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Wed Mar 12 13:05:19 2025 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 12 13:05:47 2025 -0700"
      },
      "message": "#vbmc - Parse memory errors from CPER\n\nPiperOrigin-RevId: 736238411\nChange-Id: Id4bd40b41dce9132e50e8bbc0a076885eef305ca\n"
    },
    {
      "commit": "b65e5989875f47a88ca99a4c91068e9376df547d",
      "tree": "0c3df544a3d1024e6d71d347875aa801cff93b8c",
      "parents": [
        "fe39b332ff7ad8ee8af502fd89b1dae1a4b6554b"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Mon Mar 03 17:35:24 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 03 17:35:54 2025 -0800"
      },
      "message": "#vbmc - Parse message severity from CPER events\n\nPiperOrigin-RevId: 733120256\nChange-Id: I16c56ca66ee7bf9c0ca5dffbf8f8fd3a11b6c368\n"
    },
    {
      "commit": "fe39b332ff7ad8ee8af502fd89b1dae1a4b6554b",
      "tree": "0f021d024c612675d9cb0bef8fc1c9ccef698fa7",
      "parents": [
        "ff111efc6147ac186d63eb4b52138e9d522817c3"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Feb 24 15:56:52 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 24 15:57:30 2025 -0800"
      },
      "message": "#vbmc: Send Cper event from vBMC to Collector in Stellaris\n\nPiperOrigin-RevId: 730628055\nChange-Id: I836a1cfc6a0c51d8dd48c1ca6167b3158e9f311b\n"
    },
    {
      "commit": "ff111efc6147ac186d63eb4b52138e9d522817c3",
      "tree": "76ec5f384315d67b1418a68115c29fd4f74f9b71",
      "parents": [
        "76566c34fa21f3ac8e372fb7dae9cfcf41b4896f"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Mon Feb 24 15:37:18 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 24 15:37:48 2025 -0800"
      },
      "message": "Add CperEvent type in events.proto\n\nPiperOrigin-RevId: 730621612\nChange-Id: I7a6418d8a3039a9a26e9e32372718eba96907ede\n"
    },
    {
      "commit": "76566c34fa21f3ac8e372fb7dae9cfcf41b4896f",
      "tree": "c25578de39f541af41283035e0e0ac9de56e762e",
      "parents": [
        "422755eb7a3911f0fc9a46f56843e5be4c7118ba"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Feb 19 16:05:25 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 19 16:06:04 2025 -0800"
      },
      "message": "#vbmc: Add support for all HTTP verb in gRPC passthrough\n\nCurrently we were sending a GET request irrespective of the request verb\n\nPiperOrigin-RevId: 728852924\nChange-Id: I03dede5b7341810895a9ea6a689fc17d1dc842ca\n"
    },
    {
      "commit": "422755eb7a3911f0fc9a46f56843e5be4c7118ba",
      "tree": "922c57447c9b215b1728347afd81e06a7380893a",
      "parents": [
        "81080e911f6500dbb2ed042d7eec6c9b2e76c60b"
      ],
      "author": {
        "name": "vBMC Team",
        "email": "vbmc-dev@google.com",
        "time": "Tue Feb 11 20:41:33 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 11 20:42:00 2025 -0800"
      },
      "message": "Fix 2 IncludeCleaner findings:\n* Used header \"third_party/milotic/internal/cc/proxy/proxy_config.proto.h\" is not included directly (2 times)\n\n ⚠️ Problems with this CL?\n Click the \"Roll back\" button above, write a description of the problem (ideally with supporting logs/dashboards/screenshots) and a human global approver will be assigned to review the generated rollback CL.\n* See go/include-cleaner for more information about the tool that generated this change.\n* The global approvers for this change category are currently piloting the go/reviewbot tool so you may see global-review-bot-composite as the approver. Please contact code-health-team@google.com if you have any questions/concerns about the approval process.\n\nSee go/include-cleaner-lsc-approval for more information on why you\u0027ve received this change and why it is important.\n\nThis CL looks good? Just LGTM and Approve it!\nThis CL doesn’t look good? This is what you can do:\n* Revert this CL, by replying \"REVERT: \u003cprovide reason\u003e\"\n* File a bug under go/include-cleaner-bug for category IncludeCleaner if there\u0027s an issue with the CL content.\n* File a bug under go/rosie-bug if there\u0027s an issue with how the CL was managed.\n* For all other issues such as the formatting of the CL, please file a bug under\ngo/clrobot-bug.\n* Revert this CL and not get a CL that cleans up these paths in the future by\nreplying \"BLOCKLIST: \u003cprovide reason\u003e\". This is not reversible! We recommend to\nopt out the respective paths in your CL Robot configuration instead:\ngo/clrobot-opt-out.\n\nThis CL was generated by CL Robot - a tool that cleans up code findings\n(go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/third_party/ecclesia/tricorder.METADATA which is reachable following include_presubmits from //depot/google3/third_party/milotic/METADATA by\nfollowing go/clrobot#how-to-opt-in. Anything wrong with the signup? File a bug\nat go/clrobot-bug.\n\n#codehealth\n\nTested:\n    Local presubmit tests passed.\nPiperOrigin-RevId: 725883612\nChange-Id: I03bad9864ec8a5d1484e9a72a590788d0cb5e9d0\n"
    },
    {
      "commit": "81080e911f6500dbb2ed042d7eec6c9b2e76c60b",
      "tree": "54f696654aedc2fb903379cdd87426c7138d9e4c",
      "parents": [
        "cadd0ba5de1a8f07a2bb7c6b8bffe449b1a0392b"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Feb 11 11:26:17 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 11 11:27:05 2025 -0800"
      },
      "message": "#vbmc: Support multiple Events in single Redfish SSE event\n\nMove parsing of SSE event for Cper to separate file, which makes it easier to add unit tests\n\nPiperOrigin-RevId: 725707457\nChange-Id: I8a84e8bb81261f843714e715b9064045390ebcf5\n"
    },
    {
      "commit": "cadd0ba5de1a8f07a2bb7c6b8bffe449b1a0392b",
      "tree": "b93cac9383a259369b070145fdcbde5f647ed0af",
      "parents": [
        "be4d75e0f93748e5d8151bf7d87464f9a3174d67"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Tue Feb 04 11:40:12 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 04 11:40:40 2025 -0800"
      },
      "message": "#vbmc: Update error log if ParseSSEvent fails\n\nInclude event as part of the error log, which helps in debugging.\n\nPiperOrigin-RevId: 723169420\nChange-Id: I03c57ac2d025a0f7f9fdcd2fd5eeb2a7cc18944c\n"
    },
    {
      "commit": "be4d75e0f93748e5d8151bf7d87464f9a3174d67",
      "tree": "1ac8648c09cc4ca088d0770bff97175a2997fee0",
      "parents": [
        "cdf0f07bba908bd4cac1ea67a44d97cea8e19107"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jan 29 13:40:35 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 29 13:41:13 2025 -0800"
      },
      "message": "#vbmc: Add mtls auth in Stellaris vbmc\n\nPiperOrigin-RevId: 721093305\nChange-Id: Ifbec14a7bd31e0c8fd24d4eb920269ad4a701d5f\n"
    },
    {
      "commit": "cdf0f07bba908bd4cac1ea67a44d97cea8e19107",
      "tree": "f80f804934e8f57da4d499613a32b806b6cdbdad",
      "parents": [
        "840a0a7a729764747c49ca8eb6a8d1f13b4684f5"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Fri Jan 24 10:47:53 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Jan 24 10:48:33 2025 -0800"
      },
      "message": "#vbmc: Add grpc server builder channel arguments\n\nDefault values in OpenSource version do not allow long running streaming RPCs, these are the default values used in G3 gRPC servers\ngo/keepalive-ping-grpc-core\n\nPiperOrigin-RevId: 719359846\nChange-Id: I6cea41f6dd98b7c6e1c29439bd25ba61c6b4065c\n"
    },
    {
      "commit": "840a0a7a729764747c49ca8eb6a8d1f13b4684f5",
      "tree": "c3a83e936326656563f7b8ba4e93151b0c849b33",
      "parents": [
        "a444ee81c653b5d8561404e325d8c2ce9eceb897"
      ],
      "author": {
        "name": "Rishabh Jain",
        "email": "jainrish@google.com",
        "time": "Wed Jan 15 12:30:53 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 15 12:31:20 2025 -0800"
      },
      "message": "#vbmc: Stellaris CPER plugin fixes\n\nAdd separate header for Accept\nAdd validations for json received from sse\nParse Id field from sse json for EventID\nPass SSE id in parsing function\n\nPiperOrigin-RevId: 715901643\nChange-Id: Iccd35af9691cefaf90916c0ce355a00703c58c30\n"
    },
    {
      "commit": "a444ee81c653b5d8561404e325d8c2ce9eceb897",
      "tree": "e87474a56af5f726c601a12432f11f44fdf15056",
      "parents": [
        "44779d64efbc3e623ba83252e5a1357cd0a82791"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Tue Jan 14 11:43:36 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jan 14 11:44:12 2025 -0800"
      },
      "message": "#vbmc - Use a pool of http clients to service concurrent requests\n\n`CurlHttpClient` is [not thread safe](https://source.corp.google.com/piper///depot/google3/third_party/ecclesia/lib/http/curl_client.h;rcl\u003d677857727;cl\u003d713100915;l\u003d188), so we should not send concurrent requests on the same client. In order to allow concurrent requests in vBMC, this is implemented by creating a pool of clients. Each request will first allocate a client from the pool, then complete the request, and finally return the client to the pool.\n\nSince most requests are _not_ concurrent, the pool is implemented as a stack so that requests preferentially use the same client repeatedly. This lets us make better use of curl\u0027s connection pool.\n\nPiperOrigin-RevId: 715464667\nChange-Id: I34c0a0f0e888a26548bda7b748fe6bf54d023f82\n"
    },
    {
      "commit": "44779d64efbc3e623ba83252e5a1357cd0a82791",
      "tree": "cb9e09be8bfc05156c94aef04b41ca0083d925c0",
      "parents": [
        "f9e7eee58229c6f6fbdd83233afba447d26e1c1d"
      ],
      "author": {
        "name": "Shounak Mitra",
        "email": "shounak@google.com",
        "time": "Thu Jan 02 12:43:59 2025 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 02 12:44:33 2025 -0800"
      },
      "message": "HISC connector\n\nImplements fetching SSH keys from the gBMC authz service to connect to host serial console SSH on gBMC.\n\nPiperOrigin-RevId: 711498093\nChange-Id: I1b788a3c3b207e40f448ef63a4fa2e58c313445b\n"
    }
  ],
  "next": "f9e7eee58229c6f6fbdd83233afba447d26e1c1d"
}
