)]}'
{
  "log": [
    {
      "commit": "3f73eb5527530d28dd1d3bd7d04b029247907a9d",
      "tree": "c0213f6b95d7e89a8e560a5ddc7952d68623c2e9",
      "parents": [
        "9f8d8d6f72f23e9640f116c313f11a007145c01f"
      ],
      "author": {
        "name": "Heracles",
        "email": "2678785492@qq.com",
        "time": "Mon Aug 10 10:59:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 10:59:04 2026 +0800"
      },
      "message": "[ISSUE-358] Implement ISO-GQL labeled predicate (#824)\n\n* [ISSUE-358] Implement ISO-GQL labeled predicate\n\nAdds the ISO-GQL \u003clabeled predicate\u003e (ISO/IEC 39075 Section 19.9), which\ntests whether a graph element (vertex or edge) carries a given label.\n\nFollowing the pattern of the already-merged source/destination predicate\n(#366), this is implemented as built-in UDFs rather than a grammar change:\n\n- `IS_LABELED(element, label)` — TRUE if the element has the label.\n- `IS_NOT_LABELED(element, label)` — the negation.\n\nBoth follow ISO-GQL three-valued logic: a null element or null label\nyields Unknown (null). The shared logic lives in\n`LabeledPredicateFunctions` (geaflow-dsl-common); the UDFs delegate to it\nand are registered in `BuildInSqlFunctionTable`.\n\nTests:\n- `LabeledPredicateFunctionsTest` (geaflow-dsl-common) unit-tests the\n  logic directly: vertex/edge labels, negation, three-valued null\n  handling, and rejection of non-graph-element operands.\n- `GQLLabeledPredicateTest` (geaflow-dsl-runtime) is an end-to-end\n  `.sql`/`.txt` case over the modern graph; expected outputs were\n  computed by hand from the graph data.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n\n* [ISSUE-358] Address review: inline labeled predicate logic into UDFs\n\nThe geaflow-dsl-common/function package is for general-purpose interfaces,\nso the labeled predicate logic should live in the UDFs rather than a separate\nhelper class there.\n\n- Inline the label-matching and three-valued-null logic (plus a private\n  getLabel helper) directly into IsLabeled; IsNotLabeled delegates to an\n  IsLabeled instance and negates, keeping label extraction in one place.\n- Remove LabeledPredicateFunctions and its test from geaflow-dsl-common.\n- Move the unit test to geaflow-dsl-plan as LabeledPredicateTest (same\n  udf/table/other package as the UDFs, matching PropertyExistsTest), testing\n  through the UDF eval methods.\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "9f8d8d6f72f23e9640f116c313f11a007145c01f",
      "tree": "2764e48b999be12cc0722fef270d43dd59475cd8",
      "parents": [
        "958b8039b27887b995334e120ac21188a7ea2cf3"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Thu Aug 06 08:14:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 14:14:44 2026 +0800"
      },
      "message": "docs: route vulnerability reports to the ASF security team (#828)\n\nSECURITY.md directed reporters to dev@geaflow.apache.org, a public\nmailing list, which would disclose an unfixed vulnerability at the\nmoment it is reported.\n\nPoint reporters at security@apache.org instead and link to the ASF\nreporting and handling policies. Add the ASF submission conventions\n(plaintext, one finding per e-mail, [SECURITY] subject prefix).\n\nAssisted-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "958b8039b27887b995334e120ac21188a7ea2cf3",
      "tree": "a6277cb8c530a8ee5350532ec38c220a5ab8ceb2",
      "parents": [
        "6b79587f48eecc7eeda484c5dde73df42d20f962"
      ],
      "author": {
        "name": "Power John",
        "email": "johntomcat7408@gmail.com",
        "time": "Tue Aug 04 13:58:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 13:58:07 2026 +0800"
      },
      "message": "feat(dsl): add MongoDB connector (#816)\n\n* feat(dsl): add MongoDB connector\n\n* fix(dsl): improve MongoDB pagination and error reporting"
    },
    {
      "commit": "6b79587f48eecc7eeda484c5dde73df42d20f962",
      "tree": "f4137e5fc51b798ed7243ae0880f648579750bef",
      "parents": [
        "ece614a76d279067a85702ff67bfe560ae86530a"
      ],
      "author": {
        "name": "Power John",
        "email": "johntomcat7408@gmail.com",
        "time": "Mon Aug 03 20:13:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 20:13:04 2026 +0800"
      },
      "message": "test(cluster): avoid uncaught system exit exceptions (#821)"
    },
    {
      "commit": "ece614a76d279067a85702ff67bfe560ae86530a",
      "tree": "480fac8fb58bb64de8d59e9e1879bdaefef0a95c",
      "parents": [
        "6312f97d83c1f992ac52427b08380d596954fdf8"
      ],
      "author": {
        "name": "Power John",
        "email": "johntomcat7408@gmail.com",
        "time": "Mon Aug 03 19:58:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 19:58:40 2026 +0800"
      },
      "message": "test(dsl): add modern graph algorithm cases (#815)"
    },
    {
      "commit": "6312f97d83c1f992ac52427b08380d596954fdf8",
      "tree": "f42b58709573214bec66dffd9ede69805c40cac2",
      "parents": [
        "7847fa2514d5286fc7c12ce11b8a1b05387249e6"
      ],
      "author": {
        "name": "YinZiBenRun",
        "email": "yinzibenrun@gmail.com",
        "time": "Tue Jul 28 10:35:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 10:35:21 2026 +0800"
      },
      "message": "feat: add date functions QUARTER and DAY_OF_YEAR (#814)\n\n* feat: add date functions QUARTER and DAY_OF_YEAR\n\nAdd two new date UDFs:\n- quarter(date): returns the quarter of the year (1-4)\n- day_of_year(date): returns the day of the year (1-366)\n\nBoth follow the existing WeekOfYear pattern using Joda-Time.\nRegistered in BuildInSqlFunctionTable.\nTests cover quarter boundaries, leap years, year boundaries, and null inputs.\n\nCloses #791\n\n* test: add end-to-end SQL test for QUARTER/DAY_OF_YEAR\n\nThe existing UDFDateTest verifies the Java eval() methods directly but\ndoes not exercise SQL registration, overload resolution, type inference,\nor runtime invocation. Add an E2E SQL test via QueryTester that runs the\nfunctions through the full query pipeline.\n\nCovers quarter boundaries (Q1-Q4), leap-year day_of_year values\n(2020-12-31\u003d366, 2020-02-29\u003d60), non-leap year (2019-12-31\u003d365), and\nyear start/end boundaries.\n\nVerified locally: Tests run: 1, Failures: 0, Errors: 0.\n\n---------\n\nCo-authored-by: 1+5 \u003c2932419272@qq.com\u003e"
    },
    {
      "commit": "7847fa2514d5286fc7c12ce11b8a1b05387249e6",
      "tree": "a5eacc9876606d61acfa4ebd96c6449400286b45",
      "parents": [
        "1fc3f0f1a5640c9d869b10d9e16c0a00442dc542"
      ],
      "author": {
        "name": "E2ern1ty",
        "email": "1144902127@qq.com",
        "time": "Sun Jul 26 11:50:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 26 11:50:04 2026 +0800"
      },
      "message": "[ISSUE-817] Add geaflow-dsl-connector-doris (Stream Load sink + partitioned source) (#819)\n\n* [ISSUE-817] Add geaflow-dsl-connector-doris (Stream Load sink + partitioned source)\n\n- Sink writes to Doris via Stream Load: buffer rows in write(), flush a whole\n  batch on row/byte threshold or window finish(), giving much higher throughput\n  than row-by-row JDBC INSERT. CSV payload by default, JSON supported.\n- Source reads through the MySQL protocol with parallel partitioned reads.\n- SPI registration + parent/aggregation pom wiring + runtime dependency.\n- CN + EN docs and examples.\n- Unit tests and a Testcontainers integration test with a throughput benchmark\n  (self-skips when Docker/host-networking is unavailable).\n\n* [ISSUE-817] Make Doris integration test opt-in to keep CI green\n\nThe Doris Testcontainers integration test previously ran whenever Docker was\navailable on a Linux host, which is exactly the case on GitHub CI runners, so\nit would try to pull the multi-GB Doris image and start a container during a\nnormal \u0027mvn test\u0027. Make it opt-in: it only runs with -Ddoris.it.enabled\u003dtrue\nor when an external Doris is provided via -Ddoris.it.fenodes/-Ddoris.it.jdbcUrl,\nand otherwise skips. Docs updated accordingly.\n\n* [ISSUE-817] Address review: serialization safety, idempotent close, FE failover\n\nAddress the maintainer\u0027s review points on the Doris connector:\n- serialization: default to json (Gson with serializeNulls + disableHtmlEscaping)\n  so newlines, quotes, backslashes, unicode, null and empty strings round-trip\n  correctly; document csv as a no-escape plain-split option.\n- sink flush: flushBuffer stays safe on an empty buffer and is idempotent on\n  finish(); close() now flushes the remaining buffer and is safe on repeated\n  calls and when the client is not initialized.\n- partition logic: clamp partition.num to at least 1 instead of throwing; the\n  first partition already covers rows whose partition column is entirely NULL.\n- label: kept globally unique via UUID.\n- FE failover: DorisStreamLoad now takes the full FE list and rotates to the\n  next FE on a failed request (retries at least once per FE).\n- integration tests: add table-not-found, FE-failover and full data-type\n  round-trip fidelity cases (still opt-in). Add unit tests for special-char /\n  null / empty-string serialization and multi-FE url building.\n\n* [ISSUE-817] Do not bundle the GPL MySQL driver; minor cleanup\n\n- Make mysql-connector-java a test-scope dependency instead of compile, so the\n  GPL-licensed driver is not shipped in the distribution (matching\n  geaflow-dsl-connector-jdbc, which bundles no driver). The source only uses the\n  standard java.sql API and loads the driver by name, so users must provide a\n  MySQL-protocol driver on the runtime classpath; documented in CN + EN docs.\n- Remove the unused COLON constant.\n\nVerified: checkstyle 0 violations, RAT 0 unapproved (14 files), unit tests\n23 run / 0 failed / 7 skipped (integration tests are opt-in).\n\n* [ISSUE-817] Add real benchmark numbers verified against a local Doris\n\nVerified the connector end to end against a real single-node\napache/doris:3.0.8-all: the sink (Stream Load), the partitioned source, FE\nfailover, table-not-found and full data-type round-trip (newlines, quotes,\nbackslashes, chinese, emoji) integration tests all pass. Benchmark: Stream Load\nloaded 500 rows in ~91ms (~5500 rows/s) vs ~11335ms (~44 rows/s) for row-by-row\nJDBC INSERT, ~125x faster; 2000 rows via Stream Load took only ~97ms. Recorded\nthe reference numbers in the CN + EN docs.\n\n* [ISSUE-817] Address PR review: idempotent label, partition strategies, timeouts\n\n- Label/idempotency: generate one label per batch and reuse it across all\n  retries and FE failover attempts (Doris loads a label at most once); treat\n  \u0027Label Already Exists\u0027 on retry as success to avoid duplicate writes; log the\n  label on failures/retries. Documented the write semantics.\n- Partition strategies: add source.partition.mode (range/custom). \u0027custom\u0027 takes\n  semicolon-separated WHERE predicates (source.partition.clauses), one partition\n  per predicate, supporting non-numeric/skewed columns and arbitrary conditions.\n  Documented the performance impact of unindexed/skewed partition columns and\n  recommended indexed, evenly-distributed columns.\n- Timeouts: read/write timeout is configurable and its default is raised to 60s\n  to cover large-batch uploads; documented tuning guidance.\n- Tests: add DorisTableSourceTest covering single/range/custom partition listing."
    },
    {
      "commit": "1fc3f0f1a5640c9d869b10d9e16c0a00442dc542",
      "tree": "72f4ad8d170e960cdeb8ea7e57ea9abe0dca74dc",
      "parents": [
        "f8be72222ee1ddbbf66a87fc351cd727a4d13b03"
      ],
      "author": {
        "name": "YinZiBenRun",
        "email": "yinzibenrun@gmail.com",
        "time": "Fri Jul 24 16:23:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 24 16:23:12 2026 +0800"
      },
      "message": "feat: add math functions SIGN/CBRT/TRUNC (#813)\n\n* feat: add math functions SIGN/CBRT/TRUNC\n\n- sign(x): returns -1 for negative, 0 for zero, 1 for positive\n- cbrt(x): returns the cube root of a number\n- trunc(x, d): truncates x to d decimal places (not round)\n\nAdd UDF classes (Sign.java, Cbrt.java, Trunc.java) and register\nthem in BuildInSqlFunctionTable. Add cbrt/trunc static methods\nto GeaFlowBuiltinFunctions. Add unit tests covering negative,\nzero, and null edge cases.\n\nResolves #790\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* test: add end-to-end SQL test for SIGN/CBRT/TRUNC\n\nThe existing MathUdfTest verifies the Java eval() methods directly but\ndoes not exercise SQL registration, overload resolution, type inference,\nor runtime invocation. Add an E2E SQL test via QueryTester that runs the\nfunctions through the full query pipeline.\n\nCovers:\n- SQL registration in BuildInSqlFunctionTable (sign/cbrt/trunc)\n- Overload resolution: sign(Double/Long/Integer), trunc(Double,Long/\n  Integer, with and without scale)\n- Type inference: each overload returns a distinct type, propagated\n  un-cast to the sink schema\n- Runtime invocation through the query engine\n- Null-free boundary cases (zero, negative, positive, integer doubles)\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n\n* test: make E2E SQL test runnable on Windows\n\nUse a relative forward-slash sink path instead of the ${target}\nplaceholder. QueryTester rewrites ${target} to an absolute path that on\nWindows contains backslashes; injected into a SQL string literal those\nbackslashes get escaped (\\t -\u003e tab, \\U/\\s/\\g dropped) and the sink path\nis corrupted, so the test fails on Windows. A relative path avoids the\nrewrite and resolves to the same target/ directory checkSinkResult()\nreads, on both Windows and Linux.\n\nAlso align the expected output with the real Calcite overload resolution\nbehaviour: sign(bigint)/sign(int) are promoted to double and match\nsign(Double) (Long/Integer overloads not selected), while trunc(bigint)\nand trunc(int) select the Long/Integer overloads. This type-inference\ndifference is exactly what an end-to-end SQL test surfaces.\n\nVerified locally: Tests run: 1, Failures: 0, Errors: 0.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: 1+5 \u003c2932419272@qq.com\u003e\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "f8be72222ee1ddbbf66a87fc351cd727a4d13b03",
      "tree": "eda62907104453570ecd9c8c26d79133232ae0d7",
      "parents": [
        "7cb33d923a1e51738ca1977a0882006809d0f676"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Fri Mar 20 15:46:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 20 15:46:08 2026 +0800"
      },
      "message": "fix(ci): format build and test command for better readability (#763)"
    },
    {
      "commit": "7cb33d923a1e51738ca1977a0882006809d0f676",
      "tree": "a85828d829cc3cdaf8e50ed0b4130f9a2ec0bc05",
      "parents": [
        "1bc9790dee999307dd56f1cea6c4deea887b620f"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Thu Mar 19 10:41:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 10:41:46 2026 +0800"
      },
      "message": "fix:Add check for empty search results to prevent array out of bounds (#769)"
    },
    {
      "commit": "1bc9790dee999307dd56f1cea6c4deea887b620f",
      "tree": "67879e2765a50ef57e573e07505198cc922c308a",
      "parents": [
        "fb294b07a05b436998c6e775e5b1e05c53dd6c91"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Thu Mar 19 10:41:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 19 10:41:35 2026 +0800"
      },
      "message": "docs: add CONTRIBUTING.md to outline contribution guidelines (#765)"
    },
    {
      "commit": "fb294b07a05b436998c6e775e5b1e05c53dd6c91",
      "tree": "9036372662d95291dd9a4df32c6ff3d54b8cbef7",
      "parents": [
        "6f83cdf6fd5a78830950c4ada26b5984ada8180a"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Fri Mar 13 16:48:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 16:48:39 2026 +0800"
      },
      "message": "fix: add runtime checks for graph accessors in multiple classes (#774)"
    },
    {
      "commit": "6f83cdf6fd5a78830950c4ada26b5984ada8180a",
      "tree": "9d90ce38235b616371c36ee363209e382698d935",
      "parents": [
        "a9d9e34f965a521f2bbe99fa5b5b0248ea98d60f"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Fri Mar 13 16:47:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 16:47:54 2026 +0800"
      },
      "message": "fix(pom): exclude lucene-core from elasticsearch client dependency and add specific version (#778)"
    },
    {
      "commit": "a9d9e34f965a521f2bbe99fa5b5b0248ea98d60f",
      "tree": "9b0383bc78a7ecb02a0be4714ef238f4f3e5d465",
      "parents": [
        "7cd1ff25e386558aa17df32a95b1706a76f1cf7d"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Thu Mar 12 20:53:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 12 20:53:40 2026 +0800"
      },
      "message": "feat: define BYTES_PER_KB constant for consistent byte-to-kilobyte conversions in metrics classes (#770)"
    },
    {
      "commit": "7cd1ff25e386558aa17df32a95b1706a76f1cf7d",
      "tree": "dcbd62e43359ccb8bdadd18689587fe3327b2cca",
      "parents": [
        "fb1562298b263433dfe5925ba0cb0d8add3de811"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Tue Mar 10 11:04:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 10 11:04:43 2026 +0800"
      },
      "message": "fix(math): handle null and empty inputs in average methods (#760)"
    },
    {
      "commit": "fb1562298b263433dfe5925ba0cb0d8add3de811",
      "tree": "d349ad959d1a817952e8c8f9b37f6f8c83719ae7",
      "parents": [
        "332d7fd153dc37671edec87d1eb641766f85166d"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Mon Mar 09 10:26:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 10:26:31 2026 +0800"
      },
      "message": "Fix raw type usage: replace Collections.EMPTY_LIST with Collections.emptyList() (#766)"
    },
    {
      "commit": "332d7fd153dc37671edec87d1eb641766f85166d",
      "tree": "5f62fb931374a908fca2c4bba774152b56925935",
      "parents": [
        "f9b985289addead225adff2d61991b5fb82e2998"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Mon Mar 09 10:23:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 09 10:23:05 2026 +0800"
      },
      "message": "fix: update RocksdbClient to use getDeclaredConstructor for options instantiation (#749)"
    },
    {
      "commit": "f9b985289addead225adff2d61991b5fb82e2998",
      "tree": "a3551215e4c3c0633c9bce99d5fada83073cd54d",
      "parents": [
        "b69c952b8d0734a5ca4e79c18d369d9ec1f28ef9"
      ],
      "author": {
        "name": "kitalkuyo-gita",
        "email": "windwheel@sina.cn",
        "time": "Fri Mar 06 13:43:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 06 13:43:47 2026 +0800"
      },
      "message": "feat: support louvain algorithm (#689)\n\n* support louvin algrothim\n\n* bugfix: add louvin function register\n\n* chore: add except result\n\n* refactor: add commuity weight compute"
    },
    {
      "commit": "b69c952b8d0734a5ca4e79c18d369d9ec1f28ef9",
      "tree": "1822df6ee455a98382f0d3594001316914a40f6a",
      "parents": [
        "0eb38df90b4e8008586dae61c78497c1eb1a260b"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Thu Mar 05 10:12:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 05 10:12:54 2026 +0800"
      },
      "message": "fix: improve error handling in searchVectorIndex method (#750)\n\n* fix: ensure IndexReader is properly closed in searchVectorIndex method\n\n* fix: use try-with-resources approach to avoiding exception masked"
    },
    {
      "commit": "0eb38df90b4e8008586dae61c78497c1eb1a260b",
      "tree": "dcf9a9f05ce14a06d217694f31aed509a9c1cfc7",
      "parents": [
        "ace07624e99c6f98ee7d0e6d4e22271a973ff343"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Tue Mar 03 10:08:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 03 10:08:38 2026 +0800"
      },
      "message": "fix: correct typos in log messages and comments across multiple files (#752)\n\n"
    },
    {
      "commit": "ace07624e99c6f98ee7d0e6d4e22271a973ff343",
      "tree": "52de2950cc6c709a1ba77b6ad717723e687bd72a",
      "parents": [
        "c43c3ac8ef5c5651697f90168595aad7a173e88b"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Mon Mar 02 10:18:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 02 10:18:29 2026 +0800"
      },
      "message": "refactor(encoder): extract varint constants to improve readability (#744)\n\n"
    },
    {
      "commit": "c43c3ac8ef5c5651697f90168595aad7a173e88b",
      "tree": "99492a56fe2b03a838cf284a47ffe17eb326be72",
      "parents": [
        "dad821cb8431364c6c97d354763213928089f8e8"
      ],
      "author": {
        "name": "Jason Yao",
        "email": "libevent@yeah.net",
        "time": "Sat Feb 28 13:43:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 28 13:43:58 2026 +0800"
      },
      "message": "docs: update repository references from tugraph-family to apache (#746)\n\nUpdate all references in README files to point to the new Apache repository location"
    },
    {
      "commit": "dad821cb8431364c6c97d354763213928089f8e8",
      "tree": "b858b09bd24ae522a94657d1ae4bcf1e1bcf09a0",
      "parents": [
        "38dabca238cff216893999eb95ecd53ba9457199"
      ],
      "author": {
        "name": "Appointat",
        "email": "65004114+Appointat@users.noreply.github.com",
        "time": "Thu Feb 26 10:31:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 10:31:18 2026 +0800"
      },
      "message": "feat(ai): add CASTS for GeaFlow reasoning ability (#737)\n\n* feat: add CASTS for LLM-Graph based reasoning\n\n* feat: enhance simulation evaluation with metadata and improve configuration settings\n\n* feat: enhance LLM Oracle and Simulation Engine with Debug Logging and Improved Decision Validation\n\n* feat(reasoning): implement canonical storage with abstract matching for structural signatures\n\n* chore: update type hints to use List and improve code formatting across multiple files\n\n* feat: enhance LLM Oracle with starting node type recommendations\n\n* feat: implement simplePath() cycle prevention with LLM-driven path quality control\n\nAdd native Gremlin simplePath() support to prevent pathological cycles in graph traversals. The implementation uses LLM-guided decision-making and AIMD confidence penalties rather than hard-coded restrictions, staying true to the system\u0027s learning philosophy.\n\nKey changes:\n- Add simplePath() step to Gremlin state machine for V, E, and P states\n- Implement per-request path history tracking in TraversalExecutor\n- Add cycle detection with configurable threshold and penalty modes\n- Enhance LLM Oracle prompts to recommend simplePath() for exploration goals\n- Add recent decision history context to improve LLM decision quality\n- Update configuration with CYCLE_PENALTY and CYCLE_DETECTION_THRESHOLD settings\n- Document design rationale and rejected alternatives in architecture.md\n- Add test case for simple path traversal validation\n\n* feat(metrics): add rollback_steps method to MetricsCollector\n\n* refactor: refactor metrics handling and evaluation logic in CASTS simulations\n\n- Updated MetricsCollector to use Optional types for match_type, parent_node, parent_step_index, edge_label, sku_id, and decision parameters.\n- Enhanced EVALUATOR documentation to clarify evaluation phases and scoring mechanisms, including coverage rewards and penalties for cache misses.\n- Modified test cases in test_execution_lifecycle.py to align with new metrics structure and added tests for simple path execution.\n- Improved test coverage in test_gremlin_step_state_machine.py and test_lifecycle_integration.py to validate state transitions and integration with Gremlin state machine.\n- Refined threshold calculation tests to ensure monotonicity and boundary conditions.\n- Added dynamic execution environment constraints in documentation to clarify step legality in relation to current state and schema.\n\n* refactor: refactor code structure for improved readability and maintainability\n\n* refactor: move CASTS into geaflow-ai operator\n\n* reafactor: refactor type hints across multiple modules to use built-in generic types\n\n* refactor: update type hints for GremlinState and PathEvaluator for improved clarity\n\n* refactor: update imports to use StrategyCache from strategy_cache module\n\n* refactor: update module documentation to improve clarity and consistency\n\n* fix the comments\n\n* refactor: remove unnecessary blank lines in embedding.py and add a blank line in visualizer.py for consistency\n\n* fix: remove --frozen flag from uv sync commands in README and CI workflow"
    },
    {
      "commit": "38dabca238cff216893999eb95ecd53ba9457199",
      "tree": "0d0e47b3ec7ef2345e119bd3d7f38e9ea6752962",
      "parents": [
        "72be83ba3d035e93478cd85bb34526071789a125"
      ],
      "author": {
        "name": "Weichen Zhao",
        "email": "61238101+SeasonPilot@users.noreply.github.com",
        "time": "Thu Feb 05 17:05:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 17:05:59 2026 +0800"
      },
      "message": "feat: implement ISO-GQL SAME predicate for element identity compariso… (#692)\n\n* feat: implement ISO-GQL SAME predicate for element identity comparison (#368)\n\nImplement the ISO-GQL SAME predicate function to check if graph elements\nrefer to the same entity by comparing their identities. This feature adds\nfull ISO/IEC 39075:2024 Section 19.12 compliance for identity comparisons.\n\nChanges:\n- Parser Layer:\n  * Add SqlSameCall AST node for SAME function calls\n  * Add SqlSameOperator with BOOLEAN return type and VARIADIC operands\n  * Register operator in BuildInSqlOperatorTable\n  * Add syntax tests with 4 GQL test cases\n\n- Runtime Layer:\n  * Implement GeaFlowBuiltinFunctions.same() for identity comparison\n    - Vertex comparison: compares vertex IDs using Objects.equals()\n    - Edge comparison: compares both source and target IDs\n    - Null handling: returns null following SQL ternary logic\n    - Type safety: returns false for mismatched types\n  * Add BuildInExpression.SAME constant for expression translation\n  * Register SAME in ExpressionTranslator.processOtherTrans()\n\n- Testing:\n  * Add comprehensive SameTest with 13 unit tests (100% pass rate)\n  * Test coverage: identical/different IDs, null handling, mixed types,\n    string IDs, invalid types\n\nImplementation follows Approach 1 (Built-in Function Pattern) with\nminimal code changes (441 lines added across 9 files) for maximum\nsimplicity and maintainability.\n\nExample usage:\n  MATCH (a)-\u003e(b)-\u003e(c) WHERE SAME(a, c) RETURN a, b, c;\n\n* fix(dsl): resolve ISO-GQL SAME predicate code review issues\n\n- Fix SqlSameCall immutable operands list causing setOperand() failure\n- Add type-specific same() overloads for RowVertex and RowEdge\n- Add varargs same(Object...) for multi-element comparisons\n- Add comprehensive unit tests for all same() overloads"
    },
    {
      "commit": "72be83ba3d035e93478cd85bb34526071789a125",
      "tree": "70706e9be0d027b3fd8f3efd2255c65a3f991e34",
      "parents": [
        "ee4a0c52a4f8725ba52af308a63763fc1ab94d07"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Wed Jan 28 10:04:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 28 10:04:12 2026 +0800"
      },
      "message": "feat(ai): support graph consolidate algorithm (#729)\n\n* init dcp code\n\n* add lucene search\n\n* add prompt formatter\n\n* add test case\n\n* handle ldbc id conflict\n\n* support llm\n\n* support embedding index store\n\n* add embedding op\n\n* refine test case\n\n* delete test data\n\n* add MockChatRobot\n\n* fix checkstyle\n\n* fix pom\n\n* fix finishReason\n\n* fix ci tests\n\n* fix ci tests\n\n* fix comments\n\n* fix codestyle\n\n* support mutable graph\n\n* Add ConsolidateFunction\n\n* Add geaflow memory server\n\n* Add GeaFlowMemoryClientCLI\n\n* fix comment\n\n* refine code\n\n* replay commit\n\n* add consolidate server"
    },
    {
      "commit": "ee4a0c52a4f8725ba52af308a63763fc1ab94d07",
      "tree": "ef0794837d5d50ddfc62795df8cab3d30cae122c",
      "parents": [
        "019da958d780b942d2e348ed1eb06160f374a571"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Wed Jan 21 15:16:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 21 15:16:58 2026 +0800"
      },
      "message": "feat(ai): Adding Lucene \u0026 Embedding-Based Search Operators to Apache GeaFlow (incubating) for Lightweight Context Memory (#716)\n\n* init dcp code\n\n* add lucene search\n\n* add prompt formatter\n\n* add test case\n\n* handle ldbc id conflict\n\n* support llm\n\n* support embedding index store\n\n* add embedding op\n\n* refine test case\n\n* delete test data\n\n* add MockChatRobot\n\n* fix checkstyle\n\n* fix pom\n\n* fix finishReason\n\n* fix ci tests\n\n* fix ci tests\n\n* fix comments\n\n* fix codestyle\n\n* support mutable graph\n\n* fix comments"
    },
    {
      "commit": "019da958d780b942d2e348ed1eb06160f374a571",
      "tree": "b9d97d693b1c07fe2d7a8ea09759de2c64284aa8",
      "parents": [
        "f891ede132df65026ff71aa43f83a12dcfdbecdd"
      ],
      "author": {
        "name": "Wang Rui",
        "email": "55612496+wr-web@users.noreply.github.com",
        "time": "Wed Jan 21 15:16:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 21 15:16:01 2026 +0800"
      },
      "message": "Fix memory management in mmap_ipc.cpp (#725)\n\nRemove unnecessary Py_DECREF call for marker."
    },
    {
      "commit": "f891ede132df65026ff71aa43f83a12dcfdbecdd",
      "tree": "3bdeb0fc5cd86b4306053400ce71b1ffb1dec7a3",
      "parents": [
        "45b19695464ac1f7fecaf99a4281409320513e99"
      ],
      "author": {
        "name": "Weichen Zhao",
        "email": "61238101+SeasonPilot@users.noreply.github.com",
        "time": "Tue Jan 06 13:41:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 06 13:41:47 2026 +0800"
      },
      "message": "feat: add ISO-GQL PROPERTY_EXISTS predicate (#359) (#702)\n\n* feat: add ISO-GQL PROPERTY_EXISTS predicate (#359)\n\nImplement PROPERTY_EXISTS function according to ISO-GQL Section 19.13.\n\nFeatures:\n- ISO-GQL compliant PROPERTY_EXISTS predicate\n- Three-valued logic support (True/False/NULL)\n- Support for vertices, edges, and rows\n- Comprehensive unit tests and SQL test cases\n\nImplementation:\n- Add PropertyExists UDF class\n- Register function in BuildInSqlFunctionTable\n- Add PropertyExistsTest with 5 test cases (100% pass)\n- Add 3 SQL integration test cases\n\nTesting:\n- Unit tests: 5/5 passed\n- Checkstyle: 0 violations\n- Build: SUCCESS\n\nCloses #359\n\n* refactor: enhance PROPERTY_EXISTS with utility layer and validation (#359)\n\nRefactor PROPERTY_EXISTS to follow GeaFlow\u0027s established ISO-GQL predicate\npattern by introducing PropertyExistsFunctions utility class.\n\nThis aligns PropertyExists with IsSourceOf/IsDestinationOf implementation\nand addresses technical debt from the initial implementation.\n\n**Architecture Improvements:**\n- Add PropertyExistsFunctions utility class (three-layer pattern)\n  * UDF → Utility → Business Logic\n- Delegate all eval() methods to utility class\n- Implement type validation with IllegalArgumentException\n- Add property name validation (null/empty checks)\n- Maintain ISO-GQL three-valued logic (NULL → null)\n\n**Error Handling:**\n- Invalid element type → clear error messages with type info\n- NULL/empty property name → descriptive error messages\n- Consistent with SourceDestinationFunctions error handling\n\n**Testing:**\n- Expand from 4 to 13 tests (+225% coverage)\n- Add 9 error handling tests:\n  * Invalid element types (String, Integer)\n  * NULL/empty/whitespace property names\n  * Error message validation\n  * Type-specific overload testing\n- All 13/13 tests pass\n\n**Code Quality:**\n- Checkstyle: 0 violations\n- Comprehensive Javadoc with ISO-GQL Section 19.13 reference\n- Design decision documentation\n- Implementation notes for Row interface limitations\n\n**Implementation Strategy:**\n- Runtime validation follows compile-time checking approach\n- Row interface indexed access documented\n- Future runtime schema validation options identified\n\n**Files:**\n- NEW: PropertyExistsFunctions.java (137 lines)\n- MOD: PropertyExists.java (refactored to delegation)\n- MOD: PropertyExistsTest.java (comprehensive tests)\n\n**Build Status:**\n- Tests: 13 run, 0 failures, 0 errors\n- Checkstyle: PASS\n- Build: SUCCESS"
    },
    {
      "commit": "45b19695464ac1f7fecaf99a4281409320513e99",
      "tree": "e537e9e3c24c51f170afb98ed2d6471339b45f98",
      "parents": [
        "b3b4c5073392c52eb0ed5877d9a75fbbed406368"
      ],
      "author": {
        "name": "Haodong Tang",
        "email": "tanghaodong25@gmail.com",
        "time": "Wed Dec 31 15:31:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 31 15:31:29 2025 +0800"
      },
      "message": "feat: support vector store. (#637)\n\nCo-authored-by: haodong.thd \u003chaodong.thd@antgroup.com\u003e"
    },
    {
      "commit": "b3b4c5073392c52eb0ed5877d9a75fbbed406368",
      "tree": "437d7c41588d422031d5c822b02ecd8974cad312",
      "parents": [
        "2a0fd8e67a28d718841026c8a08a14e9a3b6e03e"
      ],
      "author": {
        "name": "yazong",
        "email": "llyweb_aliyun@llyweb.com",
        "time": "Fri Dec 26 09:40:34 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 26 09:40:34 2025 +0800"
      },
      "message": "[ISSUE701]Use classifier (#720)\n\nCo-authored-by: liliya \u003clly_testfox@foxmail.com\u003e"
    },
    {
      "commit": "2a0fd8e67a28d718841026c8a08a14e9a3b6e03e",
      "tree": "1f602824213c39cd8d27b1ba70c5de5f7e9e7be3",
      "parents": [
        "ac9656beb185f88d1dc20ea0809785a89a3d7bff"
      ],
      "author": {
        "name": "Tengting Xu",
        "email": "xtt@apache.org",
        "time": "Tue Dec 23 14:33:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 23 14:33:07 2025 +0800"
      },
      "message": "[Optimize] hard-coded optimize about cluster-constants/magic num/temp… (#674)\n\n* [Optimize] hard-coded optimize about cluster-constants/magic num/template/hex array\n\n* fix comments and add test cases\n\n* minor fix\n\n* fix comment 2\n\n* fix comments 3"
    },
    {
      "commit": "ac9656beb185f88d1dc20ea0809785a89a3d7bff",
      "tree": "3e830332feb58ad0f20af59e32c3f89071283738",
      "parents": [
        "c7130acd36aa53d08f4d648488d76523dd58fab7"
      ],
      "author": {
        "name": "accevolve",
        "email": "54697743+accevolve@users.noreply.github.com",
        "time": "Tue Dec 23 14:16:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 23 14:16:10 2025 +0800"
      },
      "message": "docs: update source download url (#721)\n\nCo-authored-by: 泽震 \u003ccll454911@antgroup.com\u003e"
    },
    {
      "commit": "c7130acd36aa53d08f4d648488d76523dd58fab7",
      "tree": "f01fa051bf07bd6d1fb8526a73e58bb333b4f4fb",
      "parents": [
        "185f1a36b91148f298adc8b22e72aa5355b25c8b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Dec 18 11:33:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 18 11:33:07 2025 +0800"
      },
      "message": "chore(deps): bump at.yawk.lz4:lz4-java from 1.9.0 to 1.10.1 in /geaflow (#715)\n\nBumps [at.yawk.lz4:lz4-java](https://github.com/yawkat/lz4-java) from 1.9.0 to 1.10.1.\n- [Release notes](https://github.com/yawkat/lz4-java/releases)\n- [Changelog](https://github.com/yawkat/lz4-java/blob/main/CHANGES.md)\n- [Commits](https://github.com/yawkat/lz4-java/compare/v1.9.0...v1.10.1)\n\n---\nupdated-dependencies:\n- dependency-name: at.yawk.lz4:lz4-java\n  dependency-version: 1.10.1\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "185f1a36b91148f298adc8b22e72aa5355b25c8b",
      "tree": "91deebad2cfcfe05163c033b46486027347c3001",
      "parents": [
        "18b0055c3bdc9824f8f67a8742f87328858e3f36"
      ],
      "author": {
        "name": "Qingwen Zhao",
        "email": "qingwen220@gmail.com",
        "time": "Tue Dec 16 22:59:37 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 16 22:59:37 2025 +0800"
      },
      "message": "Upgrade lz4 version to 1.9.0 (#714)\n\n* upgrade lz4 version to 1.8.1\n\n* fix update\n\n* update"
    },
    {
      "commit": "18b0055c3bdc9824f8f67a8742f87328858e3f36",
      "tree": "750686a1af1df5ec01f304909c6124820a255a24",
      "parents": [
        "13618a5c30ad6be1ca0cea003203d46d3791aa20"
      ],
      "author": {
        "name": "Loognqiang",
        "email": "zqlongqiang@gmail.com",
        "time": "Mon Dec 15 21:06:33 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 15 21:06:33 2025 +0800"
      },
      "message": "cherry pick release 0.7.0 fix and upgrade version to 0.8.0-SNAPSHOT (#712)\n\n* Prepare release 0.7.0\n\n* Update distributionManagement to correct staging repo\n\n* fix(incubator): add NOTICE, DISCLAIMER, fix license headers , fix naming\n\n* fix(incubator): update version, fix naming\n\n* fix(incubator): add license headers for tpl/js/ts file, fix LICENSE/NOTICE files, fix other issues\n\n* fix(incubator): Fix LICENSE/NOTICE and add proper headers to derived files\n\n* fix(incubator): Fix LICENSE/NOTICE and headers to derived files\n\n* fix(incubator): remove useless LEGAL.md file\n\n* upgrapde new version to 0.8.0-SNAPSHOT\n\n* to #712, address comments\n\n---------\n\nCo-authored-by: loogn zhou \u003cloogn@apache.org\u003e"
    },
    {
      "commit": "13618a5c30ad6be1ca0cea003203d46d3791aa20",
      "tree": "21337076826ef3de297f2799edee83e84b66cec0",
      "parents": [
        "3c7c814bb3c9ff953f4f41e67eb8ec92b5e8c246"
      ],
      "author": {
        "name": "shown",
        "email": "jishiwen.jsw@digital-engine.com",
        "time": "Tue Dec 02 19:51:52 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 02 19:51:52 2025 +0800"
      },
      "message": "feat: add neo4j and es connector (#653)\n\n* t# This is a combination of 2 commits.\n\nfeat: add neo4j connector\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n* fix: adapter jdk 8\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n* feat: update by comment\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n* fix: fix checkstyle errror\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n* fix\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n---------\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e"
    },
    {
      "commit": "3c7c814bb3c9ff953f4f41e67eb8ec92b5e8c246",
      "tree": "3194c18aa4e917c310ec543c9fe35d474e27ff0c",
      "parents": [
        "4ea648fee0e7d8e91bc0d9f78407cb50a482ea78"
      ],
      "author": {
        "name": "moses",
        "email": "72908278+ChaomingZhangCN@users.noreply.github.com",
        "time": "Tue Dec 02 19:46:21 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 02 19:46:21 2025 +0800"
      },
      "message": "feat: Write data into ODPS with dynamic partiiton (#666)\n\n* feat: Write data into ODPS with dynamic partiiton\n\n* fix partition extractor\n\n* address\n\n* minor fix\n\n* get table schema\n\n* minor fix"
    },
    {
      "commit": "4ea648fee0e7d8e91bc0d9f78407cb50a482ea78",
      "tree": "841e88451543a49ec98fa1c3d60b0bd4ef928a3b",
      "parents": [
        "ab533347f63e68babe3ecb939faacb0ee75f5e35"
      ],
      "author": {
        "name": "SeasonPilot",
        "email": "61238101+SeasonPilot@users.noreply.github.com",
        "time": "Tue Dec 02 09:35:10 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 02 09:35:10 2025 +0800"
      },
      "message": "feat(dsl): 实现ISO-GQL源/目标谓词函数 (#675)\n\n- 新增SourceDestinationFunctions工具类，实现ISO-GQL标准的源/目标谓词逻辑\n- 添加四个新的UDF函数：IsSourceOf、IsNotSourceOf、IsDestinationOf、IsNotDestinationOf\n- 在BuildInSqlFunctionTable中注册新的源/目标谓词函数\n- 实现完整的三值逻辑处理，包括空值和无向边情况- 添加五个测试用例验证源/目标谓词的正确性- 提供详细的JavaDoc说明和ISO-GQL规则实现注释"
    },
    {
      "commit": "ab533347f63e68babe3ecb939faacb0ee75f5e35",
      "tree": "b3309abd19861096e15f9b930d4fcf5b05492bc3",
      "parents": [
        "8a42ff39991e1eb02663e23be8304e76cdf82b1d"
      ],
      "author": {
        "name": "moses",
        "email": "72908278+ChaomingZhangCN@users.noreply.github.com",
        "time": "Tue Dec 02 09:32:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 02 09:32:26 2025 +0800"
      },
      "message": "feat: Implements lpa and cc algorithm (#670)\n\n* feat: Implements lpa and cc algorithm\n\n* fix\n\n* fix cc\n\n* clarify parameter name\n\n* improve cc"
    },
    {
      "commit": "8a42ff39991e1eb02663e23be8304e76cdf82b1d",
      "tree": "077e07046dfd0c9a257123ac60024cef0f0049c3",
      "parents": [
        "d1167757b6f053b953994f9e6f993ea8994600ea"
      ],
      "author": {
        "name": "明城",
        "email": "mingcheng@apache.org",
        "time": "Thu Nov 27 16:35:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 27 16:35:29 2025 +0800"
      },
      "message": "docs: update README with contact and star sections (#684)\n\n- Add DingTalk group details for user support\n- Include call to star the project on GitHub\n- Add acknowledgments section in Chinese README\n- Expand mailing list subscription information\n\nSigned-off-by: mingcheng \u003cmingcheng@apache.org\u003e"
    },
    {
      "commit": "d1167757b6f053b953994f9e6f993ea8994600ea",
      "tree": "375182d489a2fe22e35cca6cad17a92ee0f312a6",
      "parents": [
        "69e14de224361ddc585fd0626d20f60a54e1cdeb"
      ],
      "author": {
        "name": "vamossagar12",
        "email": "sagarmeansocean@gmail.com",
        "time": "Thu Nov 27 14:03:59 2025 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 27 16:33:59 2025 +0800"
      },
      "message": "Minor: Add try-with-resources block around ProcessLoggerManager (#687)\n\n"
    },
    {
      "commit": "69e14de224361ddc585fd0626d20f60a54e1cdeb",
      "tree": "88f5091a628b498c27c7fbf15b19986fe8be339e",
      "parents": [
        "3f7b695c851f4962e6a0aa6d37be3b46eeff781d"
      ],
      "author": {
        "name": "moses",
        "email": "72908278+ChaomingZhangCN@users.noreply.github.com",
        "time": "Wed Nov 26 19:06:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 26 19:06:38 2025 +0800"
      },
      "message": "feat: Paimon stream source. (#662)\n\n* feat: Paimon stream source.\n\n* add lisences\n\n* check style\n\n* check style\n\n* minor fix\n\n* fix list partitions\n\n* throws exception\n\n* fix tests"
    },
    {
      "commit": "3f7b695c851f4962e6a0aa6d37be3b46eeff781d",
      "tree": "6e10eaeb4fb2f408fd7deaf9765b01a3e59dcd15",
      "parents": [
        "5c892852b720f22cd79739b4efb87e14c269e1fe"
      ],
      "author": {
        "name": "kitalkuyo-gita",
        "email": "windwheel@sina.cn",
        "time": "Thu Nov 20 11:16:09 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 20 11:16:09 2025 +0800"
      },
      "message": "feat: support cluster coefficient (#640)\n\n* chore: support coefficient\n\n* refactor: enhance logic \u0026\u0026 add tests"
    },
    {
      "commit": "5c892852b720f22cd79739b4efb87e14c269e1fe",
      "tree": "72048d20b3bb3c2aa70154fb820fdb111dee0fc1",
      "parents": [
        "7a3d5bb9eed0c66655a19e6d9c302b90a0c689b2"
      ],
      "author": {
        "name": "shown",
        "email": "jishiwen.jsw@digital-engine.com",
        "time": "Thu Nov 20 11:05:57 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 20 11:05:57 2025 +0800"
      },
      "message": "dev: standardize editor configs for cross-platform development (#648)\n\n* dev: standardize editor configs for cross-platform development\n\nSigned-off-by: yuluo-yx \u003cyuluo08290126@gmail.com\u003e\n\n* Update .gitattributes\n\n* Update .gitattributes\n\n---------\n\nSigned-off-by: yuluo-yx \u003cyuluo08290126@gmail.com\u003e"
    },
    {
      "commit": "7a3d5bb9eed0c66655a19e6d9c302b90a0c689b2",
      "tree": "ab29bffe254e6841b234df36e667198d7ff97f2a",
      "parents": [
        "531dbbba30065fb3c0f3e14b0ed9631bffa1552b"
      ],
      "author": {
        "name": "kitalkuyo-gita",
        "email": "windwheel@sina.cn",
        "time": "Tue Nov 18 15:32:53 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 18 15:32:53 2025 +0800"
      },
      "message": "feat: add jaccard similarity (#650)\n\n* feat: add jaccard similarity\n\n* fix: tests\n\n* remove useless files\n\n* add build in register function\n\n* bugfix: fix tests\n\n* chore: fix checkstyle\n\n* refactor: simple logic\n\n* bugfix: fix dataset\n\n* bugfix: exclude cycle\n\n* bufix: excclude cycle\n\n* refactor: designate one to calculate the final similarity\n\n* optimize: replace memory relationship to id\n\n* refactor: messge type divide\n\n* bugfix: add random seed\n\n* bugfix: fix windows\n\n* chore: optimize import\n\n* fix checkstyle\n\n---------\n\nCo-authored-by: undertaker86001 \u003cwindwheel555@outlook.com\u003e"
    },
    {
      "commit": "531dbbba30065fb3c0f3e14b0ed9631bffa1552b",
      "tree": "1678049533a5574c806a1ca8252b68226bdfa491",
      "parents": [
        "bec40e0757a976cf1643f34a4d66490237cb37f6"
      ],
      "author": {
        "name": "shown",
        "email": "jishiwen.jsw@digital-engine.com",
        "time": "Fri Nov 14 13:45:12 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 14 13:45:12 2025 +0800"
      },
      "message": "chore: delete unnecessary files (#647)\n\nSigned-off-by: yuluo-yx \u003cyuluo08290126@gmail.com\u003e"
    },
    {
      "commit": "bec40e0757a976cf1643f34a4d66490237cb37f6",
      "tree": "5d932cde5569aecc4f0939a172375a9e59d468aa",
      "parents": [
        "851b39ee28f8dafc26427108421dc5b4d4c269f5"
      ],
      "author": {
        "name": "shown",
        "email": "jishiwen.jsw@digital-engine.com",
        "time": "Fri Nov 14 13:41:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 14 13:41:58 2025 +0800"
      },
      "message": "chore: deleting useless methods \u0026 translated into Chinese (#667)\n\n* chore: deleting useless methods \u0026 translated into Chinese\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n* fix: remove useless import\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e\n\n---------\n\nSigned-off-by: jishiwen.jsw \u003cjishiwen.jsw@digital-engine.com\u003e"
    },
    {
      "commit": "851b39ee28f8dafc26427108421dc5b4d4c269f5",
      "tree": "ce2f873698d1aa8c7900d37984cc9c961795a322",
      "parents": [
        "0887a11dfd57ad76267adc98dbe3f4399561463f"
      ],
      "author": {
        "name": "chzhoo",
        "email": "czawyx@163.com",
        "time": "Wed Nov 12 19:48:59 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 12 19:48:59 2025 +0800"
      },
      "message": "fix data loss after failover (#633)\n\n"
    },
    {
      "commit": "0887a11dfd57ad76267adc98dbe3f4399561463f",
      "tree": "ecc633cd72c6d531225c57d883b82ea2b770ea11",
      "parents": [
        "81825e232790f9fab17c3f7e6dee808ea4516f4e"
      ],
      "author": {
        "name": "shown",
        "email": "jishiwen.jsw@digital-engine.com",
        "time": "Tue Nov 11 15:04:20 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Nov 11 15:04:20 2025 +0800"
      },
      "message": "infra: add GHA condition (#649)\n\nSigned-off-by: yuluo-yx \u003cyuluo08290126@gmail.com\u003e"
    },
    {
      "commit": "81825e232790f9fab17c3f7e6dee808ea4516f4e",
      "tree": "82d6a70dcde3b4c1fbe853ecd24e59075156a72a",
      "parents": [
        "e99f88338cfb9b41a1860f8f0932cf72a2bdafa0"
      ],
      "author": {
        "name": "明城",
        "email": "mingcheng@apache.org",
        "time": "Mon Nov 03 20:57:04 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 03 20:57:04 2025 +0800"
      },
      "message": "docs: Add security policy (#643)\n\n- add SECURITY.md file with vulnerability reporting guidelines\n- include email contacts for Apache Security Team and project team\n- outline required information for reports and expected response timeline\n- describe responsible disclosure practices and security update channels\n- reference additional resources like Apache Security Team website\n\nSigned-off-by: mingcheng \u003cmingcheng@apache.org\u003e"
    },
    {
      "commit": "e99f88338cfb9b41a1860f8f0932cf72a2bdafa0",
      "tree": "e840d93a82d842558f7a04e9d33d8e5725c75378",
      "parents": [
        "e83829319fc76483fe397b2a96d56ab4a1a2a3e4"
      ],
      "author": {
        "name": "明城",
        "email": "mingcheng@apache.org",
        "time": "Mon Nov 03 20:55:20 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 03 20:55:20 2025 +0800"
      },
      "message": "docs: Update governance and code of conduct for ASF compliance (#641)\n\n- add ASF Code of Conduct reference to GOVERNANCE.md\n- simplify CODE_OF_CONDUCT.md to title only for consistency as incubation project\n- ensure alignment with Apache Software Foundation standards\n\nSigned-off-by: mingcheng \u003cmingcheng@apache.org\u003e"
    },
    {
      "commit": "e83829319fc76483fe397b2a96d56ab4a1a2a3e4",
      "tree": "e9b5b05417bcc661f8d7c80ff5ec207d24ec235e",
      "parents": [
        "a7998bb53e237c1358a6c5c984ef2ad0e90855d5"
      ],
      "author": {
        "name": "hey-money",
        "email": "lzoi_qxx@163.com",
        "time": "Thu Oct 30 17:01:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 30 17:01:38 2025 +0800"
      },
      "message": "[ISSUE-630]optimize: extract vertex/edge projector rules\n\n* 更改\n\n* version 1.0 with `List` and passed `UT#001`~`UT#004`\n\n* version 1.1: `Edge` encoding is implemented\n\n* version 1.2: `RexField List` is replaced with Set()\nBug Fix: `isEmpty()` reach condition of SelectFieldPruneRule.onMatch()\n\n* version 2.0: Handle `condition` issue but failed in #006 \u0026 #012\n\n* version 3.0: Pass all tests\n\n* version 3.1: Delete `笔记` folder\n\n* version 3.2: Project fields of edges\n\n* version 3.3: Bug fix for Null `edge` reference on multiple test suites\n\n* test commit for email\n\n* v5.0: Pass all tests in geaflow.dsl.runtime\n\n* v5.1: style: format code\n\n* Resolve conversations:\n\n* Comments in English\n* Remove Rule states\n* Revert to original project files\n* Use constants as field names\n\n* Improve code readability and standards compliance:\n- Create `VertexProjectorUtil` and `EdgeProjectorUtil` class to encapsulate projection logic\n- Separate optimization rules regarding field extraction into individual files\n\n* Add unit test for prune-field plans and switch to constant value to declare special fields."
    },
    {
      "commit": "a7998bb53e237c1358a6c5c984ef2ad0e90855d5",
      "tree": "7a8f08ca7da23af6cb3f928dcbb562e9051c70cc",
      "parents": [
        "49fd5c6666e7f7e1bcd3b5c5a8e1166e816dd46c"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Tue Oct 14 09:47:42 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 14 09:47:42 2025 +0800"
      },
      "message": "Add release profile to main pom.xml (#628)\n\n* add release profile in main pom.xml\n\n* fix codestyle\n\n* minor fix pom\n\n* minor fix pom"
    },
    {
      "commit": "49fd5c6666e7f7e1bcd3b5c5a8e1166e816dd46c",
      "tree": "259231f954565c3a6dc80237cb0a1502aae74a74",
      "parents": [
        "0e58511a01beb01710d942870c489bf0a79bd2f9"
      ],
      "author": {
        "name": "Fan Tianlan",
        "email": "2510317228@qq.com",
        "time": "Mon Oct 13 10:16:52 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 13 10:16:52 2025 +0800"
      },
      "message": "feat: Optimizing Sorting Performance via Radix Sort Algorithm (#589)\n\n* Optimizing Sorting Performance via Radix Sort Algorithm\n\n* Fix style\n\n* Optimizing the efficiency of the radix sort algorithm\n\n* Max String Precision\n\n* add tests\n\n* modify pom\n\n* fix style\n\n* fix style2\n\n* fix style2\n\n* refractor equals for BinaryStringType\n\n* concurrency-safe sorting"
    },
    {
      "commit": "0e58511a01beb01710d942870c489bf0a79bd2f9",
      "tree": "1ed03ed9ca6d4e56c8aba5a58172e4dc052d6887",
      "parents": [
        "e3dfcc43bf962077e926ad0a8d6bbb41cae62c2a"
      ],
      "author": {
        "name": "kitalkuyo-gita",
        "email": "windwheel@sina.cn",
        "time": "Sat Oct 11 13:38:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 11 13:38:22 2025 +0800"
      },
      "message": "feat: Support incremental K-Core algorithm (#600)\n\n* finish k-core v1.0\n\n* fix checkstyle\n\n* add test files\n\n* fix checkstyle\n\n* fix checkstyle\n\n* translate english\n\n* rename author\n\n* fix tests\n\n* add function register\n\n* bugfix: fix function invoke\n\n* impl sendMessageToNeighbors\n\n* refactor code \u0026\u0026 fix compile error\n\n* update version\n\n* fix tests\n\n* fix tests\n\n* fix tests\n\n* refactor code\n\n* remove useless code \u0026\u0026 throw exception\n\n* refactor alg logic\n\n* refactor code\n\n* refactor code\n\n* fix tests\n\n* fix tests\n\n* fix tests\n\n* fix tests\n\n* fix tests\n\n* fix tests\n\n* fix tests\n\n* add throw exception\n\n---------\n\nCo-authored-by: undertaker86001 \u003cwindwheelorz@outlook.com\u003e"
    },
    {
      "commit": "e3dfcc43bf962077e926ad0a8d6bbb41cae62c2a",
      "tree": "fb11126e7c406a24d1f1b03c0518c3a3a2fc711c",
      "parents": [
        "5307fcb0f359915057d2b4d1426428c3cc3e4569"
      ],
      "author": {
        "name": "kitalkuyo-gita",
        "email": "windwheel@sina.cn",
        "time": "Mon Sep 29 19:07:39 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 29 19:07:39 2025 +0800"
      },
      "message": "feat: Support incremental Minimum Spanning Tree (#599)\n\n* finish mst tree\n\n* fix checkstyle\n\n* refactor code\n\n* remove useless files\n\n* add test files\n\n* fix checkstyle\n\n* fix checkstyle\n\n* translate english\n\n* rename team name\n\n* fix tests\n\n* translate english\n\n* translate english\n\n* fix checkstyle\n\n* fix checkstyle\n\n* fix tests\n\n* fix complie error\n\n* fix checkstyle\n\n* fix checkstyle\n\n* chore: support short-circuit algorithm\n\n* support itype\n\n* refactor code\n\n* fix tests\n\n* refactor code \u0026\u0026 improve performce\n\n* chore: change paramster\n\n* add register class\n\n* update seriable\n\n* fix dataset\n\n* fix dataset\n\n* fix tests\n\n* fix tests\n\n---------\n\nCo-authored-by: undertaker86001 \u003cwindwheelorz@outlook.com\u003e"
    },
    {
      "commit": "5307fcb0f359915057d2b4d1426428c3cc3e4569",
      "tree": "d8e9661b8c7bfa626f6f075b04fb81fc2beffc60",
      "parents": [
        "817bdd9306b77d83e0bf475c6dbf0f8d28494589"
      ],
      "author": {
        "name": "Qingwen Zhao",
        "email": "qingwen220@gmail.com",
        "time": "Thu Sep 25 15:11:53 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 25 15:11:53 2025 +0800"
      },
      "message": "[ISSUE-622] feat: support distributed writing with one Paimon graph store (#623)\n\n* feat: support paimon store in distributed mode\n\n* update\n\n* fix checkstyle\n\n* update\n\n* fix ut\n\n* update\n\n* disable dynamic traversal with data appending"
    },
    {
      "commit": "817bdd9306b77d83e0bf475c6dbf0f8d28494589",
      "tree": "bc9e85fdfee30de7c969f2a19fcac42f8e0b58de",
      "parents": [
        "5823e6ada624e7ce0471809378b62ef45daa7fb5"
      ],
      "author": {
        "name": "dingyi",
        "email": "50548737+dy247846795@users.noreply.github.com",
        "time": "Thu Sep 18 10:26:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 18 10:26:24 2025 +0800"
      },
      "message": "[ISSUE-620] fix: remove the directory of db after running PaimonRWHandleTest (#621)\n\n"
    },
    {
      "commit": "5823e6ada624e7ce0471809378b62ef45daa7fb5",
      "tree": "dd110ac0d697290976b53a706ebe04d6a7caa5b2",
      "parents": [
        "e065ad6d0cb4a6420dc738fa82323404d7bee5fb"
      ],
      "author": {
        "name": "Loognqiang",
        "email": "zqlongqiang@gmail.com",
        "time": "Wed Sep 17 15:04:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 17 15:04:29 2025 +0800"
      },
      "message": "Add connector tests (#624)\n\n* [ISSUE-619] move the Hive Connector unit tests to an independent module\n\n* [ISSUE-619] fix package name import order\n\n* [ISSUE-619] fix check style\n\n* [ISSUE-619] address comment"
    },
    {
      "commit": "e065ad6d0cb4a6420dc738fa82323404d7bee5fb",
      "tree": "db1328402f73e16143de3be1e3ca9b07e954f549",
      "parents": [
        "ce2ebf8aff41c96636bb80465675d62540253146"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Mon Sep 15 20:30:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 20:30:58 2025 +0800"
      },
      "message": "[GQL] Add direction(edge) UDF for GQL (#617)\n\n* add direction udf\n\n* fix import\n\n* fix checkstyle"
    },
    {
      "commit": "ce2ebf8aff41c96636bb80465675d62540253146",
      "tree": "dac0398ae5992b7a5f3763e9bf6ef9ce4f45fb09",
      "parents": [
        "017893ce838caac25c368fb905d9137bbd80bb90"
      ],
      "author": {
        "name": "Loognqiang",
        "email": "zqlongqiang@gmail.com",
        "time": "Mon Sep 15 18:03:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 15 18:03:40 2025 +0800"
      },
      "message": "Jdk11 ci support (#618)\n\n* [ISSUE-601] add jdk11 ci yml\n\n* [ISSUE-601] solve the problem of failing the timezone ut caused by timezone\n\n* [ISSUE-601] add concurrency group\n\n* [ISSUE-601] support jdk11 ci run \u0026 compatible with jdk8\n\n* [ISSUE-601] disable dsl-runtime ut run as dependency on hive connector\n\n* [ISSUE-601] break build\u0026test into two stages\n\n* [ISSUE-601] revert build\u0026test into one stage\n\n* [ISSUE-601] fix module name\n\n* [ISSUE-601] fix script\n\n* [ISSUE-601] fix script\n\n* [ISSUE-601] maven surefire version add in parent pom"
    },
    {
      "commit": "017893ce838caac25c368fb905d9137bbd80bb90",
      "tree": "187406c9a20f0e7eaeadb3bdbd7e6e14bd9f4e0d",
      "parents": [
        "66930c4d00c040794e158c80d87f3aa166cc3ab1"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Wed Sep 10 19:27:50 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 10 19:27:50 2025 +0800"
      },
      "message": "[MCP] Implement MCP local tools for demo case (#610)\n\n* add local graph mcp server\n\n* add type query tool\n\n* update mcp version\n\n* fix license\n\n* fix pom\n\n* fix pom\n\n* refine code\n\n* minor fix\n\n* fix comments\n\n* fix codestyle\n\n* fix tools prompt\n\n* minor fix\n\n* refine code\n\n* fix comment"
    },
    {
      "commit": "66930c4d00c040794e158c80d87f3aa166cc3ab1",
      "tree": "272ab4bbc929f6fbe0dbbd2421aa6b0d1002aae1",
      "parents": [
        "6526b69bbce536d4e918ec9fe6f6c32b9f05cb20"
      ],
      "author": {
        "name": "kitalkuyo-gita",
        "email": "windwheel@sina.cn",
        "time": "Tue Sep 09 21:00:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 09 21:00:11 2025 +0800"
      },
      "message": "feat: ci timeout optimize (#606)\n\n* ci timeout optimize\n\n* change memory size\n\n* translate english"
    },
    {
      "commit": "6526b69bbce536d4e918ec9fe6f6c32b9f05cb20",
      "tree": "924c37bcf49c91dac9e39d705d8adf3d01a455bc",
      "parents": [
        "c36d3623a5d44a31c4fa9253d64dc92a5a03570a"
      ],
      "author": {
        "name": "DukeWangYu",
        "email": "290740508@qq.com",
        "time": "Mon Aug 25 11:33:23 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 25 11:33:23 2025 +0800"
      },
      "message": "[ISSUE-592] feat: Add a Streaming Source for Hiveadd stream hive reader (#594)\n\n* add stream hive reader\n\n* add licenses to test case\n\n* refine codes after review"
    },
    {
      "commit": "c36d3623a5d44a31c4fa9253d64dc92a5a03570a",
      "tree": "782d21a507c70ed16feadbf262d6b58c6b77e899",
      "parents": [
        "e7a53a10901b247c4152ceaeaf26795c1dc19c72"
      ],
      "author": {
        "name": "chzhoo",
        "email": "czawyx@163.com",
        "time": "Thu Aug 14 16:44:41 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 14 16:44:41 2025 +0800"
      },
      "message": "Fix callback issue when task done (#587)\n\n"
    },
    {
      "commit": "e7a53a10901b247c4152ceaeaf26795c1dc19c72",
      "tree": "96433ab3112c262f7f04ba8713fd1223050f14e6",
      "parents": [
        "53766ddda61683c6501e7c7068f1daf91cfba370"
      ],
      "author": {
        "name": "明城",
        "email": "mingcheng@apache.org",
        "time": "Tue Aug 12 20:08:03 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 20:08:03 2025 +0800"
      },
      "message": "docs: streamline contributing and roles documentation 📚 (#588)\n\n- Simplify CONTRIBUTING.md with concise steps and prerequisites\n- Restructure ROLES.md for clarity and remove redundant content\n- Update community links and resources for consistency\n\nSigned-off-by: mingcheng \u003cmingcheng@apache.org\u003e"
    },
    {
      "commit": "53766ddda61683c6501e7c7068f1daf91cfba370",
      "tree": "4b97642a339bd879f5fb3050860ab101b0b38b6a",
      "parents": [
        "baad72e56412b61e928db421c2e8a15c3e100d8d"
      ],
      "author": {
        "name": "Qingwen Zhao",
        "email": "qingwen220@gmail.com",
        "time": "Tue Aug 12 16:41:48 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 16:41:48 2025 +0800"
      },
      "message": "[ISSUE-583] feat: add paimon source connector (#584)\n\n* feat: add paimon source connector"
    },
    {
      "commit": "baad72e56412b61e928db421c2e8a15c3e100d8d",
      "tree": "39aa52a7f277e001b98386cfe92f333bd985bfc3",
      "parents": [
        "49eb2a08ba9d144ab845145f927b48da952f1458"
      ],
      "author": {
        "name": "明城",
        "email": "mingcheng@apache.org",
        "time": "Tue Aug 12 13:52:24 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 13:52:24 2025 +0800"
      },
      "message": "docs: update contributing guidelines and add governance docs 📚 (#586)\n\n- Revise CONTRIBUTING.md with detailed steps and prerequisites\n- Add MEETING.md for bi-weekly community meeting details\n- Update ROLES.md with structured role descriptions\n- Introduce GOVERNANCE.md for project governance overview\n\nSigned-off-by: mingcheng \u003cmingcheng@apache.org\u003e"
    },
    {
      "commit": "49eb2a08ba9d144ab845145f927b48da952f1458",
      "tree": "c8fcc2c8af0856aad275a46afd01f41d08a037fd",
      "parents": [
        "0a9953e9c9d790e7dd7a9cc1dfb564c988153716"
      ],
      "author": {
        "name": "Xin Wang",
        "email": "xinwang@apache.org",
        "time": "Tue Aug 12 10:15:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 12 10:15:54 2025 +0800"
      },
      "message": "Remove publishing profile from .asf.yaml (#585)\n\n"
    },
    {
      "commit": "0a9953e9c9d790e7dd7a9cc1dfb564c988153716",
      "tree": "bbb43503602b59daa8887d49eac212be0e17d748",
      "parents": [
        "f832169cf69f89f6bcf2698667109feb52aff4d3"
      ],
      "author": {
        "name": "chzhoo",
        "email": "czawyx@163.com",
        "time": "Mon Aug 11 14:08:06 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 11 14:08:06 2025 +0800"
      },
      "message": "Fix building issue on aarch64 (#580)\n\n"
    },
    {
      "commit": "f832169cf69f89f6bcf2698667109feb52aff4d3",
      "tree": "c3d2e0ece9ccbe1f89311c5514c98b510f922ed0",
      "parents": [
        "a0e0ab9fb4c19c2d986342c336b1b8c7087c39b4"
      ],
      "author": {
        "name": "Forest",
        "email": "47968887+cfsfine@users.noreply.github.com",
        "time": "Mon Aug 11 14:01:25 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 11 14:01:25 2025 +0800"
      },
      "message": "Support ASync-Write for PaimonGraphStore #577 (#578)\n\n"
    },
    {
      "commit": "a0e0ab9fb4c19c2d986342c336b1b8c7087c39b4",
      "tree": "41dadcd801ffaf49724e6011db51ab6757a9ab3c",
      "parents": [
        "562037c03e03847431b3769bc9be6d6780abfa8e"
      ],
      "author": {
        "name": "Yaya",
        "email": "xiaxiaoya.xxy@antgroup.com",
        "time": "Mon Aug 04 10:59:33 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 04 10:59:33 2025 +0800"
      },
      "message": "chore: update headline description about Apache GeaFlow (#573)\n\n"
    },
    {
      "commit": "562037c03e03847431b3769bc9be6d6780abfa8e",
      "tree": "310bc23ec6216fa1ed5357d924ef3680d5b2a107",
      "parents": [
        "f98371ed401494703bfaf896f58abea9fba9a172"
      ],
      "author": {
        "name": "yaozhongq",
        "email": "135590979+yaozhongq@users.noreply.github.com",
        "time": "Fri Aug 01 16:48:11 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 01 16:48:11 2025 +0800"
      },
      "message": "[ISSUE-563] refactor: Update filter instantiation method and optimize edge query \n\n* refactor: Update filter instantiation method and optimize edge query interface\n\n* fix: code conflict"
    },
    {
      "commit": "f98371ed401494703bfaf896f58abea9fba9a172",
      "tree": "2930007f5008cc8b1a6778bc4e36a6e863f69bdd",
      "parents": [
        "d6cfa8992776628932b12eecbb64f1c088c4a5dd"
      ],
      "author": {
        "name": "Loognqiang",
        "email": "zqlongqiang@gmail.com",
        "time": "Thu Jul 31 15:03:29 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 31 15:03:29 2025 +0800"
      },
      "message": "[ISSUE-569] fix package path error and doc deploy failed (#570)\n\n* [ISSUE-569] fix package path error and doc deploy failed\n\n* [ISSUE-569] revert template fix because other pr has already been merged"
    },
    {
      "commit": "d6cfa8992776628932b12eecbb64f1c088c4a5dd",
      "tree": "84b9bc40b58c86c925e960db1fc61c1815a6740e",
      "parents": [
        "c7171d3e697cb3592bb5d6ce6a1f264e095e2bfa"
      ],
      "author": {
        "name": "chzhoo",
        "email": "czawyx@163.com",
        "time": "Thu Jul 31 12:40:00 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 31 12:40:00 2025 +0800"
      },
      "message": "Fix invalid Filter.template issue (#571)\n\n"
    },
    {
      "commit": "c7171d3e697cb3592bb5d6ce6a1f264e095e2bfa",
      "tree": "55fbdcd34a4b3a74ea71199de000a58d2bd57a5f",
      "parents": [
        "3ddaa5a3987415383e69ddb02f58318dbf337c19"
      ],
      "author": {
        "name": "Xin Wang",
        "email": "best.wangxin@163.com",
        "time": "Wed Jul 30 19:24:19 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 30 19:24:19 2025 +0800"
      },
      "message": "[asf] Add .asf.yaml configuration file (#568)\n\n"
    },
    {
      "commit": "3ddaa5a3987415383e69ddb02f58318dbf337c19",
      "tree": "7dbc3606ad23a96d2eb0025bc4f53debc52ebe46",
      "parents": [
        "b94d58eaa4cfface9ae2c313b215b26f24c8f6e4"
      ],
      "author": {
        "name": "Yaya",
        "email": "xiaxiaoya.xxy@antgroup.com",
        "time": "Wed Jul 30 16:47:26 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 30 16:47:26 2025 +0800"
      },
      "message": "fix: change the contact email to dev@geaflow.apache.org (#567)\n\n"
    },
    {
      "commit": "b94d58eaa4cfface9ae2c313b215b26f24c8f6e4",
      "tree": "b0edaa697d37b0bdb1b78ae0f0bb4b261198b276",
      "parents": [
        "a29f9180fb0eda941867486d3b56486ee3f9023a"
      ],
      "author": {
        "name": "Florian",
        "email": "florianfan@apache.org",
        "time": "Wed Jul 30 16:10:51 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 30 16:10:51 2025 +0800"
      },
      "message": "chore: update discord contact info (#566)\n\n"
    },
    {
      "commit": "a29f9180fb0eda941867486d3b56486ee3f9023a",
      "tree": "cf187dbe81e698d3b56e3048b5b2fd2f1db96167",
      "parents": [
        "9f60315eec3a9af58dac9ebc9b6726a8bd7f5934"
      ],
      "author": {
        "name": "yaozhongq",
        "email": "135590979+yaozhongq@users.noreply.github.com",
        "time": "Tue Jul 29 15:26:02 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 29 15:26:02 2025 +0800"
      },
      "message": "[ISSUE-562] docs: Remove outdated blog posts and configuration files, and update the project name and links. (#561)\n\n* docs: refactor\n\n* docs: Updated contact information and project links in the README\n\n* docs: Update project links and contact details"
    },
    {
      "commit": "9f60315eec3a9af58dac9ebc9b6726a8bd7f5934",
      "tree": "ab71aa656730e6fb947fee2faab1f3190ac5a082",
      "parents": [
        "1c4c1d6d4b9525c6a5111815394cf8972c25aa83"
      ],
      "author": {
        "name": "Congbin Qiao",
        "email": "qiaocongbin@gmail.com",
        "time": "Thu Jul 24 12:39:22 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 24 12:39:22 2025 +0800"
      },
      "message": "[ISSUE-557] Rename group id to org.apache.geaflow (#558)\n\n* [ISSUE-557] Rename group id to org.apache.geaflow\n\n* update project version\n\n* update\n\n* fix mass logs in ci test\n\n* fix resource file rename error"
    },
    {
      "commit": "1c4c1d6d4b9525c6a5111815394cf8972c25aa83",
      "tree": "47d83f1b047d77cfc1089d1a4fbb63b75337b00a",
      "parents": [
        "ffba882a642b78f272639a9726bf6606ed2412e0"
      ],
      "author": {
        "name": "dingyi",
        "email": "50548737+dy247846795@users.noreply.github.com",
        "time": "Wed Jul 16 15:23:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 16 15:23:54 2025 +0800"
      },
      "message": "[ISSUE-553] Support dynamic graph APIs in Paimon store. (#554)\n\n"
    },
    {
      "commit": "ffba882a642b78f272639a9726bf6606ed2412e0",
      "tree": "f6a3827b5ef66e54ff77a5d7e3abd0b4f574568c",
      "parents": [
        "64ab8dbb5ee3d4aea9713eb6d0b4d3a344902ed5"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Tue Jul 15 19:24:44 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 15 19:24:44 2025 +0800"
      },
      "message": "Add random table source (#550)\n\n* Add random table source\n\n* minor fix"
    },
    {
      "commit": "64ab8dbb5ee3d4aea9713eb6d0b4d3a344902ed5",
      "tree": "13b62d3ac22d924c0965ee045377109574b1040d",
      "parents": [
        "415f00bd28637c207149f7be85fb91063a6d4da0"
      ],
      "author": {
        "name": "huhao0926",
        "email": "hao0926.hu@huolala.cn",
        "time": "Tue Jul 15 11:49:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 15 11:49:14 2025 +0800"
      },
      "message": "fix(shuffle): prevent NPE in SpillablePipelineSlice.hasNext() during concurrent release (#552)\n\n1. Remove buffers\u003dnull in SpillablePipelineSlice.release()"
    },
    {
      "commit": "415f00bd28637c207149f7be85fb91063a6d4da0",
      "tree": "000215cabd08c72f9bd316677f69fe64370ea3a0",
      "parents": [
        "23f981dce562368708c4dc04f5184c63bae7c33e"
      ],
      "author": {
        "name": "huhao0926",
        "email": "hao0926.hu@huolala.cn",
        "time": "Thu Jul 10 16:52:47 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 10 16:52:47 2025 +0800"
      },
      "message": "[Cluster] Fix BRPC endpoint conflict in local multi-container deployment (#548)\n\n* [Cluster] Fix BRPC endpoint conflict in local multi-container deployment (#547)\n\n* Fix BRPC endpoint registration conflict when launching multiple containers in local mode\n* Add geaflow.executor.thread.max.multiple configuration for thread pool scaling\n\n* [Cluster] Make DEFAULT_MAX_MULTIPLE private\n\n* [Cluster] Fix Checkstyle violations in Javadoc comments\n\n* [Cluster] Fix remove unused import"
    },
    {
      "commit": "23f981dce562368708c4dc04f5184c63bae7c33e",
      "tree": "ed25d2deec8cb9756fa95f90be238c1ebe94aefc",
      "parents": [
        "fae74b3feacd94a0343beee73c52556ffbbaaa5c"
      ],
      "author": {
        "name": "Loognqiang",
        "email": "zqlongqiang@gmail.com",
        "time": "Fri Jul 04 15:44:23 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 04 15:44:23 2025 +0800"
      },
      "message": "support geaflow mcp server and provide basic query service (#545)\n\n"
    },
    {
      "commit": "fae74b3feacd94a0343beee73c52556ffbbaaa5c",
      "tree": "199c396fac59a41f0c3a0e81b49f51785882d453",
      "parents": [
        "d4e8bd2146b0d8d68c21c393b45422575fa1a719"
      ],
      "author": {
        "name": "huhao0926",
        "email": "huhao0926@outlook.com",
        "time": "Wed Jul 02 09:55:17 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 02 09:55:17 2025 +0800"
      },
      "message": "[Runtime] Fix checkpoint causing empty results in PipelineServiceExecutorContext (#543) (#544)\n\n* fix checkpoint causing empty results in interactive query\n* skip checkpoint when context is PipelineServiceExecutorContext"
    },
    {
      "commit": "d4e8bd2146b0d8d68c21c393b45422575fa1a719",
      "tree": "172eb870ca1f0c33bf1c5f620fcaa7d800558601",
      "parents": [
        "190810039f8f98c6c5acd228009d495f05b1c3d8"
      ],
      "author": {
        "name": "Qi Zhang",
        "email": "48751722+QiZhang1997@users.noreply.github.com",
        "time": "Sat Jun 14 14:25:35 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 14 14:25:35 2025 +0800"
      },
      "message": "add array function (#539)\n\n"
    },
    {
      "commit": "190810039f8f98c6c5acd228009d495f05b1c3d8",
      "tree": "2e20b1494cf6499b09878d4173291e74ee610ba8",
      "parents": [
        "6351ac7357d47f715139972842376a4d0bbc9190"
      ],
      "author": {
        "name": "dukewy123",
        "email": "135831500+dukewy123@users.noreply.github.com",
        "time": "Fri Jun 13 21:05:54 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 13 21:05:54 2025 +0800"
      },
      "message": "[DSL] Support UDF json get object (#536)\n\n* dsl support json get\n\n* PullRequest: 927 add udf get json object, refine code style\n\nMerge branch dev_ky_opensource_json_get of git@code.alipay.com:AntGraph/GeaFlow.git into dev_opensource\nhttps://code.alipay.com/AntGraph/GeaFlow/pull_requests/927?tab\u003ddiff\n\nReviewed-by: 知尘 \u003czhichen.zq@antgroup.com\u003e\n\n\n* add udf get json object, refine code style\n* change import test\n\n---------\n\nCo-authored-by: 坤羽 \u003cky.wy@antgroup.com\u003e"
    },
    {
      "commit": "6351ac7357d47f715139972842376a4d0bbc9190",
      "tree": "10e61bca995380a45441d5700c42638f60ad6606",
      "parents": [
        "a9a891afb10005540cfb00785fa416f8572e1d53"
      ],
      "author": {
        "name": "Florian",
        "email": "fanzhidongyzby@gmail.com",
        "time": "Fri Jun 06 17:00:07 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 06 17:00:07 2025 +0800"
      },
      "message": "chore: update contacts (#537)\n\n"
    },
    {
      "commit": "a9a891afb10005540cfb00785fa416f8572e1d53",
      "tree": "bad3227a16e6010b3029a36c72812e38c1e4f05f",
      "parents": [
        "fd806ece6e7b42fbb6d327a3578726893f812bb1"
      ],
      "author": {
        "name": "Leomrlin",
        "email": "1229394985@qq.com",
        "time": "Thu Jun 05 14:36:32 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 05 14:36:32 2025 +0800"
      },
      "message": "Support percentile (#534)\n\n"
    },
    {
      "commit": "fd806ece6e7b42fbb6d327a3578726893f812bb1",
      "tree": "cd66d37a3c153c1be14075ec4f73c5d72eae1790",
      "parents": [
        "255a3b3d3c7d678fdef569ba28bb23a530773923"
      ],
      "author": {
        "name": "xincai98",
        "email": "xincai98@126.com",
        "time": "Wed May 28 14:56:40 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 28 14:56:40 2025 +0800"
      },
      "message": "Engine call console finish (#531)\n\n* engine call console after task finish\n\n* engine call console after task finish\n\n* engine call console after task finish\n\n* engine call console after task finish\n\n* fix ut"
    },
    {
      "commit": "255a3b3d3c7d678fdef569ba28bb23a530773923",
      "tree": "76c056349b1ec7b3e9862761e35e455905dcb9b9",
      "parents": [
        "0f848836adecd9b071dab4afb468a98de787241c"
      ],
      "author": {
        "name": "Justin Mclean",
        "email": "justin@classsoftware.com",
        "time": "Fri May 23 18:59:46 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 23 18:59:46 2025 +0800"
      },
      "message": "Fix LICENSE copyright line (#527)\n\nteh appendix is an example of how to apply the license to a file and should not have a specific copyright line"
    },
    {
      "commit": "0f848836adecd9b071dab4afb468a98de787241c",
      "tree": "20b8dfc0e0ccad6bf4fdfa8164bd32bc1f3e6a84",
      "parents": [
        "05adbfb4ee774945d4b0871bf32515dfbf92e569"
      ],
      "author": {
        "name": "yaozhongq",
        "email": "135590979+yaozhongq@users.noreply.github.com",
        "time": "Thu May 15 14:56:45 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 15 14:56:45 2025 +0800"
      },
      "message": "feat: support stddev_samp (#526)\n\n"
    },
    {
      "commit": "05adbfb4ee774945d4b0871bf32515dfbf92e569",
      "tree": "2c01680ddcfe4735cd38fb5230ba3b3975dbbf9d",
      "parents": [
        "6e45552700a1e0df89771904b0220c84a319ed95"
      ],
      "author": {
        "name": "lfs",
        "email": "40877624+652053395@users.noreply.github.com",
        "time": "Thu May 15 14:55:21 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 15 14:55:21 2025 +0800"
      },
      "message": "[ISSUE-523] Support job finish in console (#524)\n\n"
    },
    {
      "commit": "6e45552700a1e0df89771904b0220c84a319ed95",
      "tree": "d45a96dad65bfe14f171ea477686bbe1eec8f642",
      "parents": [
        "9c546ca35a177a52130c109dbb0f478d5364094c"
      ],
      "author": {
        "name": "Qi Zhang",
        "email": "48751722+QiZhang1997@users.noreply.github.com",
        "time": "Wed Apr 30 15:32:38 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 30 15:32:38 2025 +0800"
      },
      "message": "support edge iterator (#521)\n\n"
    },
    {
      "commit": "9c546ca35a177a52130c109dbb0f478d5364094c",
      "tree": "57e1c4ba11e6b4743aa1bdb94cb752afa9c0539f",
      "parents": [
        "dc97cbd12ff0f57061a1fd571ba65d6d2ed4daea"
      ],
      "author": {
        "name": "Forest",
        "email": "47968887+cfsfine@users.noreply.github.com",
        "time": "Tue Apr 29 21:12:58 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 29 21:12:58 2025 +0800"
      },
      "message": "[State] Support vertex and edge being partitioned by timestamp #515 (#516)\n\n"
    },
    {
      "commit": "dc97cbd12ff0f57061a1fd571ba65d6d2ed4daea",
      "tree": "2853923c5e8fd939c51bf8c167d75366ad7c01aa",
      "parents": [
        "a596b905fbd1818f3524010bc634bd92b6295c99"
      ],
      "author": {
        "name": "dingyi",
        "email": "50548737+dy247846795@users.noreply.github.com",
        "time": "Tue Apr 29 21:12:18 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 29 21:12:18 2025 +0800"
      },
      "message": "[ISSUE-518] support paimon key pushdown. (#519)\n\nCo-authored-by: dingyi \u003cdy342851@antgroup.com\u003e"
    },
    {
      "commit": "a596b905fbd1818f3524010bc634bd92b6295c99",
      "tree": "d58d3a24c90f53d5d95a59d15c3be645b5341b35",
      "parents": [
        "4258a23cd25a9bfef9219d0186b2fe9c2c4f6c3f"
      ],
      "author": {
        "name": "Qingwen Zhao",
        "email": "qingwen220@gmail.com",
        "time": "Tue Apr 29 11:18:34 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 29 11:18:34 2025 +0800"
      },
      "message": "fix: shuffle fetcher thread leak (#514)\n\n"
    },
    {
      "commit": "4258a23cd25a9bfef9219d0186b2fe9c2c4f6c3f",
      "tree": "3f27775b7b56f18d0e494e64a01251c83c83496c",
      "parents": [
        "5e64035ce677bf866d295b1c364f531de8e7ef71"
      ],
      "author": {
        "name": "Haodong Tang",
        "email": "tanghaodong25@gmail.com",
        "time": "Sun Apr 27 21:18:42 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 27 21:18:42 2025 +0800"
      },
      "message": "Add paimon graph table handle. (#509)\n\n"
    },
    {
      "commit": "5e64035ce677bf866d295b1c364f531de8e7ef71",
      "tree": "134af307353c4cf2b74e1da2db42c20756ccc115",
      "parents": [
        "ffe8571521d0bbe22b87af5d7763bcb09d96ef85"
      ],
      "author": {
        "name": "Qingwen Zhao",
        "email": "qingwen220@gmail.com",
        "time": "Sun Apr 27 13:35:14 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 27 13:35:14 2025 +0800"
      },
      "message": "enable shuffle memory pool (#512)\n\n"
    }
  ],
  "next": "ffe8571521d0bbe22b87af5d7763bcb09d96ef85"
}
