)]}'
{
  "commit": "f81c9aa501a4ce4eee3375ecbe6c88d7603111d6",
  "tree": "29124b6e5806a470d4a6226501c7002af2be0d2d",
  "parents": [
    "83391388f0ab230c673a2461990b0503324f54f7"
  ],
  "author": {
    "name": "gBMC Team",
    "email": "gbmc-core@google.com",
    "time": "Sat Sep 19 12:42:14 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Sat Sep 19 12:42:46 2026 -0700"
  },
  "message": "Map single-host port 10166 (instance 2) to host0 in BootTimeServiceImpl.\n\nIn `GrpcBlobMain`, three gRPC instances (`numInstances \u003d 3`) are spawned\nwith offsets from `portNumber` (`10166`):\n- `instance \u003d 0`: port `10167` (`offset \u003d 1`)\n- `instance \u003d 1`: port `10168` (`offset \u003d 2`)\n- `instance \u003d 2`: port `10166` (`offset \u003d 0`, single-CN default)\n\nBecause `gbmc-br` nftables rules (`50-gbmc-br-cn-redirect.rules` and\n`50-gbmc-br.rules`) drop direct traffic to ports `10167-10168`\n(`mark 0xff`) unless explicitly redirected for multi-host platforms,\nsingle-host platforms (such as Velorum) communicate over port `10166`\n(`instance \u003d 2`).\n\nWhile `BaremetalServiceImpl` and `BiosSettingsServiceImpl` check\n`(instance + 1) \u003d\u003d numInstances` to map `instance \u003d 2` back to `0`\n(`host0`), `BootTimeServiceImpl` omitted this check and mapped port\n`10166` to `host2` (`/run/Boottime/host2` and\n`/var/google/boottime/host2`), isolating loader boot times from the rest\nof the BMC boot times stored under `host0`.\n\nUpdate `BootTimeServiceImpl` to normalize `instance_number_` to `0`\nwhen `(instance + 1) \u003d\u003d numInstances`, matching `BaremetalServiceImpl`\nand `BiosSettingsServiceImpl`. Also move the H1 header to line 1 of\n`README.md` to satisfy `markdownlint` (`MD041`) in Kokoro presubmit and\nexport `boottime_test.cc` in `copy.bara.sky`.\n\nPiperOrigin-RevId: 984494451\nChange-Id: I4bff1bb94c7b7ad55e1dfd2ee815287fbe4e7fbb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f68988765328af84b08458b7e30d8cac2fec13b",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "42f3b9986fb95dc2929563de4eb87cf8d40d8a1a",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "aa2f4112e114aefaf00e150b20ae97b0d8917f59",
      "old_mode": 33188,
      "old_path": "src/boottime_callback.cc",
      "new_id": "f5c24bac512262b1f2559a38a3428710b171b443",
      "new_mode": 33188,
      "new_path": "src/boottime_callback.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "098055be33336af0a296958cae58b4876c1a98e5",
      "new_mode": 33188,
      "new_path": "src/test/boottime_test.cc"
    }
  ]
}
