)]}'
{
  "log": [
    {
      "commit": "a47f5a054b6d1c8e08e5c5b595b4747f8eda6f4c",
      "tree": "3a876bdbea7e2703970a84799deeb629d2ea1854",
      "parents": [
        "b52b89c3b329d5c28885b34eaa29cb4f487d2fa7"
      ],
      "author": {
        "name": "Kaustubh1204",
        "email": "kaustubhmishra350@gmail.com",
        "time": "Tue Feb 10 07:46:30 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 10 10:16:30 2026 +0800"
      },
      "message": "Fix unable to promote the new master while sequence\u003d0 during cluster shard failover (#377)\n\n"
    },
    {
      "commit": "b52b89c3b329d5c28885b34eaa29cb4f487d2fa7",
      "tree": "24ff2590e3656cddcfa17469c2a8e0d620a73ab3",
      "parents": [
        "6e40c67462abd2086150573d897bee68acfb314b"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun Dec 14 20:04:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 14 20:04:31 2025 +0800"
      },
      "message": "Add branch 1.3 as a protected branch (#371)\n\n"
    },
    {
      "commit": "6e40c67462abd2086150573d897bee68acfb314b",
      "tree": "6d1ad00cbaf5c68936b25d5248587826bb6332f8",
      "parents": [
        "083b05aebc8964d86a9b3dd0161c1b0bbb4ad653"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Mon Dec 08 18:11:27 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 08 18:11:27 2025 +0800"
      },
      "message": "Upgrade React/NextJS version to fix CVE-2025-55182 (#370)\n\n"
    },
    {
      "commit": "083b05aebc8964d86a9b3dd0161c1b0bbb4ad653",
      "tree": "fb0d80f10d2ff6a90826eeb7afb6bdbce5c2df55",
      "parents": [
        "e0d29334db6c16f8e3d762e33dd86438073b63c7"
      ],
      "author": {
        "name": "ALOK KUMAR",
        "email": "aloknokha01@gmail.com",
        "time": "Sun Nov 23 17:30:21 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Nov 23 20:00:21 2025 +0800"
      },
      "message": "Add documentation section to README (#368)\n\n"
    },
    {
      "commit": "e0d29334db6c16f8e3d762e33dd86438073b63c7",
      "tree": "56141761bcb4477251bc536c663bb65d5da9d262",
      "parents": [
        "4a9ea113b50ba54cce2a6df80e507adf16c46fbf"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Fri Nov 21 13:23:48 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 21 15:53:48 2025 +0800"
      },
      "message": "feat(webui): add global modern Spotlight Search (#367)\n\nCo-authored-by: agnik \u003cagnik@agniks-MacBook-Pro.local\u003e"
    },
    {
      "commit": "4a9ea113b50ba54cce2a6df80e507adf16c46fbf",
      "tree": "7f4476936e09e43ac39a8c06b48e1fb2dd941e91",
      "parents": [
        "0564c955a887656f1893de84746520e9116804dc"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Sat Oct 25 17:23:31 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 25 17:23:31 2025 +0800"
      },
      "message": "chore(webui): update ASF logo (#364)\n\n"
    },
    {
      "commit": "0564c955a887656f1893de84746520e9116804dc",
      "tree": "32976572d9f663276434d44e2b7bbc61894e2f95",
      "parents": [
        "54a7ac4eecfb77d68dcdd5753113f3977a88f1f1"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun Oct 12 13:39:30 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 12 13:39:30 2025 +0800"
      },
      "message": "Add 1.2 as the protected branch (#363)\n\n"
    },
    {
      "commit": "54a7ac4eecfb77d68dcdd5753113f3977a88f1f1",
      "tree": "69ad70632572dd54bd744a6787adcfc19a1f3d37",
      "parents": [
        "e043a827124523ced41b7bd5098e22a9ecc0ad7a"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Sun Oct 12 13:24:56 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 12 13:24:56 2025 +0800"
      },
      "message": "Improve the failover efficiency (#362)\n\n"
    },
    {
      "commit": "e043a827124523ced41b7bd5098e22a9ecc0ad7a",
      "tree": "d5ca1768d768cfcc3c6208f22937067703630783",
      "parents": [
        "d9f8c40db01c9d14c5dc179177291127490f4b59"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Wed Oct 08 20:49:32 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 20:49:32 2025 +0800"
      },
      "message": "build: deploy webui into the docker image (#361)\n\n"
    },
    {
      "commit": "d9f8c40db01c9d14c5dc179177291127490f4b59",
      "tree": "9c94ee4bf0af35f41fcd684063e95f917d3e00e5",
      "parents": [
        "b6e5fb5a993f4c11e24b63eed281cb4b1b8e8c34"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Wed Oct 08 18:39:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 18:39:22 2025 +0800"
      },
      "message": "feat(webui): use nextjs middleware to dynamically redirect API calls (#360)\n\n* feat(webui): use nextjs middleware to dynamically redirect API calls\n\n* lint"
    },
    {
      "commit": "b6e5fb5a993f4c11e24b63eed281cb4b1b8e8c34",
      "tree": "5c83c0140ebbacbded9a98317cb604888a9d523f",
      "parents": [
        "d7d264f29b87acc7c755fef64801eb5b40ad09f6"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Wed Oct 08 16:13:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 08 16:13:44 2025 +0800"
      },
      "message": "Split ENTRYPOINT to CMD in Dockerfile (#359)\n\n"
    },
    {
      "commit": "d7d264f29b87acc7c755fef64801eb5b40ad09f6",
      "tree": "0fb3095d7e335ad9aa35928d7d708591e07a007a",
      "parents": [
        "686b338d3ae1e26754cad80a79f1334d51089ac2"
      ],
      "author": {
        "name": "Lele Huang",
        "email": "hllecnu@foxmail.com",
        "time": "Sat Oct 04 15:39:41 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 04 15:39:41 2025 +0800"
      },
      "message": "Fix sourceNodeClusterInfo.MigratingSlot maybe nil when tryUpdateMigrationStatus (#357)\n\n"
    },
    {
      "commit": "686b338d3ae1e26754cad80a79f1334d51089ac2",
      "tree": "bcb14dc83ec391a709f236ed87167e1a80ed5f27",
      "parents": [
        "74455be5343c241f1761ee086ab2582d3ee1bd35"
      ],
      "author": {
        "name": "Lele Huang",
        "email": "hllecnu@foxmail.com",
        "time": "Mon Sep 29 13:44:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 29 13:44:59 2025 +0800"
      },
      "message": "Marshal the value into the null value if the slot is not migrating (#346)\n\n---------\n\nCo-authored-by: hulk \u003chulk.website@gmail.com\u003e"
    },
    {
      "commit": "74455be5343c241f1761ee086ab2582d3ee1bd35",
      "tree": "8f1a7ffd5a94cb281a510276e322ff61a903be39",
      "parents": [
        "167acb7c0509f1f6b9f5744869a7225f9095eb86"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Sun Sep 28 18:22:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 28 18:22:14 2025 +0800"
      },
      "message": "Fix the data race when migrating slots on multi shards (#352)\n\n"
    },
    {
      "commit": "167acb7c0509f1f6b9f5744869a7225f9095eb86",
      "tree": "3b0ef4d7c308214d0f664da8e97e5fd14465dce6",
      "parents": [
        "1cb2d5d9f226cf71345fc0abdba44f0d3558de20"
      ],
      "author": {
        "name": "superchee",
        "email": "100102660+superchee0526@users.noreply.github.com",
        "time": "Sun Sep 28 13:52:20 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 28 13:52:20 2025 +0800"
      },
      "message": "Fix leader change haven\u0027t updated prevTermLeader when lost the leader (#353)\n\n"
    },
    {
      "commit": "1cb2d5d9f226cf71345fc0abdba44f0d3558de20",
      "tree": "1a07ffcd822ec16e08360a50e59ff65cd75fce45",
      "parents": [
        "b37b4c90a81fcda52ee545b4fd318da589ceefe6"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun Sep 28 09:35:43 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 28 09:35:43 2025 +0800"
      },
      "message": "Enable the auto merge and the update branch feature in CI (#356)\n\n"
    },
    {
      "commit": "b37b4c90a81fcda52ee545b4fd318da589ceefe6",
      "tree": "0ca0a6325503be2c83823894ea07e1392695554e",
      "parents": [
        "3c5803f7f3e59d8c4024f9523430a565b667c353"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sat Sep 27 14:01:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 27 14:01:22 2025 +0800"
      },
      "message": "Fix flaky test in cluster failover (#355)\n\n"
    },
    {
      "commit": "3c5803f7f3e59d8c4024f9523430a565b667c353",
      "tree": "5c0176816497587edc53ed22ddcf524766f0b833",
      "parents": [
        "61b3665f472c7cc0121d2375aa92960ffd05dc5c"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sat Sep 27 10:12:52 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 27 10:12:52 2025 +0800"
      },
      "message": "Fix test case failure after hardening the promote master behavior (#354)\n\n"
    },
    {
      "commit": "61b3665f472c7cc0121d2375aa92960ffd05dc5c",
      "tree": "11d290cb8c67d1ee02ef1e0591aa334faf59b2b4",
      "parents": [
        "9620d73e859f012eac4ff3724f67fe9ecfc79c4d"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Fri Sep 19 17:50:33 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 19 17:50:33 2025 +0800"
      },
      "message": "Enhance the slave node promotion (#340)\n\n"
    },
    {
      "commit": "9620d73e859f012eac4ff3724f67fe9ecfc79c4d",
      "tree": "cf8a234b561b54f4353de87cc1ac4af35b126cd0",
      "parents": [
        "2b86875614e0db929f5d36d08ba7f64cc17dbe50"
      ],
      "author": {
        "name": "Ninuxer",
        "email": "31059425+ninuxer@users.noreply.github.com",
        "time": "Wed Sep 17 20:09:25 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 17 20:09:25 2025 +0800"
      },
      "message": "Fix the wrong configuration min_alive_size which should be max_ping_count (#350)\n\n"
    },
    {
      "commit": "2b86875614e0db929f5d36d08ba7f64cc17dbe50",
      "tree": "bb89e920dcadfac8b9c6d2674db8fef0a02c6dc7",
      "parents": [
        "751cf95d04600490bb00055f54eda7fc8b895bc2"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Tue Sep 02 16:59:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 02 16:59:59 2025 +0800"
      },
      "message": "Add branch 1.0 and 1.1 as protected branches in .asf.yaml (#345)\n\n"
    },
    {
      "commit": "751cf95d04600490bb00055f54eda7fc8b895bc2",
      "tree": "49a42efbf295b571868d151d74c0a79c6cda7056",
      "parents": [
        "0c11f64f20b87e992fcc60ce9b8d6b768ddf2ef9"
      ],
      "author": {
        "name": "Byron Seto",
        "email": "byron.seto@stackadapt.com",
        "time": "Wed Aug 20 20:14:24 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 21 10:14:24 2025 +0800"
      },
      "message": "failover command previously gave EOF (#344)\n\nfailover command previous gave EOF"
    },
    {
      "commit": "0c11f64f20b87e992fcc60ce9b8d6b768ddf2ef9",
      "tree": "87169c0b6c5ca3cf36fd7330bc5647a4c20074d8",
      "parents": [
        "0cffae9a12cf2a2b1e5d54e55437b93ed3ba50db"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Wed Aug 20 09:58:49 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 20 09:58:49 2025 +0800"
      },
      "message": "Enable dismiss_stale_reviews in .asf.yaml (#343)\n\n"
    },
    {
      "commit": "0cffae9a12cf2a2b1e5d54e55437b93ed3ba50db",
      "tree": "d3347ef41e8e26df9b02c8957a4632b5373a9ea7",
      "parents": [
        "821e8286c0daa95ae1aa6b30183a989a2b54574c"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Tue Aug 19 19:26:10 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 19 21:56:10 2025 +0800"
      },
      "message": "feat(webui): implemented cluster slot migration (#341)\n\n* feat(webui): implemented cluster slot migration\n\n* support of Slot range\n\n* TypeScript error fix"
    },
    {
      "commit": "821e8286c0daa95ae1aa6b30183a989a2b54574c",
      "tree": "ccd7012bc7bc4dfccc57404fe38acd42a6572a04",
      "parents": [
        "7fe3a2de5bb300cbe08efa938549b398e0cf1866"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sat Aug 16 00:42:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 16 00:42:26 2025 +0800"
      },
      "message": "Require CI must be passed before merging (#338)\n\n"
    },
    {
      "commit": "7fe3a2de5bb300cbe08efa938549b398e0cf1866",
      "tree": "f2319a100d20b771471e74a42242a666f5edaa68",
      "parents": [
        "25b103485b473d945b5a04d28208399f6f36df6f"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Fri Aug 15 21:39:25 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 16 00:09:25 2025 +0800"
      },
      "message": "feat(webui): implemented shard master failover, added delete icon in list view (#337)\n\n"
    },
    {
      "commit": "25b103485b473d945b5a04d28208399f6f36df6f",
      "tree": "b7e5e4621ec3fb6768384159fdc0685d88dd846e",
      "parents": [
        "431c824dc3f16cc9f30b00d94d59eba3354dd73a"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Sun Aug 10 16:13:13 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 10 18:43:13 2025 +0800"
      },
      "message": "feat(webui): refined all pages added border radius fix spacing issues (#336)\n\nfeat(webui) refined all pages added border radius fix spacing issues and text alignment issues in home page"
    },
    {
      "commit": "431c824dc3f16cc9f30b00d94d59eba3354dd73a",
      "tree": "ef4cb31cddbfb4ae2e6f96823b6e310d5f24c0ef",
      "parents": [
        "d11ae9d10d540af7aff9b1a1ca847e44dc85a55f"
      ],
      "author": {
        "name": "Lele Huang",
        "email": "hllecnu@foxmail.com",
        "time": "Wed Aug 06 21:03:37 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 06 21:03:37 2025 +0800"
      },
      "message": "Fix HasOverlap might return the wrong result (#335)\n\n"
    },
    {
      "commit": "d11ae9d10d540af7aff9b1a1ca847e44dc85a55f",
      "tree": "3290518789922a09c6f2c9d794cb50b26201fa0e",
      "parents": [
        "9926049a3ad066b077e41797dc045babd482821f"
      ],
      "author": {
        "name": "Lele Huang",
        "email": "hllecnu@foxmail.com",
        "time": "Mon Aug 04 12:26:28 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 04 12:26:28 2025 +0800"
      },
      "message": "Fix nil pointer when print MigratingSlot string function (#332)\n\n"
    },
    {
      "commit": "9926049a3ad066b077e41797dc045babd482821f",
      "tree": "7a218ab38b2eab32923d60633774a862eb5ad3bb",
      "parents": [
        "99cea5c584442619785d1ca42c8cc2e5fff8dc2e"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Thu Jul 31 07:51:35 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 31 10:21:35 2025 +0800"
      },
      "message": "feat(webui/node): redesign node detailed page (#330)\n\n"
    },
    {
      "commit": "99cea5c584442619785d1ca42c8cc2e5fff8dc2e",
      "tree": "f765132ebab9d76ce040e19db0984edff969b9c0",
      "parents": [
        "79e2659a297a8bec56acc22137f385d60102c544"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Thu Jul 24 17:56:42 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 24 20:26:42 2025 +0800"
      },
      "message": "feat(webui/node): redesign node page (#327)\n\n"
    },
    {
      "commit": "79e2659a297a8bec56acc22137f385d60102c544",
      "tree": "ac2678bad9c35990a66af61b01345bae0377ccb8",
      "parents": [
        "ab9f92eb0995a9f91f1e410ee604c7a4f21fdc79"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun Jul 20 17:33:39 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 20 12:33:39 2025 +0300"
      },
      "message": "Use gotestsum to beautify the test output (#326)\n\n* Use gotestsum to beautify the test output\n\nCurrently, the test output is too long and hard to read. To mitigate\nthis issue, we can use gotestsum to collapse the test output and make it\nclear and easy to find the failure tests.\n\n* Use atomic mode"
    },
    {
      "commit": "ab9f92eb0995a9f91f1e410ee604c7a4f21fdc79",
      "tree": "ff940ee4b17be9c9ec671a5b9ea3e50700d4d6d6",
      "parents": [
        "6bac9a4202a1aa3fd6a1f55e47352441242fa06c"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Mon Jul 14 19:07:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 14 19:07:22 2025 +0800"
      },
      "message": "Fix data race when migrating slots (#324)\n\n"
    },
    {
      "commit": "6bac9a4202a1aa3fd6a1f55e47352441242fa06c",
      "tree": "b3f84c445a22aaa124e62988c161be24cccab165",
      "parents": [
        "4899f99d613d043c5a8b010956ea78463dce7beb"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Mon Jul 14 12:20:17 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 14 14:50:17 2025 +0800"
      },
      "message": "feat(webui/shard): redesign the shard page (#325)\n\n"
    },
    {
      "commit": "4899f99d613d043c5a8b010956ea78463dce7beb",
      "tree": "6be3e2c069ec0230eccdbb702a59fd01f3beec8d",
      "parents": [
        "c6380efe04c953c2c2be7d171619218ac8dea75e"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Mon Jul 07 23:55:20 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 07 23:55:20 2025 +0800"
      },
      "message": "Validate the preferred node id format in failover API (#323)\n\nCurrently, it will still promote a new master even through the preferred\nnode is in invalid format, and it might cause confusing since the new\nmaster is not what users expected."
    },
    {
      "commit": "c6380efe04c953c2c2be7d171619218ac8dea75e",
      "tree": "36856afa655b6d9d1d2317cf0855c63306b3de2a",
      "parents": [
        "43b567cdc24782762227953e51cb52bc941ed8bf"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Sun Jul 06 19:08:47 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 06 21:38:47 2025 +0800"
      },
      "message": "feat(webui/cluster): redesign cluster page (#322)\n\n"
    },
    {
      "commit": "43b567cdc24782762227953e51cb52bc941ed8bf",
      "tree": "c37e17a67810f35d5c8b1534c2e62983d25d0811",
      "parents": [
        "26567c21e8382c5f50872ef5e8e04967554faa56"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Sun Jun 29 20:55:55 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 29 20:55:55 2025 +0800"
      },
      "message": "sync cluster info to nodes concurrently (#320)\n\nCo-authored-by: hulk \u003chulk.website@gmail.com\u003e"
    },
    {
      "commit": "26567c21e8382c5f50872ef5e8e04967554faa56",
      "tree": "a4ee0977b923984d242416baf97c36a8cf79dccd",
      "parents": [
        "481cc4a53b33792b40d390e4c391e480006f3bc4"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Thu Jun 19 20:30:26 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 19 23:00:26 2025 +0800"
      },
      "message": "feat(webui/namespace): redesign namespace and sidebar (#319)\n\n"
    },
    {
      "commit": "481cc4a53b33792b40d390e4c391e480006f3bc4",
      "tree": "465e750e6d5dca4dc01b5099b3217b04494e348e",
      "parents": [
        "9ae18494266a4f6df5f645636b6f7ab61eb6deca"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Tue Jun 10 13:45:07 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 10 16:15:07 2025 +0800"
      },
      "message": "feat(webui/homepage\u0026footer): Redesign homepage and footer with dark mode (#316)\n\n* feat(webui/homepage\u0026footer): Redesign homepage and footer with dark mode\n\n* fixed unescaped quote\n\n* fix: resolve Prettier formatting issues\n\n* Update webui/src/app/page.tsx\n\n---------\n\nCo-authored-by: abc \u003cabc@abcs-MacBook-Air.local\u003e\nCo-authored-by: Twice \u003ctwice@apache.org\u003e"
    },
    {
      "commit": "9ae18494266a4f6df5f645636b6f7ab61eb6deca",
      "tree": "50521d50f02664d86356f8768b74d83fae30064e",
      "parents": [
        "cfc57e27bfb5b5fc7383bad9ae478786411dede0"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Wed Jun 04 09:16:42 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 04 11:46:42 2025 +0800"
      },
      "message": "feat(webui/header): move tabs to right \u0026 add breadcrumb navigation (#314)\n\n* Redesigned header: moved tabs to right and added breadcrumb\n\n* prettier fix\n\n---------\n\nCo-authored-by: abc \u003cabc@abcs-MacBook-Air.local\u003e"
    },
    {
      "commit": "cfc57e27bfb5b5fc7383bad9ae478786411dede0",
      "tree": "6d035993c66cb3ce4d950feac99ddfd7e0ba92d4",
      "parents": [
        "2de5972a0ff8c567c594247c8ceb3909f371dd47"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun Jun 01 17:11:39 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 01 17:11:39 2025 +0800"
      },
      "message": "Add the failover API into docs (#311)\n\n"
    },
    {
      "commit": "2de5972a0ff8c567c594247c8ceb3909f371dd47",
      "tree": "e2f45892498a931c9db90052a38e6674dd89b7ba",
      "parents": [
        "2c834b4af8dab0e44b1745d4dc28618cf9328339"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Tue May 13 20:53:50 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 13 20:53:50 2025 +0800"
      },
      "message": "Return its id when creating a new node (#307)\n\nCo-authored-by: git-hulk \u003chulk.website@gmail.com\u003e"
    },
    {
      "commit": "2c834b4af8dab0e44b1745d4dc28618cf9328339",
      "tree": "34fd79d897f9fa44abcdf1ba5b9c5c9a745a47fe",
      "parents": [
        "fc80b1a8b70f9a5d68c7eb5339784cb423eccfe9"
      ],
      "author": {
        "name": "Byron Seto",
        "email": "byron.seto@stackadapt.com",
        "time": "Mon May 12 22:10:57 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 13 12:10:57 2025 +0800"
      },
      "message": "Fix the migrating slot didn\u0027t compatible with old format (#310)\n\n"
    },
    {
      "commit": "fc80b1a8b70f9a5d68c7eb5339784cb423eccfe9",
      "tree": "e0568c492aa617eac73ed263ef88dc946d60c084",
      "parents": [
        "3bdddb543c076b197f959a3e6dbcea11d161dca7"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun May 11 15:37:56 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 11 15:37:56 2025 +0800"
      },
      "message": "Enhance the migration test cases with the slot range (#309)\n\nCurrently, we only test the single migration without checking the data.\nThis PR adds the slot range into the test case and also checking the\ndata is correctly migrated."
    },
    {
      "commit": "3bdddb543c076b197f959a3e6dbcea11d161dca7",
      "tree": "6444b9177af32b7d4f4b0362a6669905d0a8ac4a",
      "parents": [
        "a6334b3812cd68bcac4d07dd17441325a272c4d1"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Wed May 07 11:33:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 07 11:33:38 2025 +0800"
      },
      "message": "Build the kvrocks container to allow running multiple intances (#305)\n\nCurrently, we use separate Docker containers for two test Kvrocks\ncontainers, and they cannot migrate data of slots due to they are not\nsharing the network. This PR builds two instances in one container so\nthat we can test the migrate data function."
    },
    {
      "commit": "a6334b3812cd68bcac4d07dd17441325a272c4d1",
      "tree": "927c3a97de0833fcb1db1222854739b6b1108166",
      "parents": [
        "96a6498706873ff65cfe30cb9a5f2f64c529f3e8"
      ],
      "author": {
        "name": "Byron Seto",
        "email": "byronseto@hotmail.com",
        "time": "Sat May 03 07:57:25 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 03 21:57:25 2025 +0800"
      },
      "message": "Add support of migrating with slot range (#304)\n\n"
    },
    {
      "commit": "96a6498706873ff65cfe30cb9a5f2f64c529f3e8",
      "tree": "907b36c58d647ebb48e920df2eb107c08e4a3b3e",
      "parents": [
        "abc1b4d35770ee5f7285d1eeeee2c70e89b65c39"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Thu Apr 10 19:02:47 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 10 19:02:47 2025 +0800"
      },
      "message": "Fix migration info may be empty when fetching migrating_state from node fails (#300)\n\n"
    },
    {
      "commit": "abc1b4d35770ee5f7285d1eeeee2c70e89b65c39",
      "tree": "8589c46debf40f8ea8ff17e71bf6c4371954a2da",
      "parents": [
        "292d84ffe085c0c813777f713521e86e976bb6cc"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Sat Mar 29 15:09:02 2025 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 29 20:09:02 2025 +0800"
      },
      "message": "Update godeps (#299)\n\n"
    },
    {
      "commit": "292d84ffe085c0c813777f713521e86e976bb6cc",
      "tree": "eab53a7fc1195070056d455d46d96f64e32a7865",
      "parents": [
        "9c536fbeeff80218dc8e72c208238d41f9a3c46e"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Fri Mar 28 10:17:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 28 10:17:40 2025 +0800"
      },
      "message": "Support the latest cluster info from the node which version larger than local cluster version (#271)\n\n"
    },
    {
      "commit": "9c536fbeeff80218dc8e72c208238d41f9a3c46e",
      "tree": "5ee0b9b9a9532b7b6e5d98cb58951661c2bac8b9",
      "parents": [
        "475976a843bca2ec7e96625134f4ad245eea62fa"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Wed Mar 26 11:50:40 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 26 14:20:40 2025 +0800"
      },
      "message": "feat(webui): make the top navbar more modern (#297)\n\n* Modern topnavbar\n\n* Fix code style issues in banner.tsx using Prettier"
    },
    {
      "commit": "475976a843bca2ec7e96625134f4ad245eea62fa",
      "tree": "59c13e92ede0d414079a8859d713f43733ad6b88",
      "parents": [
        "e889f364dcd005329edd5ea4071d19b40e9aa13b"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Wed Mar 26 08:13:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 26 08:13:40 2025 +0800"
      },
      "message": "Fix npm build error and build web ui in CI (#296)\n\nBefore this PR, run `npm run build` will return the following error:\n\n```shell\n./src/app/namespaces/[namespace]/clusters/[cluster]/page.tsx:114:41\nType error: Type \u0027({ label: string; color: string; } | undefined)[]\u0027 is not assignable to type \u0027{ label: string; color?: string | undefined; }[]\u0027.\n  Type \u0027{ label: string; color: string; } | undefined\u0027 is not assignable to type \u0027{ label: string; color?: string | undefined; }\u0027.\n    Type \u0027undefined\u0027 is not assignable to type \u0027{ label: string; color?: string | undefined; }\u0027.\n\n  112 |                                     \u003cResourceCard\n  113 |                                         title\u003d{`Shard ${index + 1}`}\n\u003e 114 |                                         tags\u003d{[\n      |                                         ^\n  115 |                                             {\n  116 |                                                 label: `${shard.nodes.length} nodes`,\n  117 |                                                 color: \"secondary\",\n\n```\n\nIt\u0027s due to using the array filter on undefined values."
    },
    {
      "commit": "e889f364dcd005329edd5ea4071d19b40e9aa13b",
      "tree": "4abcb804d0006d48b6466b2a3d6281900dfb6fc9",
      "parents": [
        "400e072f050d41f44666feaef0b7c04dd3ae0cee"
      ],
      "author": {
        "name": "shubham-j-sde",
        "email": "70763025+shubham-j-sde@users.noreply.github.com",
        "time": "Tue Mar 25 13:01:41 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 25 15:31:41 2025 +0800"
      },
      "message": "Fix license checker path in CI (#294)\n\n"
    },
    {
      "commit": "400e072f050d41f44666feaef0b7c04dd3ae0cee",
      "tree": "8eb641e6c827f51d0164298f3d634056d5ee6b94",
      "parents": [
        "ed7c6704ee6258b694b657b8611bc3014dfb99e9"
      ],
      "author": {
        "name": "Anirudh Lakhanpal",
        "email": "91114837+SharonIV0x86@users.noreply.github.com",
        "time": "Tue Mar 25 09:30:32 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 25 12:00:32 2025 +0800"
      },
      "message": "Add Prettier and format all files (#288)\n\n* Add Prettier and format all files\n\n* Add prettier-plugin-tailwindcss for nextjs\n\n* Added license to config files.\n\n* Added lint check to CI, removed license comments from json files\n\n* trying to fix merge conflicts\n\n* improved formatting for new files\n\n* merge conflicts :(\n\n* exclude json files from license checking in licenserc.yaml\n\n* Fixed ci to only perform prettier formatting in webui folder, not the root folder.\n\n* Re-format all files with tab width 4\n\n* fixing merge conflicts.\n\n* fixed formatting of globals.css"
    },
    {
      "commit": "ed7c6704ee6258b694b657b8611bc3014dfb99e9",
      "tree": "d5bdfb1f874a0ca329b32b8c48dc074b55ebf3d3",
      "parents": [
        "9ab12e8ab0a6378ba7e25c7c2d976948d27f701e"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Sun Mar 23 07:45:59 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 23 10:15:59 2025 +0800"
      },
      "message": "Fix top Navigation Bar blue color while reloading (#290)\n\n"
    },
    {
      "commit": "9ab12e8ab0a6378ba7e25c7c2d976948d27f701e",
      "tree": "3f2ef56ab76ab65ef2ee9b043d5f04744e704a10",
      "parents": [
        "96eb1f13fa0b809d4e1b362703323bb7b0ee72f1"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Sat Mar 22 13:38:58 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 22 19:38:58 2025 +0800"
      },
      "message": "Update deps (#289)\n\nupdate deps"
    },
    {
      "commit": "96eb1f13fa0b809d4e1b362703323bb7b0ee72f1",
      "tree": "64c9899332534a4d1b1c7d8b41d82620cafc1547",
      "parents": [
        "bf1ba4759640bf192292392e93c6288b21af9455"
      ],
      "author": {
        "name": "shubham-j-sde",
        "email": "70763025+shubham-j-sde@users.noreply.github.com",
        "time": "Sat Mar 22 12:40:34 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 22 15:10:34 2025 +0800"
      },
      "message": "feat(webui): redesign the footer element (#287)\n\n* redesigning footer element\n\n* adding license\n\n* Update asf_logo.svg\n\nadding license"
    },
    {
      "commit": "bf1ba4759640bf192292392e93c6288b21af9455",
      "tree": "e11a2db2da26b577e37e8a320e615d90acd085e6",
      "parents": [
        "1be45f1c675d8c5935b4ad03105b82d3adac7332"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Thu Mar 20 08:21:45 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 20 10:51:45 2025 +0800"
      },
      "message": "feat(webui): redesign the controller web management UI (#281)\n\n* Fix edge case handling in Mock engine List method\n\n* There\u0027s a typo in the main UI heading - Controler should be Controller\n\n* This code launches a new goroutine for each node in the cluster without any concurrency limits.\n\n* redesign the webpage\n\n* Update cluster.go\n\n* fix conflict\n\n* conflict\n\n* Update webui/src/app/page.tsx\n\n* Update webui/src/app/page.tsx\n\n* Update webui/src/app/layout.tsx\n\n* Update webui/src/app/ui/banner.tsx\n\n* Update webui/src/app/page.tsx\n\n* Update webui/src/app/page.tsx\n\n---------\n\nCo-authored-by: Twice \u003ctwice@apache.org\u003e"
    },
    {
      "commit": "1be45f1c675d8c5935b4ad03105b82d3adac7332",
      "tree": "99765726d55f90481ed2f0440eb923899d56c010",
      "parents": [
        "8b0eda8ce2e272c01329e6a9fb39edcdc54b1c4f"
      ],
      "author": {
        "name": "Byron Seto",
        "email": "byronseto@hotmail.com",
        "time": "Wed Mar 19 08:13:55 2025 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 19 22:13:55 2025 +0800"
      },
      "message": "Fix consul engine bug when adding the key with slash prefix (#283)\n\n"
    },
    {
      "commit": "8b0eda8ce2e272c01329e6a9fb39edcdc54b1c4f",
      "tree": "7331974880944a534d7b60a543a122f464053539",
      "parents": [
        "f0af65b5725bd43b2e3ed6071d0d561e5af13bf6"
      ],
      "author": {
        "name": "travisshivers",
        "email": "ttshivers@arista.com",
        "time": "Wed Mar 19 03:29:55 2025 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 19 16:29:55 2025 +0800"
      },
      "message": "migration: fix log for slot migration success (#277)\n\nPreviously, the code was trying to log the migrated slot after\ncalling ClearMigrateState, which set the migrated slot to -1.\nInstead, capture the slot number so we can properly log it later."
    },
    {
      "commit": "f0af65b5725bd43b2e3ed6071d0d561e5af13bf6",
      "tree": "3ab3fd20838468ba6c2c409aa22dcd625235138d",
      "parents": [
        "8ed75afcb0191398afcd250021c3073a3769cf1b"
      ],
      "author": {
        "name": "Agnik Misra",
        "email": "agnikmisra@gmail.com",
        "time": "Tue Mar 18 15:22:09 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 18 17:52:09 2025 +0800"
      },
      "message": "Fix typo in the main UI heading (#279)\n\n* Fix edge case handling in Mock engine List method\n\n* There\u0027s a typo in the main UI heading - Controler should be Controller\n\n* Update engine_inmemory.go to old one"
    },
    {
      "commit": "8ed75afcb0191398afcd250021c3073a3769cf1b",
      "tree": "0a3e612467819692382745d24e835256092bc3b5",
      "parents": [
        "817a884ca679f1a8f0e6c73fbfc5f474ecf25480"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Mar 11 04:02:52 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 11 10:02:52 2025 +0800"
      },
      "message": "chore(deps): update deps (#275)\n\nupdate deps"
    },
    {
      "commit": "817a884ca679f1a8f0e6c73fbfc5f474ecf25480",
      "tree": "ca1335a25b7ce0bfbcaff80b9fc85d1165493c5b",
      "parents": [
        "0032e5418d942fc6799a14e24e7c8e17aa0630c5"
      ],
      "author": {
        "name": "Raphael",
        "email": "greatsharp@hotmail.com",
        "time": "Sun Mar 02 22:55:15 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 02 22:55:15 2025 +0800"
      },
      "message": "Allow to send logs to the file with the rotation (#270)\n\n"
    },
    {
      "commit": "0032e5418d942fc6799a14e24e7c8e17aa0630c5",
      "tree": "38a65ff131a3fb2d478089961fdf1d8bc49bcc1a",
      "parents": [
        "fe4d22a53ff42373ab18b7983c623062be58b246"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Thu Feb 20 09:32:19 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 20 09:32:19 2025 +0800"
      },
      "message": "Fix wrongly check if the migrating slot in the source node (#269)\n\n* Fix wrongly check if the migrating slot in the source node\n\n Kvrocks will return `migrating_slot(s)` instead of `migrating_slot`\n after the slot range migration is supported. From the controller, we\n need to allow both of them to be compatiable with the old behavior.\n\n* Fix data race"
    },
    {
      "commit": "fe4d22a53ff42373ab18b7983c623062be58b246",
      "tree": "ef3573963d2d90e3411c94858ce4f508b777dc5e",
      "parents": [
        "12aaa8272b857f21c0a75042bc18a6f54a3fd98b"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Sun Feb 16 08:25:07 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 16 14:25:07 2025 +0800"
      },
      "message": "Update deps (#264)\n\n"
    },
    {
      "commit": "12aaa8272b857f21c0a75042bc18a6f54a3fd98b",
      "tree": "ace26b6ffa68e23be46c584bf4dd450436e598d1",
      "parents": [
        "ce0e81bf771482d54d1a0957704ed6996e94e9f4"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Feb 11 15:43:05 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 11 21:43:05 2025 +0800"
      },
      "message": "Update godeps (#263)\n\nupdate deps"
    },
    {
      "commit": "ce0e81bf771482d54d1a0957704ed6996e94e9f4",
      "tree": "de07b10bcaf3a37b1153719d08abec9ae36f704c",
      "parents": [
        "fb1863cbaf28743a4181965c6432503c9f09f92b"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Feb 04 13:39:21 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 04 19:39:21 2025 +0800"
      },
      "message": "Update go deps (#262)\n\n"
    },
    {
      "commit": "fb1863cbaf28743a4181965c6432503c9f09f92b",
      "tree": "20b633db8b966105a79f99ecedb0f50466897ddb",
      "parents": [
        "8af8aba6dd2cb01955d38f95f4a43973b304b458"
      ],
      "author": {
        "name": "Boris Martinovic",
        "email": "martinovicboris01@gmail.com",
        "time": "Mon Feb 03 05:08:34 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 03 12:08:34 2025 +0800"
      },
      "message": "Add support for PostgreSQL as store engine (#255)\n\n"
    },
    {
      "commit": "8af8aba6dd2cb01955d38f95f4a43973b304b458",
      "tree": "a2afbfce7e1b19270ee3bd5a66b462242b978904",
      "parents": [
        "29bd95a0424a084cbcd3fd86a22863357f263c13"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Wed Jan 29 23:05:36 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 29 23:05:36 2025 +0800"
      },
      "message": "Add docker instructions to README (#261)\n\n"
    },
    {
      "commit": "29bd95a0424a084cbcd3fd86a22863357f263c13",
      "tree": "dda3f2a544ea7ddcdb7097b1653d5b8bd38f34c0",
      "parents": [
        "ab0eb8735f3b613a7851b00db3c0552c73754f4a"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 28 08:53:25 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 28 14:53:25 2025 +0800"
      },
      "message": "Update go deps (#259)\n\n"
    },
    {
      "commit": "ab0eb8735f3b613a7851b00db3c0552c73754f4a",
      "tree": "08d415270b838f83bf808b40cd36c0e972a38583",
      "parents": [
        "ee8980d13dd0690be578acaed7f90411c074d2e6"
      ],
      "author": {
        "name": "Cancai Cai",
        "email": "77189278+caicancai@users.noreply.github.com",
        "time": "Mon Jan 27 20:38:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 27 20:38:07 2025 +0800"
      },
      "message": "docs: update copyright date in NOTICE (#260)\n\n"
    },
    {
      "commit": "ee8980d13dd0690be578acaed7f90411c074d2e6",
      "tree": "0959734c45af6b433201e3049dedebae959b8c78",
      "parents": [
        "5cf3db7ebefb65e5dd2269ab82a286f55302940f"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Wed Jan 15 11:57:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 15 11:57:58 2025 +0800"
      },
      "message": "Add support of managing the raft cluster via the client (#258)\n\n```\r\n❯ _build/kvctl raft list peers\r\n\r\n|---------|-----------------------|-----------|\r\n| NODE ID |     NODE ADDRESS      | IS LEADER |\r\n|---------|-----------------------|-----------|\r\n|       1 | http://127.0.0.1:6001 | YES       |\r\n|---------|-----------------------|-----------|\r\n\r\n❯ _build/kvctl raft add peer 2 http://127.0.0.1:6002\r\nAdd node \u00272\u0027 with address \u0027http://127.0.0.1:6002\u0027 successfully\r\n\r\n❯ _build/kvctl -H \"http://127.0.0.1:9380\" raft remove peer 2\r\nRemove node \u00272\u0027 successfully\r\n\r\n```"
    },
    {
      "commit": "5cf3db7ebefb65e5dd2269ab82a286f55302940f",
      "tree": "5e9143d9f6f40476df218ac769b98903261c5e61",
      "parents": [
        "7644f7763b39fb46748f9d15a6b5e9abdea04447"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 14 16:43:49 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 14 22:43:49 2025 +0800"
      },
      "message": "update deps (#257)\n\n"
    },
    {
      "commit": "7644f7763b39fb46748f9d15a6b5e9abdea04447",
      "tree": "3b83c4957b27810b28e6b7044b89ece4a4bf0058",
      "parents": [
        "f9aeb576c89468b0fa58db39eb0fad2d9384f14c"
      ],
      "author": {
        "name": "Yaroslav",
        "email": "torwigua@gmail.com",
        "time": "Tue Jan 14 14:59:14 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 14 20:59:14 2025 +0800"
      },
      "message": "Use sync/atomic instead of Uber\u0027s implementation (#256)\n\n"
    },
    {
      "commit": "f9aeb576c89468b0fa58db39eb0fad2d9384f14c",
      "tree": "9958430df87ce3178b9b46098c3ee1f03bef631b",
      "parents": [
        "a7facedfc3c8026c79c7b95498625b63095dd538"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Sun Jan 12 06:06:07 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 12 12:06:07 2025 +0800"
      },
      "message": "deps: update go deps (#254)\n\n"
    },
    {
      "commit": "a7facedfc3c8026c79c7b95498625b63095dd538",
      "tree": "d35bc35faff9f9cbbc66b96180da7a6590474829",
      "parents": [
        "dd7a8c780049390db8c860274cd2213b2b7635a1"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Tue Jan 07 20:38:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 20:38:17 2025 +0800"
      },
      "message": "Update NOTICE and license for consul api package (#252)\n\n"
    },
    {
      "commit": "dd7a8c780049390db8c860274cd2213b2b7635a1",
      "tree": "ba32980fd483a8db7d0d929ee67b08d0131dc771",
      "parents": [
        "77461f2996b8ec7d5a8e85eb9cd619faf0450c5c"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Tue Jan 07 20:38:02 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 20:38:02 2025 +0800"
      },
      "message": "Fix data race when updating the raft snapshot and compact threshold (#253)\n\n"
    },
    {
      "commit": "77461f2996b8ec7d5a8e85eb9cd619faf0450c5c",
      "tree": "4a49543826d5fef178443eadaf69d3fd45c9c113",
      "parents": [
        "d804e6db93361a757c39c9191d0e95881216a34f"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 07 14:07:19 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 20:07:19 2025 +0800"
      },
      "message": "Update github actions to latest (#251)\n\n"
    },
    {
      "commit": "d804e6db93361a757c39c9191d0e95881216a34f",
      "tree": "759cbd9d6f4ab25e97b920cad8955e5d9c8047a3",
      "parents": [
        "a8b601d616d720d5f23421a404a66c64248e3736"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 07 13:51:48 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 19:51:48 2025 +0800"
      },
      "message": "Update all go deps (#249)\n\n"
    },
    {
      "commit": "a8b601d616d720d5f23421a404a66c64248e3736",
      "tree": "35352cbfda6dfdc09674da3aa4aa47f2eacfad1b",
      "parents": [
        "14dc9929c49d4c0576a655095d0975188d4456fd"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 07 13:04:33 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 19:04:33 2025 +0800"
      },
      "message": "Update README with Consul support (#248)\n\nUpdate README.md"
    },
    {
      "commit": "14dc9929c49d4c0576a655095d0975188d4456fd",
      "tree": "1371d6a3bca61218dcbbc80b48ea943c4777b261",
      "parents": [
        "2699abde54230da178fb185948c82598cecedb0d"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 07 12:07:41 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 18:07:41 2025 +0800"
      },
      "message": "Bump golang to 1.23 (#246)\n\nChange go from 1.22 to 1.23"
    },
    {
      "commit": "2699abde54230da178fb185948c82598cecedb0d",
      "tree": "2de06a01e6137c8b2c66dbea23959b6118f010c1",
      "parents": [
        "9b809707b187697f6f7d533697c95131ecc73ffd"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Tue Jan 07 12:06:28 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 18:06:28 2025 +0800"
      },
      "message": "test: change etcd image to v3.5.17 (#247)\n\nUpdate docker-compose.yml\r\n\r\nCo-authored-by: Twice \u003ctwice@apache.org\u003e"
    },
    {
      "commit": "9b809707b187697f6f7d533697c95131ecc73ffd",
      "tree": "20186704511b5dfebd0ec5e9ca157f07465a8dd2",
      "parents": [
        "73081f4bfb2412e63db89b96bcdc6acdd9285c65"
      ],
      "author": {
        "name": "Boris Martinovic",
        "email": "martinovicboris01@gmail.com",
        "time": "Tue Jan 07 11:03:50 2025 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 07 18:03:50 2025 +0800"
      },
      "message": "Add support for Consul as store engine (#240)\n\n* Add support for Consul as store engine\r\n\r\n* Update go.mod and docker compose\r\n\r\n* Remove context from electLoop\r\n\r\n* Update consul indirect dependency\r\n\r\n* Add consul config file\r\n\r\n* Update per comments"
    },
    {
      "commit": "73081f4bfb2412e63db89b96bcdc6acdd9285c65",
      "tree": "33ee8084f07a2e46785b65551f741c27ffdbb44e",
      "parents": [
        "46acfff9c8240d07cff1b5d9d6827a2a7ce8498c"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Mon Jan 06 13:35:06 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 06 19:35:06 2025 +0800"
      },
      "message": "Implement full signature methods to make golangci-lint happy  (#243)\n\n"
    },
    {
      "commit": "46acfff9c8240d07cff1b5d9d6827a2a7ce8498c",
      "tree": "33dda1f393bb973ae3f8a29cfcdd230848e8d62b",
      "parents": [
        "d18234da527233e4462f5aad082d20c15b3bd432"
      ],
      "author": {
        "name": "Aleks Lozovyuk",
        "email": "aleks.raiden@gmail.com",
        "time": "Mon Jan 06 03:46:04 2025 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 06 09:46:04 2025 +0800"
      },
      "message": "ci: bump golangci-lint v1.63.4 (#244)\n\n"
    },
    {
      "commit": "d18234da527233e4462f5aad082d20c15b3bd432",
      "tree": "b7a771f46b5a0256f7568cf36b209e0cb1512ea2",
      "parents": [
        "851ae37a340c61c3aaac2a581f58e3531cf15f4a"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sun Jan 05 22:35:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 05 22:35:13 2025 +0800"
      },
      "message": "Fix nil pointer when cloning the cluster (#242)\n\n* Fix nil pointer when cloning the cluster\r\n\r\n* Move nil check condition"
    },
    {
      "commit": "851ae37a340c61c3aaac2a581f58e3531cf15f4a",
      "tree": "b0b97d1a706d3c3a5a6b6c64337cbfb7c920d756",
      "parents": [
        "f84850816bb4d18193854ec32a31f55e6c00cc5f"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Tue Dec 24 09:52:10 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 24 09:52:10 2024 +0800"
      },
      "message": "Relax the cluster version check when updating the cluster (#238)\n\nBefore this PR, we require the cluster shouldn\u0027t be modified when\nupdating, but users might modify the cluster information via the redis\nclient during this period. To allow this, we only check if the current\nversion is newer than the store."
    },
    {
      "commit": "f84850816bb4d18193854ec32a31f55e6c00cc5f",
      "tree": "3455b4271a72d306beb6d0774c49ec3d46ac2311",
      "parents": [
        "01c319bdca46501be78c185642f07d020734cdb1"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Mon Dec 23 23:12:28 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 23 23:12:28 2024 +0800"
      },
      "message": "Fix should update cluster information to the remote store first (#237)\n\nCurrently, the cluster migration will update the local cluster before\nthe remote store, so it might cause the local cluster to stop checking the\ncluster migration even if it failed to set the remote store."
    },
    {
      "commit": "01c319bdca46501be78c185642f07d020734cdb1",
      "tree": "52d28e4429b5f56ab746ff7be88bcaebd00d8351",
      "parents": [
        "efb7d546299b871479444856a9f8b51faa2c3e63"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Thu Dec 19 23:00:57 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 19 23:00:57 2024 +0800"
      },
      "message": "Avoid syncing the cluster information to the node if it\u0027s restoring (#236)\n\n"
    },
    {
      "commit": "efb7d546299b871479444856a9f8b51faa2c3e63",
      "tree": "4b601e92a9667d103b03ace78d899bca7574a6da",
      "parents": [
        "d5bfaf178c60ffa57bc9a3493107d5b50f3e5ecb"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Thu Dec 19 21:32:53 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 19 21:32:53 2024 +0800"
      },
      "message": "Fix flaky test case in raft engine (#235)\n\n"
    },
    {
      "commit": "d5bfaf178c60ffa57bc9a3493107d5b50f3e5ecb",
      "tree": "d14e7ef860755126701647ff02f18740b7ed195b",
      "parents": [
        "25030c6bd87a148ede5158d6ac2044e0da01ab7f"
      ],
      "author": {
        "name": "Twice",
        "email": "twice@apache.org",
        "time": "Wed Dec 18 10:46:52 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 18 10:46:52 2024 +0800"
      },
      "message": "Fix some wording about Raft in the README (#234)\n\n"
    },
    {
      "commit": "25030c6bd87a148ede5158d6ac2044e0da01ab7f",
      "tree": "11e48bf7c43077a682255c6e921e365314944b77",
      "parents": [
        "83355d54727509e13952e67645f476768248f266"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Wed Dec 18 09:15:46 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 18 09:15:46 2024 +0800"
      },
      "message": "Add basic instruction for the raft engine in README (#233)\n\nCo-authored-by: Twice \u003ctwice@apache.org\u003e"
    },
    {
      "commit": "83355d54727509e13952e67645f476768248f266",
      "tree": "48a9811932c42e96d472554d46f9bcf490e27aee",
      "parents": [
        "67e45f6198167e00a5021236e343b8ca9c9282ed"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Tue Dec 17 23:48:10 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 17 23:48:10 2024 +0800"
      },
      "message": "Add support of changing raft peers via HTTP api (#232)\n\n"
    },
    {
      "commit": "67e45f6198167e00a5021236e343b8ca9c9282ed",
      "tree": "4c90ab403dc48bb76d90193e514d55771e51db0d",
      "parents": [
        "bdfe415a9e7809628e472f07a95117d6d6b73156"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Tue Dec 10 09:48:55 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 10 09:48:55 2024 +0800"
      },
      "message": "Fix missing yaml tag in raft config and List API didn\u0027t work correctly (#228)\n\n"
    },
    {
      "commit": "bdfe415a9e7809628e472f07a95117d6d6b73156",
      "tree": "5ba1396c709ec004148237ebe6e3a7f065424a2f",
      "parents": [
        "fa7e9d160e0cd4fbc272d02770401771367bcd82"
      ],
      "author": {
        "name": "fukua95",
        "email": "fukua95@gmail.com",
        "time": "Sun Dec 08 00:29:39 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 08 00:29:39 2024 +0800"
      },
      "message": "fix typo: dail -\u003e dial (#224)\n\n"
    },
    {
      "commit": "fa7e9d160e0cd4fbc272d02770401771367bcd82",
      "tree": "f363540dbae154972c092ae4cbcf6a1b09569619",
      "parents": [
        "2649b8f08c1bbc851509a4f182970d3294216def"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Fri Dec 06 16:31:09 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 06 16:31:09 2024 +0800"
      },
      "message": "Introduce etcd\u0027s raft to implement the KV store (#222)\n\nCurrently, the controller must depend on external services like\r\nzookeeper/etcd to store its data. And it\u0027s not so friendly for users\r\nsince they need to set up another cluster before running the controller\r\nserver. To simplify this process, we would like to introduce the raft\r\nengine to save and replicate the data."
    },
    {
      "commit": "2649b8f08c1bbc851509a4f182970d3294216def",
      "tree": "c4116d10524115ef1bec032abada3204bb61c14a",
      "parents": [
        "4455442857685e47c4ca71eaebc0001037cc6046"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Sat Nov 16 15:10:58 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 16 15:10:58 2024 +0800"
      },
      "message": "Remove the detection of GOARCH and GOOS when building (#218)\n\nMost users don\u0027t need to have the cross-compilation, and\r\nthe script for detecting the OS and ARCH might be wrong in some niche\r\noperation systems. So let\u0027s remove this and users can specify the\r\nGOOS/GOARCH environment explicitly if they want."
    },
    {
      "commit": "4455442857685e47c4ca71eaebc0001037cc6046",
      "tree": "91e3644dce7fba24200bbabfa9907ee4914f813f",
      "parents": [
        "08286ca002306feb5b4b30936c30b1c6c3fae9b9"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Thu Nov 14 11:35:11 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 14 11:35:11 2024 +0800"
      },
      "message": "Fix data race while updating the cluster info (#217)\n\n"
    },
    {
      "commit": "08286ca002306feb5b4b30936c30b1c6c3fae9b9",
      "tree": "b308e41145eb483edd4396dcec58a4476ce3bb2b",
      "parents": [
        "9a5d1b7f0b0be8576d4f6e36950ba08ceed3c4c5"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Wed Oct 16 11:41:13 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 16 11:41:13 2024 +0800"
      },
      "message": "Fix empty slot range is not allowed when importing a cluster (#212)\n\nFor a new added shard and its slot range will be empty, but we required\r\nat least one slot range while parsing the cluster nodes string."
    },
    {
      "commit": "9a5d1b7f0b0be8576d4f6e36950ba08ceed3c4c5",
      "tree": "7a2c14ac53f8676147b2c553735557c0b966647b",
      "parents": [
        "a033316a6aad76c69d29f9e2c3fa75b5d5e93dbd"
      ],
      "author": {
        "name": "hulk",
        "email": "hulk.website@gmail.com",
        "time": "Tue Oct 08 20:26:19 2024 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 08 20:26:19 2024 +0800"
      },
      "message": "Fix wrong slot range check condition when migrating slot (#208)\n\n"
    },
    {
      "commit": "a033316a6aad76c69d29f9e2c3fa75b5d5e93dbd",
      "tree": "d3669b91dc87989217903b649396287b9124b7a6",
      "parents": [
        "997d1f3930dddef4e8f8ac5d47fa844288daba44"
      ],
      "author": {
        "name": "Vinayak Sharma",
        "email": "svinayak994@gmail.com",
        "time": "Sat Oct 05 13:04:38 2024 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 05 15:34:38 2024 +0800"
      },
      "message": "Implement the node management, import cluster, migrate slot UI for Kvrocks controller (#204)\n\n"
    }
  ],
  "next": "997d1f3930dddef4e8f8ac5d47fa844288daba44"
}
