)]}'
{
  "commit": "132d51178fa2722eb7022d5f8bb88d8e233f5e9a",
  "tree": "14fc2dab4fe768ed60aea23115fc127a480d06ab",
  "parents": [
    "ba5f5d77972637b250d9b1e8b14c520cd46da2a3"
  ],
  "author": {
    "name": "Ani Ramakrishnan",
    "email": "aniramakri@google.com",
    "time": "Fri Sep 04 21:59:43 2026 +0000"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Oct 06 13:28:42 2026 -0700"
  },
  "message": "rust/bt-mcs: Add public methods for updating server state\n\nAdd high-level public methods on McsServer to update track metadata,\nmedia playback state, position, identity, and optional control\ncharacteristics.\n\nIssue GATT notifications for state updates according to MCS v1.0.1:\n - Order Track Changed notification after track property updates\n - Resolve FromEnd track position offsets into non-negative values\n - Notify TrackPosition as Unavailable on transition to Inactive\n - Treat redundant Media State transitions as no-ops\n - Reject write notifications when state validation fails\n\nUpdate track position calculation to factor in playback speed and\nseeking speed without integer overflow.\n\nAdd FakeServerEventsExt assertion helpers in bt-gatt test_utils and\nupdate the MCS server test suite to explicitly assert GATT handles\nand notification payloads.\n\nBug: 540400364\nTest: cargo test -p bt-gatt -p bt-mcs, ./presubmit.sh\nChange-Id: Ib0d9e20de601d19bce339e332d5256a3f998eb10\nReviewed-on: https://bluetooth-review.googlesource.com/c/bluetooth/+/3900\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "def7f62f44d3e461d4852d47e483ae92b591f69a",
      "old_mode": 33188,
      "old_path": "rust/bt-gatt/src/test_utils.rs",
      "new_id": "ed05af569e3411927e0cccdeae31cb6eca5cd890",
      "new_mode": 33188,
      "new_path": "rust/bt-gatt/src/test_utils.rs"
    },
    {
      "type": "modify",
      "old_id": "9f0bbd7ea57d2462583441f915e1256d35a5b8e2",
      "old_mode": 33188,
      "old_path": "rust/bt-gatt/src/tests.rs",
      "new_id": "2a263bd5beca98b5de7ae10da58ffc3d47851132",
      "new_mode": 33188,
      "new_path": "rust/bt-gatt/src/tests.rs"
    },
    {
      "type": "modify",
      "old_id": "d57a6f772131348476a7b063c52886fe091bcc14",
      "old_mode": 33188,
      "old_path": "rust/bt-mcs/src/error.rs",
      "new_id": "6565d150a49e8b23a51dacdf3103ab53ed24b898",
      "new_mode": 33188,
      "new_path": "rust/bt-mcs/src/error.rs"
    },
    {
      "type": "modify",
      "old_id": "658631c630d930b1679772f982a2e5ce792f8424",
      "old_mode": 33188,
      "old_path": "rust/bt-mcs/src/server.rs",
      "new_id": "98e6df0c9ee8db6cbfdb6f208f9fdbdf0c98ae80",
      "new_mode": 33188,
      "new_path": "rust/bt-mcs/src/server.rs"
    },
    {
      "type": "modify",
      "old_id": "f802d19eea743d68bb603da2c3c7e13e9bbcf0f2",
      "old_mode": 33188,
      "old_path": "rust/bt-mcs/src/server/state.rs",
      "new_id": "46d3e2aacb182764b7fea6f8b6f6384644a7355b",
      "new_mode": 33188,
      "new_path": "rust/bt-mcs/src/server/state.rs"
    },
    {
      "type": "modify",
      "old_id": "35594c4e1b00ee09da5a3a6df03bed55927b1b80",
      "old_mode": 33188,
      "old_path": "rust/bt-mcs/src/types.rs",
      "new_id": "76fec63248f7dd1abea9c174cc924cb97bd8d1b2",
      "new_mode": 33188,
      "new_path": "rust/bt-mcs/src/types.rs"
    }
  ]
}
