)]}'
{
  "commit": "501db186384ed191ae2afcc6d79e11c0b0e7614b",
  "tree": "774ac3cb876ff543aa05e96335a3a4966b40598e",
  "parents": [
    "f218254c073947c0b51bcd268e323a272d6d3de3"
  ],
  "author": {
    "name": "Guangzong Chen",
    "email": "guangzong@google.com",
    "time": "Thu Sep 10 19:25:59 2026 +0000"
  },
  "committer": {
    "name": "Guangzong Chen",
    "email": "guangzong@google.com",
    "time": "Fri Sep 11 22:16:46 2026 +0000"
  },
  "message": "build, docs: Support GCC 15 / C++23 and fix libnvme and markdownlint\n\nThe unit test Docker image was recently upgraded from Ubuntu with\nGCC 14.3.0 and Meson 1.7.0 to Ubuntu 26.04 with GCC 15.2.0 and\nMeson 1.11.2. This toolchain upgrade introduced several issues:\n\n1. Modern sdbusplus requires C++23 under GCC 15. Update meson.build\n   default cpp_std to c++23 and meson_version to \u003e\u003d1.1.1.\n2. GCC 15 enforces stricter -Wformat for non-void pointers passed to\n   %p, causing a build failure in libnvme/ccan. Add a patch to cast\n   pointers to const void*.\n3. Top-level warning_level\u003d3 and -Wpedantic propagated to the libnvme\n   subproject. Isolate libnvme with warning_level\u003d1 and werror\u003dfalse.\n4. Meson runs tests from subprojects by default. Under GCC 15 UBSan\n   (halt_on_error\u003d1), libnvme\u0027s internal tests fail with unaligned\n   memory access and null pointer in memset. Add a patch to libnvme\n   meson.build to skip building internal tests and examples when\n   libnvme is built as a subproject.\n5. Fix markdownlint issues across documentation.\n\nTested: Verified clean compilation and test execution in Docker\ncontainer with GCC 15 and address,undefined sanitizer.\nGoogle-Bug-Id: 560184526\nChange-Id: Ib476238d65c50a15bddad8e24b5e8462c924800c\nSigned-off-by: Guangzong Chen \u003cguangzong@google.com\u003e\nTAG\u003dagy\nCONV\u003d6866aaa8-fc79-4b5d-bbc3-928fa7aa65f3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9171e104d9859cc823a3bb99c46f7ba4391b8ac4",
      "old_mode": 33188,
      "old_path": ".agents/skills/compile/SKILL.md",
      "new_id": "36bd6af2f2924a2dc43ac277685cbbcd62bfc844",
      "new_mode": 33188,
      "new_path": ".agents/skills/compile/SKILL.md"
    },
    {
      "type": "modify",
      "old_id": "d8af07e30cc749f960e80fd6861adafbac9416ab",
      "old_mode": 33188,
      "old_path": ".agents/skills/lesson/SKILL.md",
      "new_id": "ad0d40e890507a9e22fd7102b672c075f04711c1",
      "new_mode": 33188,
      "new_path": ".agents/skills/lesson/SKILL.md"
    },
    {
      "type": "modify",
      "old_id": "cd08a27019606a4324b853c2f41c2097fab43820",
      "old_mode": 33188,
      "old_path": ".clang-tidy",
      "new_id": "cc826007034746bbac2dff1c82ace6052e6636a5",
      "new_mode": 33188,
      "new_path": ".clang-tidy"
    },
    {
      "type": "modify",
      "old_id": "2b6a463b3c23f0fb738501664ffd4bbaa3fede9d",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "3bd37aacb8ffd50d0619e316f41998db157591dd",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "185cb0c4a488018768f7b365386907034bcfa326",
      "old_mode": 33188,
      "old_path": "meson.build",
      "new_id": "0bfce5a224d2d25524ab72b3bee41fe6119b6695",
      "new_mode": 33188,
      "new_path": "meson.build"
    },
    {
      "type": "modify",
      "old_id": "886ac8d514226eed55aef2a81cba7ea2e4dd89bf",
      "old_mode": 33188,
      "old_path": "src/meson.build",
      "new_id": "ce21e2e5d0702a2db3bbf76861bd856447d7eba2",
      "new_mode": 33188,
      "new_path": "src/meson.build"
    },
    {
      "type": "modify",
      "old_id": "51ae9fbd60a5b0e1c4db837ca35be49e430100f3",
      "old_mode": 33188,
      "old_path": "subprojects/libnvme.wrap",
      "new_id": "e97aef2fadf591023dbd64b8798e41b7c49841ac",
      "new_mode": 33188,
      "new_path": "subprojects/libnvme.wrap"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e0627e069547e4f12b94b82244818aeff7e408b2",
      "new_mode": 33188,
      "new_path": "subprojects/packagefiles/libnvme/0001-ccan-cast-pointers-to-void-in-fprintf-for-p-format.patch"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6bc409b41717e3c7f11e93980fa7db6ab4268e01",
      "new_mode": 33188,
      "new_path": "subprojects/packagefiles/libnvme/0002-meson-skip-tests-when-built-as-subproject.patch"
    }
  ]
}
