)]}'
{
  "log": [
    {
      "commit": "e20a1ce8dd0bdfcb7c14b07a3798eab41ce3a9a3",
      "tree": "f2774f8bfdb043e57210138db2901c3854d6ce5e",
      "parents": [
        "6e5676b0d31478b4247b16a4a39555463e870b65"
      ],
      "author": {
        "name": "Prakash Kumar",
        "email": "pgcet601@gmail.com",
        "time": "Tue Aug 25 13:00:50 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 15:30:50 2026 +0800"
      },
      "message": "fix: fix hero section titleText sizing on smaller screens (#21)"
    },
    {
      "commit": "6e5676b0d31478b4247b16a4a39555463e870b65",
      "tree": "58e6b9c0cb2ee97f50ce98eefae1a25fd106f6ad",
      "parents": [
        "9edab6f85f31b253ecbc491936078bec952979f2"
      ],
      "author": {
        "name": "Jason",
        "email": "libevent@yeah.net",
        "time": "Tue Aug 25 15:27:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 25 15:27:20 2026 +0800"
      },
      "message": "docs(community): translate Chinese documentation to English (#24)"
    },
    {
      "commit": "9edab6f85f31b253ecbc491936078bec952979f2",
      "tree": "756e1f7bfeca54e995b3ded0d06072fa439bda48",
      "parents": [
        "2a41ab4c4165197319b9c96684aebc485fd53ce7"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Mon Aug 24 03:37:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 24 09:37:16 2026 +0800"
      },
      "message": "docs: add a draft threat model for GeaFlow (#25)\n\n* docs: add a draft threat model for the engine and console\n\nGeaFlow has no security model on the record: SECURITY.md is purely\ndisclosure process, community/{en,zh}/security.md are empty stubs, and\nthe project is not listed at security.apache.org/projects. A triager\nhanded a vulnerability report has nothing to cite, and an integrator has\nno way to tell which threats the project has taken on.\n\nAdd a first draft produced against the ASF Security team\u0027s\nthreat-model-producer rubric. It covers the engine and the console as two\ncomponent families and leaves the operator, MCP and AI surfaces out of\nmodel. Roughly half of it is inferred from public artifacts rather than\nconfirmed, so every inferred claim is tagged and routed to one of the 14\nopen questions in section 14. It is marked DRAFT and is not PPMC policy\nuntil those are answered.\n\nAssisted-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* docs: tag remaining threat model claims with provenance\n\nThree claims in section 9 carried no provenance tag, which the rubric\u0027s\nself-check requires. Tag them and correct the draft-confidence count.\n\nAssisted-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* docs: fold the ASF security review into the threat model\n\nAndrea Cosentino reviewed the draft against apache/geaflow 958b803,\ncorrected five claims and proposed answers to all fourteen open\nquestions. This folds both in, so the answers\u0027 consequences land in the\nbody sections rather than sitting in §14.\n\nEvery code citation was re-verified against the tree. Seven of the\nreview\u0027s claims needed adjusting before use:\n\n- AbstractMaster:99-104 gates the agent and HttpServer only; the metric\n  server gates itself inside its own constructor.\n- KubernetesEnvironment sets SUPERVISOR_ENABLE as a constructor default,\n  which EnvironmentContext.withConfig can still override, so \"no off\n  switch\" overstates it.\n- geaflow.job.max.parallel lives in FrameworkConfigKeys, not the DSL keys.\n- geaflow.dsl.max.traversal caps iteration depth, not work: it is raised\n  internally for incremental traversal and accepts Integer.MAX_VALUE.\n- GeaflowWebConfig:47 registers the auth interceptor; token resolution is\n  in GeaflowApiRequest.getSessionToken.\n- The CORS block spans :50-54 and also sets allowedHeaders and\n  allowedMethods.\n- Both access tokens are dead, not just the ConfigKey: the JDBC\n  accesstoken connect property is parsed and then dropped, since\n  AnalyticsDriverURI consumes only CUSTOM_HEADERS and SESSION_PROPERTIES.\n\nThree points were stronger than stated and are now written at full\nstrength: the supervisor RPC kills a caller-supplied PID; the operator\u0027s\nwildcard RBAC covers core secrets and the cluster-scoped branch is the\ndefault; and `masked` has no server-side redaction at all.\n\nAnswers are tagged with a new *(review)* provenance level, distinct from\n*(maintainer)*. The document stays a draft: the PPMC has not voted, so\n§14 now records the answers and what is still open, including the one\nsubstantive gap the review surfaced (wildcard CORS with credentials over\na cookie-acceptable token) and the ASF security project listing.\n\nAssisted-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01FJm2ahzEGFcVrmCkdtuZeA"
    },
    {
      "commit": "2a41ab4c4165197319b9c96684aebc485fd53ce7",
      "tree": "1efb6bed5d4dd9f535efefcc66f17f38c1582196",
      "parents": [
        "7f80c0f2bf8542f3577d74ddd8779fcad6b91d98"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Wed Nov 19 17:35:18 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 17:35:18 2025 +0800"
      },
      "message": "remove duplicate blogs (#16)\n\n* add v0.7.0 release note\n\n* fix comments\n\n* remove duplicate blog"
    },
    {
      "commit": "7f80c0f2bf8542f3577d74ddd8779fcad6b91d98",
      "tree": "3579185ae1fc495100a7d789aaf64adbf42ae9cb",
      "parents": [
        "93d41c0ba4703623f0d9c6c9cc7a59e580bb61c1"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Wed Nov 19 17:12:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 17:12:58 2025 +0800"
      },
      "message": "fix comments (#15)\n\n* add v0.7.0 release note\n\n* fix comments"
    },
    {
      "commit": "93d41c0ba4703623f0d9c6c9cc7a59e580bb61c1",
      "tree": "294eec0e5a43e0449f2c49ac81564b66f4c35500",
      "parents": [
        "41f1fef76dea6037b242b7b05c4c7953c53ab8cf"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Wed Nov 19 10:47:18 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 19 10:47:18 2025 +0800"
      },
      "message": "add v0.7.0 release note (#14)\n\n"
    },
    {
      "commit": "41f1fef76dea6037b242b7b05c4c7953c53ab8cf",
      "tree": "61beb76891547d0940f2c4453ef0d372291f267f",
      "parents": [
        "b9c2c63f3c0c325ff23e8b9214f5a76537790624"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Fri Oct 24 14:18:23 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 24 14:18:23 2025 +0800"
      },
      "message": "Fix contacts (#10)\n\n* update contacts\n\n* remove repo\n\n* fix blog content\n\n* remove tugraph in blogs\n\n* fix graph in en version\n\n* fix contacts"
    },
    {
      "commit": "b9c2c63f3c0c325ff23e8b9214f5a76537790624",
      "tree": "b4f323c00354780e037f620c694548cb21395b9f",
      "parents": [
        "595e005bfa4111105799ef233709e3c7b54c8595"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Mon Oct 20 17:36:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 20 17:36:06 2025 +0800"
      },
      "message": "Fix website blogs content (#9)\n\n* update contacts\n\n* remove repo\n\n* fix blog content\n\n* remove tugraph in blogs\n\n* fix graph in en version"
    },
    {
      "commit": "595e005bfa4111105799ef233709e3c7b54c8595",
      "tree": "853f9b880cf47a81fc827598bbbe711d16d65f1a",
      "parents": [
        "4fd7bfc6858afbcb19bdb6fae009a8708a4f702a"
      ],
      "author": {
        "name": "lkm_cc",
        "email": "lkm01250564@antgroup.com",
        "time": "Fri Oct 17 14:49:57 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 17 14:49:57 2025 +0800"
      },
      "message": "feat: update footer (#8)\n\n* feat: update footer\n\n* fix: name\n\n* fix: copyright"
    },
    {
      "commit": "4fd7bfc6858afbcb19bdb6fae009a8708a4f702a",
      "tree": "7034044b48aa30aed2837dc10d25c48169c3c3de",
      "parents": [
        "f000548e722a2ecd9b754af78ef4dde2e2290a1c"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Tue Oct 14 19:04:43 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 19:04:43 2025 +0800"
      },
      "message": "Fix website bugs (#7)\n\n* update contacts\n\n* remove repo"
    },
    {
      "commit": "f000548e722a2ecd9b754af78ef4dde2e2290a1c",
      "tree": "4275f62742d811e84801004613c3622bed9b10ad",
      "parents": [
        "9822ee0c1ee55ae7da93ac03e79043a344c18088"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Tue Oct 14 14:53:46 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 14:53:46 2025 +0800"
      },
      "message": "Fix website content (#6)\n\n* fix apache geaflow with Incubating\n\n* minor fix apache geaflow\n\n* move blogs\n\n* add blog images\n\n* translate posts\n\n* minor fix translate\n\n* minor fix translation"
    },
    {
      "commit": "9822ee0c1ee55ae7da93ac03e79043a344c18088",
      "tree": "cb345e85e8f4846f396bf5883438abfb5b484889",
      "parents": [
        "b5396f644e33d068bd4d47def7d833466b771cd5"
      ],
      "author": {
        "name": "lkm_cc",
        "email": "lkm01250564@antgroup.com",
        "time": "Mon Oct 13 15:18:43 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 13 15:18:43 2025 +0800"
      },
      "message": "fix: remove github repo-card (#5)\n\n* Update README.md\n\n* feat: config\n\n* feat: deploy\n\n* feat: add blog/docs\n\n* feat: add i18n/community\n\n* feat: add docs\n\n* feat: page\n\n* feat: add gitignore\n\n* fix: update deploy\n\n* fix: update README\n\n* fix: error display\n\n* fix: error display\n\n* fix: update guide\n\n* fix: update basePath\n\n* fix:  Content Security Policy\n\n* fix: update repo card icon\n\n* fix: remove repo"
    },
    {
      "commit": "b5396f644e33d068bd4d47def7d833466b771cd5",
      "tree": "b8364059229500ba9745b864216304336fdd6712",
      "parents": [
        "d9c148b85066f5f5f30f56653922ad4df554f3a0"
      ],
      "author": {
        "name": "lkm_cc",
        "email": "15216289496@163.com",
        "time": "Sat Oct 11 14:17:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 11 14:17:22 2025 +0800"
      },
      "message": "fix: update repo card icon (#4)\n\n* Update README.md\n\n* feat: config\n\n* feat: deploy\n\n* feat: add blog/docs\n\n* feat: add i18n/community\n\n* feat: add docs\n\n* feat: page\n\n* feat: add gitignore\n\n* fix: update deploy\n\n* fix: update README\n\n* fix: error display\n\n* fix: error display\n\n* fix: update guide\n\n* fix: update basePath\n\n* fix:  Content Security Policy\n\n* fix: update repo card icon"
    },
    {
      "commit": "d9c148b85066f5f5f30f56653922ad4df554f3a0",
      "tree": "d8783ca7e1548ed3fbb172352abe404dcfec1c26",
      "parents": [
        "2d3c449cd92f82caa0d24564de04c36bb345be73"
      ],
      "author": {
        "name": "lkm_cc",
        "email": "lkm01250564@antgroup.com",
        "time": "Sat Oct 11 11:56:13 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 11 11:56:13 2025 +0800"
      },
      "message": "fix: content security policy (#3)\n\n* Update README.md\n\n* feat: config\n\n* feat: deploy\n\n* feat: add blog/docs\n\n* feat: add i18n/community\n\n* feat: add docs\n\n* feat: page\n\n* feat: add gitignore\n\n* fix: update deploy\n\n* fix: update README\n\n* fix: error display\n\n* fix: error display\n\n* fix: update guide\n\n* fix: update basePath\n\n* fix:  Content Security Policy"
    },
    {
      "commit": "2d3c449cd92f82caa0d24564de04c36bb345be73",
      "tree": "a8eed27672a5756c25b15ee97093fbf5fd65bb95",
      "parents": [
        "56d512e9f62edc780bb8e2cf965cee3786b11749"
      ],
      "author": {
        "name": "lkm_cc",
        "email": "lkm01250564@antgroup.com",
        "time": "Fri Oct 10 17:17:34 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 10 17:17:34 2025 +0800"
      },
      "message": "fix: update basePath (#2)\n\n* Update README.md\n\n* feat: config\n\n* feat: deploy\n\n* feat: add blog/docs\n\n* feat: add i18n/community\n\n* feat: add docs\n\n* feat: page\n\n* feat: add gitignore\n\n* fix: update deploy\n\n* fix: update README\n\n* fix: error display\n\n* fix: error display\n\n* fix: update guide\n\n* fix: update basePath"
    },
    {
      "commit": "56d512e9f62edc780bb8e2cf965cee3786b11749",
      "tree": "50f5a915bd243d8c873bc0dede4cb51613f8db52",
      "parents": [
        "793b583d4052a80d2bf80602aeaca8f915db5bf7"
      ],
      "author": {
        "name": "lkm_cc",
        "email": "15216289496@163.com",
        "time": "Fri Oct 10 16:37:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 10 16:37:00 2025 +0800"
      },
      "message": "feat: website content (#1)\n\n* Update README.md\n\n* feat: config\n\n* feat: deploy\n\n* feat: add blog/docs\n\n* feat: add i18n/community\n\n* feat: add docs\n\n* feat: page\n\n* feat: add gitignore\n\n* fix: update deploy\n\n* fix: update README\n\n* fix: error display\n\n* fix: error display\n\n* fix: update guide"
    },
    {
      "commit": "793b583d4052a80d2bf80602aeaca8f915db5bf7",
      "tree": "f510c5f4456e90bbd7d6bfa9c92dd1eb339306b4",
      "parents": [
        "5263479921b8664d1e070c916fd2a75676c05d52"
      ],
      "author": {
        "name": "Xin Wang",
        "email": "xinwang@apache.org",
        "time": "Mon Aug 11 21:06:18 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 11 21:06:18 2025 +0800"
      },
      "message": " Initial commit"
    },
    {
      "commit": "5263479921b8664d1e070c916fd2a75676c05d52",
      "tree": "34ea8b56699902ca14ea81c183618389a722dec3",
      "parents": [],
      "author": {
        "name": "Xin Wang",
        "email": "xinwang@apache.org",
        "time": "Mon Aug 11 21:00:16 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 11 21:00:16 2025 +0800"
      },
      "message": "Create README.md\n\nInitial commit"
    }
  ]
}
