)]}'
{
  "log": [
    {
      "commit": "8b196f5315423e39acf360c3f8f73dd7559a973b",
      "tree": "b100c58c7708b2be8e4f06d5dfc3054ab4340547",
      "parents": [
        "aab935440b832d8ad33eecbe017cdb488117b79c"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Thu Aug 27 03:33:52 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 03:33:52 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add CommandMultiplexer snapshot recovery\n\nIntroduces CommandMultiplexerSnapshot and state update structures to\ncapture and persist HCI command credit state across proxy restarts.\n\nGates recovery APIs behind PW_BLUETOOTH_PROXY_CONFIG_ENABLE_RECOVERY\nand real-time credit updates behind\nPW_BLUETOOTH_PROXY_CONFIG_ENABLE_CREDIT_SNAPSHOT_UPDATES.\n\nWhen credit updates are disabled, RecoverFromSnapshot defaults\nthe command credit ledger to 1 to match baseline controller state.\n\nUpdates Bazel, GN, CMake, and Android.bp build configurations with the\nnew command_multiplexer_snapshot library.\n\nAdds unit tests covering snapshot capture, credit restoration, queued\ncommand draining, and state update callback dispatch.\n\nBug: 536076773\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I439604ffca6d2dd1b80e7e4c995e81a913546fd2\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/457426\n"
    },
    {
      "commit": "aab935440b832d8ad33eecbe017cdb488117b79c",
      "tree": "4115338a8f21fcd95c1d104d8b9ee5b3062f2ff0",
      "parents": [
        "64ff6e61b3d080f7379ebdd6e9a4b4d50763847e"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Thu Aug 27 02:10:38 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 02:10:38 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Unify ACL and L2CAP recovery APIs\n\nCreate a single ProxyHost snapshot recovery API that wraps the ACL and\nL2CAP recovery APIs.\n\nBug: 511065094\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: Ib3e39173314a93181c61066ec873bc1f4eefcbfc\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/454647\n"
    },
    {
      "commit": "64ff6e61b3d080f7379ebdd6e9a4b4d50763847e",
      "tree": "eefe3bf661fe4fe24065f6e7319b832450a10e9d",
      "parents": [
        "4d1833ad7e900da4363f8f60a849081b23451cc7"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Thu Aug 27 01:55:05 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 01:55:05 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add ACL connection removal state update\n\nEmit state updates when ACL connections are removed to maintain an\nupdated snapshot for recovery.\n\nBug: 536070658\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I062380f82ab9c1c7eb96d00c366110c1e1cc8aa6\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453772\n"
    },
    {
      "commit": "4d1833ad7e900da4363f8f60a849081b23451cc7",
      "tree": "e955f87bd6dd1b89dd33fcb78ec2281b605ccae4",
      "parents": [
        "b1aaeb362c6d38213c7ee89dca1247e686d75108"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Thu Aug 27 01:38:58 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 01:38:58 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add Sniff hardware resynchronization\n\nImplements InitiateHardwareResynchronization in SniffOffloadManager\nto issue HCI_Exit_Sniff_Mode commands for recovered connections once\ntraffic pipelines are resumed.\n\nAdds ConnectionFsm::PreconditionCheck::kBypass to permit issuing\nresynchronization commands when recovered connections baseline to\nConnectionMode::kActive.\n\nEnsures ConnectionFsm::Start() is called when transitioning from\nConnectionState::kPendingParameters upon receiving offload parameters,\nregistering the inactivity timeout task for connections restored\nwithout prior parameters.\n\nTracks a per-connection resynchronization state initialized upon\nsnapshot restoration. Tolerates COMMAND_DISALLOWED responses for\nExitSniffMode during this phase as confirmation that the controller\nis already in active mode.\n\nDeterministically clears resynchronization status upon receiving\na ModeChangeEvent, observing ACL traffic, or upon inactivity timer\nexpiration, restoring strict error enforcement for steady state.\n\nIgnores ModeChangeEvent packets with non-success status codes to\nprevent corrupted controller events from disrupting connection state.\n\nBug: 536077666\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: Ie70d5220f3503015ed464b395a15e604302caf38\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450133\n"
    },
    {
      "commit": "b1aaeb362c6d38213c7ee89dca1247e686d75108",
      "tree": "00c0726079d39fa2ff9c47e511e1d3614cc827fc",
      "parents": [
        "3bd5a4cd06b5cd81e3966c1da80cf93a842a25d4"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Thu Aug 27 01:12:25 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 01:12:25 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Implement per-connection Sniff snapshot recovery\n\nRestores per-connection Sniff parameters and reconstructs ConnectionFsm\ninstances for each connection entry in a recovered SniffSnapshot.\n\nEstablishes ConnectionMode::kActive as the baseline mode for all\nrecovered links, deferring hardware resynchronization (issuing\nHCI_Exit_Sniff_Mode) to post-resumption of packet traffic.\n\nReturns Status::ResourceExhausted() if connection storage allocation\nfails, and Status::AlreadyExists() if a handle in the snapshot is\nalready registered.\n\nBug: 536077666\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: Id7291b1afc71fe08b74037aee5206ed8a666dad4\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450132\n"
    },
    {
      "commit": "3bd5a4cd06b5cd81e3966c1da80cf93a842a25d4",
      "tree": "df728564429e1c6e29ee54e59ee7639d16cafbf4",
      "parents": [
        "c2353d54f4ae2d4bc8941fd3f693ad15c438984f"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Thu Aug 27 01:05:13 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 01:05:13 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add global Sniff subsystem snapshot recovery\n\nImplements RecoverFromSnapshot in SniffOffloadManager to restore global\nSniff subsystem parameters (enabled state, subrating parameters, and\nevent suppression flags) across proxy reboots.\n\nRejects incomplete snapshots with Status::DataLoss() to signal data\nloss during recovery. Adds TODO for per-connection state recovery.\n\nBug: 536077666\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I385076375ca0f800507003c748dfdc38c98fe4be\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/449412\n"
    },
    {
      "commit": "c2353d54f4ae2d4bc8941fd3f693ad15c438984f",
      "tree": "1624a329bca0ad2ec0113004936f6fd5e0ccefee",
      "parents": [
        "2523522637b1e695d2a5d05c757be6cfb7468392"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Thu Aug 27 01:00:13 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 01:00:13 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add L2CAP state mutation update support\n\nEmit L2CAP state updates to maintain an updated snapshot for recovery.\nSignaling state updates are emitted when the signaling identifier\nincrements. Channel state updates are emitted on channel registration\nand removal. When credit snapshot updates are enabled, channel state\nupdates on credit-based channels are also emitted when credits are\nreplenished or consumed.\n\nBug: 536078259\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: Iaf89cf4e4d47f04e6cd8590cf67ff24fc1334bfa\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/449032\n"
    },
    {
      "commit": "2523522637b1e695d2a5d05c757be6cfb7468392",
      "tree": "8c705d1c186a30fa609f422269dff6831da752e9",
      "parents": [
        "0222daef05b7eec0b113e54e137d77f079679c61"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Thu Aug 27 00:45:26 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 27 00:45:26 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add L2CAP channel recovery rejection support\n\nAdd an allow_data_loss configuration option to allow snapshot recovery\ndespite potential data loss. When this is set to false, gracefully\nreject L2CAP channels that cannot be safely restored during snapshot\nrecovery. Traffic on these channels is silently absorbed until they\u0027re\ntorn down.\n\nBug: 536078259\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I0094463c3a34e5ecdacc827b4aa23809e57b5140\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/448192\n"
    },
    {
      "commit": "0222daef05b7eec0b113e54e137d77f079679c61",
      "tree": "5a9e930e2fca91241f6462cba2612cb0239384ef",
      "parents": [
        "20898d85614f1ba1da8d674fd2e55696e3f5bf8c"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Wed Aug 26 18:07:17 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 26 18:07:17 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Pass sniff state update callback in constructor\n\nUpdate SniffOffloadManager to accept the state update callback as an\noptional constructor argument instead of registering it via a\nseparate RegisterStateUpdateCallback() method.\n\nThis standardizes callback registration across proxy subsystems and\nensures state callbacks are available at initialization time.\n\nBug: 536077666\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I761b8db093ee8f22816ad1852cd226faed8a2ef8\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/463025\n"
    },
    {
      "commit": "20898d85614f1ba1da8d674fd2e55696e3f5bf8c",
      "tree": "31dc5f4c9866eb008e8c806004a2090ee10cf557",
      "parents": [
        "11fccc9620b51c1d4825646d76cfae6afdf69371"
      ],
      "author": {
        "name": "Agnes Wong",
        "email": "agneswong@google.com",
        "time": "Wed Aug 26 17:27:44 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 26 17:27:44 2026 -0700"
      },
      "message": "pw_snapshot: Add core_name field to Metadata proto\n\nAdd a core_name field to pw.snapshot.Metadata to identify the core\non which a snapshot was generated in multi-core systems.\n\nBug: 496001783\nTest: Verified core_name in snapshot\nChange-Id: Iff307f8c4bbd65a98f497fa22ae54ee2d89542ea\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/458185\n"
    },
    {
      "commit": "11fccc9620b51c1d4825646d76cfae6afdf69371",
      "tree": "da4b51224a37b28c71fca81717af96c39043ccc1",
      "parents": [
        "4e39a60854b36ee98b9b48477bbbed228be8bceb"
      ],
      "author": {
        "name": "Alexei Frolov",
        "email": "frolv@google.com",
        "time": "Wed Aug 26 11:24:22 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 26 11:24:22 2026 -0700"
      },
      "message": "pw_buf: Add module\n\nCreates the pw_buf module containing pw::Buf and pw::ConstBuf,\noptionally owned views of a continguous memory region that can be\nsliced and reclaimed. Conceptually similar to pw_multibuf, but only one.\nThe two modules will eventually be consolidated.\n\nChange-Id: I5fd89d264ed8dad3a8aee292824e6bbbd3583f0b\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/457445\n"
    },
    {
      "commit": "4e39a60854b36ee98b9b48477bbbed228be8bceb",
      "tree": "4d69ca618cb350f642a161d089e32491dafb042e",
      "parents": [
        "5142754646435683c25c9b96a1e79abb6917a073"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Wed Aug 26 08:52:41 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 26 08:52:41 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add per-connection Sniff snapshots \u0026 state updates\n\nIntroduces `SniffConnectionSnapshot` to persist per-connection Sniff\noffload configuration parameters (intervals, attempts, timeouts,\nsubrating parameters, and exit rules) across proxy reboots.\n\nDefines the `SniffStateUpdate` variant (supporting top-level global\nsnapshots and per-connection records) and implements\n`SniffSnapshot::ApplyStateUpdate()` for in-place incremental state\nsynchronization.\n\nInstruments `SniffOffloadManager` and `ConnectionFsm` to invoke\n`NotifyStateUpdate` across all global and per-connection state mutation\npoints (connection additions/disconnections, parameter configuration,\nand enable toggles).\n\nAdds comprehensive unit tests verifying callback dispatch frequency\nand snapshot convergence across all mutation paths.\n\nBug: 536077666\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I0d361bd0757565386edd71190048ebe97941097f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/447415\n"
    },
    {
      "commit": "5142754646435683c25c9b96a1e79abb6917a073",
      "tree": "3d3f5599701fc040680193eef09b6e67a03c6ab4",
      "parents": [
        "6cb7c45a2d304817d6248675031ff47311f3f1ea"
      ],
      "author": {
        "name": "Hoang Le",
        "email": "hoangmle@google.com",
        "time": "Tue Aug 25 17:59:01 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 17:59:01 2026 -0700"
      },
      "message": "pw_ide: Update C++ code intelligence doc link\n\nhttps://pigweed.dev/pw_ide/guide/vscode/ is not found, update the reference link\n\nChange-Id: Ibff8e1e71b6244b76fdcc05d3b7f56e5ca847108\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/451112\n"
    },
    {
      "commit": "6cb7c45a2d304817d6248675031ff47311f3f1ea",
      "tree": "8120ca2521c7ae2c63f2f54ececbba3bdd144a06",
      "parents": [
        "7023a4b9859b20b3c3c08f99c34693ead8fc85cc"
      ],
      "author": {
        "name": "Alexei Frolov",
        "email": "frolv@google.com",
        "time": "Tue Aug 25 12:47:55 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 12:47:55 2026 -0700"
      },
      "message": "agents: Add pw_async2 skill\n\nAdds a skill to help agents write idiomatic async2 code and avoid common\nfailure modes.\n\nChange-Id: I5633a9187da52eff71373bf1abf8b8b33bd43676\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/448332\n"
    },
    {
      "commit": "7023a4b9859b20b3c3c08f99c34693ead8fc85cc",
      "tree": "8d7c3d8184bb9b21ee0c2d34d9e1b125c840ef16",
      "parents": [
        "8cb19efcde449c0a3f25faa46e4037eceb333afa"
      ],
      "author": {
        "name": "Adam Snaider",
        "email": "asnaider@google.com",
        "time": "Tue Aug 25 11:34:02 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 11:34:02 2026 -0700"
      },
      "message": "pw_bluetooth: Add EventPayload struct to BT emboss\n\nBug: 552502495\nChange-Id: I45ea74d28c6216abf41e3bcad66d89f36a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/461945\n"
    },
    {
      "commit": "8cb19efcde449c0a3f25faa46e4037eceb333afa",
      "tree": "a9d1fd00bf5ea9acafc4ffd916b5e31e94ff9e83",
      "parents": [
        "1435aa7d49ff9f845182bb52ad5fe59e15781445"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Tue Aug 25 10:13:45 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 10:13:45 2026 -0700"
      },
      "message": "pw_ide: Add Kythe kzip generation module\n\nAdd pw_ide.kythe module to extract Kythe .kzip compilation units from\ncompile_commands.json databases generated by pw_compile_commands_generator.\n\nBug: 482452567\nTest: python3 pw_ide/py/kythe_test.py\nChange-Id: I8a8c0a36ea314ca82b93ce022e443e3888df78ec\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/461085\n"
    },
    {
      "commit": "1435aa7d49ff9f845182bb52ad5fe59e15781445",
      "tree": "aee2e43837d7788b9b0c2acc029ca6f3576020ff",
      "parents": [
        "c3bb851155c470185d72c33cf66b0d871ec5ea6b"
      ],
      "author": {
        "name": "Christoph Klee",
        "email": "chklee@google.com",
        "time": "Tue Aug 25 09:25:27 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 09:25:27 2026 -0700"
      },
      "message": "pw_clock_tree_mcuxpresso: Set divider to 0 on disable\n\nOverrides DoDisable() in ClockMcuxpressoDivider to set the divider\nvalue to 0 via CLOCK_SetClkDiv(divider_name_, 0). This halts the clock\noutput when the divider element is disabled or released, preventing\nunintended clock pulses.\n\nWhen the clock divider is subsequently enabled, the SDK divider update\nperforms the request handshake to ensure the signal is stable before\nthe divider update succeeds.\n\nTest: bazelisk test //pw_clock_tree_mcuxpresso/...\nTAG: agy\nCONV: d8dfd53d-d4b3-4094-a9bd-64550793ddb8\nBug: 552162958\nChange-Id: I903653df691cddee91236a2ea02050da2405c025\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/461485\n"
    },
    {
      "commit": "c3bb851155c470185d72c33cf66b0d871ec5ea6b",
      "tree": "f063557cb64093f5fc4a33acc527326120d4a93a",
      "parents": [
        "d6220b5d12be6bae9d9dfd637d672402e8d06b5e"
      ],
      "author": {
        "name": "Tongze Wang",
        "email": "tongze@google.com",
        "time": "Mon Aug 24 21:17:49 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 21:17:49 2026 -0700"
      },
      "message": "pw_log_zephyr: Add support for LOG_HEXDUMP_*\n\nThis commit intercepts Zephyr\u0027s LOG_HEXDUMP_* macros to route hex\nlogs into Pigweed\u0027s log framework. It relies on the new\nC-linkable wrapper `pw_dump_LogBytes()` added to `pw_hex_dump`\n(which internally invokes `pw::dump::LogBytes`) to support\nC-only modules, bringing feature-parity to hex dumping macros\nacross both C and C++ contexts.\n\nChange-Id: I6f99bd73ba5b6d7df955cb559544d053a04bb4ca\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/451832\n"
    },
    {
      "commit": "d6220b5d12be6bae9d9dfd637d672402e8d06b5e",
      "tree": "90f952e7e60c3b30c22349365ead167dc8f9dd23",
      "parents": [
        "adaa4516a59c549809f57d905cacadf87247aac8"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Mon Aug 24 20:31:38 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 20:31:38 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Harden state update callback lifetimes\n\nEnsure stack-allocated variables captured by ProxyHost and\nSniffOffloadManager state update callbacks outlive the proxy instance\nin tests to prevent stack-use-after-scope ASan violations.\n\nAlso explicitly clear `state_update_callback_` in\n`~SniffOffloadManager()` before invoking `Reset()` to prevent emitting\nstate update notifications to destructed listeners during teardown.\n\nChange-Id: Ib464fb9d3a4ba25358a717ddbfb525b4c346c8c3\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/461225\n"
    },
    {
      "commit": "adaa4516a59c549809f57d905cacadf87247aac8",
      "tree": "1f49618578c959c86de4efc51200e01a4cb8eba1",
      "parents": [
        "b50aeebf1e99973396b609773b2d940da59dbd59"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 16:38:07 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 16:38:07 2026 -0700"
      },
      "message": "crates_io: Update object to 0.40.0\n\nChange-Id: Ic7ecb84db6ee8ebd3f70c5996b0baa8b5876d798\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459827\n"
    },
    {
      "commit": "b50aeebf1e99973396b609773b2d940da59dbd59",
      "tree": "7bd90b91bd4668c97213f57320beb91f7214b5d5",
      "parents": [
        "d5fef7a0aaf91239ef82aa5adc83fd7ff63870a4"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 15:58:06 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 15:58:06 2026 -0700"
      },
      "message": "crates_io: Update cortex-m-semihosting to 0.6.0\n\nChange-Id: I20f72ae0f2ed2a3d028a810aec71059feab8d887\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/461106\n"
    },
    {
      "commit": "d5fef7a0aaf91239ef82aa5adc83fd7ff63870a4",
      "tree": "516ff14b20aa83ae868db434c92a9921a347cbb5",
      "parents": [
        "7666f7d35812186157fbeb804de4db09a0cf1d05"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 15:47:47 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 15:47:47 2026 -0700"
      },
      "message": "crates_io: Update syn to 3.0.3\n\nChange-Id: I81a310a8e3fb58c0c05b313dbf6828c080481f1e\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459828\n"
    },
    {
      "commit": "7666f7d35812186157fbeb804de4db09a0cf1d05",
      "tree": "918d0999375fad8a99ed5f1e7d0bda5fa4405b22",
      "parents": [
        "769b8bb26eed127d39a33e76bc921d12126cafb0"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 15:38:27 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 15:38:27 2026 -0700"
      },
      "message": "crates_io: Update nom to 8.0.0\n\nChange-Id: I01229a27ca9c84259d2fe8417374026380b18b7e\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459826\n"
    },
    {
      "commit": "769b8bb26eed127d39a33e76bc921d12126cafb0",
      "tree": "844e66e230307ada69e35454b96c9f1ef5a04a2c",
      "parents": [
        "d48c1f5ab6b568d2144e45f8139a494ddde06c3d"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 15:21:06 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 15:21:06 2026 -0700"
      },
      "message": "crates_io: Update nix to 0.31.3\n\nChange-Id: Ifeb9408ddcae5da2406fee1732a52b0fd2dcdadf\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459825\n"
    },
    {
      "commit": "d48c1f5ab6b568d2144e45f8139a494ddde06c3d",
      "tree": "1e0af0071509e01ddb72f576d3b5cf91af691004",
      "parents": [
        "84928195de0849553cff0369235fd1c0cfee9940"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 15:19:27 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 15:19:27 2026 -0700"
      },
      "message": "crates_io: Freshen crate versions\n\nFixes: 531677492, 531676470, 531675326, 531674980\nChange-Id: I76c7b9b13fbc590b57dae8adf1d47daf3ef83817\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459745\n"
    },
    {
      "commit": "84928195de0849553cff0369235fd1c0cfee9940",
      "tree": "cb42244c83aa61a0bc3336e3f1d43688cebba5e0",
      "parents": [
        "0911625039834b93c1c5d665f028780ad81dcf2d"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 14:29:26 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 14:29:26 2026 -0700"
      },
      "message": "crates_io: Remove unused crates\n\nChange-Id: Ia588fc439584418f03e45031aedb33f772b5e2fd\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459545\n"
    },
    {
      "commit": "0911625039834b93c1c5d665f028780ad81dcf2d",
      "tree": "dea216513da8afda468b8b87520421f8cb247543",
      "parents": [
        "dcffc3b6680eddbf616a478b6d6f332e4da50c30"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 24 13:36:26 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 13:36:26 2026 -0700"
      },
      "message": "crates_io: Sync toml file with lockfile\n\nThe toml file crate versions were behind the versions in the\nlockfiles after a cargo update.\n\nChange-Id: Idfb491939ecf13468f8ac698cc3bd6926edee787\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459485\n"
    },
    {
      "commit": "dcffc3b6680eddbf616a478b6d6f332e4da50c30",
      "tree": "b3bf0b73ff8c82b639c17e1f8d1b818e80901a7c",
      "parents": [
        "473df426aec16f6a4f6bf4a944e37a2a61c5dfe6"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Mon Aug 24 11:17:53 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 11:17:53 2026 -0700"
      },
      "message": "pw_kernel: Remove golden file verification from tracing tests\n\nRevert \"pw_kernel: Verify tracing outputs against golden files\" and\nonly check that the output trace protobuf exists and contains thread tracks.\n\nChange-Id: Ibd5709a7f2a0c6f5b327021fc94b82236a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/455665\n"
    },
    {
      "commit": "473df426aec16f6a4f6bf4a944e37a2a61c5dfe6",
      "tree": "fe9e5f8fd0a555df15a178f4a1493126763ad4eb",
      "parents": [
        "f5291dd4bb33fa772fc16f6add9ba431f7a91caa"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 05:24:58 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 05:24:58 2026 -0700"
      },
      "message": "roll: go\n\nFrom version:3@1.26.6\nTo version:3@1.27.0\n\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8672589642010278401\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Id72e0793b474460390f3a1f5d16ca3185f84dd5f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/460685\n"
    },
    {
      "commit": "f5291dd4bb33fa772fc16f6add9ba431f7a91caa",
      "tree": "1296c425c85c34b890b8d5214d56bd93159ac224",
      "parents": [
        "dfd3ded1e29ad74ea5dbbcc6808d56afc5867836"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Mon Aug 24 01:48:40 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 01:48:40 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Sweep abandoned L2CAP channels\n\nRemove abandoned L2CAP channels that weren\u0027t re-registered by clients\nduring snapshot recovery, and notify the container for each one.\n\nBug: 536078259\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I8f84f58036dd4880887b7de80f7450fd4680bbc6\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/447232\n"
    },
    {
      "commit": "dfd3ded1e29ad74ea5dbbcc6808d56afc5867836",
      "tree": "da9b7d08954f95dba399578c8783f5b51aac31ca",
      "parents": [
        "d7bfdaffe4e60ab9b908b6d9ca6de2884a99b599"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Mon Aug 24 00:41:17 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 00:41:17 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Implement L2CAP recovery\n\nReconstruct L2CAP logical links, restore signaling channel identifiers,\nand apply dynamic channel matching with credit overrides during snapshot\nrecovery.\n\nBug: 536078259\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I4994ec4318d757e0dc5f9e258840fcfabe4e431e\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/442053\n"
    },
    {
      "commit": "d7bfdaffe4e60ab9b908b6d9ca6de2884a99b599",
      "tree": "33e4fef26e3a72a16f3fcd2d7ce9ba4f14408461",
      "parents": [
        "e00b4cc15cebf4f2924fe9a3de3539de9cf2d5b3"
      ],
      "author": {
        "name": "Devan Yu",
        "email": "devanyu@google.com",
        "time": "Sun Aug 23 20:24:29 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 23 20:24:29 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Wire L2CAP snapshot APIs\n\nAdd the framework for snapshot APIs that capture and restore L2CAP\nconnection state.\n\nBug: 536078259\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: I3aed604ddbfe72fc1df78d42e818bc98fc389000\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/442052\n"
    },
    {
      "commit": "e00b4cc15cebf4f2924fe9a3de3539de9cf2d5b3",
      "tree": "b4d2c5c454181cf29725e1fd3529ea3f9bb5072d",
      "parents": [
        "4cdf74f6d5aac7613b61b050bddb5b7f6e451456"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Sun Aug 23 20:16:05 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 23 20:16:05 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Add global Sniff recovery snapshot support\n\nAdd state update callback registration and state persistence support\nfor SniffOffloadManager.\n\nThis allows proxy offload recovery orchestration to receive\nincremental state updates upon global sniff state changes without\nruntime or binary overhead when recovery is disabled. Per-connection\nsniff state serialization will be added in a subsequent change.\n\nSynchronize target definitions, headers, and dependencies across\nGN, Bazel, CMake, and Android build files with LINT.IfChange markers.\n\nNO_IFTTT\u003dall necessary changes accounted for\nTest: bazelisk test pw_bluetooth_proxy/...\nBug: 536077666\n\nChange-Id: I374db40cef51115910f7a2b3c89839bea1d1d320\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/444553\n"
    },
    {
      "commit": "4cdf74f6d5aac7613b61b050bddb5b7f6e451456",
      "tree": "f83b44e567024c72aaf7bf165294081edddba18e",
      "parents": [
        "0729bc8cf36464b89da21fd266992056bfa0d1eb"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 23 13:59:01 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 23 13:59:01 2026 -0700"
      },
      "message": "roll: gn\n\nFrom git_revision:e8a8e0932a5e42a99e5896aa58e3b8290f4e5b8c\nTo git_revision:58933a7cdbc90f70f2381f0c72e76d29be1d43a9\n\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8672647602841585633\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: I84879cbcc8fa10f3b1b63735c509594260552ee2\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/460286\n"
    },
    {
      "commit": "0729bc8cf36464b89da21fd266992056bfa0d1eb",
      "tree": "0d97a689620219892c962f5d7e1fc78c4032801a",
      "parents": [
        "abafd9337bd64bf560db127ccd48ee67fea5f9f5"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 23 05:34:53 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 23 05:34:53 2026 -0700"
      },
      "message": "roll: luci\n\nbb\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nluci-auth\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\ngerrit\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\ngitiles\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\ncas\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nled\nFrom git_revision:03460cbcb7fcfe86272f3eabd45a8b0e7675f46b\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nswarming\nFrom git_revision:0db59787db18aa7e09069238cec3fdb153d7c4be\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nlogdog\nFrom git_revision:03460cbcb7fcfe86272f3eabd45a8b0e7675f46b\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nprpc\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nluci-cv\nFrom git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\nTo git_revision:002e0165de22f7c211bb60292af8a30e0783c9d7\n\nRoll-Count: 10\nRoller-URL: https://cr-buildbucket.appspot.com/build/8672678055948546321\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: I71eaf00aa63f1e5b4886a392c28b7f59a13d2f71\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/460105\n"
    },
    {
      "commit": "abafd9337bd64bf560db127ccd48ee67fea5f9f5",
      "tree": "2d052dd82c1541c0a5216b66192ddd2010d635a2",
      "parents": [
        "f3628046f75e2684f9ef7dc5c172137f1d7c4785"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 22 19:56:07 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 22 19:56:07 2026 -0700"
      },
      "message": "roll: fuchsia-infra-bazel-rules f9f35ef..57bd03e (2 commits)\n\n57bd03e:https://fuchsia.googlesource.com/fuchsia-infra-bazel-rules/+/57bd03e1c4148857995ed34b4a447b324277a44a [roll] Roll fuchsia-infra-bazel-rules-cas-cipd packages to git_revision:0e4cb6152e3aee32eca411edf436f6017c39068a\n19e8a71:https://fuchsia.googlesource.com/fuchsia-infra-bazel-rules/+/19e8a714922f3abc70eeebdb6884884a6195391e [roll] Roll fuchsia-infra-bazel-rules-luci_auth-cipd packages to git_revision:0e4cb6152e3aee32eca411edf436f6017c39068a\n\nRolled-Repo: https://fuchsia.googlesource.com/fuchsia-infra-bazel-rules\nRolled-Commits: f9f35efc5bcc4f..57bd03e1c41488\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8672715110643371265\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Ic244b971e41fcdcbba31b35d1140b1009abf18e4\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/460065\n"
    },
    {
      "commit": "f3628046f75e2684f9ef7dc5c172137f1d7c4785",
      "tree": "616ce0a6966ba3342d58311f7e0dad3307abcdbf",
      "parents": [
        "294cc866aef685f87ad92502199f6e6257267195"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 22 14:19:44 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 22 14:19:44 2026 -0700"
      },
      "message": "roll: rust-analyzer\n\nrust-analyzer\nFrom git_revision:baabc5825f3f6640e99fe32887bbeced640f825e\nTo git_revision:9f4667f303a80ad33457d914f93991242c057c87\n\nMODULE.bazel.lock\nRegenerated MODULE.bazel.lock\n\nRoll-Count: 2\nRoller-URL: https://cr-buildbucket.appspot.com/build/8672736437977145489\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Ie233fbaaa4513bd21b23c4dc0240763107b33a60\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/460025\n"
    },
    {
      "commit": "294cc866aef685f87ad92502199f6e6257267195",
      "tree": "6ece7ededbd0a75a9b8d5a39216d3e02d42186ec",
      "parents": [
        "79c0e26dd794b756e6b852b108624a81be8c04ac"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Fri Aug 21 15:04:09 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Aug 21 15:04:09 2026 -0700"
      },
      "message": "rp2350: Select primary serial port for multi-interface devices\n\nDevices like debug probes and multi-port RP2 targets can expose multiple\nCDC-ACM serial interfaces sharing the same USB serial number. On macOS,\nenumerating available serial ports lists secondary interfaces after the\nprimary UART port, causing _detect_pico_serial_ports() to overwrite the\nserial port mapping with an inactive interface and resulting in test\ntimeouts.\n\nChange-Id: I74f3afc274c1376246057c1d42d5800867c0143e\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/459105\n"
    },
    {
      "commit": "79c0e26dd794b756e6b852b108624a81be8c04ac",
      "tree": "e11331972d0879c3a8affdf465ca102ad9723479",
      "parents": [
        "de298dcbebf55bffe60f1d290922aa08ceb0bdc3"
      ],
      "author": {
        "name": "Faraaz Sareshwala",
        "email": "fsareshwala@google.com",
        "time": "Thu Aug 20 14:25:14 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 14:25:14 2026 -0700"
      },
      "message": "pw_bluetooth_sapphire: Gate batched scan behind product configuration\n\nChange-Id: I35caf2ec8d0db9f25f7f8b7a58d5b3adf728f50c\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/446693\n"
    },
    {
      "commit": "de298dcbebf55bffe60f1d290922aa08ceb0bdc3",
      "tree": "b0b3dccfbebd6f69a809b2e214bcf45b5f8d3ecf",
      "parents": [
        "3e7974d8af09dd40c5e8701545e08eb6a2cc00c1"
      ],
      "author": {
        "name": "Faraaz Sareshwala",
        "email": "fsareshwala@google.com",
        "time": "Thu Aug 20 14:25:08 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 14:25:08 2026 -0700"
      },
      "message": "pw_bluetooth_sapphire: Implement AndroidBatchLowEnergyScanner\n\nImplement AndroidBatchLowEnergyScanner to support Android HCI vendor\nextensions for batch scanning. This allows the controller to buffer LE\nscan results and only notify the host when the buffer is nearly full or\nafter a timeout (3s), reducing host processor wakeups and power\nconsumption.\n\nAlso includes a bug fix in hci_android.emb correcting the\nBatchScanReadMode enum values (TRUNCATED \u003d 0x01, FULL \u003d 0x02) which were\npreviously both 0x00.\n\nFixed: b/42174578\nFixed: b/455114162\nChange-Id: I240474d973d0a9fa1574717a687a861ee627908a\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/325796\n"
    },
    {
      "commit": "3e7974d8af09dd40c5e8701545e08eb6a2cc00c1",
      "tree": "d920399fb825851976f6967bf1a6f587c2bf371e",
      "parents": [
        "434a568ca3beba22e0dac3ee550a342cc8b624f3"
      ],
      "author": {
        "name": "Faraaz Sareshwala",
        "email": "fsareshwala@google.com",
        "time": "Thu Aug 20 14:25:01 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 14:25:01 2026 -0700"
      },
      "message": "pw_bluetooth_sapphire: Gate offloaded scan behind product configuration\n\nChange-Id: I0949db4fcd600777a39bb4861be2d73b6f70e07f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/446692\n"
    },
    {
      "commit": "434a568ca3beba22e0dac3ee550a342cc8b624f3",
      "tree": "2970b287072331a17d0e572ef42631f41b4b61f8",
      "parents": [
        "1ccb09dff67ea81e5e3f8c41f41589caeec83806"
      ],
      "author": {
        "name": "Faraaz Sareshwala",
        "email": "fsareshwala@google.com",
        "time": "Thu Aug 20 14:24:55 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 14:24:55 2026 -0700"
      },
      "message": "pw_bluetooth_sapphire: Stop scans when updating offloaded scan filters\n\nWe\u0027ve received guidance from our firmware vendor that it\u0027s recommended\nto stop scanning entirely before updating offloaded scan filters. Doing\nso helps prevent any race conditions or other issues within the\nController. This change updates LowEnergyDiscoveryManager and\nAdvertisingPacketFilter to follow a stop, apply, start mode instead.\n\nChange-Id: I7f51a9f9cd823a79ee0e90d81392c5747f5eee33\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/436373\n"
    },
    {
      "commit": "1ccb09dff67ea81e5e3f8c41f41589caeec83806",
      "tree": "1d6e4717a51b6807b4d551c0d321079e2c910cb8",
      "parents": [
        "c0def160076d3502e9b78c8c7a274f1fd60907be"
      ],
      "author": {
        "name": "Christian Sandberg",
        "email": "christiansandberg@me.com",
        "time": "Thu Aug 20 13:45:56 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 13:45:56 2026 -0700"
      },
      "message": "pw_allocator_zephyr: Add CMake support\n\nChange-Id: If0c212f4871dd8c18dba5128db97d0b2b8f5ef25\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/443112\n"
    },
    {
      "commit": "c0def160076d3502e9b78c8c7a274f1fd60907be",
      "tree": "a717b5797f996a22403063e051ca82defde250fd",
      "parents": [
        "2d06b391cf11572c88b783fd95b604ef0b029fc1"
      ],
      "author": {
        "name": "Josh Conner",
        "email": "joshconner@google.com",
        "time": "Wed Aug 19 19:01:11 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 19:01:11 2026 -0700"
      },
      "message": "pw_bluetooth: Reorder events\n\nResort the command complete events by the section of the command\nto which they correspond in the core spec.\n\nTest: Builds\nChange-Id: Ic8893275c994187b5fee4321d0c900e9754ed8ff\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/458325\n"
    },
    {
      "commit": "2d06b391cf11572c88b783fd95b604ef0b029fc1",
      "tree": "0a90593122f799396ebeedaeebc389db9de2bfac",
      "parents": [
        "2a1b76c41d4f0df598769fab6de460e6ceff7885"
      ],
      "author": {
        "name": "Josh Conner",
        "email": "joshconner@google.com",
        "time": "Wed Aug 19 17:32:43 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 17:32:43 2026 -0700"
      },
      "message": "pw_bluetooth: Add LE Rand command\n\nAdd HCI_LE_Rand command (and corresponding command complete event)\ndefinitions.\n\nTest: Builds\nChange-Id: Iba4417ed460d6de64f773303e32113b48cffa58c\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/458245\n"
    },
    {
      "commit": "2a1b76c41d4f0df598769fab6de460e6ceff7885",
      "tree": "17905e8471da5d4b4d1e9cd82a758982108d3212",
      "parents": [
        "ce77ba9a5d3e172ade0255db9faf12cd39b1b2eb"
      ],
      "author": {
        "name": "Josh Conner",
        "email": "joshconner@google.com",
        "time": "Wed Aug 19 16:53:05 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 16:53:05 2026 -0700"
      },
      "message": "pw_bluetooth: Re-format emboss files\n\nRun the emboss formatter.\n\nTest: Builds\nChange-Id: I39a71858b2e4144c2534b6a72ddf8daba079b1e6\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/458285\n"
    },
    {
      "commit": "ce77ba9a5d3e172ade0255db9faf12cd39b1b2eb",
      "tree": "82e4180bcef75330f834dc79819ce6545fbef51e",
      "parents": [
        "e0cf41767907e3a7541a262294918b0469d1a88e"
      ],
      "author": {
        "name": "Alexei Frolov",
        "email": "frolv@google.com",
        "time": "Wed Aug 19 15:13:27 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 15:13:27 2026 -0700"
      },
      "message": "pw_async2: Fix reuse of channel storage\n\nChannel storage advertised itself as reusable, but this wasn\u0027t actually\npossible since it would always assert closed. This updates the code to\nreopen the channel storage once a new channel is constructed over it\n(which is only possible if the previous channel\u0027s refcounts are all 0).\nUnread buffered items are destroyed.\n\nAdditionally corrects deque member typo.\n\nChange-Id: Ifa6282c0cc0c6e01742803b99d91453bf891a5f5\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/458205\n"
    },
    {
      "commit": "e0cf41767907e3a7541a262294918b0469d1a88e",
      "tree": "40d43e9acfa444b6146faf37872f7bbfcda7da59",
      "parents": [
        "c3703f3482d9f22b6123dea5b8566442fab5709c"
      ],
      "author": {
        "name": "Alexei Frolov",
        "email": "frolv@google.com",
        "time": "Wed Aug 19 15:13:21 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 15:13:21 2026 -0700"
      },
      "message": "pw_async2: Map/Then bugfixes\n\n- Allow both Map and Then to work with either futures or functions\n  returning void.\n- Fixes default construction of ThenFuture to report non-pendable.\n\nChange-Id: I089fe48bfc4a2c396b44d28cfa31d07f609c35b2\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/457345\n"
    },
    {
      "commit": "c3703f3482d9f22b6123dea5b8566442fab5709c",
      "tree": "8d9f496a6eec29906fe0521d7ee351ab3af592df",
      "parents": [
        "9aae7dba726d8426d9657bc44ad8c87e13b40c99"
      ],
      "author": {
        "name": "Josh Conner",
        "email": "joshconner@google.com",
        "time": "Wed Aug 19 13:53:17 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 13:53:17 2026 -0700"
      },
      "message": "pw_bluetooth_sapphire: Ack frames earlier\n\nWhen frames are received from the driver, ack them immediately\nrather than processing them first.\n\nBug: b/545188532\nChange-Id: I025e32dd4ea7144be59251583afc9b13eaf8dac5\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/456625\n"
    },
    {
      "commit": "9aae7dba726d8426d9657bc44ad8c87e13b40c99",
      "tree": "c3e385a1e24bebcce91c552911e6ed629d43c9f1",
      "parents": [
        "b5b1ecb3a672ef749822df1ad0095953cbee937f"
      ],
      "author": {
        "name": "Kesavan Yogeswaran",
        "email": "hikes@google.com",
        "time": "Wed Aug 19 12:59:03 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 12:59:03 2026 -0700"
      },
      "message": "pw_symbolizer: Gracefully handle invalid addresses in stack trace dump\n\nOn Cortex-M and other Thumb-only architectures, a return address missing\nthe Thumb bit (i.e. an even address) previously caused uncaught\nexceptions during stack trace generation. This prevented developers from\nseeing any valid frames in a stack trace if it contained even one\ncorrupted address.\n\nThis change catches these cases by introducing and catching an\n`InvalidReturnAddressError`. In the stack trace, it logs a warning and\nfalls back to displaying the raw, un-symbolized address for that frame,\ngracefully allowing the rest of the stack trace to render.\n\nBug: 547892047\nChange-Id: I09753c9ad6c2754df15d01d69ea8f308dcec89bd\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/457065\n"
    },
    {
      "commit": "b5b1ecb3a672ef749822df1ad0095953cbee937f",
      "tree": "2a69ead0b37e6c9256ec6dd80ea22874c067708d",
      "parents": [
        "a35dfd319fe35cbe9a57a7be0d8a3db6eea21214"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Wed Aug 19 11:51:40 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 11:51:40 2026 -0700"
      },
      "message": "agents: Add Gerrit and Buildbucket workflow skill\n\nProvides a skill for interacting with Gerrit and Buildbucket:\n- BuildBucket API: Query build checks and deduplicate tryjobs.\n- Check Triggering: Targeted retries via `bb add` and full CQ dry runs.\n- Review Feedback: Fetch and organize unresolved comments for reviews.\n\nChange-Id: I5e8b4cbc1843bf84935a398ff02cb12f1217815f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/406352\n"
    },
    {
      "commit": "a35dfd319fe35cbe9a57a7be0d8a3db6eea21214",
      "tree": "2e9724d8be1bbfa8a1ca417acf060769d4fb0068",
      "parents": [
        "a0f4363f0c02ef58686582c9d82282782e7a0d01"
      ],
      "author": {
        "name": "Austin Foxley",
        "email": "afoxley@google.com",
        "time": "Wed Aug 19 11:27:39 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 11:27:39 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Fix stale channel deref on write\n\nA channel pointer was held across channel mutex unlock/relock which\ncould result in deref of invalid channel if concurrent disconnects were\nbeing processed.\n\nBug: 548568828\nChange-Id: I4e45e63ef76181238352e76e38bce86590a4bd79\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/458005\n"
    },
    {
      "commit": "a0f4363f0c02ef58686582c9d82282782e7a0d01",
      "tree": "d331073ebd51ec14a117dab15fb92c8c2a98d940",
      "parents": [
        "8ca462fe925ee669eb377933f387029f3f002884"
      ],
      "author": {
        "name": "Jason Graffius",
        "email": "jgraff@google.com",
        "time": "Wed Aug 19 09:08:17 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 09:08:17 2026 -0700"
      },
      "message": "pw_bluetooth_sapphire: Implement CIG support in central FIDL\n\nTest: bazelisk test --config\u003dfuchsia //pw_bluetooth_sapphire/fuchsia/host/fidl:test_pkg\nChange-Id: Ib44767ad08bcc7a7fcc0de6da68e81cd9ba0837a\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/413775\n"
    },
    {
      "commit": "8ca462fe925ee669eb377933f387029f3f002884",
      "tree": "c5f4920359d84cd112f1ee78de77cbf06b690484",
      "parents": [
        "73e734ef9ade9efe14e7d507584c1e42949c0b7a"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Tue Aug 18 20:06:19 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 20:06:19 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Default initialize ACL snapshots and add fallback\n\nDefault initializes all member variables in AclConnectionSnapshot to\nensure deterministic state instantiation across recovery workflows.\n\nAdds an inline no-op fallback for NotifyStateUpdate in AclDataChannel\nwhen credit snapshot updates are disabled. This allows mutation paths\nin AclDataChannel to invoke state update notifications without\nrequiring preprocessor guards while ensuring zero runtime or binary\noverhead when updates are compiled out.\n\nBug: 536070658\nChange-Id: I006b6895da33ba3ba5167cc2dc636d4538ca1c8c\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452553\n"
    },
    {
      "commit": "73e734ef9ade9efe14e7d507584c1e42949c0b7a",
      "tree": "5ff4ca8ca86debe3f7c55b7ff76894228177f1b6",
      "parents": [
        "fecb9bf6e6c85ebb9216f117a582894d0e6655b6"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Tue Aug 18 20:04:45 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 20:04:45 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Elide thread safety from ACL recovery docs\n\nUpdate documentation comments for `RegisterAclStateUpdateCallback` and\n`RecoverAclFromSnapshot` to reflect that these methods are actually\nthread safe, but there is a specific window and order in which they must\nbe called.\n\nBug: 536070658\nChange-Id: I5b4a45cf8ec83144f6c0d6e571d89da3c8555076\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/451012\n"
    },
    {
      "commit": "fecb9bf6e6c85ebb9216f117a582894d0e6655b6",
      "tree": "e82b0e6bf49172c64cceb26d1d1026d2a428649a",
      "parents": [
        "d065ea5bd27b38926a40ffce804c0450121b0fd2"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Tue Aug 18 20:04:37 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 20:04:37 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Harden ACL credit recovery and derive pending\n\nDerive in-flight ACL pending packet counts dynamically during snapshot\nrecovery from connection snapshots instead of relying on a serialized\ntransport-level aggregate.\n\nPreviously, AclTransportSnapshot::pending stored the total aggregate\nof in-flight packets on the transport. In Static credit reservation\nmode, Credits::pending_ tracks only proxy packets; restoring total\nhost and proxy in-flight counts into pending_ caused underflow in\nCredits::Remaining(), allowing credit limit bypasses.\n\nThis change:\n- Removes AclTransportSnapshot and flattens le_controller_max_packets\n  and br_edr_controller_max_packets directly into AclSnapshot.\n- Derives in-flight counts in AclDataChannel::RecoverFromSnapshot()\n  per transport according to the active credit sharing mode.\n- Adds explicit underflow guards to Credits::Remaining().\n- Adds a regression test verifying static credit reservation isolation\n  when host pending packets exceed proxy capacity.\n\nFixed: 547896684\nTest: bazelisk test pw_bluetooth_proxy/...\nChange-Id: Ib8a9330e3052cb0940e5383826665d2c810186ac\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453352\n"
    },
    {
      "commit": "d065ea5bd27b38926a40ffce804c0450121b0fd2",
      "tree": "9dda5b30e4f9308c492c6d6b36bef71316752a97",
      "parents": [
        "7edd08f1ea83970b29bbbb44c55d3cd2a04c8f06"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Tue Aug 18 19:19:47 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 19:19:47 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Unconditionally compile ACL snapshot structs\n\nUnconditionally compile ACL snapshot data structures and state update\nlogic by removing PW_BLUETOOTH_PROXY_CONFIG_ENABLE_RECOVERY guards.\n\nBecause acl_snapshot is a standalone, data-only library, compiling it\nunconditionally allows external container persistence code to link\nagainst snapshot schemas independently of ProxyHost while avoiding\nlinker resolution hazards in recovery-enabled builds.\n\nThis incurs zero code size penalty when recovery is disabled, as the\nlinker strips unreferenced snapshot symbols during dead-code\nelimination.\n\nBug: 536070658\nTest: bazelisk test //pw_bluetooth_proxy/...\nChange-Id: I0f347cbc9f2010950cce902f651dda32fb12fa3e\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/457425\n"
    },
    {
      "commit": "7edd08f1ea83970b29bbbb44c55d3cd2a04c8f06",
      "tree": "64ebe0e53334a39f9b2c1561fae7de15c330a734",
      "parents": [
        "af0b088a9c4ca408a56d5c969c0dcbd964abce5a"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Tue Aug 18 15:05:16 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 15:05:16 2026 -0700"
      },
      "message": "pw_build: Disable third-party telemetry by default\n\nThird-party Bazel rulesets such as Aspect Build include telemetry\n(aspect_tools_telemetry) which by default reports repository metadata\nand usage information during module evaluation.\n\nSetting `common --repo_env\u003dDO_NOT_TRACK\u003d1` in\n`pigweed_recommended.bazelrc` disables this telemetry by default across\nPigweed and downstream projects importing the recommended bazelrc.\n\nChange-Id: I6364c0d5659df54a7ee20dbd0cc912dbaa643767\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/457485\n"
    },
    {
      "commit": "af0b088a9c4ca408a56d5c969c0dcbd964abce5a",
      "tree": "74926e2591af5af29d362d15b9c1331084760878",
      "parents": [
        "2651523a5e084f099b7f8834b39552a66bba3ebc"
      ],
      "author": {
        "name": "Alexei Frolov",
        "email": "frolv@google.com",
        "time": "Tue Aug 18 13:10:34 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 13:10:34 2026 -0700"
      },
      "message": "pw_module: Support creating Python modules\n\nEnables py as a module creation language option with templates for all\nthe boilerplate files.\n\nChange-Id: Ide109f82f61d6162f98427f737f1a2e2cdd80c49\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/397892\n"
    },
    {
      "commit": "2651523a5e084f099b7f8834b39552a66bba3ebc",
      "tree": "c0b4a87868d7e146150e2f88e99c03fbdecdfeeb",
      "parents": [
        "36b00dfe81dc45faecbdc1991417432f83115615"
      ],
      "author": {
        "name": "Jonathon Reinhart",
        "email": "jrreinhart@google.com",
        "time": "Tue Aug 18 11:31:57 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 11:31:57 2026 -0700"
      },
      "message": "pw_tokenizer: Clarify TOKENIZATION_OPTIONAL field option\n\nThe previous description was a little vague. The new description aligns\nwith the docs (pw_tokenizer/tokenization.rst \"Tokenized fields in\nprotocol buffers\").\n\nSee https://pwbug.dev/517107142#comment4\n\nBug: 517107142\nChange-Id: Ie858c109ce40025f4447d63ec2533cb35a64b11f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/441432\n"
    },
    {
      "commit": "36b00dfe81dc45faecbdc1991417432f83115615",
      "tree": "328e8799869efb65ddf466b64f44a5caf57475f5",
      "parents": [
        "b476e17259d497c424ccb75d939e36bd531bdd07"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Mon Aug 17 19:09:44 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 17 19:09:44 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Use Function instead of InlineFunction\n\nBug: 536070658\nChange-Id: I484bf233f3895664b29bd40020d14b45cb8b592b\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/456765\n"
    },
    {
      "commit": "b476e17259d497c424ccb75d939e36bd531bdd07",
      "tree": "b13b11114ecc7169d8fa5bdc709372385885537b",
      "parents": [
        "67cdec2ce4db04b66e88d2a463a20432cfe18e79"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 17 13:23:34 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 17 13:23:34 2026 -0700"
      },
      "message": "pw_rp2350: Update zephyr target to use llvm toolchain\n\nChange-Id: I76f4a9d989e953fd84fce88b92701fc86c464a92\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/456725\n"
    },
    {
      "commit": "67cdec2ce4db04b66e88d2a463a20432cfe18e79",
      "tree": "899148b36b8adeafec2f43846b796110e61cd684",
      "parents": [
        "8d3f13936f12998fdf8339412a97db23d108442c"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 17 05:12:51 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 17 05:12:51 2026 -0700"
      },
      "message": "roll: go\n\nFrom version:3@1.26.5\nTo version:3@1.26.6\n\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8673223837583236929\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Ibadbadc3d083bd540ad2dd6728b3e5409f1dd6fd\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/456485\n"
    },
    {
      "commit": "8d3f13936f12998fdf8339412a97db23d108442c",
      "tree": "e42b00309fbf4ca798f0affeceaf110ea64e94b3",
      "parents": [
        "2544efad282b6098c7604fc19fc4a6621fa77813"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 16 13:59:31 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 16 13:59:31 2026 -0700"
      },
      "message": "roll: gn\n\nFrom git_revision:64cfb8344ec3e8585a89a3836716a026e2771fcb\nTo git_revision:e8a8e0932a5e42a99e5896aa58e3b8290f4e5b8c\n\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8673281766409682097\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: I5bde9ee891497f1ee55cff1b18ee637036e5822f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/456185\n"
    },
    {
      "commit": "2544efad282b6098c7604fc19fc4a6621fa77813",
      "tree": "b4824a0539e77522343f12ceb6b43854fc1c62a9",
      "parents": [
        "97f2ab13e038744b8bb4e0b75ddfdad98591a543"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 16 05:33:22 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sun Aug 16 05:33:22 2026 -0700"
      },
      "message": "roll: luci\n\nbb\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\nluci-auth\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\ngerrit\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\ngitiles\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\ncas\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\nled\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:03460cbcb7fcfe86272f3eabd45a8b0e7675f46b\n\nswarming\nFrom git_revision:03c939b7ce547caf985971eab32b5ae543ef6747\nTo git_revision:0db59787db18aa7e09069238cec3fdb153d7c4be\n\nlogdog\nFrom git_revision:03c939b7ce547caf985971eab32b5ae543ef6747\nTo git_revision:03460cbcb7fcfe86272f3eabd45a8b0e7675f46b\n\nprpc\nFrom git_revision:0076001735d818afede1ccc523cc9b87945761a1\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\nluci-cv\nFrom git_revision:03c939b7ce547caf985971eab32b5ae543ef6747\nTo git_revision:0a02bf64b2a5028a64fb5e168aac1e137da04762\n\nRoll-Count: 10\nRoller-URL: https://cr-buildbucket.appspot.com/build/8673312232733732049\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: I530cc0bbba17195d348ae8004d923dcdb6430631\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/456045\n"
    },
    {
      "commit": "97f2ab13e038744b8bb4e0b75ddfdad98591a543",
      "tree": "2b0df35d05199a546735d555168ec577fb66a041",
      "parents": [
        "1f91357f563ccfeceae97bd06cd3be2f0c3eb160"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 15 19:58:19 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 15 19:58:19 2026 -0700"
      },
      "message": "roll: fuchsia-infra-bazel-rules 2b1ed07..f9f35ef (2 commits)\n\nf9f35ef:https://fuchsia.googlesource.com/fuchsia-infra-bazel-rules/+/f9f35efc5bcc4f57da8fef1de54d9e659f43af7e [roll] Roll fuchsia-infra-bazel-rules-luci_auth-cipd packages to git_revision:2de3d5d5b1e9c5e75f930c363904413000823425\n24c6d7f:https://fuchsia.googlesource.com/fuchsia-infra-bazel-rules/+/24c6d7f10841ef7ee5ab2dc3528e7745e9038411 [roll] Roll fuchsia-infra-bazel-rules-cas-cipd packages to git_revision:2de3d5d5b1e9c5e75f930c363904413000823425\n\nRolled-Repo: https://fuchsia.googlesource.com/fuchsia-infra-bazel-rules\nRolled-Commits: 2b1ed073e9c000..f9f35efc5bcc4f\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8673349289683455233\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Icccbb610eb89d3db6024b4e594f6f3f8491b2f89\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/455825\n"
    },
    {
      "commit": "1f91357f563ccfeceae97bd06cd3be2f0c3eb160",
      "tree": "ce3a0cba7874686ec5fe400cca5b5bef626f3a15",
      "parents": [
        "b5e6c9cc6b125362172c90f528a1a9823ecd41de"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 15 19:18:53 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 15 19:18:53 2026 -0700"
      },
      "message": "roll: ninja\n\nFrom git_revision:23052e34c1b855e1a91600b593e315ba5d25e6d4\nTo git_revision:b08a2a3be23a53e4173aa861a77bccc4470ce8d2\n\nRoll-Count: 1\nRoller-URL: https://cr-buildbucket.appspot.com/build/8673352309551557937\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Ibf070ea6f8df92ed96264eb1ab0d11ed4bf245fc\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/455805\n"
    },
    {
      "commit": "b5e6c9cc6b125362172c90f528a1a9823ecd41de",
      "tree": "ab43ccaf8ce82789eb78cbc83d55ee13ab1874ad",
      "parents": [
        "88af1ce547ff9fc197315187a76950fd809c19aa"
      ],
      "author": {
        "name": "pigweed-roller",
        "email": "pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 15 14:19:41 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 15 14:19:41 2026 -0700"
      },
      "message": "roll: rust-analyzer\n\nrust-analyzer\nFrom git_revision:61504e12b88ba8b251aabca786a94973e4010a12\nTo git_revision:baabc5825f3f6640e99fe32887bbeced640f825e\n\nMODULE.bazel.lock\nRegenerated MODULE.bazel.lock\n\nRoll-Count: 2\nRoller-URL: https://cr-buildbucket.appspot.com/build/8673370617827321649\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: Ibf6df6c7bc3d0f2de545c567aaa1cbd19f4c6c39\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/455785\n"
    },
    {
      "commit": "88af1ce547ff9fc197315187a76950fd809c19aa",
      "tree": "3fe480cfd5cd2c1193f91364b71c6d8899069436",
      "parents": [
        "7c84c203cbe5301f15f1433215af9a7852432d16"
      ],
      "author": {
        "name": "Kayce Basques",
        "email": "kayce@google.com",
        "time": "Fri Aug 14 13:28:46 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Aug 14 13:28:46 2026 -0700"
      },
      "message": "docs: Update changelog for July 2026\n\nChange-Id: I5b3fca6ef13b3e6da6fc7caba5505c7533d86e85\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452352\n"
    },
    {
      "commit": "7c84c203cbe5301f15f1433215af9a7852432d16",
      "tree": "847f6bf3d204f721251692a1e1801a66ff28ab38",
      "parents": [
        "ba63e846bf2b2170fe5bf4c41137b10671d1d58e"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Thu Aug 13 12:48:47 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 12:48:47 2026 -0700"
      },
      "message": "pw_rp2350: Add C++ unittest service for freertos \u0026 zephyr\n\nChange-Id: I80be82758529f3c9e78ed793ef17548d83fb4aa9\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/442192\n"
    },
    {
      "commit": "ba63e846bf2b2170fe5bf4c41137b10671d1d58e",
      "tree": "cb4e008146f0b15ac8ed9c5cf2b835ed1f7dba32",
      "parents": [
        "2d180223358664bfa02a04c95145795e3d769a57"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Thu Aug 13 12:26:54 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 12:26:54 2026 -0700"
      },
      "message": "pw_kernel: Add host side debug mailbox client library\n\nChange-Id: I82fa4662e0e1fbc4ed2930f2e05221546a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450333\n"
    },
    {
      "commit": "2d180223358664bfa02a04c95145795e3d769a57",
      "tree": "6fd14272e2a2e368d6a9a9247b0b43795529c243",
      "parents": [
        "92ae0ca79dd97d6b87dc24c4e75fd7de9561c22b"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Thu Aug 13 12:17:08 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 12:17:08 2026 -0700"
      },
      "message": "pw_kernel: Add crate for shared debug mailbox protocol enums\n\nThis change adds a new shared protocol crate `pw_kernel_debug_mailbox_protocol`\nin `pw_kernel/lib/pw_kernel_debug_mailbox` to house mailbox protocol enums and\nmessages shared between target systems and host tooling.\n\nChange-Id: I7e8c453b425668cbb447111a3e304e536a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450332\n"
    },
    {
      "commit": "92ae0ca79dd97d6b87dc24c4e75fd7de9561c22b",
      "tree": "15216ff9a65101bf55d0d2789e11dae8101743c6",
      "parents": [
        "9b7b9197d323a385b925865b4c1b6d96bfab65c3"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Thu Aug 13 11:43:08 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 11:43:08 2026 -0700"
      },
      "message": "pw_kernel: Use debug mailbox in e2e tracing test\n\nChange-Id: I986413032a94dc951b3cc64639d0ded26a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/439194\n"
    },
    {
      "commit": "9b7b9197d323a385b925865b4c1b6d96bfab65c3",
      "tree": "04a8d2e14e3d182eb8ac05359d758214ef93f8af",
      "parents": [
        "5305b6094d0fe2ae01b6521833c15b8f38c2c41f"
      ],
      "author": {
        "name": "Mateus Azis",
        "email": "azis@google.com",
        "time": "Thu Aug 13 10:52:43 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 10:52:43 2026 -0700"
      },
      "message": "pw_async2: Support move-only types in Map and Then\n\nUpdate MapFuture::Pend and ThenFuture::Pend to pass the resolved value\nto the user-provided function using std::move. This enables using these\ncombinators with move-only types.\n\nBug: 545229352\nTAG\u003dagy\nCONV\u003d03720c51-ac74-472a-8ab3-11007da5a7f7\n\nChange-Id: I4d7e9b2927c7a171e83dc0be8042205c42a210ce\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/454706\n"
    },
    {
      "commit": "5305b6094d0fe2ae01b6521833c15b8f38c2c41f",
      "tree": "05d0c914648ce14624d3bb1ce1e7fa0f8ca676fb",
      "parents": [
        "9bc095e8efdfc81b2cf721b05789dc01a00957fd"
      ],
      "author": {
        "name": "Jason Yi",
        "email": "jsonyi@google.com",
        "time": "Thu Aug 13 07:34:53 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 07:34:53 2026 -0700"
      },
      "message": "pw_bluetooth: Add request_opcode_in_error_uint in att.emb\n\nAdd request_opcode_in_error_uint in AttErrorRsp as a UInt view overlay\nat byte offset 1 so callers can write or inspect arbitrary unknown or\ninvalid request opcodes without requiring enum conversion.\n\nChange-Id: If8d890cb5be308ed51bc281c530874db6a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453172\n"
    },
    {
      "commit": "9bc095e8efdfc81b2cf721b05789dc01a00957fd",
      "tree": "bb6977bc71638cdaf247450a96f88d6065628811",
      "parents": [
        "33efd737cc1ffcb78a3e6592e72e84ea2fd90abc"
      ],
      "author": {
        "name": "Jonathon Reinhart",
        "email": "jrreinhart@google.com",
        "time": "Wed Aug 12 20:47:51 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 20:47:51 2026 -0700"
      },
      "message": "pw_log_android: Make PW_LOG_LEVEL_FATAL fatal again\n\nSince https://pwrev.dev/295040, invoking\nPW_HANDLE_LOG(PW_LOG_LEVEL_FATAL, ...) would no longer abort the\nprocess, and would continue executing.\n\nMaking matters even worse, the pw_assert_log implementation of\nPW_HANDLE_CRASH() follows that up with a dubious PW_UNREACHABLE, which\nmeans that the compiler likely stopped emitting code at that point (in\nthe branch or function). As a result, execution continues at whatever\narbitrary code happens to follow! If you\u0027re lucky, this results in a\nSIGSEGV.\n\nThis corrects the problem by routing PW_LOG_LEVEL_FATAL to\n__android_log_assert() which properly aborts (and is even annotated as\nnoreturn).\n\nThis also replaces the constexpr convert_pigweed_to_android_log_level()\nfunction with a \u0027static inline\u0027 function, since PW_LOG should be usable\nin C. In the common case of a constant log level, the compiler should\nstill be able to optimize it away.\n\nFinally, ths changes the conversion default from ANDROID_LOG_DEBUG to\nANDROID_LOG_WARN. This should never be used since we handle all current\nPW_LOG_LEVEL_* values, but ensures that such a log is visible in case a\ndifferent level is added.\n\nTest: Verified (`logcat -s DEBUG`) that processes now crash with SIGABRT\n  at the intended location.\nBug: 543566936\nChange-Id: Idd06077f0f4570d868ad0971fbaad84a986a558a\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452252\n"
    },
    {
      "commit": "33efd737cc1ffcb78a3e6592e72e84ea2fd90abc",
      "tree": "ffa23ba6ae3eefbaa629d99544239a2ac90ccddd",
      "parents": [
        "823869564abc125d82409282ac8f3c301d0534d6"
      ],
      "author": {
        "name": "Alexei Frolov",
        "email": "frolv@google.com",
        "time": "Wed Aug 12 17:56:38 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 17:56:38 2026 -0700"
      },
      "message": "pw_async2: Make FutureOrValue movable\n\nFutureOrValue originally was not movable as a strict way to enforce that\nusers cannot misuse it by returning it from fuctions. However, this\nprecludes a common, valid use case where FutureOrValue is stored within\na composite future, which must be movable by definition.\n\nThis removes the move restriction on FutureOrValue, instead adding\nstronger wording to the doc about how and how not to use it.\n\nChange-Id: Ie85c11c6245e8264854b0cce06f73256e0920ce3\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453972\n"
    },
    {
      "commit": "823869564abc125d82409282ac8f3c301d0534d6",
      "tree": "671ee1c80767d846b201f963f03fc6c9eb2fc4bf",
      "parents": [
        "e3935a40869b19834018f19ed3d35cebeb2547d9"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Wed Aug 12 17:16:08 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 17:16:08 2026 -0700"
      },
      "message": "pw_kernel: Add mailbox support to host side tooling\n\nChange-Id: Ib410bb83b64241bb445dd0c4f20000006a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/439193\n"
    },
    {
      "commit": "e3935a40869b19834018f19ed3d35cebeb2547d9",
      "tree": "2987c7b3bcf4e36aebf6aca0252c3b871b9d7a0d",
      "parents": [
        "1e2949fa39b59b4ab25fedf3daeb339f0f67be18"
      ],
      "author": {
        "name": "Ryan Albarelli",
        "email": "albarelli@google.com",
        "time": "Wed Aug 12 17:10:48 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 17:10:48 2026 -0700"
      },
      "message": "pw_i2c_mcuxpresso: Add check for reading too few bytes\n\nAfter the read is complete, if otherwise successful, check whether\nthe number of bytes read matches the number requested. If less,\nlog a warning and return a DATA_LOSS error.\n\nThis feature can be enabled/disabled in the constructor for the driver.\n\nTested: changed read to be too long and verified error result\n\nBug: 448097025\nChange-Id: I1135bfabc79c8383b1d358ffb1a175ac29f62508\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452712\n"
    },
    {
      "commit": "1e2949fa39b59b4ab25fedf3daeb339f0f67be18",
      "tree": "50b923983531ffbbfe8dc9303ac69e166b38b11d",
      "parents": [
        "64683199fcdf7a912481311a4616adad348a4d8d"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Wed Aug 12 16:51:57 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 16:51:57 2026 -0700"
      },
      "message": "pw_kernel: Add a debug mailbox library\n\nAdds `pw_kernel_debug_mailbox`, a lightweight, lock-free mailbox\nmechanism for host-driven system debugging and observability (e.g., via GDB or probe-rs)`.\n\nChange-Id: I5f18e47f5f5747adf4bbb9103a2898076a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/436513\n"
    },
    {
      "commit": "64683199fcdf7a912481311a4616adad348a4d8d",
      "tree": "26545f52214738d29859d2f2682906104b9f80f9",
      "parents": [
        "5ff0d190e0f76626838477f96327e5210c32ee7a"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Wed Aug 12 16:35:20 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 16:35:20 2026 -0700"
      },
      "message": "pw_kernel: Sleep bootstrap thread in userspace tests\n\nIn userspace app tests, the bootstrap thread previously busy-looped\n(`loop {}`) after calling `codegen::start()`. Because many of these\ntests were written before `pw_time_core` and `sleep_until` were\navailable in pw_kernel, they could not yield CPU time to the kernel\nand other threads.\n\nThis updates all userspace test targets to sleep the bootstrap thread\nindefinitely with `kernel::sleep_until(Arch, Instant::MAX)` instead of\nbusy-looping, allowing the bootstrap thread to properly yield to the\nscheduler and kernel.\n\nChange-Id: Ic0b3814324c69214f3df8ce5f8ddf2316a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/451033\n"
    },
    {
      "commit": "5ff0d190e0f76626838477f96327e5210c32ee7a",
      "tree": "74382ac623fc8bc9234ab661b7479c38911f3c15",
      "parents": [
        "e177c4c9918bfa5ccb033ed475d5fb2248a8e004"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Wed Aug 12 16:08:17 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 16:08:17 2026 -0700"
      },
      "message": "pw_ide: Release v1.11.1\n\nChange-Id: Ibc301b5c2588727e6afec6806a5323a54dcb36e8\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/454105\n"
    },
    {
      "commit": "e177c4c9918bfa5ccb033ed475d5fb2248a8e004",
      "tree": "373433fd45dda654704e4236d8d2f5ff599c64e0",
      "parents": [
        "9c6a517b398ddb82efe31cd545b782f512463d3e"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Wed Aug 12 15:44:22 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 15:44:22 2026 -0700"
      },
      "message": "pw_ide: vscode: Fix Rust target selection and rust-analyzer\n\nAlways update rust-analyzer.linkedProjects when selecting a Rust target in VS Code, even when ide_config.json is missing. Previously, linkedProjects was only updated if rustOverride was set, causing rust-analyzer.linkedProjects to be unset for targets generated via pw_compile_commands_generator.\n\nAdditionally, update the sidebar webview to check language-specific target generation (hasRust / hasCpp) and match sanitized Bazel target labels.\n\nChange-Id: I63b8485fecaf3e2dee872445ded9c1fed5704a64\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452652\n"
    },
    {
      "commit": "9c6a517b398ddb82efe31cd545b782f512463d3e",
      "tree": "d5bcff4e0b56e7f3e3e8e1833968989663905855",
      "parents": [
        "9bd6c002202876b6afa09c590ef78d7892d9c6f6"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Wed Aug 12 15:27:13 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 15:27:13 2026 -0700"
      },
      "message": "pw_kernel: Trace syscalls when SYSCALL_TRACE is enabled\n\nAdd trace_span_start_if! and trace_span_end_if! macros and instrument all\nkernel syscall handlers to record entry arguments and return values in trace\nspans when SYSCALL_TRACE is enabled.\n\nChange-Id: I0b9cae0a6d319f50c15ea2c8fd7478b86a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450215\n"
    },
    {
      "commit": "9bd6c002202876b6afa09c590ef78d7892d9c6f6",
      "tree": "fb4a1bb54994fd940b8bdcd499374e24a1127214",
      "parents": [
        "55e8228820d016a45022619dbdd70ee3b79588f8"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Wed Aug 12 15:17:48 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 15:17:48 2026 -0700"
      },
      "message": "pw_ide: Exclude test files from webview TypeScript config\n\nUnit test files placed under src/webview (such as root.unit.test.ts)\nwere being matched by tsconfig.webview.json. Because this tsconfig is\ntailored for browser DOM environments without Node or test framework\ntype definitions, bundling with Webpack failed with missing type errors.\n\nThis change excludes test files from tsconfig.webview.json so they are\nnot bundled during extension packaging.\n\nChange-Id: Ieb893a65b3c7187937b4bef3a48ef47babaed650\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452353\n"
    },
    {
      "commit": "55e8228820d016a45022619dbdd70ee3b79588f8",
      "tree": "5410acae3e1d0af0681540d46d992d876941ea35",
      "parents": [
        "e9aa87f9d4272b2e6b82c1a23c23d3cf40a0eae5"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Wed Aug 12 12:34:59 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 12 12:34:59 2026 -0700"
      },
      "message": "pw_kernel: Add support for GDB RSP Run-Length Encoding (RLE)\n\nWhile RLE encoding is optional for GDB RSP stubs to output, we need\nto support it because `probe-rs` uses it in its responses and it is\nnot configurable. RLE expands repeated characters (\u003cchar\u003e*\u003crepeat_count_char\u003e)\nwhere count is (ASCII - 29).\n\nChange-Id: I0cb9f082b76e8b59e7735c3726680a726a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/440432\n"
    },
    {
      "commit": "e9aa87f9d4272b2e6b82c1a23c23d3cf40a0eae5",
      "tree": "bba6895bd73b6ba3c2c057c222ebef6067cb949e",
      "parents": [
        "63ce98123cb832024ce5fdd959ab9293ba5a4e73"
      ],
      "author": {
        "name": "Austin Foxley",
        "email": "afoxley@google.com",
        "time": "Tue Aug 11 17:32:10 2026 -0700"
      },
      "committer": {
        "name": "Rob Mohr",
        "email": "mohrr@google.com",
        "time": "Tue Aug 11 17:32:10 2026 -0700"
      },
      "message": "pw_presubmit: Allow multiple directories to be passed to format CLI\n\nBug: 391690594\nChange-Id: Ia09861a1cd53fe1d96e1ccbe3777271b4d491252\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453272\n"
    },
    {
      "commit": "63ce98123cb832024ce5fdd959ab9293ba5a4e73",
      "tree": "bde417af42dedee9c63ce98efecf9e37c659a5e5",
      "parents": [
        "f0f873d69f22ccd0593378d5dea242e704b59ef0"
      ],
      "author": {
        "name": "Austin Foxley",
        "email": "afoxley@google.com",
        "time": "Tue Aug 11 17:25:51 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 11 17:25:51 2026 -0700"
      },
      "message": "format: Fix formatting issues when running lintformat-full\n\nApply formatting fixes across various files to resolve formatting check\nfailures across all files on latest toolchain.\n\nChange-Id: I2fa5755c8d4318d07b90d580e81b9d28c05f5b24\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453312\n"
    },
    {
      "commit": "f0f873d69f22ccd0593378d5dea242e704b59ef0",
      "tree": "9ab5ba38d041d03ea05e44cefa2a415bf50c6faa",
      "parents": [
        "46ba7ac257bf878411c524f593361844089cd8a4"
      ],
      "author": {
        "name": "Austin Foxley",
        "email": "afoxley@google.com",
        "time": "Tue Aug 11 15:40:44 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 11 15:40:44 2026 -0700"
      },
      "message": "pw_build: Add args field to workflow Tool schema\n\nAllow specifying a set of args to pass to tool invocations (similar to\nBuild).\n\nThis is distinct from analyzer_friendly_args which already exists that\nis meant for specifying args to make the tool \u0027hermetic/analyzer\u0027\nfriendly (--check mode vs --fix).\n\nFix program_group construction to forward all args (this new field +\nexisting).\n\nChange-Id: I3c3950fb0dd745e8057094ad92ae05b8a03ff094\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/453254\n"
    },
    {
      "commit": "46ba7ac257bf878411c524f593361844089cd8a4",
      "tree": "d10183004d9ceeefaa168df0b6438145b156536f",
      "parents": [
        "8f61e66869029a8f9ebc19b9c13e595698e5c0ca"
      ],
      "author": {
        "name": "Ali Saeed",
        "email": "saeedali@google.com",
        "time": "Mon Aug 10 20:26:45 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 20:26:45 2026 -0700"
      },
      "message": "pw_bluetooth_proxy: Fix typo in Sniff test helper\n\nChange-Id: I64733257bd62f863921801ff79a86a925ae40d84\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452552\n"
    },
    {
      "commit": "8f61e66869029a8f9ebc19b9c13e595698e5c0ca",
      "tree": "e8e6dbb52439640a358ae2f1f65c78be75cf8062",
      "parents": [
        "6f0aac30f8313cbd5103686097a1f6b3098e8aac"
      ],
      "author": {
        "name": "Asad Memon",
        "email": "asadmemon@google.com",
        "time": "Mon Aug 10 16:16:53 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 16:16:53 2026 -0700"
      },
      "message": "pw_ide: Add Rust code intelligence documentation for Bazel\n\nChange-Id: If9d0334703e3b291eb0c85d7c1a5a9719bb62af2\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/449292\n"
    },
    {
      "commit": "6f0aac30f8313cbd5103686097a1f6b3098e8aac",
      "tree": "6e616a10cada3b19afa7187775661165f368b9a9",
      "parents": [
        "4db32639934eaa39c90da971df6c4d7a2e80da0e"
      ],
      "author": {
        "name": "Dave Roth",
        "email": "davidroth@google.com",
        "time": "Mon Aug 10 16:02:40 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 16:02:40 2026 -0700"
      },
      "message": "pw_kernel: Include system_image .elf \u0026 .bin in test runfiles\n\nChange-Id: I9929d455fecb51721916ab59518ac0a23d6a6c8c\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452572\n"
    },
    {
      "commit": "4db32639934eaa39c90da971df6c4d7a2e80da0e",
      "tree": "6c8d89691084a017c5f8c09a29834709ddd1dfb7",
      "parents": [
        "56bbb099ae894835d3347592694caa33398ba170"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Mon Aug 10 14:41:47 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 14:41:47 2026 -0700"
      },
      "message": "docs: Update documentation for the pw_interrupt backends\n\n- Explain how to configure each backend\n- Replace a TODO in the pw_interrupt backends.rst\n- Cleanup an example Bazel excerpt in the compatibility.rst file which\n  happened to reference pw_interrupt.\n\nChange-Id: I8d4adeb36e9533765c389f20177d09b1582f04d4\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/446694\n"
    },
    {
      "commit": "56bbb099ae894835d3347592694caa33398ba170",
      "tree": "5d4c61895ecb6c338cfb17ac7776475ac347ec72",
      "parents": [
        "3a9867fdace9cfd204caf610cd181d51c497c3e2"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@google.com",
        "time": "Mon Aug 10 13:51:36 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 13:51:36 2026 -0700"
      },
      "message": "pw_elf: Silence unused warning\n\nFixes: b/544792930\nChange-Id: Ib881a875e7c4da0a80aacc5c01a711c1760a0876\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452412\n"
    },
    {
      "commit": "3a9867fdace9cfd204caf610cd181d51c497c3e2",
      "tree": "d7ba3165d5c15ec5f50a27293bd6867cf985fe32",
      "parents": [
        "752ea21ad60768c19115ab8a60b41d6d56126607"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Mon Aug 10 13:27:33 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 13:27:33 2026 -0700"
      },
      "message": "pw_sync_zephyr: Fix assertion in Mutex:lock()\n\nPW_DASSERT was used to assert that the return value of the k_mutex_lock\ncall indicated success. However this was done by making the call in the\nmacro, which means the call is not made if debug assertions are\ndisabled.\n\nFix the code to make the call outside of the macro, and check the result\nafterwards.\n\nAlso adds a simple integration test to ensure Mutex is implemented\ncorrectly, to catch issues like this in the future. This will also serve\nas an example for extending it to cover the other pw_sync_zephyr backend\nintegration details.\n\nTest: ./pw build pw_tests_smoke_tests  # in zephyr-bazel\nChange-Id: I8410cb83a907406952659d4c6767d2ca2131af3c\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452372\n"
    },
    {
      "commit": "752ea21ad60768c19115ab8a60b41d6d56126607",
      "tree": "5a108a3b5a1d0cc2eec2a151186cd7e860d0fdee",
      "parents": [
        "7a8ab7d590ad916f4af80f9b5748d83a16e64270"
      ],
      "author": {
        "name": "Kayce Basques",
        "email": "kayce@google.com",
        "time": "Mon Aug 10 12:07:52 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 12:07:52 2026 -0700"
      },
      "message": "docs: Remove work orders\n\nWork orders were essentially an early attempt at agent skills, before\nskills had been standardized. Most of the old workflows in\n//docs/work_order have already been migrated over to //.agents/skills.\nThe rest are unused.\n\nChange-Id: Iff6656181405b5a8b3cc73638095362606e9041c\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452192\n"
    },
    {
      "commit": "7a8ab7d590ad916f4af80f9b5748d83a16e64270",
      "tree": "be185d5e9c2c22bdc618bdb8c21c2f7b81dc1d2d",
      "parents": [
        "d7948b70eeb5da8d1613acd6f0a424e520020bbd"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Mon Aug 10 12:02:31 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 12:02:31 2026 -0700"
      },
      "message": "pw_kernel: Support span events in k trace\n\nChange-Id: I065b45d6f93b8c472619d382d7c978ea6a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450272\n"
    },
    {
      "commit": "d7948b70eeb5da8d1613acd6f0a424e520020bbd",
      "tree": "f34e72f24ab384a2a60655381e24533f2b29a5c9",
      "parents": [
        "4c0d4b7fca58baf941d2548b010d201cac72eff0"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Mon Aug 10 12:02:17 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 12:02:17 2026 -0700"
      },
      "message": "pw_kernel: Add macros to open and close tracing spans\n\nChange-Id: Ia701e645d226c52a9e2b72013f0b60d96a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/450214\n"
    },
    {
      "commit": "4c0d4b7fca58baf941d2548b010d201cac72eff0",
      "tree": "a9e821d179d33949b2a9836a635866c024194071",
      "parents": [
        "6dd08d0bdd7bedec327c7ad21e6b9313cc9bd8e4"
      ],
      "author": {
        "name": "ravagojones",
        "email": "ravagojones@google.com",
        "time": "Mon Aug 10 12:02:10 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 12:02:10 2026 -0700"
      },
      "message": "pw_kernel: Add a TraceSpan record\n\nAlso the pw_kernel_tracing unit tests were not getting run, so fix that.\n\nChange-Id: I80656e540a0b08c700df92b7312d91fa6a6a6964\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/431673\n"
    },
    {
      "commit": "6dd08d0bdd7bedec327c7ad21e6b9313cc9bd8e4",
      "tree": "78ea31ade28ec54a0866aa43bd58177e0740559f",
      "parents": [
        "4432cc52382ed823abede260354805a7770ca8eb"
      ],
      "author": {
        "name": "Matthew Sedam",
        "email": "matthewsedam@google.com",
        "time": "Mon Aug 10 10:14:44 2026 -0700"
      },
      "committer": {
        "name": "CQ Bot Account",
        "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 10:14:44 2026 -0700"
      },
      "message": "pw_metric: Fix Android build\n\nThis CL upstreams changes needed to fix\nthe Android build in Android.bp files.\n\nNO_IFTTT\u003dFixing build issues\nBug: 542607349\nChange-Id: I27a9eef7288253a2043dac7db65b0a0ee7d44fa6\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/452032\n"
    }
  ],
  "next": "4432cc52382ed823abede260354805a7770ca8eb"
}
