)]}'
{
  "commit": "06ab198c9105c49c0eb955f93651b67ad4627a10",
  "tree": "6930d6f0f9c7feb63153aafe14051f3374408117",
  "parents": [
    "1430eb39d24986defbc83a67cc9d2dcae2e38adc"
  ],
  "author": {
    "name": "Christina Quast",
    "email": "christina.quast@9elements.com",
    "time": "Wed Jul 22 11:03:08 2026 +0200"
  },
  "committer": {
    "name": "leongross",
    "email": "leon.gross@rub.de",
    "time": "Thu Jul 23 11:42:18 2026 +0200"
  },
  "message": "fwmanager: Move HalBootControl into hal-adapters crate\n\nSplit the HAL-backed adapter out of fwmanager-api so the api crate is a\ndependency-free leaf holding only the BootControl capability contract,\nmatching the layout of 9elements/openprot#20. HalBootControl and the\nBootError wrapper move to the new fwmanager-hal-adapters crate, which\ndepends on //hal/blocking and the api crate.\n\nDrop the system_control::Error bound from BootControl::Error, keeping\ncore::error::Error only: requiring the HAL error trait in the api crate\nwould keep the HAL dependency the split is meant to remove. BootError\nstill exposes kind(), and the generic-consumer test now recovers the\nerror category by downcasting the dyn core::error::Error instead of\nrelying on the removed bound.\n\nAdd impl From\u003cE\u003e for BootError\u003cE\u003e so implementations forwarding HAL\ncalls can use ? instead of .map_err(BootError), and switch\nHalBootControl over to it.\n\nAdd api-side tests proving the contract stays implementable with no HAL\nin sight, and cover the release error path in the adapter.\n\nAssisted-by: Claude:claude-fable-5\nSigned-off-by: Christina Quast \u003cchristina.quast@9elements.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d78ebb6ad794123d2a6ea4e19657daa4fe769518",
      "old_mode": 33188,
      "old_path": "services/fwmanager/api/BUILD.bazel",
      "new_id": "e5653a61a33e9b8ec9af832f512bf87170ee7b14",
      "new_mode": 33188,
      "new_path": "services/fwmanager/api/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "de6e07777201a50dae4fef5ddf01193ef5a53210",
      "old_mode": 33188,
      "old_path": "services/fwmanager/api/src/boot_control.rs",
      "new_id": "ae13cd57de151c6df32df7b0af9fe8dcf3189b81",
      "new_mode": 33188,
      "new_path": "services/fwmanager/api/src/boot_control.rs"
    },
    {
      "type": "modify",
      "old_id": "8ab488a29b0e9393dff1f5836b06ea72cbb926c9",
      "old_mode": 33188,
      "old_path": "services/fwmanager/api/src/lib.rs",
      "new_id": "8d577b9731beadf4ce14736338626780b932a1a4",
      "new_mode": 33188,
      "new_path": "services/fwmanager/api/src/lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aff19e3477b0590b1190e2dc9f536ffc24a5b4a7",
      "new_mode": 33188,
      "new_path": "services/fwmanager/hal-adapters/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b4ef418a7c71a138fe3bbcdfa7c0bd5188375263",
      "new_mode": 33188,
      "new_path": "services/fwmanager/hal-adapters/src/hal_boot_control.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "da8ebf3006cfb8ef1be07d634e7c73bdc96312aa",
      "new_mode": 33188,
      "new_path": "services/fwmanager/hal-adapters/src/lib.rs"
    }
  ]
}
