)]}'
{
  "log": [
    {
      "commit": "3b385c3d2f1c04f7fa4b4534b4b1ec220627bfb5",
      "tree": "0277cf7e1474d26874160aeef7b8a7334e51a1c7",
      "parents": [
        "ef4fd10bb1537a4fcd1787586ee2ab920c360a35"
      ],
      "author": {
        "name": "looksaw",
        "email": "118615884+looksaw2@users.noreply.github.com",
        "time": "Fri Sep 04 23:43:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 23:43:41 2026 +0800"
      },
      "message": "fix(client): support graph-scoped legacy user auth paths (#760)\n\n- centralize legacy graph path detection in AuthAPI\n- reuse list validation for legacy user lookup\n- throw a clear exception when the user is absent\n- cover missing users and graphless fallback\n\n---------\n\nCo-authored-by: imbajin \u003cjin@apache.org\u003e"
    },
    {
      "commit": "ef4fd10bb1537a4fcd1787586ee2ab920c360a35",
      "tree": "6b970c72db99e27ad98c42f6480899ee7d32b180",
      "parents": [
        "451abb1e489049b723de1c2be80c14aeb16fe2e0"
      ],
      "author": {
        "name": "Suraj Rajan",
        "email": "surajkrajan95@gmail.com",
        "time": "Fri Sep 04 21:12:29 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 23:42:29 2026 +0800"
      },
      "message": "chore(deps): bump Log4j to 2.25.5 (#763)\n\n\n---------\n\nSigned-off-by: Suraj Rajan \u003csurajkrajan95@gmail.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "451abb1e489049b723de1c2be80c14aeb16fe2e0",
      "tree": "a7b278003eb6b2ece60af79c1baac58d5bd7368b",
      "parents": [
        "018c9b6ae4e70012c6e82182b9ed9b2ab972b51d"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 14:45:05 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): set standalone target URL\n\n- set an explicit empty URL for HugeGraph 1.7 target creation\n- preserve the shared standalone read-write permission model\n- cover target URL compatibility in the service test\n"
    },
    {
      "commit": "018c9b6ae4e70012c6e82182b9ed9b2ab972b51d",
      "tree": "09d6b2d2e2c926478c5e2f44fc85a31582c69a58",
      "parents": [
        "238c402e4d0a4118123cf91065d2d4b3e577908c"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 14:23:35 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): grant standalone account access\n\n- assign one shared read-write role to standalone accounts\n- keep legacy account labels aligned with actual membership\n- hide GraphSpace-only resource details in standalone mode\n- cover rollback, batch creation, and account rendering\n"
    },
    {
      "commit": "238c402e4d0a4118123cf91065d2d4b3e577908c",
      "tree": "1754ac7fa26b07fd62103971af6086dfcb3e1c8e",
      "parents": [
        "9c86974c84f9b2038cb9be6d74aa63ad15de75f4"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 11:46:39 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): complete final closeout\n\n- unify responsive operations, GraphSpace, and node-detail states\n- preserve independent Server, PD, and Store health ownership\n- close account, session, capability, and compatibility gaps\n- refresh final documentation and cluster screenshot\n"
    },
    {
      "commit": "9c86974c84f9b2038cb9be6d74aa63ad15de75f4",
      "tree": "22ef5a07ebe18e709546b16372317b32224a4243",
      "parents": [
        "010fb382fbd819fdef331a82275ecd1af4bef2ff"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:45:52 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): close final auth and Store gaps\n\n- clear account identity when entering anonymous mode\n- mark deadline-cancelled Stores down\n- cover storage cleanup and fanout cancellation\n"
    },
    {
      "commit": "010fb382fbd819fdef331a82275ecd1af4bef2ff",
      "tree": "ab96ddaad20a3a57051cac9206f8b175e987e748",
      "parents": [
        "e0a9547339869b653cf4d2b86a6be3a86668b9cb"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:41:35 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "docs(hubble): add cluster overview showcase\n\n- add a live English Operations screenshot\n- show healthy PD and Store tiers\n- expose aligned topology, facts, and summaries\n"
    },
    {
      "commit": "e0a9547339869b653cf4d2b86a6be3a86668b9cb",
      "tree": "923fc92a29bd81884f812dbd533069215dada0ff",
      "parents": [
        "d50c47e0d6c5969f7c301dcfc3b991b3046307aa"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:30:16 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): align distributed health signals\n\n- derive PD health from PD nodes only\n- reconcile Store direct probes with topology\n- keep source summaries, facts, and cards consistent\n"
    },
    {
      "commit": "d50c47e0d6c5969f7c301dcfc3b991b3046307aa",
      "tree": "642c3d9b08ec47ee814ada027b767983816f6153",
      "parents": [
        "a2b4db6219b5f0f71f1245b9665f3f8a80d91994"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:19:49 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): restore Vermeer OLAP forms\n\n- render Vermeer independently of Computer capability\n- retain Computer environment gating\n- remove the misleading unavailable alert\n"
    },
    {
      "commit": "a2b4db6219b5f0f71f1245b9665f3f8a80d91994",
      "tree": "bfd615ec13693df5fec7b0d3cb743fd4f57f48d1",
      "parents": [
        "ea1984362f4e0789d70f05965e773e037e77394a"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:12:51 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): cover PD token password handling\n\n- assert PD token login keeps no plaintext password\n- cover both password session attributes\n- preserve token validation checks\n"
    },
    {
      "commit": "ea1984362f4e0789d70f05965e773e037e77394a",
      "tree": "c360bee1df178f248645a322bbd6ad76b360fa08",
      "parents": [
        "dbd72fa0b5ff92d83133613dfd776d1d70147bed"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:11:44 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(ci): remove temporary server overrides\n\n- keep the integration baseline on Apache master\n- fetch and cache one exact commit\n- remove redundant version and fork overrides\n"
    },
    {
      "commit": "dbd72fa0b5ff92d83133613dfd776d1d70147bed",
      "tree": "dcc0d6188fa9ab1b0d632994a830d4e91b77d49d",
      "parents": [
        "0f4e9f25a9863d13fde2008971e99301422e9061"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:11:31 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): limit legacy password retention\n\n- retain credentials only for the 1.7 Basic fallback\n- avoid plaintext passwords in modern token sessions\n- cover modern and legacy login behavior\n"
    },
    {
      "commit": "0f4e9f25a9863d13fde2008971e99301422e9061",
      "tree": "b66638ae528b2bec2be65a01bda3d30b4c98bfef",
      "parents": [
        "e1f04292890198f2d4df35833d22988fc6818754"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 23:06:30 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "docs(hubble): add English product showcase\n\n- add live English screenshots for core workflows\n- organize assets under one showcase directory\n- add root and Hubble product tours\n"
    },
    {
      "commit": "e1f04292890198f2d4df35833d22988fc6818754",
      "tree": "2cf27ec1747caee5d0c017a0474f2aa3824582cb",
      "parents": [
        "57dbc8606c813bd57c8cee6f8844cd01732b058b"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 22:17:45 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(ci): finalize merged server integration\n\n- test against the resolved Server master SHA\n- preserve route state during configuration polling\n- remove temporary review images\n"
    },
    {
      "commit": "57dbc8606c813bd57c8cee6f8844cd01732b058b",
      "tree": "f803a10234edd89be72fa274eaaff51ad60d5389",
      "parents": [
        "e237e6f066454df2280699faa8fbca9f0848dbd5"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 22:07:03 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): align operations and auth health\n\n- align and summarize operations source status\n- preserve authentication recovery flows\n- periodically revalidate verified authentication mode\n"
    },
    {
      "commit": "e237e6f066454df2280699faa8fbca9f0848dbd5",
      "tree": "263df2c703dd1647a07c9e559d989deefc8d13bf",
      "parents": [
        "1c2900c62d1c419b0451ede4cca6341a99887730"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 21:28:04 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): polish account navigation recovery\n\n- improve account access workflows\n- polish navigation interactions and route refresh\n- retry failed PD authentication probes\n"
    },
    {
      "commit": "1c2900c62d1c419b0451ede4cca6341a99887730",
      "tree": "df7c0c88ffffc715141037de9a6611eadac524e6",
      "parents": [
        "485fbacb8bdd0aaf625189a8fc349bf1cd80cf8d"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 17:23:09 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): stabilize async task capabilities\n\n- improve task execution feedback\n- gate scoped task actions\n- retry unverified configuration\n- initialize the Computer manager\n"
    },
    {
      "commit": "485fbacb8bdd0aaf625189a8fc349bf1cd80cf8d",
      "tree": "c8bd62b4a5135fa868b75ded6b574ab1d6b0f3e2",
      "parents": [
        "ff1334c765554744cedeff443c34a9a52acf1a44"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 17:03:22 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): clarify account cluster status\n\n- simplify storage unit labels\n- explain account assignment and PD health\n- align reported Server capabilities\n"
    },
    {
      "commit": "ff1334c765554744cedeff443c34a9a52acf1a44",
      "tree": "9872f811312cd0205e32af0469b49e8526853836",
      "parents": [
        "de0fd460c07b35d1ae16f6671580164bb0a84372"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sat Aug 29 13:26:06 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): complete legacy auth compatibility\n\n- support the scoped Basic Gremlin fallback\n- require relogin after password changes\n- detect anonymous mode and gate unsupported features\n- fetch one exact Server revision in CI\n"
    },
    {
      "commit": "de0fd460c07b35d1ae16f6671580164bb0a84372",
      "tree": "efa3683b8cdc1c0e14594a9153a5e5f5ca1cb571",
      "parents": [
        "4ef08b628015614cd7705ca7023ae64a7ab1e2aa"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Tue Aug 18 22:49:44 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): secure scoped GraphSpace workflows\n\n- hide backend bootstrap details\n- enforce direct and indirect GraphSpace scope\n- isolate query records and account security updates\n- retain non-auth verification evidence\n"
    },
    {
      "commit": "4ef08b628015614cd7705ca7023ae64a7ab1e2aa",
      "tree": "108c89ca4195c726cd23a0cc717bf7fdeb0dd61c",
      "parents": [
        "84e3ef456dcade683f4c23c11e811e37d9f689b2"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Tue Aug 18 18:59:43 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): harden account template boundaries\n\n- enforce template ownership and pagination\n- reset stale account and GraphSpace context\n- separate account identities\n- reject or roll back unsafe permission updates\n"
    },
    {
      "commit": "84e3ef456dcade683f4c23c11e811e37d9f689b2",
      "tree": "887c695acd5d0083639a88ae7ee618d0499fc409",
      "parents": [
        "b3b2f05348bb343c1aeb9cf7ffba5b364da63b47"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Tue Aug 18 12:31:26 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(ci): align coverage and quality checks\n\n- upload coverage from real module paths\n- cover permission update behavior\n- normalize PD states and the 120-column contract\n"
    },
    {
      "commit": "b3b2f05348bb343c1aeb9cf7ffba5b364da63b47",
      "tree": "c7d0422fc9dba7a365f517751b324db2284e6691",
      "parents": [
        "f97aa823447c39f9c8e48a908b9f25f83f3d1011"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Tue Aug 18 06:26:38 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): enforce GraphSpace permission presets\n\n- preserve analyst and administrator preset semantics\n- scope graph and template operations\n- align write controls and graph listing\n"
    },
    {
      "commit": "f97aa823447c39f9c8e48a908b9f25f83f3d1011",
      "tree": "a0c2da29b87cb7be57d560922ed0f99774c27b8d",
      "parents": [
        "554f92b6b16a4bc4c880923c361daec63301c2a9"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Mon Aug 17 11:54:46 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): restore management operations UX\n\n- refine account and node surfaces\n- propagate deployment authentication mode\n- stabilize PD, Store, and standalone operations discovery\n"
    },
    {
      "commit": "554f92b6b16a4bc4c880923c361daec63301c2a9",
      "tree": "a29abd54c352308dd9b7605e5f5fc528184856fc",
      "parents": [
        "dad5f45d9691efbc34856992a9c0981bc6663d3d"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sun Aug 16 16:40:07 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "fix(hubble): harden compatibility contracts\n\n- preserve member-manager compatibility\n- align version and CI capability boundaries\n- normalize PR-added source formatting\n"
    },
    {
      "commit": "dad5f45d9691efbc34856992a9c0981bc6663d3d",
      "tree": "836f37097e2e37330ab35574cb8935928366da48",
      "parents": [
        "be7ef3aeee149d460f8a574f1a0442c2919e6c03"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Sun Aug 16 03:48:50 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Aug 30 18:58:09 2026 +0800"
      },
      "message": "feat(hubble): unify compatibility and auth modes\n\n- centralize server capability profiles in the client\n- derive authenticated and anonymous modes from the backend\n- expose readable GraphSpace permission presets\n"
    },
    {
      "commit": "be7ef3aeee149d460f8a574f1a0442c2919e6c03",
      "tree": "f5a080b06acbf07127f0c1cc5afa5b6fec0c2cbc",
      "parents": [
        "ecffb44b3034584342420ae44076e0da35bd2131"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(loader): preserve mapping and file semantics\n"
    },
    {
      "commit": "ecffb44b3034584342420ae44076e0da35bd2131",
      "tree": "55b35bb8591c5b0eb2081fd3cfaf11320465f279",
      "parents": [
        "49a660f58e6eebb14de9557061f5d08dc60faba4"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(task): validate names and mapping fields\n"
    },
    {
      "commit": "49a660f58e6eebb14de9557061f5d08dc60faba4",
      "tree": "248acefdbd910ded819dd117b5c13e132f356e2e",
      "parents": [
        "4a0d0da4925e4fa78e7fb04d9412a5631c7d115a"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(task): clarify task detail presentation\n"
    },
    {
      "commit": "4a0d0da4925e4fa78e7fb04d9412a5631c7d115a",
      "tree": "98c58a259bad73b0bac41aec3225926f58524b8e",
      "parents": [
        "32c1789ca60cae4e5bbf313ddae0314b5cb9ab2e"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "test(task): cover list and detail recovery\n"
    },
    {
      "commit": "32c1789ca60cae4e5bbf313ddae0314b5cb9ab2e",
      "tree": "194f510b9cdffaafc79844773bcb9bc58d057dcf",
      "parents": [
        "3414047e64c155655f8efbd07cec5be425b6b755"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(task): normalize task statuses\n"
    },
    {
      "commit": "3414047e64c155655f8efbd07cec5be425b6b755",
      "tree": "6abb8a62c98612b83d7efaa5a2fa5a3b679101c9",
      "parents": [
        "031bd2e624e2e06a110f865cee119d9b71a9f227"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(task): improve import feedback and layout\n"
    },
    {
      "commit": "031bd2e624e2e06a110f865cee119d9b71a9f227",
      "tree": "93692040b8b18ff6d341c3dff704edb0193f19be",
      "parents": [
        "3860d161661e9a9dfab0bc116d894a33e9b4e106"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(hubble): recover schema and task views\n"
    },
    {
      "commit": "3860d161661e9a9dfab0bc116d894a33e9b4e106",
      "tree": "1dca09097d0ac473d6901101dda3d8df7680c2de",
      "parents": [
        "b518949dc534ea817447489eaa4495d5242fab8a"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(operations): preserve navigation context\n"
    },
    {
      "commit": "b518949dc534ea817447489eaa4495d5242fab8a",
      "tree": "be1f1636819b4424d871e65a88c8c86f2ce96843",
      "parents": [
        "545e81b92d55049f184bb6227da6905c195ee90a"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "test(operations): cover topology and navigation recovery\n"
    },
    {
      "commit": "545e81b92d55049f184bb6227da6905c195ee90a",
      "tree": "140cbd3ca7cc45d01a38a47528839949da8b9a49",
      "parents": [
        "34ef393aa05d7154c1e79284f621443e666d69b4"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(operations): localize node health states\n"
    },
    {
      "commit": "34ef393aa05d7154c1e79284f621443e666d69b4",
      "tree": "26d0c1366866315d1de722dcef5be0725c5b9f5a",
      "parents": [
        "e65f2191ba2a8a561c278ef1dda4a5ed43a68a68"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(operations): improve node detail feedback\n"
    },
    {
      "commit": "e65f2191ba2a8a561c278ef1dda4a5ed43a68a68",
      "tree": "53374b9eea1584cd1ec5de8aea14384d1ff2d1f5",
      "parents": [
        "a4927da34379a2f9165cc6d489e1cea5b11e3bff"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(hubble): restore graph sample workflows\n"
    },
    {
      "commit": "a4927da34379a2f9165cc6d489e1cea5b11e3bff",
      "tree": "ef3cf83d31e527230b6b5f1f1b59753770f3e85c",
      "parents": [
        "aafe65745cd1e5ebe6e43e295a3377b1425d087a"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "test(hubble): cover graph creation and number cards\n"
    },
    {
      "commit": "aafe65745cd1e5ebe6e43e295a3377b1425d087a",
      "tree": "30cd3aeef22ef830b43355f59a020fb756c87e39",
      "parents": [
        "c59755531ff7116600a127c36f5eda579f59fa1a"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(hubble): improve result cards and graph labels\n"
    },
    {
      "commit": "c59755531ff7116600a127c36f5eda579f59fa1a",
      "tree": "b18c67c086c7aa01eb196091b2e5479ddcb50d83",
      "parents": [
        "58c480388eb1414c462f2e8864c6dbcd04bdc5e1"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "i18n(hubble): align analysis and task messages\n"
    },
    {
      "commit": "58c480388eb1414c462f2e8864c6dbcd04bdc5e1",
      "tree": "19c843a396ebd0acc4c47b211e5f74a2cd3293e2",
      "parents": [
        "f0c5b11d39f628d8910b0d19d8b0b5b8a1b01597"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(hubble): sanitize request failure feedback\n"
    },
    {
      "commit": "f0c5b11d39f628d8910b0d19d8b0b5b8a1b01597",
      "tree": "1423071e8f9e2d452a557145d9ad2b98e98b3d11",
      "parents": [
        "ce43b77d7be00f8e82e35e46ba987a270036a96f"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "test(hubble): cover sample and graph API contracts\n"
    },
    {
      "commit": "ce43b77d7be00f8e82e35e46ba987a270036a96f",
      "tree": "067fc68c1621fb8d102658d538d745da7cc1636a",
      "parents": [
        "c7c2f71be2d76955fce10f23f0d8a91ba1baeece"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "fix(hubble): harden sample schema compatibility\n"
    },
    {
      "commit": "c7c2f71be2d76955fce10f23f0d8a91ba1baeece",
      "tree": "bbc7297f9a30fffba7f1adfdefb0b186dafef6e3",
      "parents": [
        "d7102694cded0318bfd30222a0400fb9aedaecd7"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:02 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "chore(hubble): relocate the global task TODO\n"
    },
    {
      "commit": "d7102694cded0318bfd30222a0400fb9aedaecd7",
      "tree": "39bcbd081ae58b6899d651910bf052f322c4a4ac",
      "parents": [
        "83acb4d7bef9e5293eb18fe5abe50a75ccfbb685"
      ],
      "author": {
        "name": "dark",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 12:39:01 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 14 15:38:56 2026 +0800"
      },
      "message": "docs(hubble): add runtime and graph workflow references\n"
    },
    {
      "commit": "83acb4d7bef9e5293eb18fe5abe50a75ccfbb685",
      "tree": "0e584ea0d5a2db17b70a465199d0010729c9f778",
      "parents": [
        "eac4707dd8d252aa0500808893c3226a80dc3797"
      ],
      "author": {
        "name": "KAI",
        "email": "himnshuverma10152006@gmail.com",
        "time": "Wed Aug 12 10:15:58 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 12:45:58 2026 +0800"
      },
      "message": "refactor(hubble): correct query console, list rendering and load lifecycle defects (#755)\n\nBug fixes for Hubble found during a focused exploration pass, followed by a code audit of the surrounding paths. 10 commits, 62 files.\n\nFindings were originally gathered against a single deployment shape: the all-in-one hugegraph/hugegraph:latest image, RocksDB backend, standalone mode with PD disabled. The fixes have since been re-validated against a distributed deployment (3 PD, 3 Store, 3 Server, PR-head Hubble).\n\nThe standalone fixes are complete and the repository-native regression baseline remains green. The live distributed round found no distributed-specific production compatibility correction was needed; its first follow-up added a regression test for the negative page_size rejection. Two later bot-review commits narrowly harden concurrency, migration, stale-response, retention, and launcher process-identity edges in those same documented fixed paths.\n\n---------\n\nCo-authored-by: dark \u003cjin@apache.org\u003e"
    },
    {
      "commit": "eac4707dd8d252aa0500808893c3226a80dc3797",
      "tree": "68b3d99acddf595ca94b0377ce92f71b800e3702",
      "parents": [
        "5e26a5497d1e7cc15be8f9fece9f4f5e1b9438ea"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Fri Aug 07 23:10:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 23:10:39 2026 +0800"
      },
      "message": "feat(hubble): use bearer token for authenticated clients (#753)\n\n- send Hubble JWT credentials with the standard Bearer scheme\n- preserve Bearer authentication when reusing request-scoped clients\n- verify the real HugeClient request header sent to the Gremlin endpoint"
    },
    {
      "commit": "5e26a5497d1e7cc15be8f9fece9f4f5e1b9438ea",
      "tree": "6274611564def922073fa433712c05c4692a08ca",
      "parents": [
        "7f75082bd4f231cb48528f0d760327daff052c2e"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 01:07:21 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): initialize UI smoke product mode\n\n- load runtime config during API-backed browser authentication\n- validate PD and non-PD graphspace landing contracts separately\n- cover config injection and failure handling with Node tests\n"
    },
    {
      "commit": "7f75082bd4f231cb48528f0d760327daff052c2e",
      "tree": "26537168669887319a1a414b021ecd4cd66a1ea5",
      "parents": [
        "098f4048b3f1814e48ed7e91f3f4a0e91efb1b9d"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 20 00:32:38 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): align UI smoke contracts\n\n- expose stable language and GraphSpace title test anchors\\n- update browser smoke selectors for the current toggle UI\\n- cover both anchors with focused frontend tests\n"
    },
    {
      "commit": "098f4048b3f1814e48ed7e91f3f4a0e91efb1b9d",
      "tree": "02cdfabda5c97440af9c2eea266cfb5a240588b4",
      "parents": [
        "2f6554fdc4e2393cddd1268053791dfbe0274808"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 19 23:59:24 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): restore Apache license headers\n\n- replace three abbreviated test headers with the standard Apache-2.0 text\\n- align the files with license-eye header validation\\n- keep runtime code and test behavior unchanged\n"
    },
    {
      "commit": "2f6554fdc4e2393cddd1268053791dfbe0274808",
      "tree": "c12faf59a87436c88ffb3657a559c04b89b84e53",
      "parents": [
        "429599d0af3c2aee690f243014351ce5f30219f5"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 19 23:46:11 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): refine graphspace creation form\n\n- prevent long labels from overlapping form controls\n- prefill graphspace resource limits with defaults\n- keep nickname validation aligned with server rules\n- cover layout and submitted default values\n"
    },
    {
      "commit": "429599d0af3c2aee690f243014351ce5f30219f5",
      "tree": "f82e7f3f36858c1d1580e7b886aacceb96786eef",
      "parents": [
        "40b00c3fcbbfd65d0fca826ddc47695c72f9f826"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 19 23:43:43 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "chore(docs): remove UI screenshots\n\n"
    },
    {
      "commit": "40b00c3fcbbfd65d0fca826ddc47695c72f9f826",
      "tree": "e231e373685bcde163044fad787a420cf025befd",
      "parents": [
        "002cf9908c5a05a6dc953f3b3fa4d584b38cfd75"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 19 17:57:06 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): refine workspace journeys\n\n- restore Schema template and in-graph application flows\n- clarify query, algorithm, and demo-data interactions\n- adapt standalone operations navigation and node metrics\n- align topbar, language, and sidebar responsive behavior\n\n"
    },
    {
      "commit": "002cf9908c5a05a6dc953f3b3fa4d584b38cfd75",
      "tree": "08865bd36f46d5b76191f5907bb48d6d3e31761d",
      "parents": [
        "581d221968940c6e932c17901ba48b4d2b4f3ee9"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 19 04:17:06 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): harden query behavior and tests\n\n"
    },
    {
      "commit": "581d221968940c6e932c17901ba48b4d2b4f3ee9",
      "tree": "326eb68264f88d3326105083f65d0b4462ff0130",
      "parents": [
        "89a3ab8c1409c32e84178fb4902dbae18fd099f8"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 13:28:30 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): improve UI guidance\n\n- clarify query shortcuts, empty states, and compact results\n- correct Schema navigation and documentation paths\n- explain operations metrics and external Dashboard scope\n- add contextual sidebar expansion and onboarding links\n\n"
    },
    {
      "commit": "89a3ab8c1409c32e84178fb4902dbae18fd099f8",
      "tree": "81ca2a901646dd028ac87260058016ddb1a3c486",
      "parents": [
        "f61a6928db4fa91f3dac2b89772760ad84ca0468"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 09:25:51 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): close public error disclosure gaps\n\n"
    },
    {
      "commit": "f61a6928db4fa91f3dac2b89772760ad84ca0468",
      "tree": "d312c5d236adaf2402c1f870072a6c8d99b55a33",
      "parents": [
        "b63d13de0918c1ea2c183c04dcc03b7874f5d13f"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 08:40:52 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): sanitize route failure fallback\n\n"
    },
    {
      "commit": "b63d13de0918c1ea2c183c04dcc03b7874f5d13f",
      "tree": "bd7450586253cc76c957743d8535b772a6af5eb3",
      "parents": [
        "e9079d0474b9f1b64560a7e587f5193952ae8c4d"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 08:22:41 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): recover graph analysis context\n\n"
    },
    {
      "commit": "e9079d0474b9f1b64560a7e587f5193952ae8c4d",
      "tree": "0367137ced4d3c673d146788cc7ee04473142e46",
      "parents": [
        "b95a4c5c013dec2832ddc87b480bc30bf09695b1"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 07:33:03 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): scope PD graphspace authorizations\n\n"
    },
    {
      "commit": "b95a4c5c013dec2832ddc87b480bc30bf09695b1",
      "tree": "9dfb3e0385f049f3475515ea92c6fd2e399dff31",
      "parents": [
        "03e6090c0178bea443675cd42e14307151886d0d"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 05:01:19 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): sanitize query failure diagnostics\n\n"
    },
    {
      "commit": "03e6090c0178bea443675cd42e14307151886d0d",
      "tree": "de59d838fd4813c3f1d5d398c8e6e24fe26c05d4",
      "parents": [
        "c618f22d12a9e836be199309ebbd2644df43716c"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 04:04:33 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): localize standalone monitoring state\n\n"
    },
    {
      "commit": "c618f22d12a9e836be199309ebbd2644df43716c",
      "tree": "4c23c443179d5c0a6f197d927aef4efecff820be",
      "parents": [
        "62c939b45b4e7057301805c4bfae3aeeff7de816"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 03:36:39 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): support standalone graph profiles\n\n"
    },
    {
      "commit": "62c939b45b4e7057301805c4bfae3aeeff7de816",
      "tree": "6f5493c0b1e90a8f35dbfbbe8ea9e9baeb0b7c14",
      "parents": [
        "83364a44036c69c3c46f28b57b20c02dcd350cd5"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 02:58:34 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): scope graphspace authorization\n\n"
    },
    {
      "commit": "83364a44036c69c3c46f28b57b20c02dcd350cd5",
      "tree": "eed9196982c0724cb823a59225154b455f047eb5",
      "parents": [
        "5be6305bf5a469cb2935db4133320648245e3c91"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 02:09:57 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): keep loader credentials out of metadata\n\n"
    },
    {
      "commit": "5be6305bf5a469cb2935db4133320648245e3c91",
      "tree": "ce9535840993f934db9393368139d9a96a3667fe",
      "parents": [
        "511afd994aed0cf0bccf9f11297ad4314c3bd8ef"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 01:48:05 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): require explicit account passwords\n\n"
    },
    {
      "commit": "511afd994aed0cf0bccf9f11297ad4314c3bd8ef",
      "tree": "b384e93dedd3b2fffde8391493fcc99348baca5c",
      "parents": [
        "d2a811d542e520d09e3d6e9dc56900d176737630"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Wed Jul 15 01:37:30 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): address remaining review threads\n\n"
    },
    {
      "commit": "d2a811d542e520d09e3d6e9dc56900d176737630",
      "tree": "b5c983f945cb73757c25c8944563a327729ac09c",
      "parents": [
        "ddf23637d499b1b1784494dee04864754da89aff"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 21:06:34 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): polish operations interactions\n\n- clarify node identity, type labels, and topology roles\n- compact monitoring actions and metric availability cards\n- simplify language switching and perform a clean logout\n- extend operations and logout regression coverage\n\n"
    },
    {
      "commit": "ddf23637d499b1b1784494dee04864754da89aff",
      "tree": "c561600b12402ba1e9b8abfa7df25a239025a566",
      "parents": [
        "4ae68943b17be149b8622418bce213c385099e17"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 20:07:07 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): report bounded graph counts\n\n- use daily metrics before bounded live reads\n- reject malformed Gremlin count responses\n- avoid unbounded list-page count queries\n- cover live fallback and failure semantics\n\n"
    },
    {
      "commit": "4ae68943b17be149b8622418bce213c385099e17",
      "tree": "fe21324d3d00cc4fc8a134552618f9e21559309b",
      "parents": [
        "100f2a7b1138d288617650ad6a2ddc775e246156"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 19:04:17 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): use canonical user ids\n\n- remove unsafe path-id fallbacks from account updates and deletes\n- preserve the canonical identity returned by the user service\n- cover delete lookups that resolve to a different canonical id\n\n"
    },
    {
      "commit": "100f2a7b1138d288617650ad6a2ddc775e246156",
      "tree": "70930cb27f5c13dbbd884975aec8c0a9baf8f040",
      "parents": [
        "f8e77bfa23a594bf4d277cb4fa6fa907c885c23c"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 16:58:05 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): enforce exact operations trust\n\n- require operator-managed Store origins with exact scheme, host, and port\n- pin validated DNS answers while preserving HTTPS hostname verification\n- redact structured credentials and endpoints from exception diagnostics\n- document production overrides and cover the security boundaries\n\n"
    },
    {
      "commit": "f8e77bfa23a594bf4d277cb4fa6fa907c885c23c",
      "tree": "c14f67773f1f418b134f66f84ce7697879808385",
      "parents": [
        "eb13ea0ddac2c2f3ebb5fb21f163f055722d7378"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 16:03:08 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): address backend review findings\n\n- register GraphSpace admin assignment as a POST mutation\n- defer the large sample graph payload until it is requested\n- accept heterogeneous numeric count values safely\n- simplify job-name validation and cover the changed contracts\n\n"
    },
    {
      "commit": "eb13ea0ddac2c2f3ebb5fb21f163f055722d7378",
      "tree": "c4340bd78450885487f935d5db66c15a92d41950",
      "parents": [
        "3443dc31322226f43eb2fa3f9c3f191830c3a8b8"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 15:56:18 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): localize default schema title\n\n- localize the built-in GraphSpace name in Schema templates\n- cover the stored Chinese nickname regression\n- refresh English Navigation, Overview, and Schema evidence\n\n"
    },
    {
      "commit": "3443dc31322226f43eb2fa3f9c3f191830c3a8b8",
      "tree": "db802d9d7cfec8246c0195bc22bde4fc79edfa40",
      "parents": [
        "55f306f4fb8adbd2f97f6359c5ca6cd6951db364"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 14 15:15:57 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "feat(hubble): add advanced monitoring entry\n\n- reuse the existing safe Dashboard URL contract\n- keep native monitoring available when Dashboard is disabled\n- expose localized and keyboard-accessible disabled reasons\n- cover configured, unavailable, forbidden, and popup states\n\n"
    },
    {
      "commit": "55f306f4fb8adbd2f97f6359c5ca6cd6951db364",
      "tree": "ff00c8141e73deff3119d6564323a8e187706ca8",
      "parents": [
        "a02aee3a5ab979ae274843f3aba7ed4d9c3f1801"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 22:18:06 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): refine query execution controls\n\n- reserve Ctrl+Enter for query execution\n- make Command+Enter insert an editor newline\n- replace the action dropdown with an accessible mode switch\n- keep query controls aligned at narrow widths\n- refresh English PD UI evidence\n\n"
    },
    {
      "commit": "a02aee3a5ab979ae274843f3aba7ed4d9c3f1801",
      "tree": "a977e0ea1e1b5f7872f3e6d75e9edd2223193cc8",
      "parents": [
        "c7a9a2d267a13d558b29f67681089df595f46a00"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 21:52:18 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): address review feedback\n\n- name schema creation retry constants\n- preserve existing retry behavior and coverage\n- add before and current UI evidence for PR summary\n- include navigation and graph-list screenshots\n\n"
    },
    {
      "commit": "c7a9a2d267a13d558b29f67681089df595f46a00",
      "tree": "7fa77162882b1eec3b25ed397283faf4909b6087",
      "parents": [
        "aab5b62c36839928fa541c700efa60cd6f18c6d7"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 21:15:39 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): improve workbench usability\n\n- align GraphSpace, graph and account permission semantics\n- improve Gremlin, schema, import and algorithm workflows\n- add resilient error states, defaults and field guidance\n- cover backend authorization and ingestion transaction safety\n- add regression tests and original UX requirements\n\n"
    },
    {
      "commit": "aab5b62c36839928fa541c700efa60cd6f18c6d7",
      "tree": "6e8ef9086a1c18a554117c50e0bf94275b40f5be",
      "parents": [
        "f6fee0177cbf4a4e106d42a27e7db1ef2e4a8c43"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 12:26:47 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): secure PD space responses\n\n- remove data-plane secrets from GraphSpace views\n- bind permission checks to each target GraphSpace path\n- preserve actual snapshot dates across aggregate metrics\n- cover secret filtering, permissions, and mixed dates\n\n"
    },
    {
      "commit": "f6fee0177cbf4a4e106d42a27e7db1ef2e4a8c43",
      "tree": "ff08ad4d92f49957e7cbd01b567209f499ba3d7a",
      "parents": [
        "420c85bb08e15c164612861274c3e04c5c003b89"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 12:07:45 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): verify radio language state\n\n- detect the selected English radio by its checked input\n- avoid relying on the former Select option label\n- preserve the existing smoke report contract\n\n"
    },
    {
      "commit": "420c85bb08e15c164612861274c3e04c5c003b89",
      "tree": "5a9d689b09c642dd9e245dc417c8eea9011fe81b",
      "parents": [
        "450edd279c9619ace765557ddb0a73c7379d81d6"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 11:50:22 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): restore CI quality gates\n\n- update the runtime language smoke for the Radio switcher\n- restore complete ASF headers on newly added source files\n- guard task and graph-detail responses against null values\n- add a reusable local license-eye check command\n\n"
    },
    {
      "commit": "450edd279c9619ace765557ddb0a73c7379d81d6",
      "tree": "cd085bf9aeb8bc95b6aaff4f0da83d6af2acf0b0",
      "parents": [
        "9ca30aff93c07e4e0c407cb835bbfe5e12b5a315"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Mon Jul 13 01:42:39 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "chore: merge master into Hubble UI branch\n\n- integrate frontend favorite-name validation hardening\n- preserve query shortcuts, pending guards, and dashboard capability states\n- include Docker build and dependency-license updates from master\n\n"
    },
    {
      "commit": "9ca30aff93c07e4e0c407cb835bbfe5e12b5a315",
      "tree": "383b3d658cf8ced3eaef1a8bc70a79b07514db81",
      "parents": [
        "bda950a8aefb29558f9e68b9292b36a95b74657f"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 22:51:48 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): align demo and dashboard contracts\n\n- create Red Chamber vertices with the name primary key\n- verify the actual schema builder avoids custom string IDs\n- distinguish unavailable Dashboard services from Coming Soon\n\n"
    },
    {
      "commit": "bda950a8aefb29558f9e68b9292b36a95b74657f",
      "tree": "a3be7c3833c1f52ed436a6014b85a03a7f4cc835",
      "parents": [
        "65b43aa5aa686b7de5ebd1aebd7d522ce39832e4"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 22:34:20 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "test(hubble): align integrated workflow fixtures\n\n- locate graph import journey by stable key\n- provide valid graph context in topbar request tests\n- preserve navigation and auth behavior assertions\n\n"
    },
    {
      "commit": "65b43aa5aa686b7de5ebd1aebd7d522ce39832e4",
      "tree": "ed138a93a9858b783d7964f01d07d124048b8a2c",
      "parents": [
        "501d8e9f30d7db41ea03f6c910e215ccd5c05b79"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 22:27:03 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): synchronize graph context\n\n- fetch the complete PD GraphSpace collection explicitly\n- reconcile missing GraphSpace and graph deep links\n- discard stale graph responses after context switches\n- cover PD, non-PD, retry, and race scenarios\n\n"
    },
    {
      "commit": "501d8e9f30d7db41ea03f6c910e215ccd5c05b79",
      "tree": "0a29c09b5b75259a6c1017477ccd5a0c4011f652",
      "parents": [
        "7a911995d24c94c49bfb6ae9e3649cb46e8f4abd"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 22:22:31 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "feat(hubble): surface safe demo workflows\n\n- expose quick demos from the data import page\n- gray out unavailable operations before navigation\n- localize built-in graphspace and admin labels\n- preserve user-defined nicknames and import boundaries\n\n"
    },
    {
      "commit": "7a911995d24c94c49bfb6ae9e3649cb46e8f4abd",
      "tree": "017cc827764d8f31dfb09e6ae1f044083f11661d",
      "parents": [
        "fc5b288396610cf7c24164d3becc7b6d775bf660"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 21:54:41 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): default oversized results to table\n\n- control the active query result view\n- select Table for results beyond 300 nodes or edges\n- reset normal results to the graph canvas\n- cover result transitions with a regression test\n\n"
    },
    {
      "commit": "fc5b288396610cf7c24164d3becc7b6d775bf660",
      "tree": "a300215ca637c04c200c27b2e2fc718b0a96f2e0",
      "parents": [
        "2fae603c3e8c319f3c79ce46f93803bdf6862e08"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 21:38:20 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble-be): guard sample schema creation and edge parsing\n\n"
    },
    {
      "commit": "2fae603c3e8c319f3c79ce46f93803bdf6862e08",
      "tree": "1f4e0fa4c6937f453229f3c07f743c62ca8f01a1",
      "parents": [
        "4114fd69c3245a32e0c2f19a53fe14e7375eecba"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 20:44:50 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "feat(hubble): add Red Chamber demo\n\n- build a retry-safe 41-vertex literature graph\n- expose the demo from the graph action menu\n- link official MovieLens Small resources\n- restore complete ASF headers for CI checks\n- keep local Codex task state out of the PR\n\n"
    },
    {
      "commit": "4114fd69c3245a32e0c2f19a53fe14e7375eecba",
      "tree": "fa64b2583d2df147bb3697c71596db03c7d24103",
      "parents": [
        "314acf732207fb32ed8a57010478dbc97d4b474c"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 20:08:01 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "Apply suggestions from code review\n\nCo-authored-by: github-actions[bot] \u003c41898282+github-actions[bot]@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "314acf732207fb32ed8a57010478dbc97d4b474c",
      "tree": "db5df236480fc474f71707a56e423407bc03a97c",
      "parents": [
        "5939b477c2d3b3dbfeab2b49297011835502a275"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 18:30:00 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): preserve recovery details\n\n- retain query hash across expired-session redirects\\n- surface actionable Loader task creation errors\\n- cover both recovery contracts with focused tests\n\n"
    },
    {
      "commit": "5939b477c2d3b3dbfeab2b49297011835502a275",
      "tree": "295552503c8bdc64e052f726055dcb1a88deb2f7",
      "parents": [
        "bfd733550813ed80d96b94a5aa32deabe8cb55b7"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 18:24:51 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): preserve integration contracts\n\n- restore workbench route title helpers and styles\\n- keep internal test routes development-only\\n- remove duplicated task action definition\n\n"
    },
    {
      "commit": "bfd733550813ed80d96b94a5aa32deabe8cb55b7",
      "tree": "49e1c708802feb52c7153bec92183bafb005aa38",
      "parents": [
        "d8a45445aa3569d46a437a94e1b95f2acebe4c76"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 15:32:47 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): preserve workbench language choice\n\n- default fresh sessions to English\n- share language fallback across UI and requests\n- keep explicit login language selections persistent\n- focus graph canvas for fullscreen shortcuts\n\n"
    },
    {
      "commit": "d8a45445aa3569d46a437a94e1b95f2acebe4c76",
      "tree": "aa479a2a99a9c8dd805d90d697771bf36a1de954",
      "parents": [
        "0a69172e4935aa955fdec047c0b0a7fa1f4f1bf2"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 15:26:48 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): refine desktop workbench shell\n\n- improve login balance and brand rendering\n- clarify navigation information architecture\n- expose unavailable operations as coming soon\n- render profile empty values consistently\n\n"
    },
    {
      "commit": "0a69172e4935aa955fdec047c0b0a7fa1f4f1bf2",
      "tree": "13e0cc1733afaec20fc6494416d5f63cbd86a938",
      "parents": [
        "9f8887e0e30474f15c3b783d5588bafc3e3bb274"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 14:32:32 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "refactor(hubble): unify low-frequency surfaces\n\n- compact the My profile and password forms with Workbench tokens\n- give 404 recovery a bounded surface and direct workspace return\n- preserve async task context with a graph-scoped return entry\n- cover surface, routing, i18n, and form-alignment contracts\n\n"
    },
    {
      "commit": "9f8887e0e30474f15c3b783d5588bafc3e3bb274",
      "tree": "712fbe3f36a1b334b3db45a0a2293104342e0394",
      "parents": [
        "9762bc5da95cabf631689a0a1ba009be23a29db7"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 13:49:56 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): guard account editor requests\n\n- serialize create, edit, and auth submissions\n- clear stale account detail and form state\n- ignore late identity responses after switching users\n- cover pending, race, and failure recovery\n\n"
    },
    {
      "commit": "9762bc5da95cabf631689a0a1ba009be23a29db7",
      "tree": "3809c398efa9d241a4df3de5c1b43d135d704a9e",
      "parents": [
        "e0a9b7abe3f1c024c60dc30add9aca5a4bda1998"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 13:45:10 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): recover password submission\n\n- release submit loading after validation or request failures\n- preserve password fields for non-200 responses and retries\n- cover validation, rejection, business error, and success paths\n\n"
    },
    {
      "commit": "e0a9b7abe3f1c024c60dc30add9aca5a4bda1998",
      "tree": "6bc249e4a6448df21091369636be7a27de871705",
      "parents": [
        "17cfc3e423c6929df573ebe2cc17b87403169e2c"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 13:41:39 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): expose keyboard focus ring\n\n- apply the shared ring to discrete workbench controls\n- move skip-link activation into the main workspace\n- scope navigation topbar workspace and login styles\n- add DOM and stylesheet regression contracts\n\n"
    },
    {
      "commit": "17cfc3e423c6929df573ebe2cc17b87403169e2c",
      "tree": "28389005eaaee168b1de8cf7e1802235f858bc6d",
      "parents": [
        "f8bc630750ef5e6e8997a641c1cbdab21bce089c"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 13:29:00 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): add graph toolbar labels\n\n- label ten icon-only graph controls with localized text\n- keep accessible names aligned with existing tooltips\n- add regression coverage for query and algorithm tools\n\n"
    },
    {
      "commit": "f8bc630750ef5e6e8997a641c1cbdab21bce089c",
      "tree": "bd89adc5cd8bdb06ef6c55d9ccba9e8a104e0307",
      "parents": [
        "9866f599540d0554872bac8a8a423d0bba4b3faa"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 13:18:36 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "fix(hubble): preserve hash on auth redirect\n\n- include URL hash in request-time login redirects\n- cover HTTP and business 401 redirect contracts\n- verify login restores query and hash context\n- assert unauthorized requests are not replayed\n\n"
    },
    {
      "commit": "9866f599540d0554872bac8a8a423d0bba4b3faa",
      "tree": "4203ee55008432d83294557091ea79144d260b8e",
      "parents": [
        "e4ca87527be824a91c1bda68ffd50708a7773937"
      ],
      "author": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Sun Jul 12 13:05:20 2026 +0800"
      },
      "committer": {
        "name": "imbajin",
        "email": "jin@apache.org",
        "time": "Tue Jul 21 14:40:03 2026 +0800"
      },
      "message": "feat(hubble): unify workspace visual system\n\n- redesign login as a balanced accessible desktop shell\n- align workspace navigation, surfaces, controls and spacing\n- simplify compact graph card labels without changing full graph views\n- share the topbar height token and preserve document scrolling\n\n"
    }
  ],
  "next": "e4ca87527be824a91c1bda68ffd50708a7773937"
}
