)]}'
{
  "commit": "23b99344a478040c9eaeeef1f2622edff43f59df",
  "tree": "392c74cee4a6d4a002e2015f8fff66dc947fb4ff",
  "parents": [
    "aa8d73651a62991636d73e33d69ec18f53a9588c"
  ],
  "author": {
    "name": "Xinhao Yuan",
    "email": "xinhaoyuan@google.com",
    "time": "Wed Oct 07 08:29:11 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Oct 07 08:29:47 2026 -0700"
  },
  "message": "Let runner implement the engine ABI for the engine worker.\n\nThis consolidates the duplicated controller interaction in runner and engine worker.\nThere is some unique interaction left in the runner:\n\n  - Dumping serailized FuzzTest config.\n\n    Needed so that one can pass the fuzzing options to the test binary command when directly using the controller. But this uses C++-based struct. We should either drop this or make it dump controller options as strings, as part of the engine ABI.\n\n  - Notifying the absense of custom mutator to use the controller\u0027s builtin mutator.\n\n    Technically the runner has its own mutator for LLVMFuzzerMutate, but it\u0027s using the legacy ByteArrayMutator for minimal dependency, while the controller has the FuzzTest-based mutator. This should not be a problem once we remove the legacy support in runner (and let legacy fuzzers use the FuzzTest LLVM fuzzer wrapper instead)\n\nAlso, move fork server to the engine worker because we need to make sure that fork server starts before handling persistent mode.\n\nPiperOrigin-RevId: 995125597\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e54651582ddeb5dbf4634b3a2018db5626734ea8",
      "old_mode": 33188,
      "old_path": "centipede/BUILD",
      "new_id": "5e1690e279af1d664b1659547a2bdea6b6594030",
      "new_mode": 33188,
      "new_path": "centipede/BUILD"
    },
    {
      "type": "modify",
      "old_id": "c2d3eefd3da8ccbb4a27cd6d25438340103b87e2",
      "old_mode": 33188,
      "old_path": "centipede/runner.cc",
      "new_id": "e4d83844d3c44d021d02df643b88dfb2b3d2b9de",
      "new_mode": 33188,
      "new_path": "centipede/runner.cc"
    },
    {
      "type": "modify",
      "old_id": "b64f732a130dff05e8fc2f0ca6e4e13fd2e56642",
      "old_mode": 33188,
      "old_path": "centipede/runner.h",
      "new_id": "2944da3af683222633a0f63ba4f2903fbcf05b98",
      "new_mode": 33188,
      "new_path": "centipede/runner.h"
    }
  ]
}
