)]}'
{
  "log": [
    {
      "commit": "3070ee21d70d43d34bebd64944b232f1474bea4a",
      "tree": "bdab3a8ceb6b41ffa1a43220ab82017a766d3f10",
      "parents": [
        "a28336fa9388a4d0c8176052525ac3508dc7ac40"
      ],
      "author": {
        "name": "kaiwangleo",
        "email": "44354575+kaiwangleo@users.noreply.github.com",
        "time": "Fri Aug 14 20:57:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 20:57:30 2026 +0800"
      },
      "message": "[hotfix] Add help handling to build script (#995)\n\nGenerated-by: OpenAI Codex Desktop 26.803.41515 (GPT-5.6 Sol)\n\n---------\n\nCo-authored-by: Leo Wang \u003cleo.wang@min123.net\u003e"
    },
    {
      "commit": "a28336fa9388a4d0c8176052525ac3508dc7ac40",
      "tree": "d405c35495da2a5ec52344c8c606dc096d362654",
      "parents": [
        "bab20e7f51321ba1a143ef34270b75a9e7212275"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Fri Aug 14 05:53:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 20:53:27 2026 +0800"
      },
      "message": "[test][python] Assert long-term memory content instead of an exact LLM item count (#984)\n\nGenerated-by: Claude Code 2.1.228"
    },
    {
      "commit": "bab20e7f51321ba1a143ef34270b75a9e7212275",
      "tree": "19bcdc133cf6bba6c165f85e7d4207bc4bd06acb",
      "parents": [
        "750ceee4c3a06cfce37afd95a0063ea569c648d3"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Fri Aug 14 05:50:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 20:50:43 2026 +0800"
      },
      "message": "[ci] Name the tools script test job after the command it runs (#1000)\n\nGenerated-by: Claude Code 2.1.228 (Claude Opus 5)\n\n---------\n\nCo-authored-by: weiqingy \u003cywqapply@gmail.com\u003e"
    },
    {
      "commit": "750ceee4c3a06cfce37afd95a0063ea569c648d3",
      "tree": "1f0a72e16f08edc62ad0c7a9c97c2725bf6c9be8",
      "parents": [
        "750551f3c5a13aa8c67cfe5b6f173b6f46ee0e60"
      ],
      "author": {
        "name": "kaiwangleo",
        "email": "44354575+kaiwangleo@users.noreply.github.com",
        "time": "Fri Aug 14 20:00:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 20:00:07 2026 +0800"
      },
      "message": "[ci][integrations] Enable Elasticsearch vector-store tests (#1011)\n\nCo-authored-by: Leo Wang \u003cleo.wang@min123.net\u003e"
    },
    {
      "commit": "750551f3c5a13aa8c67cfe5b6f173b6f46ee0e60",
      "tree": "f81a3be5f7c2f7934df1d83df28be05d8c557f8d",
      "parents": [
        "88adf03636fe4199b4c18904631b56fb76e224be"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Thu Aug 13 21:09:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 14 12:09:10 2026 +0800"
      },
      "message": "[integrations][vector-store][java] Apply Elasticsearch KNN filters before selecting neighbors (#1001)\n\nGenerated-by: Claude Code 2.1.228 (Claude Opus 5)"
    },
    {
      "commit": "88adf03636fe4199b4c18904631b56fb76e224be",
      "tree": "4d48a00374e3c9ac53167ab1426eeeae4eea600d",
      "parents": [
        "4bc67540fbf21b2b42bbe7d204d292053a175e39"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Wed Aug 12 04:43:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:43:51 2026 +0800"
      },
      "message": "[infra] Add an api/ contract review guide (#961)\n\nGenerated-by: Claude Code 2.1.228 (Claude Opus 5)"
    },
    {
      "commit": "4bc67540fbf21b2b42bbe7d204d292053a175e39",
      "tree": "21e48387c601fb5634fc23befa28a07a2a876251",
      "parents": [
        "cddd1e6ca4deee2a9340cc3ed752289767c13b74"
      ],
      "author": {
        "name": "rob-9",
        "email": "robert.ji888@gmail.com",
        "time": "Wed Aug 12 04:35:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:35:35 2026 +0800"
      },
      "message": "[integration][openai] Align default parameters for openai chat model between java and python (#883)"
    },
    {
      "commit": "cddd1e6ca4deee2a9340cc3ed752289767c13b74",
      "tree": "7928e8474fb7dc0e134034d6428ced82f248397b",
      "parents": [
        "6d7afb0ffcb43c18285d91d349b3796f49595966"
      ],
      "author": {
        "name": "John",
        "email": "hellojlong@163.com",
        "time": "Wed Aug 12 19:13:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 19:13:23 2026 +0800"
      },
      "message": "[api][plan][python] Use request-scoped metric groups for chat token metrics (#861)\n\n* [api][plan][python] Use request-scoped metric groups for chat token metrics\n\n* [api][plan][python] Address request-scoped metrics review\n\n---------\n\nCo-authored-by: 80347547 \u003cjianglong@oppo.com\u003e"
    },
    {
      "commit": "6d7afb0ffcb43c18285d91d349b3796f49595966",
      "tree": "e3f9631fb089a731b90e7f758e89228bd75b7de6",
      "parents": [
        "6b27d3e6d0241efe6b05ad1a221eff5592829387"
      ],
      "author": {
        "name": "Edson",
        "email": "113824357+Zhuoxi2000@users.noreply.github.com",
        "time": "Tue Aug 11 23:37:11 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 11:37:11 2026 +0800"
      },
      "message": "[integration] Add out of the box vLLM chat model support for Java and Python (#945)"
    },
    {
      "commit": "6b27d3e6d0241efe6b05ad1a221eff5592829387",
      "tree": "6b56e5cda595e879433c3e9c63245aa6f66fd7ac",
      "parents": [
        "6168a2a87c35a0196f73bb682bb39fe7bb79f860"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue Aug 11 11:28:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 11:28:08 2026 +0800"
      },
      "message": "Update version to 0.4-SNAPSHOT (#994)"
    },
    {
      "commit": "6168a2a87c35a0196f73bb682bb39fe7bb79f860",
      "tree": "bf8a5775c9379c763c1cab48b796ca961f7e9995",
      "parents": [
        "713fe82b17600db9f51fa1e425a5091a795f24b8"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue Aug 11 11:20:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 11 11:20:11 2026 +0800"
      },
      "message": "[infra] Include model in AI provenance (#993)\n\nGenerated-by: Codex 0.144.5 (GPT-5)"
    },
    {
      "commit": "713fe82b17600db9f51fa1e425a5091a795f24b8",
      "tree": "aec9b4387ffb2b2f26ea00372b6b282238d5ee37",
      "parents": [
        "d5e120dae63f22fef4ba3ff8742fa0642584d411"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Mon Aug 10 03:01:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 18:01:34 2026 +0800"
      },
      "message": "[dist] Add missing NOTICE entries for bundled dependencies (#991)\n\nGenerated-by: Claude Code 2.1.226"
    },
    {
      "commit": "d5e120dae63f22fef4ba3ff8742fa0642584d411",
      "tree": "697d686f1f11f6ac247287f8a72bc721aa603aee",
      "parents": [
        "0334f43da2e8e319406c9cde6528e260ce68d993"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Mon Aug 10 00:31:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 15:31:03 2026 +0800"
      },
      "message": "[infra] Add a docs-only review guide (#971)\n\nGenerated-by: Claude Code 2.1.223"
    },
    {
      "commit": "0334f43da2e8e319406c9cde6528e260ce68d993",
      "tree": "8abbb349f706f275977ec1a1a2973b3fe1d5221e",
      "parents": [
        "0d4d2381006daa010c38fca41d4189e0970253f0"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sun Aug 09 23:54:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 10 14:54:35 2026 +0800"
      },
      "message": "[infra] Guard uv in e2e.sh and fix the pytest log level in ut.sh (#986)\n\nGenerated-by: Claude Code 2.1.226"
    },
    {
      "commit": "0d4d2381006daa010c38fca41d4189e0970253f0",
      "tree": "b3a2a135397632ad2c73f366da16d35b23100d38",
      "parents": [
        "d9bb5075c909fb188054cc8ee5e2674efbf31b5a"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Aug 08 22:36:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 13:36:24 2026 +0800"
      },
      "message": "[infra] Invoke the build scripts\u0027 Python tools through the interpreter (#979)\n\nGenerated-by: Claude Code 2.1.226"
    },
    {
      "commit": "d9bb5075c909fb188054cc8ee5e2674efbf31b5a",
      "tree": "045b939e6a44195eeff0450b574d921fc33d5125",
      "parents": [
        "995b56951c170ba30cb089da55d4e1dad8cb2553"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Aug 08 22:17:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 13:17:20 2026 +0800"
      },
      "message": "[hotfix][runtime] Aggregate close failures across the Exception/Error boundary (#974)\n\nGenerated-by: Claude Code (claude-opus-5)"
    },
    {
      "commit": "995b56951c170ba30cb089da55d4e1dad8cb2553",
      "tree": "ef9071fcb3f65f181b909faa90f5c552d7f10c86",
      "parents": [
        "7a8a9517f8b2608624bf67de51538ab70fe948ea"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Aug 08 22:10:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 13:10:45 2026 +0800"
      },
      "message": "[ci] Guard the coding-agent skill\u0027s bundled YAML schema against drift (#969)"
    },
    {
      "commit": "7a8a9517f8b2608624bf67de51538ab70fe948ea",
      "tree": "abd582aa8d0da026936a8c568c44d4c36b6bcc8d",
      "parents": [
        "a0b0c7a7e2ecf4d4179d153c84d7d55ed92c161e"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Aug 08 09:04:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 09 00:04:03 2026 +0800"
      },
      "message": "[docs] Fix two Python snippets that do not run and an inaccurate schema parity claim (#972)\n\nGenerated-by: Claude Code 2.1.223"
    },
    {
      "commit": "a0b0c7a7e2ecf4d4179d153c84d7d55ed92c161e",
      "tree": "a3b0b466f697a6e7d75bea08f271349c87511e70",
      "parents": [
        "7100b5962be8c040197c4e592c5973aa862340ce"
      ],
      "author": {
        "name": "Edson",
        "email": "113824357+Zhuoxi2000@users.noreply.github.com",
        "time": "Sat Aug 08 10:36:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 22:36:47 2026 +0800"
      },
      "message": "[integration][anthropic][python] Keep token usage on non-tool_use responses (#959)"
    },
    {
      "commit": "7100b5962be8c040197c4e592c5973aa862340ce",
      "tree": "f5dd1bda86026d565c2558d9073f26b9fbb842fb",
      "parents": [
        "b551f7a234c1744b133f579bce1c0b7fb24d2891"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Aug 08 06:13:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 21:13:06 2026 +0800"
      },
      "message": "[integrations][openai] Preserve provider refusals in the Python message converter (#952)"
    },
    {
      "commit": "b551f7a234c1744b133f579bce1c0b7fb24d2891",
      "tree": "6f64fb4e5a9eebb3903081dea351955c9e586c57",
      "parents": [
        "7330bd97f7d487351ec2f897309297460632d86a"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Aug 08 00:45:53 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 15:45:53 2026 +0800"
      },
      "message": "[test][python] Use the registered checkpoint interval key in the Python e2e tests (#978)\n\nGenerated-by: Claude Code 2.1.224"
    },
    {
      "commit": "7330bd97f7d487351ec2f897309297460632d86a",
      "tree": "2eafa8cd42a28e69b4e49ba3d0f07f2d9055b9ec",
      "parents": [
        "432e90d875b7174d84d06ba8eebbd2bf0144ae51"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Sat Aug 08 15:10:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 15:10:02 2026 +0800"
      },
      "message": "[api][runtime][python] Add memory events for agent memory observability (#887)"
    },
    {
      "commit": "432e90d875b7174d84d06ba8eebbd2bf0144ae51",
      "tree": "f5d839583962d13eec4149f225cba404e914c133",
      "parents": [
        "4e01a73e9f55459dc9ba4e93fb94edf8a52d7f7f"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Thu Aug 06 22:46:40 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Fri Aug 07 13:02:11 2026 +0800"
      },
      "message": "[e2e] Stabilize standalone example tests\n\nGenerated-by: Codex CLI 0.144.5\n"
    },
    {
      "commit": "4e01a73e9f55459dc9ba4e93fb94edf8a52d7f7f",
      "tree": "e3b5898ea6f02c4e32b7f154a887f9dc6434a962",
      "parents": [
        "cab3324301a1e6133c89b8aeb71c77de9e466957"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Thu Aug 06 22:46:13 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Fri Aug 07 13:02:11 2026 +0800"
      },
      "message": "[python] Synchronize Chroma client initialization\n\nGenerated-by: Codex CLI 0.144.5\n"
    },
    {
      "commit": "cab3324301a1e6133c89b8aeb71c77de9e466957",
      "tree": "11ba95c118bf9d8fc7879adf9258bc4816861720",
      "parents": [
        "334c0cd370c475ea94b9721d9c04f6a1d25ab34f"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Thu Aug 06 22:45:54 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Fri Aug 07 13:02:11 2026 +0800"
      },
      "message": "[infra] Ignore local Codex configuration\n\nGenerated-by: Codex CLI 0.144.5\n"
    },
    {
      "commit": "334c0cd370c475ea94b9721d9c04f6a1d25ab34f",
      "tree": "e2a1a32b2360cf63be54e16048aa48b6f02f9a64",
      "parents": [
        "99ab9e4e0108ffeb1cb244dd07464732802f1577"
      ],
      "author": {
        "name": "Howie Wang",
        "email": "sparsematrix@aliyun.com",
        "time": "Thu Aug 06 12:05:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 12:05:10 2026 +0800"
      },
      "message": "[e2e] Add nightly e2e test for submitting examples to flink standalone cluster (#708)"
    },
    {
      "commit": "99ab9e4e0108ffeb1cb244dd07464732802f1577",
      "tree": "dc55f9b31015fca8181934cb60372b1e03b16cc3",
      "parents": [
        "e5734203721eeacee51f98c6f4e0ef843fb229ba"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Thu Aug 06 10:14:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 10:14:00 2026 +0800"
      },
      "message": "[runtime][java][python] Add CEL Action condition filtering (#821)"
    },
    {
      "commit": "e5734203721eeacee51f98c6f4e0ef843fb229ba",
      "tree": "9c0e24f7cec8c6eb77cea3d59a7ffc817aa6945d",
      "parents": [
        "167d90aa9d9a12da2afa20b6c6e393dcbfea2add"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Wed Aug 05 03:51:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 18:51:58 2026 +0800"
      },
      "message": "[hotfix][runtime] Close the Kafka consumer when the producer fails to close (#948)"
    },
    {
      "commit": "167d90aa9d9a12da2afa20b6c6e393dcbfea2add",
      "tree": "8514225146ba04a15d6c7402ffdf9f6b8aa89c71",
      "parents": [
        "1ae0d707cdfa211d2d41bc9360bff7255492a6e8"
      ],
      "author": {
        "name": "hulincup",
        "email": "57707264+hulincup@users.noreply.github.com",
        "time": "Wed Aug 05 15:49:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 15:49:57 2026 +0800"
      },
      "message": "[api][yaml] Add aliases for six unaliased resource implementations (#962)"
    },
    {
      "commit": "1ae0d707cdfa211d2d41bc9360bff7255492a6e8",
      "tree": "d145c2407b78ed59c0bb2276ee8a88240fa1bcd9",
      "parents": [
        "b7dcc1588034afbcabf1457631b81e4126a5faad"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Wed Aug 05 00:39:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 15:39:10 2026 +0800"
      },
      "message": "[infra] Surface the ASF generative-AI disclosure in the PR template (#933)\n\n* [infra] Surface the ASF generative-AI disclosure in the PR template\n\n* [infra] Ask for the Generated-by line in the commit message\n\nThe ASF guidance asks for the token in the source control commit message so\nfuture release tooling can pull it into a machine-parsable provenance file.\nThis repository enables squash and rebase merges, and squash composes the\nmerged body from the source commit messages, so a line present only in the PR\ndescription does not reach Git history on either path.\n\nAsk for the line in the commit message, and keep the PR-description copy for\nreviewer visibility.\n\nGenerated-by: Claude Code 2.1.220"
    },
    {
      "commit": "b7dcc1588034afbcabf1457631b81e4126a5faad",
      "tree": "4b02627bb5648cfe206fba10635122b69152a4cd",
      "parents": [
        "bc55d97e6a1f4a4302d18b1070e4f1dcad5d2f40"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Wed Aug 05 15:29:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 05 15:29:00 2026 +0800"
      },
      "message": "[api][runtime][python] Add minimal Event lineage (#923)"
    },
    {
      "commit": "bc55d97e6a1f4a4302d18b1070e4f1dcad5d2f40",
      "tree": "f6f9871334c6d017288ba381651dfe7f953c91a4",
      "parents": [
        "bf31f52124096915bf1aaf9271b840edee842a36"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Aug 04 04:11:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 19:11:36 2026 +0800"
      },
      "message": "[infra] Add a Python-Java bridge review guide (#957)"
    },
    {
      "commit": "bf31f52124096915bf1aaf9271b840edee842a36",
      "tree": "5fa2d98edbcdd9418cef572e4f962681d24d11f3",
      "parents": [
        "0549cff6c4ffceb9e70d53727ea9631f2cef2243"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Tue Aug 04 17:54:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:54:24 2026 +0800"
      },
      "message": "[dist][runtime] Use Flink-provided Log4j dependencies (#954)"
    },
    {
      "commit": "0549cff6c4ffceb9e70d53727ea9631f2cef2243",
      "tree": "3f1a52dd88d598f02633673c0c7e8f803ddbd33c",
      "parents": [
        "546d1a36b7ceb546f22ffb42a793547b279a1306"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Aug 04 02:52:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:52:40 2026 +0800"
      },
      "message": "[docs] Correct the documented provider for the azure YAML alias (#963)"
    },
    {
      "commit": "546d1a36b7ceb546f22ffb42a793547b279a1306",
      "tree": "c7e2a96aadc4efb6f6c0338cedc87431dc7effbf",
      "parents": [
        "5cc3b585b2ae2f7163323b970ca75f13b95bff0b"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Aug 04 02:29:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:29:57 2026 +0800"
      },
      "message": "[hotfix][java][python] Release skill repositories on any load failure and remove dead code (#951)"
    },
    {
      "commit": "5cc3b585b2ae2f7163323b970ca75f13b95bff0b",
      "tree": "fb11acaae81fd220ced58c3c2ed0770bf92af0cc",
      "parents": [
        "dbd7679c5faf4eae3356e226f0ff7c5f40d893a1"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Aug 04 02:14:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 17:14:38 2026 +0800"
      },
      "message": "[integrations][java][python] Apply Azure OpenAI native structured output (#930)"
    },
    {
      "commit": "dbd7679c5faf4eae3356e226f0ff7c5f40d893a1",
      "tree": "25a11bd568493df7aad44851a399b1dbafffb716",
      "parents": [
        "d906b608fe702d398d8a0395eb2d6b5380668b85"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue Aug 04 14:22:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 14:22:28 2026 +0800"
      },
      "message": "[infra] Add a coding-agent development skill (#918)"
    },
    {
      "commit": "d906b608fe702d398d8a0395eb2d6b5380668b85",
      "tree": "d8bbf96dbaa70e1b99bbe8d9b89577b39a8f861f",
      "parents": [
        "d156aa6214eb8b08fa92f5ca4f1f24c083b53f2b"
      ],
      "author": {
        "name": "Edson",
        "email": "113824357+Zhuoxi2000@users.noreply.github.com",
        "time": "Tue Aug 04 02:14:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Aug 04 14:14:41 2026 +0800"
      },
      "message": "[integration][gemini] Synthesize a tool-call id when the API omits functionCall.id (#960)"
    },
    {
      "commit": "d156aa6214eb8b08fa92f5ca4f1f24c083b53f2b",
      "tree": "f3018bfbf0616410e2a0d507b2ffaa79577f9666",
      "parents": [
        "63e67226612130b9f74ccddf8d437825fefdbd4c"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sun Aug 02 20:24:55 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 11:24:55 2026 +0800"
      },
      "message": "[hotfix] Ignore the local directories check-license.sh creates (#934)"
    },
    {
      "commit": "63e67226612130b9f74ccddf8d437825fefdbd4c",
      "tree": "b5b999e8357eae84c8ed3d252a1283b1b5fd0ce3",
      "parents": [
        "9cf8741d2a04bc984e20f2cdff00448ce2369961"
      ],
      "author": {
        "name": "vishnu prakash",
        "email": "nvishnuprakash02@gmail.com",
        "time": "Mon Aug 03 08:54:06 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 11:24:06 2026 +0800"
      },
      "message": "[python] warn when an action declares a return value (#835)"
    },
    {
      "commit": "9cf8741d2a04bc984e20f2cdff00448ce2369961",
      "tree": "e97c411b1e99577f52c55c1df02c5dda9b79a346",
      "parents": [
        "c1570ebad00ce324ac368924ce573b5a10f6cfba"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sun Aug 02 02:19:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 02 17:19:19 2026 +0800"
      },
      "message": "[docs] Use a current GA API version in the Azure OpenAI examples (#935)"
    },
    {
      "commit": "c1570ebad00ce324ac368924ce573b5a10f6cfba",
      "tree": "4d6edadecc4954e6bb9ec761ce31af88b79895dd",
      "parents": [
        "4d995672b1cbde606d2799130e7bf27e650f8169"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sun Aug 02 02:18:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 02 17:18:20 2026 +0800"
      },
      "message": "[integrations][openai] Apply OpenAI native structured output (#919)"
    },
    {
      "commit": "4d995672b1cbde606d2799130e7bf27e650f8169",
      "tree": "3428265bccbbc5be4214d51a93e7f573a42516d5",
      "parents": [
        "3e01f0111c9fa379a07c48f91e0db840c9a70f9c"
      ],
      "author": {
        "name": "Alan Z.",
        "email": "shuai.xyz@gmail.com",
        "time": "Sat Jul 25 04:29:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 19:29:58 2026 +0800"
      },
      "message": "[bug] [python] Propagate config model reconstruction errors in Action deserialize (#921)"
    },
    {
      "commit": "3e01f0111c9fa379a07c48f91e0db840c9a70f9c",
      "tree": "e677671a27810dcadd68686107478add123a1407",
      "parents": [
        "3cb28967e94d54de9a1434a5e5769d02316c3b12"
      ],
      "author": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Sat Jul 25 19:00:14 2026 +0800"
      },
      "committer": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Sat Jul 25 19:00:14 2026 +0800"
      },
      "message": "[infra] Update github PR labeler after release 0.3.1\n"
    },
    {
      "commit": "3cb28967e94d54de9a1434a5e5769d02316c3b12",
      "tree": "df030ac7bf0e8492e58e96dcd5d6c6ae50847fe8",
      "parents": [
        "4859469cc6d734c6c217faadfc219b053cfac6ea"
      ],
      "author": {
        "name": "Tachikoma",
        "email": "section9lab@gmail.com",
        "time": "Sat Jul 25 16:12:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 16:12:28 2026 +0800"
      },
      "message": "[docs][integration] Document Gemini chat model integration (#898)"
    },
    {
      "commit": "4859469cc6d734c6c217faadfc219b053cfac6ea",
      "tree": "80027695be0c1dda7c4d6534225e8c1f0f30711a",
      "parents": [
        "8d1702c96c1401b8f114831018ad2f8ada193a69"
      ],
      "author": {
        "name": "zxs1633079383",
        "email": "68211742+zxs1633079383@users.noreply.github.com",
        "time": "Sat Jul 25 00:50:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 15:50:43 2026 +0800"
      },
      "message": "[api][python][java] Track embedding token usage metrics (#870)"
    },
    {
      "commit": "8d1702c96c1401b8f114831018ad2f8ada193a69",
      "tree": "886f32409dbb8d7012a0b9b9dd29e53f104fb5fa",
      "parents": [
        "9a797b68f39a9d1ea5bdff178cee306d9bdbac61"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Jul 25 00:28:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 15:28:45 2026 +0800"
      },
      "message": "[infra] Add change-type review guides with runtime/ template (#911)"
    },
    {
      "commit": "9a797b68f39a9d1ea5bdff178cee306d9bdbac61",
      "tree": "0cdb9895408f3a85dded71f4fd7eb9b19fc1ca13",
      "parents": [
        "0ae6e7d4c883bbdbc44b3b07eb7afea439ad2c8f"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sat Jul 25 00:14:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 15:14:15 2026 +0800"
      },
      "message": "[api][python] Add explicit output schema parameter to the chat path (structured-output foundation) (#843)"
    },
    {
      "commit": "0ae6e7d4c883bbdbc44b3b07eb7afea439ad2c8f",
      "tree": "038dce9a6e2fcf84195adc4635781caefd378a8a",
      "parents": [
        "7bc3a8e908864b64359f6447e1aa1674fd866ca5"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Sat Jul 25 13:00:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 25 13:00:45 2026 +0800"
      },
      "message": "[e2e][java] Validate ReActAgent output without schema (#927)"
    },
    {
      "commit": "7bc3a8e908864b64359f6447e1aa1674fd866ca5",
      "tree": "f2a9692b0dda01c29957f9f5d9ea1a178aa1454f",
      "parents": [
        "b5dd2715ee0f20b9de0b3684cb189387270f6abd"
      ],
      "author": {
        "name": "Goutam Adwant",
        "email": "8672451+goutamadwant@users.noreply.github.com",
        "time": "Wed Jul 22 13:14:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 19:14:02 2026 +0800"
      },
      "message": "[api][runtime][python] Propagate metric groups to cross-language resources (#860)"
    },
    {
      "commit": "b5dd2715ee0f20b9de0b3684cb189387270f6abd",
      "tree": "3ce06d3a644bb2008c9a6c7359bfbf3d74ebe16a",
      "parents": [
        "be9716fc24235bbe0d88e10fda87650b2a189f57"
      ],
      "author": {
        "name": "Edson",
        "email": "113824357+Zhuoxi2000@users.noreply.github.com",
        "time": "Sun Jul 19 23:18:44 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 20 11:18:44 2026 +0800"
      },
      "message": "[integration][anthropic] Don\u0027t assume the first content block is text (#916)"
    },
    {
      "commit": "be9716fc24235bbe0d88e10fda87650b2a189f57",
      "tree": "4006ac1dfd25ea032eb5e40ec80b904d631c4120",
      "parents": [
        "ad0a935df7f9ea7fd85e47331522d32736e50e17"
      ],
      "author": {
        "name": "Edson",
        "email": "113824357+Zhuoxi2000@users.noreply.github.com",
        "time": "Sat Jul 18 04:45:05 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 18 16:45:05 2026 +0800"
      },
      "message": "[python] Tolerate Java tool params without a description (#915)"
    },
    {
      "commit": "ad0a935df7f9ea7fd85e47331522d32736e50e17",
      "tree": "ce1b98d6e5de6c791c40eac9f9279672fbd8b27b",
      "parents": [
        "c0c787ff02cc1afbf380d95fe5496c85a6883d49"
      ],
      "author": {
        "name": "Edson",
        "email": "113824357+Zhuoxi2000@users.noreply.github.com",
        "time": "Thu Jul 16 09:14:35 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 21:14:35 2026 +0800"
      },
      "message": "[api][java] Substitute prompt placeholders in a single pass (#908)"
    },
    {
      "commit": "c0c787ff02cc1afbf380d95fe5496c85a6883d49",
      "tree": "294ccc9e0411d813ee2be3067ae5a3b6aad5caf0",
      "parents": [
        "640d47a4454a9dde002618b6694c6a4e351cfe64"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Thu Jul 16 01:05:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 16:05:26 2026 +0800"
      },
      "message": "[infra] Add CLAUDE.md importing AGENTS.md (#910)"
    },
    {
      "commit": "640d47a4454a9dde002618b6694c6a4e351cfe64",
      "tree": "9511e0b5ac2ebea9e73f1751b978414609d09344",
      "parents": [
        "beaee3f8b307da060d9539eef27b3ebb8ac1090f"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Wed Jul 15 00:09:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 15:09:59 2026 +0800"
      },
      "message": "[infra] Add AGENTS.md version freshness check (#903)"
    },
    {
      "commit": "beaee3f8b307da060d9539eef27b3ebb8ac1090f",
      "tree": "1fe7e11029086cf310c54eb75fa295aa64cd2567",
      "parents": [
        "55ccb13ec26518cef0d6cf54906a10db2dc4482b"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Jul 14 20:38:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 11:38:02 2026 +0800"
      },
      "message": "[integration][openai] Update stale default model gpt-3.5-turbo to gpt-4o-mini (#906)"
    },
    {
      "commit": "55ccb13ec26518cef0d6cf54906a10db2dc4482b",
      "tree": "2458d3a4166406eb71e154107b2b4bade02d867f",
      "parents": [
        "6f020c5061bc1b444fbdb832d57ee7430517a62a"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Jul 14 19:55:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 10:55:48 2026 +0800"
      },
      "message": "[ci] Pin Ollama to the AVX2 CPU build in the integration jobs (#904)\n\nllama-server ships one libggml-cpu-\u003cmicroarch\u003e build per instruction set and loads the\nbest match for the host CPU at runtime. The hosted runner pool is mixed, so the kernels\nthat serve a request depend on the machine a job lands on, and jobs on the newer hosts\nintermittently die with a llama-server segmentation fault (ollama/ollama#17006).\n\nRemove the AVX-512-bearing builds after install so llama-server falls back to the AVX2\nbuild, whose kernels every runner in the pool shares. Also log the runner CPU and the\nremaining builds, so a future failure can be attributed to the microarchitecture that\nserved it.\n\nCo-authored-by: weiqingy \u003cywqapply@gmail.com\u003e"
    },
    {
      "commit": "6f020c5061bc1b444fbdb832d57ee7430517a62a",
      "tree": "5a6c3d3c1283382d804e96cc3de1de581ae7341d",
      "parents": [
        "96b943edf016c96f2394ad58eb10efeb7251372a"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue Jul 14 17:48:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:48:32 2026 +0800"
      },
      "message": "[tools] Keep install plan edits consistent (#899)\n\nCo-authored-by: Codex \u003ccodex@openai.com\u003e"
    },
    {
      "commit": "96b943edf016c96f2394ad58eb10efeb7251372a",
      "tree": "042eb29eb4ab360be86098952540e016ddfe63ee",
      "parents": [
        "55bea7072166a83eb771645998ac3fb26791b2e2"
      ],
      "author": {
        "name": "Femi",
        "email": "44889206+Olawoyin007@users.noreply.github.com",
        "time": "Tue Jul 14 04:46:27 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 11:46:27 2026 +0800"
      },
      "message": "[tools] Update install.sh for Flink Agents 0.3.0 and Python 3.12 (#888)"
    },
    {
      "commit": "55bea7072166a83eb771645998ac3fb26791b2e2",
      "tree": "03b50294c4f7e6d7e5752ea5d0f14e4f0b81e8b5",
      "parents": [
        "d5e6058275498e2e4b3609888749054905ec5346"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Mon Jul 13 00:19:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 15:19:20 2026 +0800"
      },
      "message": "[ci] Bound the runtime of the integration-test jobs (#892)"
    },
    {
      "commit": "d5e6058275498e2e4b3609888749054905ec5346",
      "tree": "f3764c3bb6ff35b29d776f8721cdfa087662af04",
      "parents": [
        "76d48d998eb3e326416d91da621a076c1dd3d793"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Mon Jul 13 00:13:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 15:13:39 2026 +0800"
      },
      "message": "[ci] Retry Ollama install and propagate download failures (#891)"
    },
    {
      "commit": "76d48d998eb3e326416d91da621a076c1dd3d793",
      "tree": "dc6eb26c9551344cc3ed5b6362ea0474a63851e3",
      "parents": [
        "c6c43f7b03f5bd4a743466db469c90f958bf388b"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jul 13 13:58:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 13:58:24 2026 +0800"
      },
      "message": "[test][python] Avoid forking MCP test server from PyFlink process (#896)\n\nCo-authored-by: Codex \u003ccodex@openai.com\u003e"
    },
    {
      "commit": "c6c43f7b03f5bd4a743466db469c90f958bf388b",
      "tree": "71c092cfe2b39388fb4ceef0ced1a4f01f16f69b",
      "parents": [
        "aacc91268aced994dee22c8d8a95aa259d4b3e1f"
      ],
      "author": {
        "name": "daken",
        "email": "94731050+da-daken@users.noreply.github.com",
        "time": "Mon Jul 13 11:52:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 11:52:56 2026 +0800"
      },
      "message": "[Tech Debt] Avoid using reflection to load implementation classes of resources during the compilation phase (#879)\n\nCo-authored-by: daken \u003cdakengg@qq.com\u003e"
    },
    {
      "commit": "aacc91268aced994dee22c8d8a95aa259d4b3e1f",
      "tree": "31073524f33832d4291ca4b222dc72d60a5ee3a2",
      "parents": [
        "a356606ec201295add500cb895698a66f9fa0f22"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Sun Jul 12 20:12:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 11:12:10 2026 +0800"
      },
      "message": "[python] Remove the Python local execution path (#882)"
    },
    {
      "commit": "a356606ec201295add500cb895698a66f9fa0f22",
      "tree": "93d5318b7edf8123c647dba59ef455893acd78be",
      "parents": [
        "2f56f97ff951e455e56e6c9d1b623636c3ad4ce5"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Fri Jul 10 16:43:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 16:43:01 2026 +0800"
      },
      "message": "[docs] Clarify review policy (#890)\n\nCo-authored-by: Codex \u003ccodex@openai.com\u003e"
    },
    {
      "commit": "2f56f97ff951e455e56e6c9d1b623636c3ad4ce5",
      "tree": "6bf9839717ca498eba983f44d9f01cba50cf662c",
      "parents": [
        "84c76fbc3e0accb1e4c12c522f28c01b1758793f"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Fri Jul 10 01:40:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 16:40:24 2026 +0800"
      },
      "message": "[python] Backfill remote test coverage ahead of local execution path removal (#881)"
    },
    {
      "commit": "84c76fbc3e0accb1e4c12c522f28c01b1758793f",
      "tree": "fe5ec22bf8bc0c33061801b562957258b3a5154d",
      "parents": [
        "588016170be176dab269721bfcd64bbe4c6351e3"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Wed Jul 08 02:47:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 17:47:49 2026 +0800"
      },
      "message": "[runtime] Binary serde for MemoryUpdate values via versioned Kryo envelope (#874)"
    },
    {
      "commit": "588016170be176dab269721bfcd64bbe4c6351e3",
      "tree": "88a38246985d425e09ad36e70b6d89636bb00ae1",
      "parents": [
        "73bc3d5e50b7ca84773b52121305b9b5d77edfc1"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed Jul 08 15:08:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 15:08:10 2026 +0800"
      },
      "message": "[hotfix] Propagate action task Errors from mailbox (#880)\n\nCatch Throwable in mailbox-submitted action task processing so Errors are rethrown through the mailbox and fail the task visibly instead of remaining in a Future while processing keys stay in-flight.\n\nCo-authored-by: Codex \u003ccodex@openai.com\u003e"
    },
    {
      "commit": "73bc3d5e50b7ca84773b52121305b9b5d77edfc1",
      "tree": "327bd800e456de35663c44b4e08aa2e66116fc62",
      "parents": [
        "7c8d200b07c50cf82efb4ed579c8d47d979181ca"
      ],
      "author": {
        "name": "Dagdraumur",
        "email": "74587060+aka-dag@users.noreply.github.com",
        "time": "Wed Jul 08 10:22:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 10:22:22 2026 +0800"
      },
      "message": "[python] Remove PyFlink gateway fallback from AgentConfigOptions (#867)"
    },
    {
      "commit": "7c8d200b07c50cf82efb4ed579c8d47d979181ca",
      "tree": "38434a2df7d0145fb29ee4604eacf5c0eab4e49b",
      "parents": [
        "c00201e1e96341ff9dfc482f8dfb76797b1aca99"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed Jul 08 10:14:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 10:14:34 2026 +0800"
      },
      "message": "[infra] Add AGENTS.md (#878)"
    },
    {
      "commit": "c00201e1e96341ff9dfc482f8dfb76797b1aca99",
      "tree": "046489933235774a8c88336365cc41b3b27715d0",
      "parents": [
        "c7a297172a3ad534e8a10066122257741a18697a"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "yangweiqing001@gmail.com",
        "time": "Tue Jul 07 03:10:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 18:10:34 2026 +0800"
      },
      "message": "[ci] Use maintained \u0027temurin\u0027 distribution for setup-java (#873)"
    },
    {
      "commit": "c7a297172a3ad534e8a10066122257741a18697a",
      "tree": "b094e678b6f12ef313bbaaac753fdcafc97abab3",
      "parents": [
        "54bda560f4ff72c418b1c65c7ea15662ff9d6c30"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Tue Jul 07 16:49:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 16:49:48 2026 +0800"
      },
      "message": "[api][runtime][test] Add @JsonCreator to built-in event subclasses for ActionStateSerde durable recovery (#869)\n\n* [api][runtime][test] Add @JsonCreator to built-in event subclasses for ActionStateSerde durable recovery\n\n* [api][runtime][test][doc] Normalize typed nested attributes in built-in event JSON creators for replay"
    },
    {
      "commit": "54bda560f4ff72c418b1c65c7ea15662ff9d6c30",
      "tree": "7c64746c5c81739693aa484221fb571440d9dfa8",
      "parents": [
        "5b5387e71805684d34d5fedd36b672eb6709baa7"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Mon Jul 06 14:24:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 14:24:46 2026 +0800"
      },
      "message": "[dist] Add Flink 2.3 distribution and make it the default (#856)\n\nAdd Flink 2.3 support and bump the default Flink version to 2.3.0. Central\n2.3.0 jars are Java 11 bytecode, so the default still builds on JDK 11 — no\nJava 17 requirement. dist modules follow a symmetric rule: the default\nversion (2.3) is bare and inherits the root flink.version; every other\nversion pins its own version + provided deps.\n\n- dist: new flink-2.3 module; flink-2.2 now pins 2.2.1 + deps; root default 2.2.1 -\u003e 2.3.0\n- e2e: flink-2.3 default + flink-2.2 profile; e2e.sh default -\u003e 2.3\n- ci: add {flink 2.3, java 17} to it-java and it-python matrices\n- python: bundle 2.3 thin jar into wheel manifest + build-backend test\n- misc: ut.sh help, update_flink_version, faq/long_term_memory version notes\n\nVerified: full build on JDK 11, all 5 dist versions (1.20/2.0/2.1/2.2/2.3) pass."
    },
    {
      "commit": "5b5387e71805684d34d5fedd36b672eb6709baa7",
      "tree": "c7a07acb6a9b345ee7b74dd94922c38739922355",
      "parents": [
        "7b716a352cf03882b01f864ad79cea22fb5a07f4"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Mon Jul 06 10:55:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:55:44 2026 +0800"
      },
      "message": "[Feature] Support tool parameter injection (#854)"
    },
    {
      "commit": "7b716a352cf03882b01f864ad79cea22fb5a07f4",
      "tree": "8219beb914e3c6ab3d5ca94edfb1602d5173ff96",
      "parents": [
        "8a4dd40ae42d3ec301d211d35de96d676014118e"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Thu Jul 02 02:15:33 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 17:15:33 2026 +0800"
      },
      "message": "[python] Admit bytes in the Python memory value contract (#846)\n\nExact Python bytes materializes through Pemja into a native Java byte[]\n(checkpoint-stable), so it is admitted into the set()-time memory value\nvalidator. The validator\u0027s exact-type check accepts exact bytes while\nkeeping bytearray and bytes-subclasses rejected, since Pemja wraps those\nas non-checkpoint-stable objects rather than materializing a byte[].\n\nAdds accept coverage (scalar and nested) and a reject test pinning the\nexact-type boundary, and updates the Python memory value contract docs."
    },
    {
      "commit": "8a4dd40ae42d3ec301d211d35de96d676014118e",
      "tree": "b732e690fbca30a60dc60bcec73c1968820b262f",
      "parents": [
        "2702833113e183cff1262ce6c476a37136366192"
      ],
      "author": {
        "name": "Tachikoma",
        "email": "section9lab@gmail.com",
        "time": "Wed Jul 01 16:41:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 16:41:41 2026 +0800"
      },
      "message": "[feature][integration][java] Add built-in Google Gemini chat model integration (#718)"
    },
    {
      "commit": "2702833113e183cff1262ce6c476a37136366192",
      "tree": "e11ea4da7c9c088cf9ed4086ff8f3ee347cf4c72",
      "parents": [
        "3c9108ea7c4a1d8ed98ebf74154d8d7b8394fbf2"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Tue Jun 30 22:45:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 22:45:58 2026 +0800"
      },
      "message": "[api][java][python] Introduce EventType constants and unify Action trigger entry (#756)\n\n* [api] Introduce EventType constants for built-in event types\n\n* [api][java][python][plan] Unify Action trigger entry across Java and Python and migrate callers\n\n* [docs] Update documentation for EventType and trigger_conditions rename"
    },
    {
      "commit": "3c9108ea7c4a1d8ed98ebf74154d8d7b8394fbf2",
      "tree": "87deb480d3087aff73a6bd04ed9c3abd95947d82",
      "parents": [
        "96d6d73df751b36539b50469fa054ea8cf533548"
      ],
      "author": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Sun Jun 21 19:23:04 2026 +0800"
      },
      "committer": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Sun Jun 21 19:23:04 2026 +0800"
      },
      "message": "[infra] Update github PR labeler after release 0.3.0\n"
    },
    {
      "commit": "96d6d73df751b36539b50469fa054ea8cf533548",
      "tree": "aee79a02dc2490b6ef890d91f75ba601a34df235",
      "parents": [
        "175d0d86d6e6b3bdda0c5031a0a65674bea02dde"
      ],
      "author": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Sun Jun 21 19:19:12 2026 +0800"
      },
      "committer": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Sun Jun 21 19:19:12 2026 +0800"
      },
      "message": "[doc] Update latest flink agents docs\n"
    },
    {
      "commit": "175d0d86d6e6b3bdda0c5031a0a65674bea02dde",
      "tree": "7ad7c67a35263c096cbbb9ba4a8dccc2fea0fe2f",
      "parents": [
        "f7af693f86354cd1d5aa3ac1b71f66c162456c0d"
      ],
      "author": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Tue Jun 16 14:06:28 2026 +0800"
      },
      "committer": {
        "name": "文玕",
        "email": "wenjin.xwj@alibaba-inc.com",
        "time": "Tue Jun 16 14:06:28 2026 +0800"
      },
      "message": "Update docs config for release-0.3\n"
    },
    {
      "commit": "f7af693f86354cd1d5aa3ac1b71f66c162456c0d",
      "tree": "ac2f6c0496dcf9af244e44583cef9fff997b5c84",
      "parents": [
        "2e96ca898743d86e946773fa8e44e0d2fb3c0bb7"
      ],
      "author": {
        "name": "Haocong Wang",
        "email": "75206183+Ryan-Nightwish@users.noreply.github.com",
        "time": "Tue Jun 16 11:50:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 11:50:39 2026 +0800"
      },
      "message": "[docs][examples] Add parallel LLM quickstart and examples for multi-action fan-out (#830)\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2e96ca898743d86e946773fa8e44e0d2fb3c0bb7",
      "tree": "3a514ba14a50ea382d3eee69c5dc5d995177b89b",
      "parents": [
        "a09565d01c3494d88260789d421d3e0d07e199e3"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 15 15:00:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 15:00:57 2026 +0800"
      },
      "message": "[docs] Refresh get-started overview for 0.3 features (#849)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "a09565d01c3494d88260789d421d3e0d07e199e3",
      "tree": "4a6a3f712fc0bde283c9faaf1d9bf83b1861ac53",
      "parents": [
        "2fbabb6ab002f78f818ec8b12cd32c4cf0f41634"
      ],
      "author": {
        "name": "meichuanyi",
        "email": "35057768+meichuanyi@users.noreply.github.com",
        "time": "Mon Jun 15 14:53:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 14:53:25 2026 +0800"
      },
      "message": "[docs] Fix typo in community page (#851)\n\nSigned-off-by: meichuanyi \u003cmeichuanyi@users.noreply.github.com\u003e\nCo-authored-by: meichuanyi \u003cmeichuanyi@users.noreply.github.com\u003e"
    },
    {
      "commit": "2fbabb6ab002f78f818ec8b12cd32c4cf0f41634",
      "tree": "29ae4c3982937194f5638b1647663b90a5660fdd",
      "parents": [
        "38f8b667714ff47d7c5e3e66de2e4995559d64ad"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 15 13:57:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 13:57:40 2026 +0800"
      },
      "message": "[tools] Update install.sh Flink versions to current stable releases (#850)\n\nBump the supported patch versions to match flink.apache.org/downloads:\n2.2.0-\u003e2.2.1, 2.1.1-\u003e2.1.3, 2.0.1-\u003e2.0.2, 1.20.3-\u003e1.20.5.\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "38f8b667714ff47d7c5e3e66de2e4995559d64ad",
      "tree": "5adb826d8bf9c7f661d442278e49b78395c21f6c",
      "parents": [
        "9f3f1a347cd636ee45d8cdd510066e5082ea2519"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sun Jun 14 20:41:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 11:41:08 2026 +0800"
      },
      "message": "[api] Remove dead no-arg getExecutionEnvironment() referencing a non-existent LocalExecutionEnvironment (#848)"
    },
    {
      "commit": "9f3f1a347cd636ee45d8cdd510066e5082ea2519",
      "tree": "55a3ba513d48b1eed63b0ded06abccfebcb0035a",
      "parents": [
        "1c829cb7be9c61a2e904a3600b3ebe099aa6392c"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Sat Jun 13 22:12:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 22:12:20 2026 +0800"
      },
      "message": "[docs] Update the document to support asynchronous execution of cross-language resources (#745)\n\n* [doc] FAQ: remove stale cross-language async limitation\n\nCross-language resources now support async execution (#05ed9910),\nso async availability depends only on language/JDK. Drop the\nobsolete cross-language note and references.\n\n* [doc] FAQ: note cross-language async depends on Flink version\n\nCross-language async needs the pemja 0.5.7 fix (Flink 1.20.5+/2.0.2+/\n2.1.3+/2.2.1+); current 2.2.0 builds still run synchronously. Per\nreview on apache/flink-agents#745."
    },
    {
      "commit": "1c829cb7be9c61a2e904a3600b3ebe099aa6392c",
      "tree": "4e26abbb51be5f478fae2adffbd670b3d2382f94",
      "parents": [
        "de4f03683b16d445ddf0ceaac382511427bc0829"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Sat Jun 13 22:09:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 22:09:45 2026 +0800"
      },
      "message": "[dependency] Bump flink to 1.20.5 and 2.1.3 (#842)\n\n* [fix] Keep numpy off the async pool for cross-language RAG queries\n\nA Python vector store\u0027s query path runs numpy (e.g. chroma\u0027s embedding\nnormalization). numpy releases and re-acquires the GIL during the conversion,\nwhich deadlocks on an async pemja worker thread since pemja keeps a single\nPyThreadState. Split the async RAG query so only the numpy normalization runs\non the operator thread: embed and query stay async, normalize is sync.\n\n- PythonVectorStore: resolve the embedding model in open(); add embedQuery /\n  normalizeEmbedding / queryNormalized hooks; forward pre-computed vectors.\n- BaseVectorStore: expose getEmbeddingModel to subclasses.\n- ContextRetrievalAction: async embed -\u003e sync normalize -\u003e async query.\n- ChromaVectorStore: add _normalize_embeddings; query accepts pre-normalized.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n\n* [dependency] Bump flink to 1.20.5 and 2.1.3\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "de4f03683b16d445ddf0ceaac382511427bc0829",
      "tree": "685298534a767c6d57e107c9e3a10d354dd89ee3",
      "parents": [
        "d7f891149522100c9243f262ad01c08c19a53ca3"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Fri Jun 12 09:31:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 00:31:17 2026 +0800"
      },
      "message": "[doc] Document the Python memory value contract and its divergence from Java (#840)"
    },
    {
      "commit": "d7f891149522100c9243f262ad01c08c19a53ca3",
      "tree": "424602308b755d21bdae7f8c6541c3b08a27870f",
      "parents": [
        "cf86ed2ca78ff7325c1089a14876f73e09e7c9d2"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Fri Jun 12 00:19:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 15:19:00 2026 +0800"
      },
      "message": "[python] Reject non-checkpoint-stable Python memory values at set() (#839)"
    },
    {
      "commit": "cf86ed2ca78ff7325c1089a14876f73e09e7c9d2",
      "tree": "0efe017a1cd639245dee6ba1dea28c8066469e6c",
      "parents": [
        "462dbc44d753e426300fdcae8750de290bdc3345"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Thu Jun 11 19:00:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 19:00:12 2026 +0800"
      },
      "message": "[fix] Fix ReActAgent failure when output schema is null (#837)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "462dbc44d753e426300fdcae8750de290bdc3345",
      "tree": "085de7a65a9f5c5b7ccdf9adbd79b3b80cf92a05",
      "parents": [
        "06e7722aebfc33902e9c26dea4ecf51680ae20bc"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Thu Jun 11 01:54:40 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 16:54:40 2026 +0800"
      },
      "message": "[python] Remove Python-3.10-only Ollama auto-pull block in integration tests (#831)"
    },
    {
      "commit": "06e7722aebfc33902e9c26dea4ecf51680ae20bc",
      "tree": "f8375be2ee001a6133ecb5a08b8fff6d8b08c840",
      "parents": [
        "b35fa966484919cfb4f0337de4d26cc8905ca9a9"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Wed Jun 10 03:08:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 18:08:45 2026 +0800"
      },
      "message": "[python] Normalize built-in tool-call context for checkpoint safety (#828)\n\nThe built-in chat-model action stored non-primitive Python objects in\nsensory memory: UUID values, an OutputSchema, and ChatMessage lists.\nPemja wraps such objects as PyObject holders whose JNI pointers go stale\nafter a TaskManager/Python restart, so restoring the checkpointed tool\ncontext crashes in JcpPyObject_FromJObject.\n\nNormalize these values to a primitive-only form before they reach memory\nand reconstruct the rich types on read, fully inside the three\ntool-context helpers (no caller or signature changes):\n\n- ChatMessage lists are stored via model_dump(mode\u003d\"json\") and\n  reconstructed via ChatMessage.model_validate.\n- initial_request_id is stored as str and reconstructed to UUID.\n- output_schema is stored via OutputSchema.model_dump() and\n  reconstructed via OutputSchema.model_validate.\n\nDict keys were already strings and the retry-stats context already holds\nonly ints, so both are unchanged. prompt_args is user-supplied and\nalready round-trips as a ChatRequestEvent attribute, so it is left as-is."
    },
    {
      "commit": "b35fa966484919cfb4f0337de4d26cc8905ca9a9",
      "tree": "52b7dc1d82f7b08a4c859fc3bebbfa63bda7be5e",
      "parents": [
        "ed04111af97970ee2d9d43094fc84f6390fe0423"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed Jun 10 15:38:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 15:38:42 2026 +0800"
      },
      "message": "[dist] Update bundled dependency NOTICE and licenses for 0.3 (#832)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "ed04111af97970ee2d9d43094fc84f6390fe0423",
      "tree": "5cb8be427fc3c371e7703e8b6e359a73bd831aff",
      "parents": [
        "e54317deb5ccc504c4ec0371b4cf4d30ee6182bd"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed Jun 10 14:44:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 14:44:49 2026 +0800"
      },
      "message": "[api][test] Simplify cross-language Java action declaration and add e2e coverage (#827)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "e54317deb5ccc504c4ec0371b4cf4d30ee6182bd",
      "tree": "2a969851ace017973258b8c08a196876182d9677",
      "parents": [
        "d11488ac19dfbff039dea97f243ab8fd391f07d6"
      ],
      "author": {
        "name": "Joey Tong",
        "email": "joeyutong@gmail.com",
        "time": "Wed Jun 10 10:16:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 10:16:21 2026 +0800"
      },
      "message": "[runtime] Prune restored processing keys before snapshot (#825)"
    },
    {
      "commit": "d11488ac19dfbff039dea97f243ab8fd391f07d6",
      "tree": "07e2294906dc21f38a01b71b58bb05fae7dd2109",
      "parents": [
        "f775b468f3065a7f86dd1a1867db0c60eb9eb827"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue Jun 09 19:05:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 19:05:31 2026 +0800"
      },
      "message": "[doc] Fix installation guide: Maven version, Python 3.12 note, macOS arm64 pip workaround (#823)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "f775b468f3065a7f86dd1a1867db0c60eb9eb827",
      "tree": "b707270803485d5b80ad954fe4e8000246c96499",
      "parents": [
        "81e55ca304c08f9f0dd026a835d99e537be2e7b4"
      ],
      "author": {
        "name": "Xuannan",
        "email": "suxuannan95@gmail.com",
        "time": "Tue Jun 09 17:02:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 17:02:40 2026 +0800"
      },
      "message": "[doc] Scope Flink Agents Java Library install step to Java jobs (#818)\n\nThe Python entry point already registers the required JARs via\nenv.add_jars()/pipeline.jars, so copying JARs into $FLINK_HOME/lib/ is\nunnecessary for Python users and risks pushing integration deps into the\nsystem classloader. Limit this step to Java jobs, switch the official\nrelease path to a direct Maven Central download (no Python required), and\nnarrow the From Source copy to the self-contained fat JAR only."
    },
    {
      "commit": "81e55ca304c08f9f0dd026a835d99e537be2e7b4",
      "tree": "4a63f4491f2b2103133ab2e5ac1d12f28555d5dd",
      "parents": [
        "efb4e235aab897d8a9dc54166e0381d0e28aab4c"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Tue Jun 09 01:54:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 16:54:26 2026 +0800"
      },
      "message": "[test][runtime] Strengthen live-LLM e2e tests with structured tool-invocation assertions (#722)"
    },
    {
      "commit": "efb4e235aab897d8a9dc54166e0381d0e28aab4c",
      "tree": "fbbf28d82c04471c3d31134d9e5f3c6835c5a06d",
      "parents": [
        "09eb94cb4cb9080c8191b65714b1268e5627c0d1"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Tue Jun 09 16:22:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 16:22:55 2026 +0800"
      },
      "message": "[docs] Clarify Workflow Agent event emission and metadata contract (#813)\n\nResolves the two documentation follow-ups in #793 (docs-only, no\nruntime/API change):\n\n1. Split the misleading \"Send Event\" snippet that sent a ChatRequestEvent\n   and an OutputEvent from a single action into separate \"trigger another\n   action\" and \"emit downstream output\" examples, and add a hint explaining\n   that an OutputEvent is emitted downstream immediately (bypassing action\n   routing) while other events are routed to their listening actions.\n\n2. Document the base-Event metadata contract for custom event subclasses:\n   reconstruction should preserve the base id (both languages; assign it last\n   in Python because the content-based id regenerates on field changes) and\n   sourceTimestamp (Java only, runtime-internal). Update the MyEvent example\n   to follow the contract, matching built-in events.\n\nCo-authored-by: bosiew.tian \u003ctianboxiu.tbx@alibaba-inc.com\u003e"
    },
    {
      "commit": "09eb94cb4cb9080c8191b65714b1268e5627c0d1",
      "tree": "16b1d222244b882593e9d22690cc3aee6b7d6cfa",
      "parents": [
        "38ecaa46d220fc19f0031f832adad127e95373d9"
      ],
      "author": {
        "name": "vishnu prakash",
        "email": "nvishnuprakash02@gmail.com",
        "time": "Tue Jun 09 13:30:18 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 16:00:18 2026 +0800"
      },
      "message": "[hotfix] Add missing license header line in bash tool and skill modules (#820)"
    }
  ],
  "next": "38ecaa46d220fc19f0031f832adad127e95373d9"
}
