)]}'
{
  "log": [
    {
      "commit": "31e4fb1498f47dfbf18b414acbbbeac26dcda366",
      "tree": "187d3262277a40415ce189821909abebbcf49169",
      "parents": [
        "2128e1c73ff0c0dffc4869b52a8664cac7560455"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 15:45:34 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 15:45:34 2026 -0400"
      },
      "message": "monitor: Add decoding support for HIDS 1.1 flags and attributes\n\nThis adds support for HIDS 1.1 SCI flags and attributes:\n\n\u003e LE-ACL: Handle 2048 flags 0x02 dlen 9\n      ATT: Read Response (0x0b) len 4\n        Handle: 0x0021 Type: HID Information (0x2a4a)\n        Value[4]:\n        11 01 00 0f                                      ....\n            bcdHID: 0x0111\n            bCountryCode: 0x00\n            Flags: 0x0f\n            RemoteWake (0x01)\n            NormallyConnectable (0x02)\n            SCI Supported (0x04)\n            SCI Low Power Mode Supported (0x08)\n\u003c LE-ACL: Handle 2048 flags 0x00 dlen 7\n      ATT: Read Request (0x0a) len 2\n        Handle: 0x003d Type: HID SCI Information (0x2c3a)\n\u003e LE-ACL: Handle 2048 flags 0x02 dlen 19\n      ATT: Read Response (0x0b) len 14\n        Handle: 0x003d Type: HID SCI Information (0x2c3a)\n        Value[14]:\n        08 02 0a 00 14 00 0a 00 08 00 08 00 08 00        ..............\n            Minimum Supported Connection Interval: 1.000 ms (0x08)\n            Number of Supported Subgroups: 2\n              Minimum Connection Interval[0]: 1.250 ms (0x000a)\n              Maximum Connection Interval[0]: 2.500 ms (0x0014)\n              Connection Interval Stride[0]: 1.250 ms (0x000a)\n              Minimum Connection Interval[1]: 1.000 ms (0x0008)\n              Maximum Connection Interval[1]: 1.000 ms (0x0008)\n              Connection Interval Stride[1]: 1.000 ms (0x0008)\n\u003c LE-ACL: Handle 2048 flags 0x00 dlen 7\n      ATT: Read Request (0x0a) len 2\n        Handle: 0x003f Type: HID SCI Mode (0x2c39)\n\u003e LE-ACL: Handle 2048 flags 0x02 dlen 6\n      ATT: Read Response (0x0b) len 1\n        Handle: 0x003f Type: HID SCI Mode (0x2c39)\n        Value[1]:\n        00                                               .\n            Mode: None (0x00)\n"
    },
    {
      "commit": "2128e1c73ff0c0dffc4869b52a8664cac7560455",
      "tree": "8f481e17d158d191885f1d202ab57dc1407d6820",
      "parents": [
        "d01616f0c276a441dad8afe4e8f7bb261b26ba0a"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 15:09:38 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 15:33:30 2026 -0400"
      },
      "message": "shared/util: Add decoding support for HIDS 1.1 UUIDs\n\nThis adds support for HIDS 1.1 SCI UUIDs:\n\nHID SCI Mode(0x2c39)\nHID SCI Information(0x2c3a)\n"
    },
    {
      "commit": "d01616f0c276a441dad8afe4e8f7bb261b26ba0a",
      "tree": "6498623ad3743af96318b61d191ab1486f531f59",
      "parents": [
        "303ea3c539b80778eaea68900c9ea9bb421a97c0"
      ],
      "author": {
        "name": "Jinwang Li",
        "email": "jinwang.li@oss.qualcomm.com",
        "time": "Wed Apr 29 19:48:06 2026 +0800"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 11:58:09 2026 -0400"
      },
      "message": "gatt-client: Fix use-after-free caused by reentrant client teardown\n\nbtd_gatt_client_service_removed() can be called reentrantly via\nbt_gatt_client_unref() after the services queue has already been freed,\nresulting in a use-after-free.\n\nReset client-\u003eready to false before destroying the services queue to\nprevent reentrant calls from dereferencing freed memory.\n\nThis was found with the following backtrace:\n\n    #0  match_service_handle ()\n    #1  queue_remove_if ()\n    #2  queue_remove_all ()\n    #3  btd_gatt_client_service_removed ()\n    #4  gatt_service_removed ()\n    #5  handle_notify ()\n    #6  queue_foreach ()\n    #7  notify_service_changed ()\n    #8  gatt_db_service_destroy ()\n    #9  queue_remove_all ()\n    #10 gatt_db_clear_range ()\n    #11 service_changed_failure ()\n    #12 discovery_op_unref ()\n    #13 bt_gatt_request_unref ()\n    #14 bt_gatt_client_cancel_all ()\n    #15 bt_gatt_client_free ()\n    #16 bt_gatt_client_unref ()\n    #17 bt_gatt_client_free ()\n    #18 bt_gatt_client_unref ()\n    #19 btd_gatt_client_destroy ()\n    #20 device_free ()\n"
    },
    {
      "commit": "303ea3c539b80778eaea68900c9ea9bb421a97c0",
      "tree": "a2b719649d33fff2e3ca9106bc93e9ef730bb041",
      "parents": [
        "5d4792dc2a2088e7355e19b5fa763159f2a8231d"
      ],
      "author": {
        "name": "Prathibha Madugonde",
        "email": "prathibha.madugonde@oss.qualcomm.com",
        "time": "Thu Apr 30 13:11:41 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 09:40:26 2026 -0400"
      },
      "message": "unit/test-rap: Add PTS tests for CS reflector\n\nAdded below RAS - Real time Ranging PTS testcases:\nRAS/SR/RCO/BV-01-C [Characteristic Read - RAS Features]\nRAS/SR/RRD/BV-01-C [Real-time Ranging Data]\nRAS/SR/RRD/BV-03-C [Real-time Ranging Data notifications and indications]\nRAS/SR/RRD/BV-05-C [Real-Time Ranging Data disconnection]\nRAS/SR/SPE/BI-11-C [Client enables both Real-time and On-demand]\n"
    },
    {
      "commit": "5d4792dc2a2088e7355e19b5fa763159f2a8231d",
      "tree": "7d6d90ddb5d0e756200151dc51b892e61e1a0933",
      "parents": [
        "a9b39d71597dd28f9339bee4548b537c6749d384"
      ],
      "author": {
        "name": "Prathibha Madugonde",
        "email": "prathibha.madugonde@oss.qualcomm.com",
        "time": "Thu Apr 30 13:11:42 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 09:40:25 2026 -0400"
      },
      "message": "profiles/ranging: Read cs_mode_one_data members\n\nRearrage reading of cs_mode_one_data struct members as per spec.\n"
    },
    {
      "commit": "a9b39d71597dd28f9339bee4548b537c6749d384",
      "tree": "212197e3b89a639693f598b11db54a306e28c2bc",
      "parents": [
        "304bc5b78a3c94af32577abfcf1e5489c5360062"
      ],
      "author": {
        "name": "Prathibha Madugonde",
        "email": "prathibha.madugonde@oss.qualcomm.com",
        "time": "Thu Apr 30 13:11:40 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 30 09:40:24 2026 -0400"
      },
      "message": "src/shared: Add RAS packet format and notification support\n\nImplement complete RAS data pipeline:\n - Handle HCI CS subevent result/continuation events\n - Serialize ranging/subevent headers per spec\n - GATT notifications for real-time ranging data\n"
    },
    {
      "commit": "304bc5b78a3c94af32577abfcf1e5489c5360062",
      "tree": "91061b5889c07a94a8a95def2caae76dfbc87960",
      "parents": [
        "f8a2e6124b3635e52073c16bb4a8238ac2610e53"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Tue Apr 28 10:03:14 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 29 09:57:01 2026 -0400"
      },
      "message": "client/player: Add support to desynchronize linked transports\n\nAfter linked transports has been desynchronized, they should be acquired\nseparately and read handler should only be started for source local\nendpoint.\n\nThis is used to pass PTS tests BAP/UCL/STR/BV-543-C and BV-546-C.\n"
    },
    {
      "commit": "f8a2e6124b3635e52073c16bb4a8238ac2610e53",
      "tree": "7a622b44e43623ce0bcfb223949f6c12990e2038",
      "parents": [
        "1db06505df5a4c8f6626de76f1ca7ba33207df59"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Tue Apr 28 10:03:13 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 29 09:54:51 2026 -0400"
      },
      "message": "doc: Add documentation for CIS transport Desynchronized property\n\nThis is only supported when bluetoothd is started in testing mode.\n\nAssisted-by: GPT:GPT-5.3-Codex\n"
    },
    {
      "commit": "1db06505df5a4c8f6626de76f1ca7ba33207df59",
      "tree": "e95529f828da54dc554a90e620b4950cb0e1de4d",
      "parents": [
        "278f3439c45ffcb1309f9fe961be1b120bdde459"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Tue Apr 28 10:03:12 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 29 09:52:12 2026 -0400"
      },
      "message": "audio: Add ability to desynchronized linked transport\n\nIf bluetoothd is started in testing mode a new Desynchronized property\nis added, allowing to prevent automatic acquire of linked transport\nobjects.\n\nWhen desynchronized, each transports needs to be acquired separately.\n\nThis allows to pass PTS tests BAP/UCL/STR/BV-543-C and BV-546-C.\n"
    },
    {
      "commit": "278f3439c45ffcb1309f9fe961be1b120bdde459",
      "tree": "6d4eca740e187dd2a5de9dce9848728a93e0825b",
      "parents": [
        "5dc2d7e3334e4564f192f1b8c76217e114013066"
      ],
      "author": {
        "name": "raghavendra",
        "email": "raghavendra.rao@collabora.com",
        "time": "Wed Apr 29 13:16:05 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 29 09:44:57 2026 -0400"
      },
      "message": "client: make advertise.name use public broadcast name\n"
    },
    {
      "commit": "5dc2d7e3334e4564f192f1b8c76217e114013066",
      "tree": "954fcfe7d660af211f005bc7dc27463fbc2e9de4",
      "parents": [
        "3171f7fd3685874a429556d23ef49f8504fa8c3c"
      ],
      "author": {
        "name": "raghavendra",
        "email": "raghavendra.rao@collabora.com",
        "time": "Wed Apr 29 13:16:04 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 29 09:44:56 2026 -0400"
      },
      "message": "client: add public-broadcast advertising command\n"
    },
    {
      "commit": "3171f7fd3685874a429556d23ef49f8504fa8c3c",
      "tree": "670f212fd9db58ce0ca0d2e73d64597b7e44867a",
      "parents": [
        "b3729e26cc42fb1477f325c994b2a51b34f929d7"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 27 10:43:28 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 28 12:06:41 2026 -0400"
      },
      "message": "monitor: Add decoding support for Public Broadcast Announcements\n\nThis adds support for decoding Public Broadcast Announcements (PBP).\n"
    },
    {
      "commit": "b3729e26cc42fb1477f325c994b2a51b34f929d7",
      "tree": "5f0d219eca9a2b5b54d7cec304c5f3927b7cf19c",
      "parents": [
        "83ddf46ccc0653fb2aa460b57eb60db92ab37597"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 14 15:04:59 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 28 10:32:33 2026 -0400"
      },
      "message": "bass: Fix crashing on BT_BASS_MOD_SRC\n\nIf assistant attempt o modify source the code would attempt to iterate\nover all valid range of BIS indexes which may lead to the following\ntrace since the delegator maybe freed in the process:\n\n #0  queue_find (queue\u003d\u003coptimized out\u003e, function\u003dfunction@entry\u003d0x58b8761109c0 \u003csetup_match_bis\u003e, match_data\u003dmatch_data@entry\u003d0x3) at src/shared/queue.c:230\n #1  0x000058b8761127fb in bass_update_bis_sync (bcast_src\u003d\u003coptimized out\u003e, dg\u003d\u003coptimized out\u003e) at profiles/audio/bass.c:1824\n #2  handle_mod_src_req (data\u003d\u003coptimized out\u003e, params\u003d\u003coptimized out\u003e, bcast_src\u003d0x58b894661be0) at profiles/audio/bass.c:1862\n #3  cp_handler (bcast_src\u003d0x58b894661be0, op\u003d\u003coptimized out\u003e, params\u003d\u003coptimized out\u003e, user_data\u003d\u003coptimized out\u003e) at profiles/audio/bass.c:1910\n #4  0x000058b8761bc978 in bass_handle_mod_src_op (bass\u003d\u003coptimized out\u003e, attrib\u003d\u003coptimized out\u003e, opcode\u003d\u003coptimized out\u003e, id\u003d\u003coptimized out\u003e, iov\u003d\u003coptimized out\u003e, att\u003d\u003coptimized out\u003e)\n    at src/shared/bass.c:1069\n\nTo fix the code will now just interate at existing setups checking if\nthey match the BIS index then adding/removing the stream so it is no\nlonger possible to free the delegator before all setups are processed.\n"
    },
    {
      "commit": "83ddf46ccc0653fb2aa460b57eb60db92ab37597",
      "tree": "78cc3dffd2aa8a667699707707c8351310bca90f",
      "parents": [
        "49e2a15adc79eeb082d6eb52fc5ba7c2cf94c20c"
      ],
      "author": {
        "name": "Prathibha Madugonde",
        "email": "prathibha.madugonde@oss.qualcomm.com",
        "time": "Fri Apr 24 09:58:30 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:50:02 2026 -0400"
      },
      "message": "src/shared: add custom CCC callbacks\n\nIntroduce custom CCC callbacks to allow interception of\nclient notification subscription changes. This enables\nstack-level handling of CCC writes.\n"
    },
    {
      "commit": "49e2a15adc79eeb082d6eb52fc5ba7c2cf94c20c",
      "tree": "924067df6417e64a3331a1f3fd8b11a7f241d007",
      "parents": [
        "6cbdfc70601364435b97276ba9a4feac6179a1ff"
      ],
      "author": {
        "name": "Marek Czerski",
        "email": "ma.czerski@gmail.com",
        "time": "Wed Apr 22 23:20:45 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:22:30 2026 -0400"
      },
      "message": "sixaxis: Fix pairing Esperanza EGG109k controller\n\nThis change is required for Esperanza EGG109k ps controller clone.\nEGG109k looks like PS3 controller but presents itself to the system\nas PS4 controller. It does not respond to 0x81 command.\nCommand 0x12 contains both the device bluetooth address as well as\nconfigured host bluetooth address, so it can be used to query\nboth. Kernel driver hid-playstation also uses 0x12 command for that.\n\nManufacturer link:\nhttps://esperanza.pl/esperanza-gamepad-bezprzewodowy-ps3-marine-czarny,176,1701.html\n"
    },
    {
      "commit": "6cbdfc70601364435b97276ba9a4feac6179a1ff",
      "tree": "bc2bd917e01b60b5fdbd976bc12f4e614b91cf35",
      "parents": [
        "f1363b27467197525f60f3bbbf43ad1d905719af"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 23 12:30:19 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:21:50 2026 -0400"
      },
      "message": "rap: Cleanup coding style and unnecessary code\n"
    },
    {
      "commit": "f1363b27467197525f60f3bbbf43ad1d905719af",
      "tree": "bf9f586738fe688bd0ece5012a051377dea2fccc",
      "parents": [
        "c34ed95fa59b4a61882794f329f74a32a5b1f949"
      ],
      "author": {
        "name": "Naga Bhavani Akella",
        "email": "naga.akella@oss.qualcomm.com",
        "time": "Tue Apr 21 17:01:48 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:21:50 2026 -0400"
      },
      "message": "profiles: ranging: Add HCI LE Event Handling in Reflector role\n\nOpen RAW HCI Channel for CS Event Handling\nParse the following HCI LE CS Events in reflector role\nand route the events to RAP Profile.\n 1. HCI_EVT_LE_CS_READ_RMT_SUPP_CAP_COMPLETE\n 2. HCI_EVT_LE_CS_CONFIG_COMPLETE\n 3. HCI_EVT_LE_CS_SECURITY_ENABLE_COMPLETE\n 4. HCI_EVT_LE_CS_PROCEDURE_ENABLE_COMPLETE\n 5. HCI_EVT_LE_CS_SUBEVENT_RESULT\n 6. HCI_EVT_LE_CS_SUBEVENT_RESULT_CONTINUE\nSend HCI_OP_LE_CS_SET_DEFAULT_SETTINGS to the controller\nwith default settings selected by the user.\nMap connection handle received to device connection\n"
    },
    {
      "commit": "c34ed95fa59b4a61882794f329f74a32a5b1f949",
      "tree": "e24d82b3b1111bb204a921aebedc19a2578bf1eb",
      "parents": [
        "aca0a01c3f5e73e4ab44b186b6a0a00c589be87c"
      ],
      "author": {
        "name": "Naga Bhavani Akella",
        "email": "naga.akella@oss.qualcomm.com",
        "time": "Tue Apr 21 17:01:47 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:21:50 2026 -0400"
      },
      "message": "main.conf: Add Channel Sounding config parsing support\n\nAdd support for parsing Channel Sounding (CS) configuration options\nfrom the configuration file.\n\nAdd CAP_NET_RAW to CapabilityBoundingSet in bluetooth.service.\nbluetoothd requires CAP_NET_RAW to receive and process HCI LE events\nwhen running under a constrained systemd capability bounding set\n"
    },
    {
      "commit": "aca0a01c3f5e73e4ab44b186b6a0a00c589be87c",
      "tree": "ba00e7f0068516cd1086c87c454e9187a2193e87",
      "parents": [
        "756da3fa17b9a892ce22bc340b9a293a6c68931f"
      ],
      "author": {
        "name": "Naga Bhavani Akella",
        "email": "naga.akella@oss.qualcomm.com",
        "time": "Tue Apr 21 17:01:46 2026 +0530"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:21:50 2026 -0400"
      },
      "message": "shared: rap: Introduce Channel Sounding HCI raw interface support\n\nImplement stub callbacks for Channel Sounding HCI events and add the\nrequired protocol definitions for CS configuration, procedure control,\nand subevent result parsing\n\nAdd data structures to support Channel Sounding Processing\nAdd helper function to get hci conn info list and integrate it with RAP\n"
    },
    {
      "commit": "756da3fa17b9a892ce22bc340b9a293a6c68931f",
      "tree": "b0157d1ea3a0d8eed0b48f06a1d178a33d3d6dff",
      "parents": [
        "2c3961e3b0fab02afa3b8388e35f190c96f94fdb"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 21 16:19:14 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 24 10:21:15 2026 -0400"
      },
      "message": "input: Fix checking LE bonding on HIDP\n\nHIDP is classic only, LE uses HOG, so there is no point in checking the\nbonding with the address type which in case the device supports\ndual-mode will map to LE random/public address.\n\nFixes: https://github.com/bluez/bluez/issues/2034\n"
    },
    {
      "commit": "2c3961e3b0fab02afa3b8388e35f190c96f94fdb",
      "tree": "3d37301a26bd5d17cdfecf8f1add7678136bf6f8",
      "parents": [
        "9dffe61bd8b270681a1aa6d30f8819718c2d5a61"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 21 15:41:53 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 21 15:41:53 2026 -0400"
      },
      "message": "Add permissions for btsnoop-analyzer workflow\n\nGrant issues:write, contents:read, and models:read so the reusable\nworkflow can post comments and access the GitHub Models API.\n"
    },
    {
      "commit": "9dffe61bd8b270681a1aa6d30f8819718c2d5a61",
      "tree": "d3fd1c384d91d58eb28797a86f9fe9f4e0d12b83",
      "parents": [
        "0fdf34b17d41e77ae860aaea0bbb1c1e1dac0cf0"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 21 11:43:07 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 21 11:46:37 2026 -0400"
      },
      "message": "doc: Add AI coding assistants guidelines\n\nAdd doc/coding-assistants.rst with guidance for AI tools contributing to\nBlueZ, covering licensing compatibility, human responsibility, and the\nAssisted-by attribution format. Reference the new document from the README.\n\nBased on similar documentation from the Linux kernel:\n  78d979db6cef (\"docs: add AI Coding Assistants documentation\")\n"
    },
    {
      "commit": "0fdf34b17d41e77ae860aaea0bbb1c1e1dac0cf0",
      "tree": "37baacc502970ce8817057025afb93138665c2e8",
      "parents": [
        "b57658668c7c2c862b4cd9525d2417e5d0d82c3f"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Thu Apr 16 20:49:29 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 20 16:29:03 2026 -0400"
      },
      "message": "client/btpclient: Add GATT discovery supports\n\nThis implements the following BTP GATT services commands which are used\nby BTP BAP service:\n- BTP_OP_GATT_DISC_PRIM_UUID\n- BTP_OP_GATT_DISC_CHRC_UUID\n- BTP_OP_GATT_DISC_ALL_DESC\n"
    },
    {
      "commit": "b57658668c7c2c862b4cd9525d2417e5d0d82c3f",
      "tree": "3f4fd108285cfd7c3e820092c3a4877b1d74fcdd",
      "parents": [
        "bc0a839fa3839823a5c1e51a687d9adbb6156b8b"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Thu Apr 16 20:49:14 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 20 16:29:02 2026 -0400"
      },
      "message": "client/btpclient: Add BTP_OP_BAP_DISCOVER support\n\nBAP/CL/CGGIT/SER/BV-01-C expects IUT to discover the services before\ncontinuation.\n\nThis reduces connection time for the BAP tests.\n"
    },
    {
      "commit": "bc0a839fa3839823a5c1e51a687d9adbb6156b8b",
      "tree": "588d9fc57dce73cc9eeff2c4fd3eca622adfe3c2",
      "parents": [
        "9d8d8cbd47498c412021dfc76ce715678e9aa762"
      ],
      "author": {
        "name": "Michal Dzik",
        "email": "michal.dzik@streamunlimited.com",
        "time": "Fri Apr 17 13:29:14 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 20 16:21:41 2026 -0400"
      },
      "message": "audio: update QoS dbus property after it is set\n\nDbus set and get on QoS property use different data:\n- get uses bap-\u003eqos\n- set uses bap-\u003estream-\u003eqos\nThis works, because bap-\u003eqos is a copy of bap-\u003estream-\u003eqos. The only\nissue is when we set this property and then try to get it. We see old, not\nupdated copy. Simply calling bap_update_bcast_qos() fixes the problem.\n"
    },
    {
      "commit": "9d8d8cbd47498c412021dfc76ce715678e9aa762",
      "tree": "6a374c937ad1723f1369704cd1e25b81ac014a1a",
      "parents": [
        "4771fd2fed346564ed322573d8c2a691b1fe8565"
      ],
      "author": {
        "name": "Michal Dzik",
        "email": "michal.dzik@streamunlimited.com",
        "time": "Fri Apr 17 13:29:13 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 20 16:21:41 2026 -0400"
      },
      "message": "audio/bap: fill BIG and BIS for receiver\n\nThis is for some reason a missing feature.\nWe receive QoS structure from the kernel via BT_ISO_QOS, but BIG and BIS\nare not set there. In fact it is even impossible to pass them that way,\nas it is only one structure per remote device. That\u0027s why we have to parse\nBASE data to extract BIS and set it to stream-\u003eqos. BIG is not present\nexplicitly in BASE, but we can use subgroup index with success.\n\nAs a result of this commit, MediaTransport1 object has now a valid BIG\nand BIS set in QoS property.\n"
    },
    {
      "commit": "4771fd2fed346564ed322573d8c2a691b1fe8565",
      "tree": "0a3a06e84d2ea3b309cdc149f054d2225a2dd923",
      "parents": [
        "322cc2eb736c7f2a95ea13cda14fb0fbf57cdb64"
      ],
      "author": {
        "name": "Michal Dzik",
        "email": "michal.dzik@streamunlimited.com",
        "time": "Fri Apr 17 13:29:12 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 20 16:21:40 2026 -0400"
      },
      "message": "shared/bap: run callback after setting the broadcast metadata\n\nWithout this callback, dbus property setting will stall.\n"
    },
    {
      "commit": "322cc2eb736c7f2a95ea13cda14fb0fbf57cdb64",
      "tree": "46ed56643504ac1dd33a032a85c6f36778ba587b",
      "parents": [
        "73c6943f06363591d9fe77b241a8acef7e74ae0e"
      ],
      "author": {
        "name": "Michal Dzik",
        "email": "michal.dzik@streamunlimited.com",
        "time": "Fri Apr 17 13:29:11 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 20 16:21:39 2026 -0400"
      },
      "message": "transport: allow setting Metadata property on broadcast\n\nAlso fixes a problem where 64-bit iov_len was incorrectly initialized with\n32-bit value in dbus_message_iter_get_fixed_array().\n"
    },
    {
      "commit": "73c6943f06363591d9fe77b241a8acef7e74ae0e",
      "tree": "5058b7e18c2136809df6b6ee47a09d8fcf83a438",
      "parents": [
        "08e11ba7262feb9333d75b046ed5702e05350c5c"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Wed Apr 01 22:45:06 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 15:55:43 2026 -0400"
      },
      "message": "all: Remove redundant MIN/MAX macro definitions\n"
    },
    {
      "commit": "08e11ba7262feb9333d75b046ed5702e05350c5c",
      "tree": "e175634031e10fa96e1de6fd6725ae2fefdbea8a",
      "parents": [
        "ce07e906e49998c32d5a3d3245bc8b1245e3b368"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Wed Apr 01 22:45:05 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 15:55:41 2026 -0400"
      },
      "message": "unit: Add unit test for new MIN/MAX macros\n"
    },
    {
      "commit": "ce07e906e49998c32d5a3d3245bc8b1245e3b368",
      "tree": "074207a10af92af37005bcc040ebd956d30ed603",
      "parents": [
        "ec6940c1a28413d5b7f52be27216cd1997653ced"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 14:22:09 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 13:25:54 2026 -0400"
      },
      "message": "github: Add btsnoop-analyzer slash command workflow\n\nAdd caller workflow for the btsnoop-analyzer reusable workflow,\nenabling trace analysis from any issue comment.\n"
    },
    {
      "commit": "ec6940c1a28413d5b7f52be27216cd1997653ced",
      "tree": "7f5267ae4a3809cf68d50d278da3e26911ed8bbd",
      "parents": [
        "b73ba12b0bd62211609e1f6c94af780950a628ee"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 14:22:08 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 13:25:53 2026 -0400"
      },
      "message": "github: Make result posting robust against action failures\n\nUse always() conditions with file-existence checks so steps 1-4\nresults are posted even if the btsnoop-analyzer action fails\npartway through. The error comment now only fires on actual action\nfailure (e.g. btmon build error), not LLM errors which are handled\ngracefully by the analyzer.\n"
    },
    {
      "commit": "b73ba12b0bd62211609e1f6c94af780950a628ee",
      "tree": "e0b7f54354e06dbb6e32cf5634782f4c930a3997",
      "parents": [
        "15080642a4142dcbf4406bfddfc12913ec12db54"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 14:22:07 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 13:25:52 2026 -0400"
      },
      "message": "github: Add YAML issue template and btsnoop-analyzer workflow\n\nReplace the markdown issue template with a structured YAML form that\nincludes fields for description, reproduction steps, btmon trace upload,\nanalysis focus area selection, and privacy consent checkboxes.\n\nAdd a btsnoop-analyzer workflow that automatically analyzes btsnoop\ntraces attached to new issues using Vudentz/btsnoop-analyzer action,\nposting results as issue comments.\n"
    },
    {
      "commit": "15080642a4142dcbf4406bfddfc12913ec12db54",
      "tree": "4b991f128231c7c1e9eae14f4822f6ec99f45917",
      "parents": [
        "07a0b87e6b34c57f36ce8995a6414bc2e3332790"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Fri Apr 03 16:36:31 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 11:57:27 2026 -0400"
      },
      "message": "client/btpclient: Add GATT read and write value supports\n\nThis stores the characteristics proxy and handle so we can call\norg.bluez.GattCharacteristic1 ReadValue and WriteValue methods with\nthe \"handle provided by PTS - 1\".\n\nThis will allow to pass BAP/CL/CGGIT/CHA/BV-02-C and\nBAP/UCL/CGGIT/CHA/BV-03-C.\n"
    },
    {
      "commit": "07a0b87e6b34c57f36ce8995a6414bc2e3332790",
      "tree": "b5c49762b2db4347ba60a040cf4e035c4a806019",
      "parents": [
        "6a6aaeba6aed3b5994476f9e21a0e417a158c44e"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Apr 16 16:08:42 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 10:51:38 2026 -0400"
      },
      "message": "shared: Remove unneeded glib includes\n\nglib was included, but no glib functions or data types were being used,\nso remove those includes.\n"
    },
    {
      "commit": "6a6aaeba6aed3b5994476f9e21a0e417a158c44e",
      "tree": "91a3fecd5b7e7d2ab7a88325b453ce481ecc4943",
      "parents": [
        "91c340d359b7ae6cd690ae2c6b2acda48c8837f6"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Apr 16 16:08:41 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 10:51:37 2026 -0400"
      },
      "message": "shared/queue: Fix warning when compiling ad.c\n\nBoth ad.c and eir.h include queue.h as both use the struct declared in\nthis header. Quiet the warnings with a stanza that means it will be\nignored second time around.\n"
    },
    {
      "commit": "91c340d359b7ae6cd690ae2c6b2acda48c8837f6",
      "tree": "c6890666512489646e1545c76bf401619dfadde0",
      "parents": [
        "590bed15fbaf7be93f5121fcdaf12992f234df13"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Apr 16 16:08:40 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 10:51:35 2026 -0400"
      },
      "message": "shared: Remove glib dependency from src/shared/ad.c\n\nsrc/shared/ad.c includes src/eir.h, which uses glib, which means that\nthe non-glib shared library can\u0027t be used without linking to glib.\n\nUse our own queue implementation to remove the glib linked-list usage.\n"
    },
    {
      "commit": "590bed15fbaf7be93f5121fcdaf12992f234df13",
      "tree": "fd526e6591fdef9d6ba694438fac46a5d6fbddaf",
      "parents": [
        "f360d9e4428dde40de4ff6d33ef178752e13fc1a"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Apr 16 12:03:17 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 16 09:37:30 2026 -0400"
      },
      "message": "doc: Add missing btmon-cs doc to btmon.rst\n"
    },
    {
      "commit": "f360d9e4428dde40de4ff6d33ef178752e13fc1a",
      "tree": "4fec5d58ed71041ad7dbfbce76e68d2574989f44",
      "parents": [
        "ebeceecd3ccb823d46427a975563987242eaa6f5"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 15:12:52 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 16:58:01 2026 -0400"
      },
      "message": "doc: Add throughput estimation section to btmon-l2cap.rst\n\nDocument the throughput statistics reported by btmon analyze mode,\nincluding speed calculation methodology, channel details (PSM, mode,\nMTU, MPS), and caveats about inter-packet latency vs wall-clock time.\nAlso document the windowed throughput approach used by btsnoop-analyzer.\n"
    },
    {
      "commit": "ebeceecd3ccb823d46427a975563987242eaa6f5",
      "tree": "1e6be1bba65a344448b002bfdde9cf7aadc0091e",
      "parents": [
        "6b4c21721c80ef09da17656920777a4f1a9bf293"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 16:12:53 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 16:57:58 2026 -0400"
      },
      "message": "monitor: Use wall-clock duration for throughput and add min/max speed\n\nThe previous speed calculation used the sum of per-packet latencies as\nthe denominator.  For TX, each latency measures the time from command\nsubmission to completion event -- when multiple packets are in-flight\nsimultaneously these overlap, making the sum much larger than wall-clock\ntime and deflating the reported speed.  For RX the inter-arrival sum\nroughly equals wall-clock time.  This asymmetry caused the same data\nstream to report vastly different speeds depending on direction.\n\nFix by computing speed from wall-clock duration (last packet timestamp\nminus first packet timestamp), which gives consistent results regardless\nof direction.  Also add 1-second windowed throughput tracking to report\nmin and max speed alongside the average.\n"
    },
    {
      "commit": "6b4c21721c80ef09da17656920777a4f1a9bf293",
      "tree": "b1f544576919ff2440f09b5913ffc3eee396befb",
      "parents": [
        "510623fb53b53dce5a297c4a7878cad7546c2e47"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 15:06:01 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 15 16:57:48 2026 -0400"
      },
      "message": "monitor: Add L2CAP channel details to analyze output\n\nEnhance btmon analyze mode to display richer per-channel information:\n\n- Add MTU, MPS, and mode fields to struct l2cap_chan\n- Parse Configure Request/Response options for BR/EDR channels to\n  extract MTU (option 0x01) and mode (option 0x04)\n- Add l2cap_le_sig() to parse LE signaling (CID 5) for LE Credit\n  Based Connection Request/Response and Enhanced Credit Connection\n  Request, extracting PSM, MTU, MPS, and mode\n- Display fixed channel names (ATT, L2CAP Signaling, SMP) for CID \u003c\u003d 7\n- Show PSM in both decimal and hex format\n- Print mode, MTU, and MPS for dynamic channels\n"
    },
    {
      "commit": "510623fb53b53dce5a297c4a7878cad7546c2e47",
      "tree": "3f08bab34380714df8f0d4d4dc39b2c438de531f",
      "parents": [
        "babc5699226b535b6f15549a6daaaf7fb45acdd1"
      ],
      "author": {
        "name": "Archie Pusaka",
        "email": "apusaka@chromium.org",
        "time": "Tue Apr 14 19:11:11 2026 +0800"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 14 15:30:04 2026 -0400"
      },
      "message": "monitor: Set msft_opcode on read_local_version_rsp\n\nAside from INDEX_INFO, we can also receive manufacturer company ID\nwhen receiving read_local_version_rsp, so we should also try setting\nthe msft_opcode there.\n"
    },
    {
      "commit": "babc5699226b535b6f15549a6daaaf7fb45acdd1",
      "tree": "97c02afb843ff90457941913ef277944b7b53af0",
      "parents": [
        "b3e1acdf9cd084c265fe64116af6f96f96c70d37"
      ],
      "author": {
        "name": "Archie Pusaka",
        "email": "apusaka@chromium.org",
        "time": "Tue Apr 14 19:11:10 2026 +0800"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 14 15:27:56 2026 -0400"
      },
      "message": "monitor: define manufacturer company IDs\n\nDefine company IDs to make it more readable.\nAlso remove an unnecessary if that could cause uninitialized variable\nwarning.\n"
    },
    {
      "commit": "b3e1acdf9cd084c265fe64116af6f96f96c70d37",
      "tree": "74c990a01e4af51b00489471c0c105d36b987e83",
      "parents": [
        "1ab128f6d749427a5508592b3b2b587b724efccf"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 14 12:42:34 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 14 14:55:30 2026 -0400"
      },
      "message": "workflow/ci: Add checks:write permission and explicit reopened trigger\n\nThe CI action now creates individual GitHub Check Runs per test, which\nrequires \u0027checks: write\u0027 permission on the GITHUB_TOKEN. Also make the\npull_request trigger types explicit to include \u0027reopened\u0027, allowing CI\nto be retriggered by closing and reopening a PR.\n"
    },
    {
      "commit": "1ab128f6d749427a5508592b3b2b587b724efccf",
      "tree": "7ff6c15f4b71a52fc08cb6f7d7d9f13d473d3c5a",
      "parents": [
        "fb0f8f495ace893f65ee1eaa91e84743ccf62cc9"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Sun Apr 12 14:11:30 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 13 14:19:47 2026 -0400"
      },
      "message": "gatt-database: remove database from dbs list when destroyed\n\nbtd_gatt_database_new() adds btd_gatt_database to the dbs lookup queue,\nbut nothing removes it from there even when destroying.\n\nFix by removing databases from the lookup queue before destroy.\n\nFixes crash on adapter removal in some cases:\n\nERROR: AddressSanitizer: heap-use-after-free on address 0x7bd476be1308\nREAD of size 8 at 0x7bd476be1308 thread T0\n    #0 0x00000064562a in match_db\n    #1 0x000000865410 in queue_find\n    #2 0x000000645671 in btd_gatt_database_get\n0x7bd476be1308 is located 8 bytes inside of 128-byte region [0x7bd476be1300,0x7bd476be\u003e\nfreed by thread T0 here:\n    #0 0x7f1478cee4cf in free.part.0\n    #1 0x000000621625 in gatt_database_free\n    #2 0x000000645582 in btd_gatt_database_destroy\n"
    },
    {
      "commit": "fb0f8f495ace893f65ee1eaa91e84743ccf62cc9",
      "tree": "0097052c8d7c1322b267bb2a28c5688b24a8e7c0",
      "parents": [
        "516099a9d40515e8cead446634bc25270152f5b0"
      ],
      "author": {
        "name": "Frédéric Danis",
        "email": "frederic.danis@collabora.com",
        "time": "Mon Apr 13 09:12:46 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 13 14:19:46 2026 -0400"
      },
      "message": "audio/player: Ensure metadata string is valid UTF-8\n\nbluetoothd crashes on reception of GetItemAttributes reply if it contains\nan invalid UTF-8 string:\n\n\u003e BR-ACL: Handle 11 [B8:3C:28:E8:07:69 (Apple, Inc.)] flags 0x02 dlen 680\n      Channel: 71 len 676 ctrl 0x0304 [PSM 27 mode Enhanced Retransmission\n               (0x03)] {chan 7}\n      I-frame: Unsegmented TxSeq 2 ReqSeq 3\n      AVCTP Browsing: Response: type 0x00 label 2 PID 0x110e\n        AVRCP: GetItemAttributes: len 0x029a\n          Status: 0x04 (Success)\n          AttributeCount: 0x01 (1)\n          AttributeID: 0x00000001 (Title)\n          CharsetID: 0x006a (UTF-8)\n          AttributeLength: 0x0290 (656)\n          AttributeValue: ................................................\n..........................................................................\n.........................................................................2\n009.......................................................................\n..........................................................................\n..........................................................................\n..........................................................................\n..........................................................................\n..........................................................................\n................\n\u003d bluetoothd: profiles/audio/player.c:media_player_set_playlist_item() 0\n\u003d bluetoothd: profiles/audio/player.c:media_player_set_metadata() Title:\n  奥巴马表示：美国之所以没有搞定中国，不是因为中国的军事实力以及经济强大\n  ，而是因为中国从始至终都没有掉进我们安排的“陷阱”。时间倒回2009年，北京\n  钓鱼台国宾馆。奥巴马的随行团队一进门，连句客套话都没顾得上说，反手就把\n  随身带的电子设备挨个拔了电源、卸了电池。这阵仗看着像是在防监听，实则是\n  心虚。那群在长桌对面坐下的人，心里正翻腾着一种从未有过的无力感。因为眼\n  前的谈判对象，压根没打算照着他们兜里的剧本念台词。多年以后，退下来的奥\n  巴马在回忆录《应�\narguments to dbus_message_iter_append_basic() were incorrect,\n  assertion \"_dbus_check_is_valid_utf8 (*string_p)\" failed in file\n  dbus-message.c line 2775.\nThis is normally a bug in some application using the D-Bus library.\n"
    },
    {
      "commit": "516099a9d40515e8cead446634bc25270152f5b0",
      "tree": "36df98c08e40dd7923ab57e5731e1b04e250e006",
      "parents": [
        "950853f328610ccc20332f1175413935f8de1aef"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Mar 30 14:45:04 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 08 16:13:55 2026 -0400"
      },
      "message": "main.conf: Add GATT.Security option\n\nThis adds GATT.Security option which by default is set to auto to\ndetect if encryption/authentication is required on demand, but if\nTesting is set enables the user to enter a desirable security level.\n\nIn case the security level is low it then proceeds to disable checking\nGATT attribute permissions for server operations.\n"
    },
    {
      "commit": "950853f328610ccc20332f1175413935f8de1aef",
      "tree": "03f6a04902d0d9f2681bae1d0bae8e8f2fd0c885",
      "parents": [
        "44e54e39ae1ac0f95c61e7c0b923bd8a0c163f4c"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Mar 30 14:41:29 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 08 16:13:54 2026 -0400"
      },
      "message": "shared/gatt-server: Add bt_gatt_server_set_permissions\n\nThis adds bt_gatt_server_set_permissions which can be used to\nenabled/disable permission checking before operations which can be\nuseful on testing only environment where encryption/pairing is not\ndesirable/needed.\n"
    },
    {
      "commit": "44e54e39ae1ac0f95c61e7c0b923bd8a0c163f4c",
      "tree": "a2f9f280885147bcd76ae1ff06b707d06e4d9fa4",
      "parents": [
        "c8527a27723baa4acbeaba59e60fd6e28a63425e"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 08 12:54:09 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 08 13:05:52 2026 -0400"
      },
      "message": "client: Stop discovery when connected with filter.auto_connect\n\nIf device was connected via filter.auto_connect method (e.g. connect or\nscan.auto_connect) stop the discovery session after the device connects.\n"
    },
    {
      "commit": "c8527a27723baa4acbeaba59e60fd6e28a63425e",
      "tree": "99f4ca1b5c0f7cc0dad7b365d1ef41dd9692dd29",
      "parents": [
        "418306daec600cdb20afec5763a2a1f2f29f1616"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 07 16:57:07 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 07 16:57:07 2026 -0400"
      },
      "message": "client: Prompt user to start scanning on connect command\n\nIf connect command don\u0027t find the device object make it prompt the\nuser to start scanning and set discovery filter pattern to given\naddress and mark it to auto-connect:\n\n[bluetoothctl]\u003e connect XX:XX:XX:XX:XX:XX\nDevice XX:XX:XX:XX:XX:XX not available\n[XX:XX:XX:XX:XX:XX] Scan and connect (yes,no): y\nSetDiscoveryFilter success\nDiscovery started\n[NEW] Device XX:XX:XX:XX:XX:XX\n[NEW] BREDR /org/bluez/hci0/dev_XX:XX:XX:XX:XX:XX\n[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes\n[CHG] BREDR XX:XX:XX:XX:XX:XX Connected: yes\n"
    },
    {
      "commit": "418306daec600cdb20afec5763a2a1f2f29f1616",
      "tree": "bbcb491bb9cefcd440e2920088c8e69bff6b1a82",
      "parents": [
        "a73fcbf207d34db68ef272f4b7d1762918dfb856"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 07 16:55:11 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Apr 07 16:55:11 2026 -0400"
      },
      "message": "device: Fix btd_device_connect_services not discovering\n\nbtd_device_connect_services would not attempt to discover in case the\nselected bearer is BR/EDR and once discover is complete then it shall\nproceed with connecting the services.\n"
    },
    {
      "commit": "a73fcbf207d34db68ef272f4b7d1762918dfb856",
      "tree": "e913b21cb057f43f9b07836b8818612b45e651ba",
      "parents": [
        "21db57fc0c2f3f2d7300372263f8631f4cb1d3d0"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 15:58:40 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 15:58:40 2026 -0400"
      },
      "message": "monitor: Fix not loading local GATT DB from cache\n\nThe local GATT DB maybe discover in previous connection and therefore\nshould be cached as well to be able to decode follow-up connections\nwhere the discovery may not be visible.\n"
    },
    {
      "commit": "21db57fc0c2f3f2d7300372263f8631f4cb1d3d0",
      "tree": "5efd7a79df6fd71c28658a01292af228649c8a7c",
      "parents": [
        "46b859d82909b99c41327a41983302bdc2a42416"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 16:15:20 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:10 2026 -0400"
      },
      "message": "shared/mcp: fix parsing of control point arguments\n\nFix parsing of control point argument lost in rebases.\n\nAdd tests for Move Relative command that need it:\n\nMCS/SR/MCP/BV-12-C [Move Relative from Playing]\nMCS/SR/MCP/BV-13-C [Move Relative from Paused]\nMCS/SR/MCP/BV-14-C [Move Relative from Seeking]\nMCS/SR/MCP/BV-75-C [Move Relative from Inactive]\n"
    },
    {
      "commit": "46b859d82909b99c41327a41983302bdc2a42416",
      "tree": "4e6195af514eaf0cf89a7273aa769cf73c0e77d3",
      "parents": [
        "dd9d9dab41353567abc1a127920ecfe31d167a86"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 16:15:19 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:09 2026 -0400"
      },
      "message": "shared/mcp: fix crash on destroy after ATT gone\n\nTie lifetime of bt_mcs_session to that of ATT disconnect watch.  The\ndisconnect handler is not necessarily called before ATT is freed, but\ndestroy is.\n\nFixes UAF of session-\u003eatt in bt_mcs_unregister() -\u003e session_destroy() -\u003e\nbt_att_unregister_disconnect() if ATT was freed first.\n"
    },
    {
      "commit": "dd9d9dab41353567abc1a127920ecfe31d167a86",
      "tree": "240618eaeb72e3d09f1440f5cda0c65b557273f0",
      "parents": [
        "474f2ee8597b62aca44ea2e1578359dc7c223af6"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 13:55:15 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:08 2026 -0400"
      },
      "message": "build: never build test-runner with ASAN\n\ntest-runner cannot run as pid 1 inside VM when built with ASAN enabled.\nDrop MISC_CFLAGS/LDFLAGS from its build; the additional flags they\ncontain beyond ASAN enable are not important for test-runner build.\n"
    },
    {
      "commit": "474f2ee8597b62aca44ea2e1578359dc7c223af6",
      "tree": "144d940a2e2c0ee3759ff9a8eb067184047dc655",
      "parents": [
        "5a0932cc8e05bb24a8e63debcedfb6e5fa6ccaea"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 14:23:54 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:07 2026 -0400"
      },
      "message": "tools: Remove assigned but unused variables\n\nRemove unused variables that gcc -Wunused-but-set-variable and\n-Wunused-but-set-parameter complain about.\n\nFixes build on gcc 16.\n"
    },
    {
      "commit": "5a0932cc8e05bb24a8e63debcedfb6e5fa6ccaea",
      "tree": "fb97979ce786618c1733f45b6ee4d7c4920b6373",
      "parents": [
        "dfc5e135737be7f61e0eaa288813cd2868724603"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 14:23:53 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:06 2026 -0400"
      },
      "message": "src: Remove assigned but unused variables\n\nRemove unused variables that gcc -Wunused-but-set-variable and\n-Wunused-but-set-parameter complain about, or silence by void cast.\n\nFixes build on gcc 16.\n"
    },
    {
      "commit": "dfc5e135737be7f61e0eaa288813cd2868724603",
      "tree": "030a39e36a57139002364dcda243de31e9c9b443",
      "parents": [
        "81111489faf4ee84c74db70d1a27ef1e80f00155"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 14:23:52 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:06 2026 -0400"
      },
      "message": "monitor: Remove assigned but unused variables\n\nRemove unused variables that gcc -Wunused-but-set-variable and\n-Wunused-but-set-parameter complain about.\n\nFixes build on gcc 16.\n"
    },
    {
      "commit": "81111489faf4ee84c74db70d1a27ef1e80f00155",
      "tree": "4ed5f303039c08096ac22be83c226fe14b0ad557",
      "parents": [
        "0e37aab12463e16fbaeebb6f204ff663d8b42fae"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 14:23:51 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:05 2026 -0400"
      },
      "message": "emulator: Remove assigned but unused variables\n\nRemove unused variables that gcc -Wunused-but-set-variable and\n-Wunused-but-set-parameter complain about.\n\nFixes build on gcc 16.\n"
    },
    {
      "commit": "0e37aab12463e16fbaeebb6f204ff663d8b42fae",
      "tree": "8bb9694aeb48e675ec02f03a7a2aa497b998115d",
      "parents": [
        "053c7c61ef97603ff00cfa120c0375878f38650f"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 14:23:50 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:04 2026 -0400"
      },
      "message": "monitor: check data size properly in evt_num_completed_packets\n\nUse util_iov_pull to check data size before dereferencing.\n"
    },
    {
      "commit": "053c7c61ef97603ff00cfa120c0375878f38650f",
      "tree": "022911e274cc5d031fc4c99d3778ffbd252b8b58",
      "parents": [
        "46f2edd29833e73664c6d80d04834f94bb7f5ed6"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 15:06:20 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:03 2026 -0400"
      },
      "message": "tools/ioctl-tester: don\u0027t read array out of bounds\n\nFix accessing (invalid) param data out of bounds.\n"
    },
    {
      "commit": "46f2edd29833e73664c6d80d04834f94bb7f5ed6",
      "tree": "57a847c069ace0fce090e639ebc613ab279e3a93",
      "parents": [
        "00dfd32af38ac950db32af0acfa4193511f718d9"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Mon Apr 06 15:06:19 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Apr 06 12:07:03 2026 -0400"
      },
      "message": "tools/smp-tester: don\u0027t write array out of bounds\n\nFix accessing pdu data out of bounds in SMP Server - Invalid Request.\n"
    },
    {
      "commit": "00dfd32af38ac950db32af0acfa4193511f718d9",
      "tree": "35706f853fcbdf07318eb17358fa80f6980ad091",
      "parents": [
        "b499a284d08a03945834c602c47d7175e1e91819"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 02 12:51:58 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 03 13:33:51 2026 -0400"
      },
      "message": "doc/btmon: Add CS and RAS state machines and combined flow charts\n\nAdd three state machine diagrams and four flow charts to btmon-cs.rst:\n\n- CS State Machine: IDLE → CAPABILITIES EXCHANGED → CONFIGURED →\n  PARAMETERS SET → PROCEDURE RUNNING → CONFIGURED → IDLE\n\n- RAS Data Transfer State Machine: IDLE → DATA READY →\n  TRANSFERRING → COMPLETE → IDLE (with ABORTED and recovery paths)\n\n- Typical CS Setup Sequence: HCI command/event timeline with\n  state annotations showing the full capability exchange through\n  procedure enable/disable cycle\n\n- Combined HCI + GATT Flow: interleaved three-column chart\n  showing HCI CS operations alongside GATT RAS service discovery,\n  CCC setup, data ready notification, on-demand retrieval with\n  segmented transfers, and ACK\n\n- Real-time Streaming Flow: shows how HCI Subevent Results\n  trigger immediate GATT notifications on Real-time Ranging Data\n\n- Lost Segment Recovery Flow: demonstrates the Retrieve Lost\n  Segments mechanism with gap detection and retransmission\n"
    },
    {
      "commit": "b499a284d08a03945834c602c47d7175e1e91819",
      "tree": "55347459ddf2de4219c5e7e46153ec3eb206f0ed",
      "parents": [
        "10730536e5b55f93e9234fac493c7db581f7a4bf"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Apr 02 12:44:16 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 03 13:33:50 2026 -0400"
      },
      "message": "doc/btmon: Add RAS/RAP protocol flow to Channel Sounding documentation\n\nAdd the Ranging Service (RAS) and Ranging Profile (RAP) GATT-level\nprotocol flow to btmon-cs.rst.  Covers all six RAS characteristics\n(Features, Real-time Ranging Data, On-demand Ranging Data, Control\nPoint, Data Ready, Data Overwritten), the five Control Point opcodes\n(Get Ranging Data, ACK, Retrieve Lost Segments, Abort, Set Filter),\nthe segmented ranging data format with Ranging Header and Subevent\nHeader decoding, the typical on-demand and real-time data flows,\nand common issues.\n"
    },
    {
      "commit": "10730536e5b55f93e9234fac493c7db581f7a4bf",
      "tree": "18ab3458b2328c5781d4ede13904646b3b38d743",
      "parents": [
        "000dc08822ff0ad6730f6e18dfa41a53ce905713"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 01 14:23:48 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 03 13:33:47 2026 -0400"
      },
      "message": "doc/btmon: Add Channel Sounding protocol flow documentation\n\nAdd btmon-cs.rst documenting the complete CS protocol flow as seen\nin btmon traces.  Covers capability exchange, security enable,\nconfiguration, procedure parameters, enable/disable, subevent\nresults with all four step modes (Mode 0-3), result status fields,\nFAE table exchange, channel classification, CS test mode, the\ntypical setup sequence, and common issues.\n\nThis provides LLM context so automated trace analysis can correctly\ninterpret CS distance measurement sessions.\n"
    },
    {
      "commit": "000dc08822ff0ad6730f6e18dfa41a53ce905713",
      "tree": "a800fdd72ec013ceda76ea4c0ae305b59011cc66",
      "parents": [
        "1ce7cfcd0f6ca87d4280a6e0c14b7d2c16778457"
      ],
      "author": {
        "name": "Kirill Samburskiy",
        "email": "k.samburskiy@omp.ru",
        "time": "Fri Apr 03 15:03:39 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Apr 03 09:45:48 2026 -0400"
      },
      "message": "audio/avrcp: Track TG and CT events separately\n\nSince we support both target and controller AVRCP roles, we need to\ntrack events for each role separately to avoid confusing events that we\nregistered for notification from remote TG, and events that remote CT\nregistered for notification from us. This change is only relevant if\nboth sides support both CT and TG roles.\n\nFixes: https://github.com/bluez/bluez/issues/1997\n"
    },
    {
      "commit": "1ce7cfcd0f6ca87d4280a6e0c14b7d2c16778457",
      "tree": "287f34249c6c487e3088201c801d5e505d9e6843",
      "parents": [
        "0fd01e98cf94616a5c1c39749314cdd4a1654687"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 31 12:23:50 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 01 14:06:56 2026 -0400"
      },
      "message": "doc: add btmon-mgmt.rst\n\nAdd a new btmon sub-document doc/btmon-mgmt.rst describing Management\n(MGMT) protocol flows as seen in btmon output; include it from\ndoc/btmon.rst and list it in EXTRA_DIST in Makefile.am.\n"
    },
    {
      "commit": "0fd01e98cf94616a5c1c39749314cdd4a1654687",
      "tree": "fb52696c977608d6178edceff08bcda66755edef",
      "parents": [
        "dbbfffe2c32338b96fb16def680852c3db62d2c9"
      ],
      "author": {
        "name": "Mengshi Wu",
        "email": "mengshi.wu@oss.qualcomm.com",
        "time": "Wed Apr 01 19:39:30 2026 +0800"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 01 09:58:16 2026 -0400"
      },
      "message": "src/device: Fix stored gatt cache DB Hash value not update\n\nThere is an asymmetry in behavior: when services are added during\nthe same connection (via Service Changed indication), the persistent\nstorage (disk) is not updated with the new DB hash, but when services\nare removed, it is updated.\n\nDuring the same connection, We check DB hash value stored at\n/var/lib/bluetooth/\u003cadaptor addr\u003e/cache/\u003cremote addr\u003e.\nWhen established connection, the stored DB Hash value is A.Then we\nadd new services, the stored DB Hash value is still A which should\nchange to B. However, if we remove the existing services, the stored\nDB Hash value changed to C.\n\nWhen performing addition, it goes like this:\n\ndiscover_primary_cb()\n  └─\u003e gatt_db_insert_service()      ← NEW service inserted into db\n        └─\u003e gatt_service_added()    ← callback fires immediately\n              └─\u003e store_gatt_db()   ← SAVED TO DISK (hash still OLD)\n  ...\n  └─\u003e discovery_op_complete(success\u003dtrue)\n        └─\u003e read_db_hash(op)             ← sends ATT Read By Type\n              └─\u003e [ATT response arrives]\n                    └─\u003e db_hash_read_cb()\n                          ├─\u003e gatt_db_attribute_write(op-\u003ehash, ...)\n                          │     └─\u003e hash UPDATED IN MEMORY\n                          └─\u003e discovery_op_complete(true, 0)\n                                ├─\u003e [no services to remove, no\n                                │    store_gatt_db called]\n                                └─\u003e service_changed_complete()\n\nWhereas removal perform like this:\ndiscovery_op_complete(success\u003dtrue)  [1st call]\n  └─\u003e read_db_hash(op)\n      └─\u003e op-\u003ehash is NULL → sends ATT request → early return\n...\n[ATT response arrives]\ndb_hash_read_cb()\n  └─\u003e gatt_db_attribute_write(op-\u003ehash, ) ← hash UPDATED IN MEMORY\n  └─\u003e discovery_op_complete(true, 0)          [2nd call]\n      └─\u003e read_db_hash(op)  → op-\u003ehash already set → returns false\n      └─\u003e gatt_db_remove_service()\n          └─\u003e gatt_service_removed()\n              └─\u003e store_gatt_db() ← SAVED TO DISK (hash is NEW)\n\nThere is a timing issue to update DB Hash value.\n\nThe gatt_client_service_changed() callback in src/device.c is called\nfrom service_changed_complete() in gatt-client.c, which is invoked\nafter db_hash_read_cb() has already updated the hash. Adding\nstore_gatt_db(device) here guarantees the db is persisted with the\ncorrect, up-to-date hash for both the addition and removal cases.\n"
    },
    {
      "commit": "dbbfffe2c32338b96fb16def680852c3db62d2c9",
      "tree": "c89423d1c08d9e447097eab7fc145eb289dadbc6",
      "parents": [
        "023e57342a0791b586e336fecce627ecb6a2e46f"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Tue Mar 31 23:36:37 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 01 09:55:55 2026 -0400"
      },
      "message": "emulator: Remove compile-time header only glib dep\n\nbtvirt relied on a glib header macro to use MIN/MAX, but didn\u0027t link\nagainst it, meaning that it was dependent on other programs in the\nproject using glib to compile correctly.\n\nRemove the include and use our own implementation instead.\n"
    },
    {
      "commit": "023e57342a0791b586e336fecce627ecb6a2e46f",
      "tree": "1aab4b2065ee663fd2b2a690d638b259faa0eae9",
      "parents": [
        "f99562ebea5849ee8fd49026a2d342c242a1fb9f"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Tue Mar 31 23:36:36 2026 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Apr 01 09:53:47 2026 -0400"
      },
      "message": "shared/util: Add MIN/MAX implementations\n\nAnd remove it from src/sdpd-request.c to avoid a redefinition warning\nat compile-time.\n"
    },
    {
      "commit": "f99562ebea5849ee8fd49026a2d342c242a1fb9f",
      "tree": "e0cc590794af006509124f1720543ce1220908b3",
      "parents": [
        "8ea1d0da24ae505c1e2226a35e3ddd7eb8066615"
      ],
      "author": {
        "name": "Pauli Virtanen",
        "email": "pav@iki.fi",
        "time": "Sun Mar 29 15:23:57 2026 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 31 10:14:25 2026 -0400"
      },
      "message": "iso-tester: fix missing clear of io_id in callbacks\n\nFixes issues\n\nGLib-CRITICAL **: Source ID 126 was not found when attempting to remove it\n"
    },
    {
      "commit": "8ea1d0da24ae505c1e2226a35e3ddd7eb8066615",
      "tree": "9cfb007961d7fa2f5d91e4b3f3ba08ae85b0dc0b",
      "parents": [
        "0d4bb44219522a42a8a7daf94225c0d6ed9237b1"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 26 18:05:14 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 26 18:05:14 2026 -0400"
      },
      "message": "doc: Document bidirectional (Source+Sink) ASE flow in LE Audio\n\nAdd a subsection under ASCS explaining that multiple ASEs with\ndifferent directions (Source + Sink) on the same connection is the\nstandard bidirectional/conversational configuration.  Document the\ndirection indicators (Receiver Start Ready for Source ASEs only),\na typical setup sequence, and a note that this is normal behavior.\n\nThis provides LLM context so automated trace analysis does not\nmisinterpret bidirectional streams as an error.\n"
    },
    {
      "commit": "0d4bb44219522a42a8a7daf94225c0d6ed9237b1",
      "tree": "5dbe3d68d436b5fea61246e543037d309e7c2683",
      "parents": [
        "097196bf8a299d209681892ea74618e4bea8c4ac"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Mar 26 17:24:48 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 26 13:59:36 2026 -0400"
      },
      "message": "mesh-gatt: Fix JSON files missing from dist\n\nMoving EXTRA_DIST into a conditional means that if the dist isn\u0027t made\nwith the deprecated tools enabled, then files will be missing from the\ndistribution.\n\nFixes: 1f6553edd8a5 (\"build: Deprecate meshctl tool\")\n"
    },
    {
      "commit": "097196bf8a299d209681892ea74618e4bea8c4ac",
      "tree": "f392e8b3c434f335e2132778009d467d219a3230",
      "parents": [
        "173fad8fbe9f254ec1da51c793e9b5315610b16c"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 24 11:51:07 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:22:55 2026 -0400"
      },
      "message": "doc/btmon: Add HFP protocol flow documentation\n\nAdd btmon-hfp.rst documenting the HFP protocol flow as seen in btmon\noutput. Coverage includes:\n\n - SDP service discovery for Handsfree/AG UUIDs\n - RFCOMM channel setup over L2CAP PSM 3 (SABM/UA, Parameter\n   Negotiation, Modem Status Command)\n - AT command exchange for SLC setup (noted as hex dump only -- btmon\n   does not parse AT commands within RFCOMM UIH data frames)\n - Codec negotiation via AT+BAC/AT+BCS\n - SCO/eSCO synchronous connection setup (voice setting, coding format)\n - Codec summary tables (AT-level vs HCI-level codec IDs)\n - Automation-friendly grep patterns\n"
    },
    {
      "commit": "173fad8fbe9f254ec1da51c793e9b5315610b16c",
      "tree": "8ebc34be5c2ba3032b665c69be5c21b169461b38",
      "parents": [
        "60a32f8c7517485d7f615bc605b81524e22b3c11"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 24 11:50:48 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:22:43 2026 -0400"
      },
      "message": "doc/btmon: Add A2DP/AVDTP protocol flow documentation\n\nAdd btmon-a2dp.rst documenting the A2DP protocol flow as seen in btmon\noutput, wrapped by btmon-classic-audio.rst parent file. Coverage\nincludes:\n\n - AVDTP signaling: Discover, Get Capabilities, Set Configuration,\n   Open, Start, Suspend, Close\n - Codec capability/configuration decoding for SBC, AAC, aptX, aptX HD,\n   aptX Low Latency, FastStream, LDAC, and Opus\n - AVDTP media transport channel setup\n - AVRCP control and browsing channel overview\n - Delay Reporting\n - Automation-friendly grep patterns\n"
    },
    {
      "commit": "60a32f8c7517485d7f615bc605b81524e22b3c11",
      "tree": "4fabb60cab6b37f3a6a0b62308ed35d61972079f",
      "parents": [
        "838c717f9dfbe5dbca24dbb258e269f939d59647"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 24 11:05:15 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:22:31 2026 -0400"
      },
      "message": "doc/btmon: Add HCI initialization sequence documentation\n\nDocument the multi-stage HCI controller initialization performed by\nthe kernel (net/bluetooth/hci_sync.c). The four stages cover reset\nand identity, capability discovery, event mask configuration, and\nfinal setup. This helps trace readers distinguish normal init traffic\nfrom application-level issues.\n"
    },
    {
      "commit": "838c717f9dfbe5dbca24dbb258e269f939d59647",
      "tree": "7aedb97f7bedaaa16d45a9c82badbee9a050e6de",
      "parents": [
        "d991284294f4243aadd8f3475352221d7a905da1"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 24 11:04:59 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:22:12 2026 -0400"
      },
      "message": "doc/btmon: Split Connection Tracking into btmon-connections.rst\n\nMove the CONNECTION TRACKING and HCI ERROR AND DISCONNECT REASON CODES\nsections into a standalone file and replace them with an RST include\ndirective.\n"
    },
    {
      "commit": "d991284294f4243aadd8f3475352221d7a905da1",
      "tree": "bfcc9a5142e59b1abcfd6a364a1ad51ce055d88e",
      "parents": [
        "2bcd75cd75eabba5f9ec1fc37a0a83b55ed24965"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 12 12:56:15 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:22:03 2026 -0400"
      },
      "message": "doc/btmon: Split GATT Database Reconstruction into btmon-gatt.rst\n\nMove the RECONSTRUCTING A GATT DATABASE FROM SNOOP TRACES section\ninto a standalone file and replace it with an RST include directive.\n"
    },
    {
      "commit": "2bcd75cd75eabba5f9ec1fc37a0a83b55ed24965",
      "tree": "5e6dd3bdc64bbaaf54124b123e124e47567aa3f2",
      "parents": [
        "042e211cd0219b554f707bc6369118b245575329"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 12 12:55:53 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:21:52 2026 -0400"
      },
      "message": "doc/btmon: Split SMP Pairing Flow into btmon-smp.rst\n\nMove the SMP PAIRING FLOW section into a standalone file and replace\nit with an RST include directive.\n"
    },
    {
      "commit": "042e211cd0219b554f707bc6369118b245575329",
      "tree": "1434edebcd115380ee9f867e8daee5b6f83fc5e5",
      "parents": [
        "d6e2bf9a3a2bebaae12cc633aefea6e9b72f9bf7"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 12 12:55:28 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:21:42 2026 -0400"
      },
      "message": "doc/btmon: Split L2CAP Channel Tracking into btmon-l2cap.rst\n\nMove the L2CAP CHANNEL TRACKING section into a standalone file and\nreplace it with an RST include directive.\n"
    },
    {
      "commit": "d6e2bf9a3a2bebaae12cc633aefea6e9b72f9bf7",
      "tree": "87cd479d6636204e67e1cfc0655295b005667365",
      "parents": [
        "6ca24f69351e0b97df96e843fe9e557a407796fb"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 12 12:54:57 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:21:29 2026 -0400"
      },
      "message": "doc/btmon: Split LE Audio Protocol Flow into btmon-le-audio.rst\n\nMove the LE AUDIO PROTOCOL FLOW section (including CIS unicast,\nBIS broadcast, and BIG sync flows) into a standalone file and\nreplace it with an RST include directive. This is the largest\nsplit section (660 lines) and was being truncated away in\ncontext-limited analysis.\n"
    },
    {
      "commit": "6ca24f69351e0b97df96e843fe9e557a407796fb",
      "tree": "d0807d5642ab5885f103a8fd488c367ab9138cbd",
      "parents": [
        "1436eab1d0e59f9022334ff7d75c8e5032e7a882"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 12 12:54:22 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Wed Mar 25 11:21:18 2026 -0400"
      },
      "message": "doc/btmon: Split Advertising and Scanning into btmon-advertising.rst\n\nMove the ADVERTISING AND SCANNING section into a standalone file and\nreplace it with an RST include directive. This allows the\nbtsnoop-analyzer to load only the relevant documentation for\nadvertising/scanning focus-area analysis instead of the full btmon.rst.\n"
    },
    {
      "commit": "1436eab1d0e59f9022334ff7d75c8e5032e7a882",
      "tree": "17a4038bf2c081ef4c07d4d546197f4c5a103076",
      "parents": [
        "b9a72fef5cd51f849ce01c9f2775d129a687d855"
      ],
      "author": {
        "name": "Wouter",
        "email": "wouter@xesxen.nl",
        "time": "Thu Mar 19 15:14:35 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 19 13:36:53 2026 -0400"
      },
      "message": "shared/shell: Fix SIGSEGV on invalid input\n\nThis fixes a crash when handling \"\u003cspace\u003e\u003ctab\u003e\"\n\n\u003d\u003d3760495\u003d\u003d Invalid read of size 1\n\u003d\u003d3760495\u003d\u003d    at 0x4902187: strcmp (vg_replace_strmem.c:941)\n\u003d\u003d3760495\u003d\u003d    by 0x4067408: menu_completion (shell.c:1126)\n\u003d\u003d3760495\u003d\u003d    by 0x40675DE: shell_completion (shell.c:1177)\n\u003d\u003d3760495\u003d\u003d    by 0x4B267AB: gen_completion_matches (complete.c:1282)\n\u003d\u003d3760495\u003d\u003d    by 0x4B2F8C1: rl_complete_internal (complete.c:2104)\n\u003d\u003d3760495\u003d\u003d    by 0x4B26B52: _rl_dispatch_subseq (readline.c:941)\n\u003d\u003d3760495\u003d\u003d    by 0x4B27B71: readline_internal_char (readline.c:690)\n\u003d\u003d3760495\u003d\u003d    by 0x4B48695: rl_callback_read_char (callback.c:275)\n\u003d\u003d3760495\u003d\u003d    by 0x40655F2: bt_shell_input_line (shell.c:309)\n\u003d\u003d3760495\u003d\u003d    by 0x406577E: input_read (shell.c:343)\n\u003d\u003d3760495\u003d\u003d    by 0x4068CB4: watch_callback (io-glib.c:173)\n\u003d\u003d3760495\u003d\u003d    by 0x49C1F4C: g_main_dispatch (gmain.c:3565)\n\u003d\u003d3760495\u003d\u003d  Address 0x0 is not stack\u0027d, malloc\u0027d or (recently) free\u0027d\n\nSigned-off-by: Luiz Augusto von Dentz \u003cluiz.von.dentz@intel.com\u003e\n"
    },
    {
      "commit": "b9a72fef5cd51f849ce01c9f2775d129a687d855",
      "tree": "379985695cd8178ded1680a081f44fdcb870b280",
      "parents": [
        "52c2b37d90c008e9af5a4076f27d4c1912babfd6"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Mar 19 11:52:06 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Mar 19 13:36:53 2026 -0400"
      },
      "message": "adapter: Fix \"Failed to set default system config\" startup warning\n\nWhen using a stock configuration, there will be nothing in the list of\nconfiguration changes to apply to the Bluetooth adapter, which since\n5e5b46c5c0cc (\"adapter: Do not send empty default system parameter\nlist\") would throw an error, as sending an empty list to the adapter\ndidn\u0027t generate one.\n\nbluetoothd[3291147]: Bluetooth daemon 5.86\nbluetoothd[3291147]: Starting SDP server\nbluetoothd[3291147]: Using external plugins is not officially supported.\nbluetoothd[3291147]: Consider upstreaming your plugins into the BlueZ project.\nbluetoothd[3291147]: Bluetooth management interface 1.23 initialized\nbluetoothd[3291147]: Battery Provider Manager created\nbluetoothd[3291147]: Failed to set default system config for hci0\n\nFixes: 5e5b46c5c0cc (\"adapter: Do not send empty default system parameter list\")\nSigned-off-by: Luiz Augusto von Dentz \u003cluiz.von.dentz@intel.com\u003e\n"
    },
    {
      "commit": "52c2b37d90c008e9af5a4076f27d4c1912babfd6",
      "tree": "c16d951822c86790f7f356b9c492410b242f1a28",
      "parents": [
        "11d05ece674fa1a31da50bf505bf744628ad9078"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Wed Mar 11 12:14:13 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 17 15:15:47 2026 -0400"
      },
      "message": "tools/btmgmt: Fix btmgmt --help hanging\n\nbtmgmt when run interactively would wait for commands on its prompt, but\nthat prompt is never setup when the help output is requested.\n\nHandle --help through bt_shell_handle_non_interactive_help() so that the\napplication exits as soon as the help content has been printed, like\nother interactive apps in bluez.\n"
    },
    {
      "commit": "11d05ece674fa1a31da50bf505bf744628ad9078",
      "tree": "9e858f18a0b98c654ce6ca418caf6f7e1bbc89c5",
      "parents": [
        "a035be775703bba1fa92b25769191ffb37ae4c76"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Mar 16 16:41:00 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Mar 16 16:41:00 2026 -0400"
      },
      "message": "shared/ad: Fix not checking length on ad_replace_name\n\niov may carry move then HCI_MAX_NAME_LENGTH in which case it is\ntruncated so it doesn\u0027t overflow utf8_name.\n"
    },
    {
      "commit": "a035be775703bba1fa92b25769191ffb37ae4c76",
      "tree": "6820ad26de0c0449877f3491bb703756bfb7a5c0",
      "parents": [
        "948d90c274a8a8b7ce9d4a987b224056111092cd"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 13 14:32:30 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 13 14:32:30 2026 +0100"
      },
      "message": "build: Remove legacy hcidump utility\n"
    },
    {
      "commit": "948d90c274a8a8b7ce9d4a987b224056111092cd",
      "tree": "7f34804515f4dead5b1946bb7491e7d23e5de98f",
      "parents": [
        "83f55cc4ad49217544ee391ca6d9cd81be38b2de"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 17:27:10 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 17:30:14 2026 -0400"
      },
      "message": "doc/btmon: Add BIG Sync flow documentation\n\nAdd comprehensive BIG Sync receiver flow documentation covering:\n- Complete prerequisite chain (PA sync -\u003e PA Reports -\u003e BIG Info -\u003e\n  BIG Create Sync -\u003e BIG Sync Established -\u003e ISO Data Path -\u003e ISO Data)\n- BIG Info Advertising Report as the critical gate for BIG sync\n- Without PAST (direct PA sync) flow with btmon output examples\n- With PAST (Periodic Advertising Sync Transfer) flow via BASS\n- BIG Sync teardown paths (receiver and broadcaster initiated)\n- BIG Sync failure diagnosis checklist\n- Updated broadcast grep patterns in Automating LE Audio Analysis\n- Separate unicast (CIS) and broadcast (BIG) diagnosis patterns\n\nThe BIG Info documentation addresses a gap where trace analysis missed\nthat no BIG Info was received and therefore no BIG Create Sync could\nbe sent.\n"
    },
    {
      "commit": "83f55cc4ad49217544ee391ca6d9cd81be38b2de",
      "tree": "0ccfb887bdc2feeb7f9809fb6675355267bf83af",
      "parents": [
        "587f94f9170fe4cb3428a095bcdf616b189115ee"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:20:08 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:20:08 2026 -0400"
      },
      "message": "doc/btmon: Add advertising and scanning documentation\n\nAdd advertising and scanning documentation covering:\n\n- Advertising Reports: LE Extended Advertising Report decoding with\n  event type properties, address, PHY, RSSI, and advertising data.\n\n- Common AD Types: Table of AD types btmon decodes (Flags, 16/128-bit\n  UUIDs, Local Name, TX Power, Service Data, Manufacturer Specific).\n\n- Extended Advertising: Extended advertising parameter setup and\n  data commands.\n\n- Periodic Advertising (LE Audio): Periodic advertising reports\n  carrying BASE announcements for broadcast audio.\n\n- Automating Advertising Analysis: grep patterns for finding\n  advertising reports, device names, LE Audio devices by service\n  UUID, advertising setup, periodic advertising, and device\n  appearance.\n\n- Updated Automated Trace Analysis: Added advertising check step\n  in the recommended workflow and updated introduction text with\n  cross-references.\n"
    },
    {
      "commit": "587f94f9170fe4cb3428a095bcdf616b189115ee",
      "tree": "462c081994daad79c89527ffb3ef9a38933e7c40",
      "parents": [
        "a0e1d0b5b49c9c45bc09373e9a5a9a18ed4a0235"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:19:21 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:19:21 2026 -0400"
      },
      "message": "doc/btmon: Add protocol error codes documentation\n\nAdd protocol error codes reference covering:\n\n- ATT Error Codes: Complete table (0x01-0xff) with diagnostic\n  meanings for Invalid Handle, Read/Write Not Permitted,\n  Authentication/Authorization Insufficient, Attribute Not Found,\n  Insufficient Encryption, Application Errors (0x80-0x9f), and\n  profile-specific codes (0xfc-0xff).\n\n- L2CAP Connection Response Results: Result code table (0x0000-0x000c)\n  covering successful connections, pending, and all refusal reasons\n  (PSM not supported, security block, no resources, invalid CID,\n  insufficient authentication/encryption).\n\n- Automating Error Detection: grep patterns for ATT errors, security\n  errors, and L2CAP rejections.\n\n- Cross-Layer Error Correlation: Common cascading error patterns\n  across ATT, SMP, HCI, and L2CAP layers.\n\n- Updated Automated Trace Analysis: Enhanced error check step with\n  multi-layer grep commands, added error cross-references in\n  connection lifecycle, and GATT operation rejected debugging\n  scenario.\n"
    },
    {
      "commit": "a0e1d0b5b49c9c45bc09373e9a5a9a18ed4a0235",
      "tree": "c8b67c63bece8e199dc6b0f725dbfbe834988253",
      "parents": [
        "fa9eed625ad3c8b33aa3e436a9c43ea25913e39e"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:18:03 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:18:03 2026 -0400"
      },
      "message": "doc/btmon: Add LE Audio protocol flow documentation\n\nAdd comprehensive LE Audio protocol flow documentation covering:\n\n- PACS (Published Audio Capabilities): Sink/Source PAC reads with\n  LC3 codec capability decoding (sampling frequency, frame duration,\n  channel counts, frame length), audio locations, and available\n  audio contexts.\n\n- ASCS (Audio Stream Control): ASE state machine (Idle through\n  Streaming and Releasing), ASE Status notifications with full\n  codec config decoding, ASE Control Point operations table\n  (Config Codec, Config QoS, Enable, Disable, Release, etc.).\n\n- CIS Setup and Teardown: CIG Parameters, CIS creation, CIS\n  Established event, ISO Data Path setup, and ISO data flow.\n\n- Broadcast Audio (BIG): BASE announcements in periodic advertising,\n  BIG creation (source), BIG sync (receiver).\n\n- Automating LE Audio Analysis: grep patterns for ASE state tracking,\n  codec verification, CIS establishment, and broadcast detection.\n  8-step diagnosis pattern.\n\n- Updated Automated Trace Analysis: Added LE Audio cross-reference\n  in workflow step 6, LE Audio reference in connection lifecycle,\n  and audio streaming failure debugging scenario.\n"
    },
    {
      "commit": "fa9eed625ad3c8b33aa3e436a9c43ea25913e39e",
      "tree": "ea86bb578f84d67cedf21972a80f62aea5eb407c",
      "parents": [
        "f247395a18d5c47a26a485c9b87a453c6719779e"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:16:46 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:16:46 2026 -0400"
      },
      "message": "doc/btmon: Add L2CAP channel tracking documentation\n\nAdd comprehensive L2CAP channel tracking documentation covering:\n\n- Fixed Channels: CID table (0x0001-0x0007) mapping to protocols\n  (L2CAP Signaling, ATT, SMP, AMP Manager).\n\n- Dynamic Channels (BR/EDR): Connection Request/Response flow,\n  Configure Request/Response, and PSM-to-protocol mapping table\n  (SDP, RFCOMM, BNEP, AVCTP, AVDTP, ATT, EATT).\n\n- LE Credit-Based Channels: LE Connection Request/Response with\n  MTU, MPS, and credits for flow control. EATT over PSM 0x0027.\n\n- Connection Parameter Updates: LE peripheral parameter change\n  requests via L2CAP signaling with accept/reject handling.\n\n- Automating L2CAP Analysis: grep patterns for channel establishments,\n  PSM tracking, parameter updates, and EATT setup.\n\n- Updated Automated Trace Analysis: Added L2CAP channel check step\n  in the recommended workflow, L2CAP cross-reference in connection\n  lifecycle, and connection parameter negotiation debugging scenario.\n"
    },
    {
      "commit": "f247395a18d5c47a26a485c9b87a453c6719779e",
      "tree": "addc359ec8e52e3a83f3eae9740614c26ac228be",
      "parents": [
        "1d4e2532d4c37022aed9e0f9a24ba0c87a2d3806"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:15:40 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 12:15:40 2026 -0400"
      },
      "message": "doc/btmon: Add SMP pairing flow documentation\n\nAdd comprehensive SMP pairing documentation covering:\n\n- Pairing Phases 1-3: Feature exchange (IO capabilities, auth\n  requirements, key distribution), authentication for both Secure\n  Connections (public key, DHKey check) and Legacy pairing\n  (confirm/random only), and key distribution (IRK, LTK, CSRK).\n\n- Pairing Failure: Failure reason code table (0x01-0x0e) with\n  diagnostic meanings for each code.\n\n- Automating Pairing Analysis: grep patterns for identifying pairing\n  attempts, detecting SC vs Legacy, finding failures, and correlating\n  with encryption.\n\n- Updated Automated Trace Analysis: Added pairing/security check step\n  in the recommended workflow, SMP cross-reference in connection\n  lifecycle patterns, and pairing failure debugging scenario.\n"
    },
    {
      "commit": "1d4e2532d4c37022aed9e0f9a24ba0c87a2d3806",
      "tree": "55f4dc774b2cc48776667f5349f47ec698f30ad2",
      "parents": [
        "121e5ca79be559c5374f8a54c6fb6e233e383379"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 11:04:36 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Mar 10 11:16:06 2026 -0400"
      },
      "message": "doc/btmon: Add GATT database reconstruction guide\n\nAdd a comprehensive section explaining how to reconstruct a remote\ndevice\u0027s GATT database from btsnoop traces. Documents all six phases\nof GATT discovery:\n\n- Primary/Secondary Service Discovery (Read By Group Type)\n- Included Service Discovery (Read By Type with Include UUID)\n- Characteristic Discovery (Read By Type with Characteristic UUID)\n- Descriptor Discovery (Find Information)\n- Characteristic Value Reading (Read Request/Response)\n- Targeted Service Search (Find By Type Value)\n\nIncludes annotated btmon output examples for each ATT operation,\na characteristic properties reference table, common descriptor\nUUIDs, guidance on bidirectional discovery, and a worked example\nshowing how to build the final attribute table from trace data.\n"
    },
    {
      "commit": "121e5ca79be559c5374f8a54c6fb6e233e383379",
      "tree": "54f6092e543b285689dfe9eb582378201342db44",
      "parents": [
        "9c6e97516cb1fd8dd355405a05af9e54d2f8a630"
      ],
      "author": {
        "name": "Jinwang Li",
        "email": "jinwang.li@oss.qualcomm.com",
        "time": "Mon Mar 09 19:18:26 2026 +0800"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Mar 09 09:47:51 2026 -0400"
      },
      "message": "transport: Fix set volume failure with invalid device volume\n\nWhen AVRCP is connected before AVDTP, an invalid device volume causes\nthe target to reject registration for the EVENT_VOLUME_CHANGED\nnotification, which breaks subsequent volume updates.\n\nFix this by initializing the volume to the maximum value in the AVRCP\ntarget init path when it is invalid, allowing the controller to\nsubscribe to AVRCP_EVENT_VOLUME_CHANGED.\n\nFixes: fa7828bddd21 (\"transport: Fix not being able to initialize volume properly\")\nSuggested-by: Luiz Augusto von Dentz \u003cluiz.von.dentz@intel.com\u003e\n"
    },
    {
      "commit": "9c6e97516cb1fd8dd355405a05af9e54d2f8a630",
      "tree": "8377ccad0ec7677189b81c26fbf0b77898a6952b",
      "parents": [
        "33388cb1d6f1aa8925b048060c1ca5833e8909ee"
      ],
      "author": {
        "name": "Gabriel Woloz",
        "email": "wolozgabriel@gmail.com",
        "time": "Mon Mar 09 00:59:02 2026 -0400"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Mar 09 09:46:57 2026 -0400"
      },
      "message": "lib/mgmt: Added missing command \"HCI Cmd Sync\" to mgmt_op\n"
    },
    {
      "commit": "33388cb1d6f1aa8925b048060c1ca5833e8909ee",
      "tree": "62de851635c9cb57ff3a062bdd78e52b1d69de9e",
      "parents": [
        "5ab15728068cc142e8bc2d4ada48d8fc3f431254"
      ],
      "author": {
        "name": "Christian Eggers",
        "email": "ceggers@arri.de",
        "time": "Fri Mar 06 17:19:21 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Mar 06 13:15:59 2026 -0500"
      },
      "message": "l2cap-pts: Add descriptions for LE CFC tests\n\nUnfortunately, v1 of my patch series has been applied to master. This is\nan incremental update to v2 of d99f2e129634 (\"doc/qualification:\nl2cap-pts: add descriptions for LE CFC tests\")\n"
    },
    {
      "commit": "5ab15728068cc142e8bc2d4ada48d8fc3f431254",
      "tree": "cba952a49e70b033b8b28047f3fd4d230bb59de4",
      "parents": [
        "47bf221d31831f796c91199472251ec72e974af3"
      ],
      "author": {
        "name": "Christian Eggers",
        "email": "ceggers@arri.de",
        "time": "Fri Mar 06 17:19:20 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Mar 06 13:15:50 2026 -0500"
      },
      "message": "gatt-pts: Add description for GATT/SR/GAI/BV-02-C\n\nUnfortunately, v1 of my patch series has been applied to master. This is\nan incremental update to v2 of 04af0bbeca63 (\"doc/qualification:\ngatt-pts: add description for GATT/SR/GAI/BV-02-C\")\n"
    },
    {
      "commit": "47bf221d31831f796c91199472251ec72e974af3",
      "tree": "1d4b096711ae46993bcbaf3dc65acd321ab6d827",
      "parents": [
        "0ca7685dd6b9263b1d993d77402d253cc9986468"
      ],
      "author": {
        "name": "Christian Eggers",
        "email": "ceggers@arri.de",
        "time": "Fri Mar 06 17:19:19 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Mar 06 13:15:30 2026 -0500"
      },
      "message": "gatt-pts: Update description for GATT/SR/GAI/BV-01-C\n\nUnfortunately, v1 of my patch series has been applied to master. This is\nan incremental update to v2 of 7a2d04492f98 (\"doc/qualification:\ngatt-pts: update description for GATT/SR/GAI/BV-01-C\")\n"
    },
    {
      "commit": "0ca7685dd6b9263b1d993d77402d253cc9986468",
      "tree": "b6c62ebdb1db21b43ed92ea71ab5aa4559c37147",
      "parents": [
        "a843a95b4cd11f0feeb524876cfbee474a7ac986"
      ],
      "author": {
        "name": "Christian Eggers",
        "email": "ceggers@arri.de",
        "time": "Fri Mar 06 17:19:18 2026 +0100"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Mar 06 13:15:21 2026 -0500"
      },
      "message": "gatt-pts: Add description for GATT/SR/GAN/BV-03-C\n\nUnfortunately, v1 of my patch series has been applied to master. This is\nan incremental update to v2 of 268d715b80e0 (\"doc/qualification:\ngatt-pts: add description for GATT/SR/GAN/BV-03-C\")\n"
    }
  ],
  "next": "a843a95b4cd11f0feeb524876cfbee474a7ac986"
}
