)]}'
{
  "commit": "8f9f7118f4ddf584b6a9e0b19b8d02f0cb1caeda",
  "tree": "4f37bcde038faabb770827d285fe0a18a975b469",
  "parents": [
    "6a7ab59184e837707c2a7b4bed205bb6b423a4f2"
  ],
  "author": {
    "name": "imbajin",
    "email": "jin@apache.org",
    "time": "Fri Oct 23 03:32:53 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Oct 23 03:32:53 2026 +0800"
  },
  "message": "fix(hubble): align health interpretation with PD and Server APIs (#838)\n\nPD can report Cluster_OK while partitions have PState_Fault, and Server /metrics/backend can return HTTP 200 with per-graph exceptions. Hubble previously treated both as healthy collection. This change shows PD cluster/data health separately from process status and marks backend metric failures with safe counts and actionable bilingual explanations. Cached metric values retain current failure counts; failed PD refreshes retain the last observed raw states with a stale marker.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1133bca9fcd6a568023242ac0e1f0b8029fbf9f0",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/README.md",
      "new_id": "60d6f40a3369e69b0f0dc81b12986201227d80e0",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2cfa2337e6efe54011990f738b3d0cc4f42dbc5e",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/docs/assets/operations-pd-data-health-anonymous.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1941b8c8ca7f565d279100b4c949ea3b1c8cb58e",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/docs/assets/operations-server-backend-health-authenticated.png"
    },
    {
      "type": "modify",
      "old_id": "f7efde77a863cad85ad83814494dc025656177ab",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/DefaultOperationsDataService.java",
      "new_id": "1f403b1f23bae98684d6dc0dc4782dd14a377369",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/DefaultOperationsDataService.java"
    },
    {
      "type": "modify",
      "old_id": "a6dfa618cfc9aaf42d6e066d61ba27dceff17b7c",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/LiveOperationsCollector.java",
      "new_id": "2f0326f81ffe1eec4143c00023ad509468b6032a",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/LiveOperationsCollector.java"
    },
    {
      "type": "modify",
      "old_id": "c02b9d03075e050d539f1b3440e7aef8a3ff4a14",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsModels.java",
      "new_id": "1d606f6a5ee77744265c00c38830bde3cf20c7fe",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsModels.java"
    },
    {
      "type": "modify",
      "old_id": "663b805ad60220fc3b73686d326055a9a959e3fc",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsPayloadParser.java",
      "new_id": "870c67fac4b2edf0d6d1cc48a7c2f3a3f607130b",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/service/op/OperationsPayloadParser.java"
    },
    {
      "type": "modify",
      "old_id": "a94a99adc5dfd8e8da2016506ad927db44843484",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/DefaultOperationsDataServiceTest.java",
      "new_id": "dd1f701c19dc8fb52a0193405d0bb45039110331",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/DefaultOperationsDataServiceTest.java"
    },
    {
      "type": "modify",
      "old_id": "ea907e17cf3acc750c20d652f101aa462f30c697",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/LiveOperationsCollectorTest.java",
      "new_id": "b4ddbda1656dcf0c16eccc660db1ad73e822bd51",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/LiveOperationsCollectorTest.java"
    },
    {
      "type": "modify",
      "old_id": "089b765eef573eefc10cb666f05660458be8662c",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsIdentityContractTest.java",
      "new_id": "b1ffe8622c320399dde015203d0df4d8736ee3c7",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsIdentityContractTest.java"
    },
    {
      "type": "modify",
      "old_id": "e5bb3ea724824a06f4f73845209dec12c8f9169e",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsPayloadParserTest.java",
      "new_id": "033bdec593ee60a9fc555fd708673baabab83161",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/op/OperationsPayloadParserTest.java"
    },
    {
      "type": "modify",
      "old_id": "02d7c54e255a2b18f09bd26b9e0144b5fd92393d",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/pages.json",
      "new_id": "c2406fff9b44648471ea17e33a32be50870de198",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/pages.json"
    },
    {
      "type": "modify",
      "old_id": "29ae4c5c7b9a98ea3db1fb80e99702b8c2a433ae",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/pages.json",
      "new_id": "1a2fe3f6d3f6c147f5fb5efe7a94155a8b751d4a",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/pages.json"
    },
    {
      "type": "modify",
      "old_id": "45f8e60679c93d22a32453856d111575f8827e25",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/NodeDetail.js",
      "new_id": "50eeee510a51476d7c5c911b65f7ab52a695522b",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/NodeDetail.js"
    },
    {
      "type": "modify",
      "old_id": "566d35fed06f84cdf7f9c168bb44fc45763010f2",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/NodeDetail.test.js",
      "new_id": "d059fb0b13acdd85f4c4c7378b8f9fea2a9c503d",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/NodeDetail.test.js"
    },
    {
      "type": "modify",
      "old_id": "bb6e7a18f45f87fed97385a845a310fa276ad892",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/components.js",
      "new_id": "deef8cec2ee4f5c347aec6fa500ecf14a150e1df",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/components.js"
    },
    {
      "type": "modify",
      "old_id": "32d3e1ec7dcba41420b0318d904f34b87f3fdbe7",
      "old_mode": 33188,
      "old_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/components.test.js",
      "new_id": "f9db187a3198553d3269fd69e6855bf8e5d752bc",
      "new_mode": 33188,
      "new_path": "hugegraph-hubble/hubble-fe/src/pages/Operations/components.test.js"
    }
  ]
}
