)]}'
{
  "log": [
    {
      "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)"
    },
    {
      "commit": "38ecaa46d220fc19f0031f832adad127e95373d9",
      "tree": "2d9f8739ccca6c8ce5453fa7b84fdcb28e7789f7",
      "parents": [
        "8d8d5d7702bd7a0c99d0fff183d8daa94e4d14f0"
      ],
      "author": {
        "name": "Alan Z.",
        "email": "shuai.xyz@gmail.com",
        "time": "Tue Jun 09 00:49:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 15:49:27 2026 +0800"
      },
      "message": "[doc] update \"Native Integration Support Matrix\" in FAQ (#819)"
    },
    {
      "commit": "8d8d5d7702bd7a0c99d0fff183d8daa94e4d14f0",
      "tree": "2ba639fbe24313a6f9624f061a916ffcb4ab7441",
      "parents": [
        "bd3c62a0fbe812dedb6fe980083daf90209e12fe"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Tue Jun 09 00:08:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 15:08:34 2026 +0800"
      },
      "message": "[ci] Refactor CI of test cases in integration module (#702)\n\nTag the 10 tests under python/flink_agents/integrations/*/tests/ that\nrequire live external services (Ollama, DashScope, OpenAI, Azure,\nAnthropic, Chroma) or optional Python deps (mem0) with a new\n@pytest.mark.integration marker. Register the marker in\npython/pyproject.toml with strict_markers enabled. Update tools/ut.sh\nto split unit and integration arms via the new marker:\n\n  - ut-python (run_e2e\u003dfalse): adds -m \"not integration\" to the\n    existing -k \"not e2e_tests\" filter. Drops 70 tests from the\n    unit-test job (was 518, now 448), which previously skipped\n    silently in 5 of 6 matrix cells.\n  - it-python (run_e2e\u003dtrue): runs two sequential pytest invocations\n    -- existing -k \"e2e_tests_integration\" (27 tests, unchanged) and\n    new -m \"integration\" (70 tests) -- with aggregated exit codes and\n    an exit-5 trap on the integration arm to defend against -m\n    selector typos that --strict-markers cannot catch.\n\nNo .github/workflows/ci.yml change required.\n\ntest_mcp.py is intentionally not tagged: it self-hosts an MCP server\nvia multiprocessing and runs deterministically without external deps.\n\nCloses #161"
    },
    {
      "commit": "bd3c62a0fbe812dedb6fe980083daf90209e12fe",
      "tree": "0c0e7f282d13d5dd06ff6464d8187d617b5f0533",
      "parents": [
        "8c348f5d45f53cee2b1ac26dd4b8029c94aa609c"
      ],
      "author": {
        "name": "vishnu prakash",
        "email": "nvishnuprakash02@gmail.com",
        "time": "Tue Jun 09 12:28:52 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 14:58:52 2026 +0800"
      },
      "message": "[python][test] Add unit tests for tool schema conversion utilities (#815)"
    },
    {
      "commit": "8c348f5d45f53cee2b1ac26dd4b8029c94aa609c",
      "tree": "2027d0b71c601fdc12668575264a13961b1b2d5a",
      "parents": [
        "cb65797130838f64390052ba7d09cd093d33b670"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Tue Jun 09 11:56:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 11:56:27 2026 +0800"
      },
      "message": "[docs] Introduce TableReviewAnalysisAgent and update workflow quickstart documentation (#807)"
    },
    {
      "commit": "cb65797130838f64390052ba7d09cd093d33b670",
      "tree": "af60ea28bdb75bf1ca202a7d63a29668795ef421",
      "parents": [
        "01495962e0e661a1640436fc6464250f7bff0ba0"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue Jun 09 10:58:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 10:58:41 2026 +0800"
      },
      "message": "[docs] Fix memory examples and clarify long-term memory isolation (#794) (#816)\n\n* [docs] Fix memory examples and clarify long-term memory isolation (#794)\n\n- Soften LTM context isolation wording: isolation is keyed on\n  String.valueOf(key.hashCode()), so hash collisions may share a context.\n- Document the Java+Mem0 Flink version prerequisite that throws at startup.\n- Rename \"Complete Example\" to \"Usage Snippet\" and note these are action\n  fragments, not standalone agents; link to the Workflow Agent Quickstart.\n- Fix Java example: getInput() returns Object, wrap with String.valueOf.\n- Fix MemoryRef#resolve cast: resolve returns MemoryObject, read getValue().\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "01495962e0e661a1640436fc6464250f7bff0ba0",
      "tree": "57fe80eaefb31c519b7487c2cf749c796fda1cdf",
      "parents": [
        "388a89e416c06d23b269d958bd1c66ea47633843"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 19:43:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 19:43:54 2026 +0800"
      },
      "message": "[docs][yaml] Polish yaml doc and add bedrock alias (#812)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "388a89e416c06d23b269d958bd1c66ea47633843",
      "tree": "b917b02ca97bc29d0a623b832e652476c2d864fe",
      "parents": [
        "9eadd0dd80d14a213d10ca8c426ffa9e3af94182"
      ],
      "author": {
        "name": "Haocong Wang",
        "email": "75206183+Ryan-Nightwish@users.noreply.github.com",
        "time": "Mon Jun 08 19:22:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 19:22:48 2026 +0800"
      },
      "message": "[bugfix][docs] Fix workflow agent quickstart code snippet and comment (#808)\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "9eadd0dd80d14a213d10ca8c426ffa9e3af94182",
      "tree": "fd3fe414230ebdc1344082e3ebcfcfa78248f549",
      "parents": [
        "c0f532d22f63540d714320a4f775e826f376e0b8"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Mon Jun 08 19:03:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 19:03:28 2026 +0800"
      },
      "message": "[docs] Polish react_agent doc: imports, runnable-example link, tool prerequisite, prompt and output-schema clarifications (#802)\n\nDoc-quality follow-ups from react_agent doc verification (#741):\n\n- Overview: add the missing trailing period (line 27).\n- Add a top-of-page runnable-example pointer (ReAct Agent Quickstart +\n  the react_agent_example.py / ReActAgentExample.java sources) and a\n  consolidated imports block, so the page\u0027s snippets are self-contained.\n- Note that tools referenced in `tools\u003d[...]` must be registered on the\n  AgentsExecutionEnvironment before the agent runs, with add_resource /\n  addResource examples and a link to the Tool Use registration guide.\n- Reword the prompt structure from a hard \"must contain two messages\"\n  rule into a recommended pattern; the SYSTEM message is optional and the\n  schema instruction is prepended automatically when it is absent.\n- Document how USER-message placeholder names are derived from the input\n  element (primitive -\u003e {input}; Row -\u003e field names; dict/Map -\u003e keys;\n  BaseModel/Pojo -\u003e object fields).\n- Clarify the output schema as BaseModel (Python) / Pojo class (Java) /\n  RowTypeInfo (both), since BaseModel is Python-only.\n\nCo-authored-by: bosiew.tian \u003ctianboxiu.tbx@alibaba-inc.com\u003e"
    },
    {
      "commit": "c0f532d22f63540d714320a4f775e826f376e0b8",
      "tree": "95256708990ba443e67ce480acf48e14db6c433b",
      "parents": [
        "5d79b7bb161f1f0054825b08615c456c81ec5f67"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 18:47:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 18:47:04 2026 +0800"
      },
      "message": "[examples] Quickstart process_chat_response fails fast on malformed JSON (#811)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "5d79b7bb161f1f0054825b08615c456c81ec5f67",
      "tree": "e916265310a22bb36bff5a297160497e6a8b0494",
      "parents": [
        "a33f4f2b05e8a61dafd018cfbe2d1c85b99b523a"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Mon Jun 08 18:46:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 18:46:17 2026 +0800"
      },
      "message": "[docs] Document custom job name in quickstart examples (#806)"
    },
    {
      "commit": "a33f4f2b05e8a61dafd018cfbe2d1c85b99b523a",
      "tree": "d6120d08bea3a2b70203cb57e20cc5d276667b8d",
      "parents": [
        "26eaffceff870fa02b11ec1108f381e5c9e155af"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 17:55:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 17:55:16 2026 +0800"
      },
      "message": "[docs][examples] Clarify prompt brace handling and use single braces in JSON examples (#810)\n\nSafeFormatter (Python) and Prompt.formatMessages (Java) only substitute\n{key}; they do not collapse {{ }} to { }. Doubled braces reach the LLM\nverbatim, which may copy them into replies and break downstream json.loads.\n\n- Document the actual brace rules; drop the wrong \"double to escape\" note.\n- Switch all JSON examples in docs and the quickstart example to single\n  braces. Cross-reference from yaml.md.\n\nCloses #781\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "26eaffceff870fa02b11ec1108f381e5c9e155af",
      "tree": "c23f65083ad1b15a1262132e65138b07a5ba9195",
      "parents": [
        "0c8da869605112de7549393d5ebeb1393e0bbe1f"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Mon Jun 08 17:54:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 17:54:28 2026 +0800"
      },
      "message": "[docs] Polish integrate_with_flink doc: self-contained snippets and language-scoped notes (#800)\n\n- Fix Overview grammar: \"By integrating agents with Flink DataStream/Table\".\n- Make the Python/Java DataStream and Table snippets self-contained: define\n  YourPojo / MyKeySelector / RowKeySelector, replace bare \"...\" sources with\n  concrete calls, add the real imports, and link to runnable examples.\n- Correct the misleading Java \"always a nested row\" comment: the agent output\n  is exposed as a single anonymous column f0; nest as ROW only for composite\n  output (matches FlinkIntegrationTest.testFromTableToTable\u0027s flat f0 STRING).\n- Document the Python/Java output-column naming difference (named RowTypeInfo\n  fields vs the Java f0 default).\n\nCloses #777\n\nCo-authored-by: bosiew.tian \u003ctianboxiu.tbx@alibaba-inc.com\u003e"
    },
    {
      "commit": "0c8da869605112de7549393d5ebeb1393e0bbe1f",
      "tree": "ade86061c84784fe197228de4a365d2b45e65433",
      "parents": [
        "af28c5808cd391d988a0fef19eea6a11ad03fa92"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 17:12:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 17:12:11 2026 +0800"
      },
      "message": "[fix] Make agents block optional so infra-only YAML files load (#775) (#809)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "af28c5808cd391d988a0fef19eea6a11ad03fa92",
      "tree": "fe0a9c69e473606f9cf2f28d4dd4bf1b174924ca",
      "parents": [
        "d1c0ee71aa16d0a5bd06b7898ea2c6c4b10b054b"
      ],
      "author": {
        "name": "Haocong Wang",
        "email": "75206183+Ryan-Nightwish@users.noreply.github.com",
        "time": "Mon Jun 08 17:03:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 17:03:01 2026 +0800"
      },
      "message": "[docs] Add missing Skills Agent Quickstart link to overview page (#805)\n\nCo-authored-by: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "d1c0ee71aa16d0a5bd06b7898ea2c6c4b10b054b",
      "tree": "afb7551cc7132a4e8551e9f9a5a24b4040c9a18c",
      "parents": [
        "e9afbfcf5e1c61300a0442e179b5002ab9281ac9"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Mon Jun 08 16:35:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 16:35:45 2026 +0800"
      },
      "message": "[examples] Add static import for copyResource in YamlWorkflowAgentExample (#799)"
    },
    {
      "commit": "e9afbfcf5e1c61300a0442e179b5002ab9281ac9",
      "tree": "44278348214deb399f6f6fec62d9f2055fe64270",
      "parents": [
        "0bb16280b3ed6496356341582eaa4ec542bfbdd9"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Mon Jun 08 16:13:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 16:13:04 2026 +0800"
      },
      "message": "[bugfix][docs] Align skills agent quickstart doc model name with code (qwen3:8b → qwen3.5:9b) (#796)"
    },
    {
      "commit": "0bb16280b3ed6496356341582eaa4ec542bfbdd9",
      "tree": "e013a6b8f47fff00fa5947602cbc4a268e344744",
      "parents": [
        "2c5257a6ef88b9b303e8def75445c2db04a6c0eb"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 16:03:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 16:03:38 2026 +0800"
      },
      "message": "[fix] Reject parameter_types on Python YAML tools (#774) (#804)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "2c5257a6ef88b9b303e8def75445c2db04a6c0eb",
      "tree": "4f0fa9467b711f8d9423fde7dbbdd6dc4db92827",
      "parents": [
        "14f2b8906779cb1704c20ad93c61c153518a4d7b"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Mon Jun 08 15:01:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 15:01:09 2026 +0800"
      },
      "message": "[docs] Document MCP server retry configuration (#786)"
    },
    {
      "commit": "14f2b8906779cb1704c20ad93c61c153518a4d7b",
      "tree": "0a168741931abc151accb4c9fa9b66159099a908",
      "parents": [
        "fe356f322b1742735ff3abe25212ab0e2573bb3d"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Mon Jun 08 14:47:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:47:12 2026 +0800"
      },
      "message": "[docs] Fix uncompilable x::getId in integrate_with_flink DataStream snippet (#791)\n\nCo-authored-by: bosiew.tian \u003ctianboxiu.tbx@alibaba-inc.com\u003e"
    },
    {
      "commit": "fe356f322b1742735ff3abe25212ab0e2573bb3d",
      "tree": "bb21257b43ed3e50cdc5fad9cece560ad5926623",
      "parents": [
        "0ec10b6b1ff12e916d76560ac61df6f7471f9e6f"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 14:39:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:39:00 2026 +0800"
      },
      "message": "[fix] Rename format_string positional param to avoid {text} kwarg collision (#792)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "0ec10b6b1ff12e916d76560ac61df6f7471f9e6f",
      "tree": "0285914f0959c9c461bb9351cf65fd39ece7dd95",
      "parents": [
        "8918cb7eac973c3168722cc925469a756415da0f"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Mon Jun 08 14:05:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:05:07 2026 +0800"
      },
      "message": "[docs]clarify Java toTable takes only Schema in integrate_with_flink (#790)\n\nCo-authored-by: bosiew.tian \u003ctianboxiu.tbx@alibaba-inc.com\u003e"
    },
    {
      "commit": "8918cb7eac973c3168722cc925469a756415da0f",
      "tree": "0e4ed5f5f4e53b25ce3de321700458d23c46302d",
      "parents": [
        "471ab468cf4f4268d7e97249185e0bd9613b60d7"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon Jun 08 13:53:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 13:53:36 2026 +0800"
      },
      "message": "[doc][integrations] Document Mem0VectorStore and add its resource name constants (#789)\n\nCo-authored-by: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "471ab468cf4f4268d7e97249185e0bd9613b60d7",
      "tree": "2c632afb1e0f59f903c536639f7d4fe50304db67",
      "parents": [
        "290354e5e5cb08b85458baa878b2e4d30f95d66c"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Mon Jun 08 12:05:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 12:05:36 2026 +0800"
      },
      "message": "[docs] Add chat model retry metrics to monitoring (#787)"
    },
    {
      "commit": "290354e5e5cb08b85458baa878b2e4d30f95d66c",
      "tree": "20fd10e8d9745d7bfcd876408e8bebad2a22cf93",
      "parents": [
        "da62dcb32f7b86fe8aa4ad7b7974a6c53119b5fc"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Mon Jun 08 11:50:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:50:31 2026 +0800"
      },
      "message": "[docs] Fix Fluss action state table default value (#788)"
    },
    {
      "commit": "da62dcb32f7b86fe8aa4ad7b7974a6c53119b5fc",
      "tree": "41afea5eeef72f579f80182ed45503523d4b8bbf",
      "parents": [
        "5776bf46d523ea89b67929a141ea159d2f2c38fd"
      ],
      "author": {
        "name": "daken",
        "email": "94731050+da-daken@users.noreply.github.com",
        "time": "Mon Jun 08 11:02:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:02:36 2026 +0800"
      },
      "message": "[doc] Support TTL on ShortTermMemory in User Documentation (#784)\n\nCo-authored-by: daken \u003cdakengg@qq.com\u003e"
    },
    {
      "commit": "5776bf46d523ea89b67929a141ea159d2f2c38fd",
      "tree": "716145baf4bd2ee563b2c90f68f70f472ef63b72",
      "parents": [
        "f6a3b195a916ee9e0254bffd3261b8cad397b572"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Mon Jun 08 10:54:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 10:54:18 2026 +0800"
      },
      "message": "[bugfix][examples] Point quickstart FileSource at product_review.txt instead of the resources dir (#782)"
    },
    {
      "commit": "f6a3b195a916ee9e0254bffd3261b8cad397b572",
      "tree": "3a5ae088ac8c2d58d3009945817273a3da3ca050",
      "parents": [
        "e94da402cc106c5a1f7593d805cff5efb6ef6888"
      ],
      "author": {
        "name": "bosiew.tian",
        "email": "wzhero1@gmail.com",
        "time": "Sun Jun 07 00:48:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 00:48:36 2026 +0800"
      },
      "message": "[integrations][mcp] Read MCP server timeout from the \"timeout\" descriptor argument (#771)"
    },
    {
      "commit": "e94da402cc106c5a1f7593d805cff5efb6ef6888",
      "tree": "24ee93c3697ef6b1b13951d5543dadecf0497dea",
      "parents": [
        "1ca367d717594c4f9d002c490efd271e0fffcba4"
      ],
      "author": {
        "name": "yunfengzhou-hub",
        "email": "yuri.zhouyunfeng@outlook.com",
        "time": "Fri Jun 05 10:41:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 10:41:28 2026 +0800"
      },
      "message": "[metric] Add key-value metric group for model and action dimensions (#760)"
    },
    {
      "commit": "1ca367d717594c4f9d002c490efd271e0fffcba4",
      "tree": "84021a8f7802843a2386210e77763bf6b0657963",
      "parents": [
        "35b7f83793fe1aea4f3beb2834f35e1cc89df900"
      ],
      "author": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Tue Jun 02 09:16:38 2026 +0800"
      },
      "committer": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Tue Jun 02 09:16:38 2026 +0800"
      },
      "message": "[project] Remove inactive collaborators w.r.t. the ASF 10-collaborators limit.\n"
    },
    {
      "commit": "35b7f83793fe1aea4f3beb2834f35e1cc89df900",
      "tree": "026c4fb32cf3f617bd90e5f1a722ee73a3ad6f58",
      "parents": [
        "f9d9eac09c0ed3115e8db75b3098ca1a21092b60"
      ],
      "author": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Mon Jun 01 18:01:19 2026 +0800"
      },
      "committer": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Mon Jun 01 18:01:19 2026 +0800"
      },
      "message": "Add Joey Tong as a collaborator\n"
    },
    {
      "commit": "f9d9eac09c0ed3115e8db75b3098ca1a21092b60",
      "tree": "6852eb9d05c5a6bf4633cd14fe955092bbc36884",
      "parents": [
        "e98af52851a580459da0f52c1123b942779c9182"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sun May 31 23:27:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:27:06 2026 +0800"
      },
      "message": "[integrations][api] Rename connection-layer chat() argument to modelParams (#720)\n\nRename the model-parameters argument of the chat-model connection layer from\n\"arguments\" to \"modelParams\", so the concept has one consistent name end-to-end.\nThe setup layer (BaseChatModelSetup.chat) was renamed to modelParams in #698; the\nconnection layer (BaseChatModelConnection.chat and all provider overrides) still\nnamed the same value \"arguments\", which also collided with the prompt-template and\ntool-call \"arguments\".\n\nCovers the abstract method (signature + Javadoc), the Pemja bridge override, the\nseven provider connections, and their in-file model-params locals/helper params\n(rawArguments -\u003e rawModelParams in the buildRequest helpers). Tool-call \"arguments\"\n(JSON keys, parseArguments/serializeArguments helpers, MCP args) are left untouched.\n\nErasure-compatible positional rename: call sites are unaffected, and the rename is\ninvisible across the Python boundary (the Pemja bridge forwards the map contents,\nnever a key named \"arguments\")."
    },
    {
      "commit": "e98af52851a580459da0f52c1123b942779c9182",
      "tree": "09ae89d841ee85c567bbbfc7262c6982b4d3b9ea",
      "parents": [
        "e2096725abab6c22b37006caafe9fdee6154658b"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sun May 31 01:16:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 16:16:27 2026 +0800"
      },
      "message": "[api][plan][integrations] Record built-in chat token metrics outside the async call boundary (#712)"
    },
    {
      "commit": "e2096725abab6c22b37006caafe9fdee6154658b",
      "tree": "73e44c7f29e98df8ffd4601dc59aced5a1ef14e2",
      "parents": [
        "1da56c9be04f272397f16bda4f16bc3af281b1cd"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sat May 30 22:12:40 2026 -0700"
      },
      "committer": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Sun May 31 15:26:04 2026 +0800"
      },
      "message": "[test] Add per-test retry for flaky live-LLM e2e/cross-language tests\n\nThe live-LLM e2e and cross-language tests run a small Ollama model\n(qwen3:1.7b) and intermittently fail on non-deterministic tool-call\nresults or Ollama read timeouts, turning CI red on unrelated changes.\n\nRetry these suites automatically, scoped to the e2e/cross-language\ninvocations only so unit and style runs stay deterministic:\n- Python: pytest-rerunfailures with --reruns 2 --reruns-delay 5 on the\n  e2e pytest calls in tools/ut.sh and tools/e2e.sh.\n- Java: -Dsurefire.rerunFailingTestsCount\u003d2 on the e2e mvn calls in\n  tools/ut.sh and test_resource_cross_language.sh.\n\nA test that passes on retry yields a green build but is reported as a\nflake, so the signal is preserved rather than masked.\n\nPart of #716.\n"
    },
    {
      "commit": "1da56c9be04f272397f16bda4f16bc3af281b1cd",
      "tree": "c1e52a8df3c083da235630bedd71b2a0a54ddd9a",
      "parents": [
        "a26532e1a1fd560bfdc4eecb11a5587c44b418a7"
      ],
      "author": {
        "name": "Kerui Wang",
        "email": "91046107+rosemarYuan@users.noreply.github.com",
        "time": "Sun May 31 15:21:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 15:21:29 2026 +0800"
      },
      "message": "[hotfix] Make cross-language e2e test order-insensitive and add request time (#713)"
    },
    {
      "commit": "a26532e1a1fd560bfdc4eecb11a5587c44b418a7",
      "tree": "fbf4edddf3d0b182c1e1cbc954eb9c1bdac11612",
      "parents": [
        "39c5878c58b08c15d6302688ed91745d6ab09ffd"
      ],
      "author": {
        "name": "Adesh Nalpet Adimurthy",
        "email": "390.adesh@gmail.com",
        "time": "Sun May 31 03:01:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 15:01:48 2026 +0800"
      },
      "message": "[Docs] Cross-Language Actions (#714)"
    },
    {
      "commit": "39c5878c58b08c15d6302688ed91745d6ab09ffd",
      "tree": "4a63e8612e315544c237fa84cabead1129b01c2a",
      "parents": [
        "0e89ac8883438cfd1d7e2d092c36a521348f2f01"
      ],
      "author": {
        "name": "daken",
        "email": "94731050+da-daken@users.noreply.github.com",
        "time": "Sun May 31 14:17:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 14:17:27 2026 +0800"
      },
      "message": "[Feature] Support TTL on ShortTermMemory (#657)"
    },
    {
      "commit": "0e89ac8883438cfd1d7e2d092c36a521348f2f01",
      "tree": "761727ca87ab6ef3cdb2f58546fd0892b4ec644e",
      "parents": [
        "9c7e6640c8eeffa5da536829b8d45b157d3008e3"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sat May 30 23:07:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 31 14:07:57 2026 +0800"
      },
      "message": "[api][plan][runtime] Separate prompt arguments from message extra_args in BaseChatModelSetup.chat() (#698)"
    },
    {
      "commit": "9c7e6640c8eeffa5da536829b8d45b157d3008e3",
      "tree": "9ea581af1dbaaafa62a8a987ede21bf9da0271a3",
      "parents": [
        "918f812a51e771c0be82921ed822e88d4ca62137"
      ],
      "author": {
        "name": "Adesh Nalpet Adimurthy",
        "email": "390.adesh@gmail.com",
        "time": "Fri May 29 01:12:01 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 13:12:01 2026 +0800"
      },
      "message": "[Feature] Cross Language Actions (#709)"
    },
    {
      "commit": "918f812a51e771c0be82921ed822e88d4ca62137",
      "tree": "9ea26e1b9257b94e7e8548104f291177278f193c",
      "parents": [
        "1628a2b74f31c8f717b0c9525a44fba161a595c6"
      ],
      "author": {
        "name": "daken",
        "email": "94731050+da-daken@users.noreply.github.com",
        "time": "Fri May 29 00:05:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 00:05:59 2026 +0800"
      },
      "message": "[doc] Add docs for built-in actions (#669)"
    },
    {
      "commit": "1628a2b74f31c8f717b0c9525a44fba161a595c6",
      "tree": "9e697eaf805e7b92f987a56207eab2068e4486d1",
      "parents": [
        "e05521ba388bf7e27dfcc7cbd2a65ead589119d2"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Thu May 28 00:02:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 00:02:27 2026 +0800"
      },
      "message": "[docs][examples] Add Agent Skills documentation and quickstart example (#707)\n\nCo-authored-by: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "e05521ba388bf7e27dfcc7cbd2a65ead589119d2",
      "tree": "e0da2cdf9337166e3a15334b14e6ac2e56cfa02c",
      "parents": [
        "99dff18a00fccfe3b56cdbd54055ba578398c15c"
      ],
      "author": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed May 27 23:03:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 23:03:58 2026 +0800"
      },
      "message": "[doc] Add YAML API documentation and quickstart example. (#705)"
    },
    {
      "commit": "99dff18a00fccfe3b56cdbd54055ba578398c15c",
      "tree": "db56204e24ec416dfed84d95cf22f2d4ca0a11c6",
      "parents": [
        "474537589d08443ab703297e52616894a745e1ab"
      ],
      "author": {
        "name": "Alan Z.",
        "email": "shuai.xyz@gmail.com",
        "time": "Wed May 27 05:46:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 20:46:36 2026 +0800"
      },
      "message": "[Feature][Integration][Java] Add built-in support for Azure OpenAI Chat Model (#695)"
    },
    {
      "commit": "474537589d08443ab703297e52616894a745e1ab",
      "tree": "51a1ab164dbdec7094bb2434725a92f9da86bd84",
      "parents": [
        "39f7ca5e0fb091d5b31ccebc90950d8cf812312a"
      ],
      "author": {
        "name": "Avichay Marciano",
        "email": "martziano@gmail.com",
        "time": "Mon May 25 16:53:00 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 21:53:00 2026 +0800"
      },
      "message": "[Doc] Add documentation for Amazon Bedrock, Amazon OpenSearch, and Amazon S3 Vectors integrations (#680)"
    },
    {
      "commit": "39f7ca5e0fb091d5b31ccebc90950d8cf812312a",
      "tree": "e968fd18188b5d29d5250266beef58d2982376ca",
      "parents": [
        "f212da83810361dc4823a180a97ddb1f5047a85c"
      ],
      "author": {
        "name": "Jinkun Liu",
        "email": "jkkowo666@gmail.com",
        "time": "Mon May 25 21:48:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 21:48:42 2026 +0800"
      },
      "message": "[doc] Refactor the installation documentation based on install.sh (#700)"
    },
    {
      "commit": "f212da83810361dc4823a180a97ddb1f5047a85c",
      "tree": "fb017983a61bd5b1cc27a272ad5e211c3509f5fd",
      "parents": [
        "dd30875430e494e3204460c9f5ae97e05a15dde7"
      ],
      "author": {
        "name": "The Apache Software Foundation",
        "email": "root-asf-gitbox-commits@apache.org",
        "time": "Mon May 25 04:35:05 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 17:35:05 2026 +0800"
      },
      "message": "[INFRA] Set up default rulesets for default and release branches (#681)\n\nCo-authored-by: Xintong Song \u003ctonysong820@gmail.com\u003e"
    },
    {
      "commit": "dd30875430e494e3204460c9f5ae97e05a15dde7",
      "tree": "df3d2b91c753eefe38c32f968dee8737c79af30a",
      "parents": [
        "708206544a3cd858f67447f7865f13ae777aa27e"
      ],
      "author": {
        "name": "youjin",
        "email": "meeteugenius@gmail.com",
        "time": "Mon May 25 10:06:59 2026 +0800"
      },
      "committer": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Mon May 25 14:01:38 2026 +0800"
      },
      "message": "[ci] Use local rsync-deployments action in docs workflow\n\nSwitch the two upload steps in .github/workflows/docs.yml from\nburnett01/rsync-deployments to the locally-defined action added in the\nprevious commit. This fixes the nightly docs build, which currently\nfails because the third-party action is not in the ASF allowed-actions\nlist.\n\nThis commit only touches main\u0027s workflow file. The cron trigger always\nreads the workflow definition from the default branch, so release\nbranches do not need this change for the scheduled build to work --\nthey only need the local action committed alongside.\n"
    },
    {
      "commit": "708206544a3cd858f67447f7865f13ae777aa27e",
      "tree": "b6efc5824526bca74f82d3a11d64a11b23542550",
      "parents": [
        "962d58713ac5237269f895fdc5e9815edf4e4102"
      ],
      "author": {
        "name": "youjin",
        "email": "meeteugenius@gmail.com",
        "time": "Mon May 25 10:06:43 2026 +0800"
      },
      "committer": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Mon May 25 14:01:38 2026 +0800"
      },
      "message": "[ci] Add local rsync-deployments composite action\n\nAdd a local composite action under .github/actions/rsync-deployments\nthat wraps rsync-over-SSH for documentation deployment. Ported from\napache/flink-kubernetes-operator#1035 with MIT attribution preserved.\n\nThis action is intended to replace the third-party\nburnett01/rsync-deployments action, which is not in the ASF\nallowed-actions list. Locally-defined actions are not subject to\nthat allow-list, so they can be used safely in ASF repositories.\n\nThis commit is purely additive (no existing files modified) and can be\ncherry-picked cleanly to release branches so the nightly docs matrix\njob can resolve the local action when checking out those branches.\n"
    },
    {
      "commit": "962d58713ac5237269f895fdc5e9815edf4e4102",
      "tree": "2490947e82cef729a3175a93d3252762ebff87b8",
      "parents": [
        "5b937d6f9d4f3843f66f6484d4f5c3725c3799a5"
      ],
      "author": {
        "name": "Jinkun Liu",
        "email": "jkkowo666@gmail.com",
        "time": "Fri May 22 22:48:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 22:48:20 2026 +0800"
      },
      "message": "[tools]Import Wizard for Installation Setup (#599)\n\nCo-authored-by: WenjinXie \u003cwenjin272@gmail.com\u003e"
    },
    {
      "commit": "5b937d6f9d4f3843f66f6484d4f5c3725c3799a5",
      "tree": "2f72a937da8c81f100ff39d8b5e3f71c614980a5",
      "parents": [
        "2fa1a3d62ac961daa8afbc084b94a57e6a3f2a10"
      ],
      "author": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Thu May 21 22:26:08 2026 +0800"
      },
      "committer": {
        "name": "Xintong Song",
        "email": "tonysong820@gmail.com",
        "time": "Thu May 21 22:26:08 2026 +0800"
      },
      "message": "[build] Ignore .claude directory\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "2fa1a3d62ac961daa8afbc084b94a57e6a3f2a10",
      "tree": "6e0e73f5b9d981133fdaff74a7daa9f5e7ac2126",
      "parents": [
        "6a109270a86aa770880f10d45cbe0d1ea624e5aa"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 20 17:32:24 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed May 20 21:07:47 2026 +0800"
      },
      "message": "[api][runtime][python] Extend agent skill loading repository.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "6a109270a86aa770880f10d45cbe0d1ea624e5aa",
      "tree": "0759c4cc305fe39e4d3913ea278860430a110496",
      "parents": [
        "487bd5844229f9b6712b56fac58a21a8026db62a"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 20 16:26:09 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed May 20 21:07:47 2026 +0800"
      },
      "message": "[api][plan][runtime][java] Extend agent skill loading repository.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "487bd5844229f9b6712b56fac58a21a8026db62a",
      "tree": "005c5e145cbc33ff84a8a686a6fd70acb99f1247",
      "parents": [
        "cc4362df9c45e41a4a1e05279f04626f802080ac"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 20 16:20:36 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed May 20 21:07:47 2026 +0800"
      },
      "message": "[runtime] Own ResourceContext inside ResourceCache for shared lifecycle.\n"
    },
    {
      "commit": "cc4362df9c45e41a4a1e05279f04626f802080ac",
      "tree": "77102732d8e96d125633813cf0c83f1044a877fb",
      "parents": [
        "4e4689fc5c515f71d1c3f7127f1896337e2b5dba"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Tue May 19 14:59:40 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed May 20 16:52:35 2026 +0800"
      },
      "message": "[api][java] Introduce YAML API for declaring agents\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "4e4689fc5c515f71d1c3f7127f1896337e2b5dba",
      "tree": "4fd4d42672a7f3e9caf74c678df4aa2da1401caf",
      "parents": [
        "989a92e322db6a6409965460a847d2e028b3fbfc"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Tue May 19 14:59:23 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Wed May 20 16:52:35 2026 +0800"
      },
      "message": "[api][plan][runtime] Cross-language Function descriptors and FunctionTool\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "989a92e322db6a6409965460a847d2e028b3fbfc",
      "tree": "4371e2758e85e112ea122e62e5b4b2108c8c344b",
      "parents": [
        "bb29d0e1d5b487a130ccf3bdf2d83e8a46d1d0c0"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Tue May 19 04:00:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 19:00:41 2026 +0800"
      },
      "message": "[hotfix] Make Ollama embedding test actually run in CI (#686)"
    },
    {
      "commit": "bb29d0e1d5b487a130ccf3bdf2d83e8a46d1d0c0",
      "tree": "42816e2a8e9188eee2772b3fe0fe32f167028709",
      "parents": [
        "5182f2534df29dd128b7626b277e52a178860d75"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Tue May 19 03:51:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 18:51:17 2026 +0800"
      },
      "message": "[hotfix] Move chat-model os.environ mutations out of module scope in e2e tests (#689)"
    },
    {
      "commit": "5182f2534df29dd128b7626b277e52a178860d75",
      "tree": "0c23e8b3bbe2fcdde694658aa8d66f5fe0a2aa38",
      "parents": [
        "eac1221f9a9d8d8298dd6dbe577bfd8425a0031c"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Thu May 14 14:43:50 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon May 18 22:43:24 2026 +0800"
      },
      "message": "[api] Introduce YAML API for declaring agents\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "eac1221f9a9d8d8298dd6dbe577bfd8425a0031c",
      "tree": "9ab63478e0c7fbc86524902d31b327375d87c507",
      "parents": [
        "66225cd72d3aa6a34f645b99df747311160a0c24"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Thu May 14 14:43:22 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Mon May 18 22:43:24 2026 +0800"
      },
      "message": "[api][plan][runtime] Cross-language Function/FunctionTool\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "66225cd72d3aa6a34f645b99df747311160a0c24",
      "tree": "ba9449b2ba93b573dcee5efb3cfbf76c097819ef",
      "parents": [
        "5eb9125d684e04299cf3d407efcd9de9fd371a3b"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sun May 17 23:15:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 14:15:19 2026 +0800"
      },
      "message": "[api] Specify model in ChatModelSetup (Java + Python) (#685)"
    },
    {
      "commit": "5eb9125d684e04299cf3d407efcd9de9fd371a3b",
      "tree": "9f8a6a3a5735e8560720202f529f8ed8fde861e5",
      "parents": [
        "d6ce8fc0a1513adc49782e735453852ac06a4a6f"
      ],
      "author": {
        "name": "Avichay Marciano",
        "email": "martziano@gmail.com",
        "time": "Mon May 18 07:14:17 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 12:14:17 2026 +0800"
      },
      "message": "[integrations][java] Fix OpenSearchVectorStore for Amazon OpenSearch Serverless (#678)\n\nFixes #674\n\nAOSS-specific differences from provisioned domains, addressed without changing\ndomain behaviour:\n\n- SigV4: add x-amz-content-sha256 and Content-Length before signing.\n- _refresh: skipped (not exposed on AOSS).\n- _bulk: omit custom _id on serverless and return AOSS-generated ids from\n  the response so add() callers get usable ids for later get/delete.\n- updateEmbedding on serverless throws UnsupportedOperationException\n  (no client-controllable _id, so update-by-id is impossible).\n- _bulk partial failures now surfaced (was silently dropping data).\n- createKnnIndex pins FAISS/HNSW (default NMSLIB on AOSS rejects filters).\n- Index propagation: 15s settle after create on serverless.\n\nVerified end-to-end against a live AOSS VECTORSEARCH collection.\n\nCo-authored-by: Avichay Marciano \u003cavichaym@github.com\u003e"
    },
    {
      "commit": "d6ce8fc0a1513adc49782e735453852ac06a4a6f",
      "tree": "e9fd51a815e0157c083e7879c17265923b43da4c",
      "parents": [
        "2d2b56283e6e88aae45aa1ef7a313da42a6dc5c0"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Mon May 18 11:49:23 2026 +0800"
      },
      "committer": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Mon May 18 11:49:23 2026 +0800"
      },
      "message": "[test] Enable e2e test for long-term memory after bump to flink 2.2.1\n"
    },
    {
      "commit": "2d2b56283e6e88aae45aa1ef7a313da42a6dc5c0",
      "tree": "d1729519aaecad42af565dd7645d0afee33e5deb",
      "parents": [
        "e5b3274be3b4d4cf22772300cc997ceb41267dbf"
      ],
      "author": {
        "name": "WAR10CK",
        "email": "war10ck.efz@gmail.com",
        "time": "Mon May 18 11:41:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 11:41:59 2026 +0800"
      },
      "message": "[Feature][Integration][Java] Add Milvus vector store integration (#663)\n\nSigned-off-by: YangYanbin \u003cwarlock.yyb@alibaba-inc.com\u003e"
    },
    {
      "commit": "e5b3274be3b4d4cf22772300cc997ceb41267dbf",
      "tree": "c55b0cbb1a7ee82f28d168bb06532cb602cf1119",
      "parents": [
        "cfb712701ccfe51c384e835f1dae37e8f7f67739"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sat May 16 08:32:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 23:32:37 2026 +0800"
      },
      "message": "[hotfix] Remove unused DurableExecutionManager.maybePruneState helper (#682)"
    },
    {
      "commit": "cfb712701ccfe51c384e835f1dae37e8f7f67739",
      "tree": "248de50076a31783449146171a5b702a6d2403c2",
      "parents": [
        "b1d65de3b23ef06ff0f7f2fde7a2aad9951f04fe"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Sat May 16 18:36:08 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Sat May 16 22:48:31 2026 +0800"
      },
      "message": "[dependency] Update flink version and constraint.\n"
    },
    {
      "commit": "b1d65de3b23ef06ff0f7f2fde7a2aad9951f04fe",
      "tree": "718ef8153890edc9d2944ca8de4900ab0f614a9c",
      "parents": [
        "2a4c858bf51c1b293c417a46db2362f2a8f32d2d"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Sat May 16 20:34:01 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Sat May 16 22:48:31 2026 +0800"
      },
      "message": "[hotfix] Embed on Python side for cross-language vector store\n\nWhen a JavaCollectionManageableVectorStore wraps a Java vector store\nbacked by a Python embedding model, the previous flow delegated query/\nadd/update to the Java side, which then called the embedding model from\nJava. For a PYTHON-backed embedding model that callback is a Java→Python\nre-entry on the Flink operator thread, and pemja\u0027s sub-interpreter state\non that thread ends up corrupted; the next pemja conversion in the same\nthread crashes inside JcpPyDecimal_Check → PyImport_ImportModule with a\nNULL sys.modules dereference.\n\nDrop the add/query/update overrides in JavaVectorStoreImpl and inherit\nBaseVectorStore\u0027s canonical flow: embed in Python first, then make a\nsingle-direction Python→Java call to addEmbedding/queryEmbedding/\nupdateEmbedding. open() now also chains super().open() so the embedding\nmodel resolves from string to instance before the Python embed step\nruns. fromPythonVectorStoreQuery (its only caller is gone) and the\nmatching python_java_utils helpers (get_mode_value,\nfrom_java_vector_store_query_result) are removed.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "2a4c858bf51c1b293c417a46db2362f2a8f32d2d",
      "tree": "b2057be81af84ef40d553667e2aa9d5a405a6874",
      "parents": [
        "273b159cb41908da541b6dfee8bee55157ff69ef"
      ],
      "author": {
        "name": "Avichay Marciano",
        "email": "martziano@gmail.com",
        "time": "Sat May 16 15:55:05 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 20:55:05 2026 +0800"
      },
      "message": "[api] Defensive-copy collection inputs in user-constructed events + add contract test (#677)\n\nWrap the List arg in new ArrayList\u003c\u003e() in the constructors of the events\nthat user code instantiates directly: ChatRequestEvent (messages) and\nContextRetrievalResponseEvent (documents). This avoids the JDK 17+ Kryo\nInaccessibleObjectException when callers pass List.of(...) or any other\nImmutableCollections instance.\n\nToolRequestEvent / ToolResponseEvent are intentionally not changed -\nthey are produced only by built-in framework actions, never by user code,\nso adding defensive copies there only adds overhead. (And shallow copies\nwouldn\u0027t help anyway: tool-call payloads can carry nested Map.of(...).)\n\nEventKryoSerializationTest in the e2e integration module asserts the\ndefensive-copy contract directly: the stored collection must be mutable.\nTwo tests, one per affected event.\n\nCo-authored-by: Avichay Marciano \u003cavichaym@amazon.com\u003e"
    },
    {
      "commit": "273b159cb41908da541b6dfee8bee55157ff69ef",
      "tree": "4043ed084a8cae1db63f8430e44b9540a3af6181",
      "parents": [
        "d17edb117fc1f9d82e3d4b2de39a5d17278c5842"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Fri May 15 20:33:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 16 11:33:10 2026 +0800"
      },
      "message": "[runtime] Handle notifyCheckpointAborted to stop leaking checkpoint entries (#667)\n\nIssue #665. When Flink aborts a checkpoint, it calls notifyCheckpointAborted\ninstead of notifyCheckpointComplete. The DurableExecutionManager only handled\nthe complete path, so the per-checkpoint sequence-number entry recorded by\nsnapshotLastCompletedSequenceNumbers was never released for aborted\ncheckpoints. Under sustained abort pressure (timeouts, alignment failures,\nbackend pressure), checkpointIdToSeqNums grew unboundedly.\n\nChanges:\n\n- Add DurableExecutionManager.notifyCheckpointAborted(long): removes the\n  entry from checkpointIdToSeqNums, guarded by the same actionStateStore\n  !\u003d null check as notifyCheckpointComplete. Does NOT prune durable action\n  state — the aborted checkpoint\u0027s writes were never committed, so the\n  prior committed checkpoint\u0027s recovery state is still load-bearing and\n  must not be pruned.\n\n- Add ActionExecutionOperator.notifyCheckpointAborted(long): thin override\n  that delegates to the manager and then calls super, mirroring the\n  existing notifyCheckpointComplete override.\n\n- Extend the symmetric-guard invariant javadoc on\n  snapshotLastCompletedSequenceNumbers and notifyCheckpointComplete to\n  name both release paths (complete OR abort). The actionStateStore !\u003d\n  null guard now lives on three methods; the cross-linked javadoc makes\n  that explicit and cites issues #645 and #665.\n\n- Three new DurableExecutionManagerTest cases (using the existing\n  getCheckpointIdToSeqNums() @VisibleForTesting accessor introduced in\n  #659):\n  * notifyAbortedRemovesEntryWithoutPruning — entry released, durable\n    state untouched (verified against a real InMemoryActionStateStore so\n    wrongful pruning would be observable).\n  * completedAndAbortedInterleavedKeepsInFlightEntries — three in-flight\n    checkpoints, one completes (state pruned), one aborts (state preserved),\n    one remains.\n  * noStoreModeNotifyCheckpointAbortedIsNoOp — symmetric null-store no-op\n    coverage matching the existing notifyCheckpointComplete null-store case."
    },
    {
      "commit": "d17edb117fc1f9d82e3d4b2de39a5d17278c5842",
      "tree": "8172088fadbb08f741e44401f8f870e634131059",
      "parents": [
        "2cb4fb038465c2dea792da61f209b3ac80b01dcf"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Fri May 15 17:29:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 17:29:43 2026 +0800"
      },
      "message": "[infra] Add daily workflow to label closed issues missing fixVersion (#605)"
    },
    {
      "commit": "2cb4fb038465c2dea792da61f209b3ac80b01dcf",
      "tree": "e618216df991980fc99b7adb99e0ef3d286e6a08",
      "parents": [
        "8f79c09a3971caaeef164668e4148fee67d09cba"
      ],
      "author": {
        "name": "twosom",
        "email": "72733442+twosom@users.noreply.github.com",
        "time": "Fri May 15 17:10:22 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 16:10:22 2026 +0800"
      },
      "message": "[Feature][Java] Add java event listeners config (#641)\n\nCo-authored-by: hope \u003chope@chosunbiz.com\u003e"
    },
    {
      "commit": "8f79c09a3971caaeef164668e4148fee67d09cba",
      "tree": "4d230305a23e7dffaa6cb721579ab5724d1fa4ac",
      "parents": [
        "8174771fef7b170f071047a7a0ab589a9199fb0c"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Thu May 14 23:42:03 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 14:42:03 2026 +0800"
      },
      "message": "[runtime] Lock null-store symmetry invariant in DurableExecutionManager (#666)"
    },
    {
      "commit": "8174771fef7b170f071047a7a0ab589a9199fb0c",
      "tree": "b635934b4d8b28a7fe5c5241672f2c3ef70e11af",
      "parents": [
        "b38ae21109bf5c8fb12e8d60a609f4e382eda9ba"
      ],
      "author": {
        "name": "Avichay Marciano",
        "email": "martziano@gmail.com",
        "time": "Fri May 15 09:39:07 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 14:39:07 2026 +0800"
      },
      "message": "[api][integration] Add ResourceName constants for AWS integrations (#679)\n\nCo-authored-by: Avichay Marciano \u003cavichaym@github.com\u003e"
    },
    {
      "commit": "b38ae21109bf5c8fb12e8d60a609f4e382eda9ba",
      "tree": "516115056016ad0d85249d9b83c9739c102592db",
      "parents": [
        "6142e5ea8c91e0535b75fa40725993b4ba7978b0"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Thu May 14 17:11:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 17:11:39 2026 +0800"
      },
      "message": "[hotfix][docs] Revert accidental hugo-book submodule bump from #628 (#672)"
    },
    {
      "commit": "6142e5ea8c91e0535b75fa40725993b4ba7978b0",
      "tree": "1b2dd0f127d50fc12b8bd4a4c48a2c17df9ce7b6",
      "parents": [
        "064341a3c7c49234117991f082911a377696e717"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Thu May 14 00:57:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 15:57:14 2026 +0800"
      },
      "message": "[runtime] Add comprehensive tests for ActionExecutionOperator manager classes  (#659)\n\n* [runtime] Add @VisibleForTesting seams for manager tests\n\n* [runtime] Add comprehensive tests for DurableExecutionManager\n\n* [runtime] Add comprehensive tests for EventRouter\n\n* [runtime] Add comprehensive tests for ActionTaskContextManager"
    },
    {
      "commit": "064341a3c7c49234117991f082911a377696e717",
      "tree": "bbb35cb6783fb82fe8e8aebd5f8fc7d31443bd31",
      "parents": [
        "171465f7f1b5f7841970fb9b657b84ceafead88e"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Thu May 14 15:18:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 15:18:24 2026 +0800"
      },
      "message": "[hotfix] Register all resource types added via Agent.addResource (#668)"
    },
    {
      "commit": "171465f7f1b5f7841970fb9b657b84ceafead88e",
      "tree": "0ea1ba1c703550944d5bd6ddcec447c38c889efd",
      "parents": [
        "19338057c0beac302ef7344ec1e68dc7927056b5"
      ],
      "author": {
        "name": "Junbo Wang",
        "email": "beryllwang@gmail.com",
        "time": "Thu May 14 09:26:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 09:26:08 2026 +0800"
      },
      "message": "[feature][runtime] Support Fluss as ActionStateStore backend (#628)"
    },
    {
      "commit": "19338057c0beac302ef7344ec1e68dc7927056b5",
      "tree": "05ad5f76d7dc180f643bf34c050a0849fa43363a",
      "parents": [
        "61490ea513ed81e4fde316dd1094e55b6bbc9838"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Wed May 13 01:22:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 16:22:50 2026 +0800"
      },
      "message": "[infra] Skip spotless in non-lint CI jobs to isolate code-style failures (#664)"
    },
    {
      "commit": "61490ea513ed81e4fde316dd1094e55b6bbc9838",
      "tree": "e3524d0bf876cdc33e30f7cc66d976cdef3f20d1",
      "parents": [
        "3abbb20debdf51c09e7ad3d32ab42ea721579faf"
      ],
      "author": {
        "name": "Eugene",
        "email": "meeteugenius@gmail.com",
        "time": "Wed May 13 11:35:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 11:35:21 2026 +0800"
      },
      "message": "[feature] Enable EventLog display in WebUI by default (#638)\n\n* [hotfix] Add log4j when running the end-to-end test in Flink 1.20\n\n* [runtime] Consolidate event-log settings into single agent-config map\n\n* [feature] Enable EventLog display in WebUI by default"
    },
    {
      "commit": "3abbb20debdf51c09e7ad3d32ab42ea721579faf",
      "tree": "6467c003e33742983e314d0c92dfedfd0e35e798",
      "parents": [
        "e617645a6e22290da0b1dd1ce86cccc4813177fe"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Tue May 12 19:18:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 10:18:21 2026 +0800"
      },
      "message": "[doc] Document event log levels (#658)"
    },
    {
      "commit": "e617645a6e22290da0b1dd1ce86cccc4813177fe",
      "tree": "d19a3458d8f5c76f3df82b795019eba5970a52ae",
      "parents": [
        "eca17418481aae6fb7547bc81c4d01f80fd253ec"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Tue May 12 11:54:56 2026 +0800"
      },
      "committer": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Tue May 12 11:54:56 2026 +0800"
      },
      "message": "[infra] Add bosiew.tian as collaborator on github.\n"
    },
    {
      "commit": "eca17418481aae6fb7547bc81c4d01f80fd253ec",
      "tree": "9bfbc7324933b150021c3e7b8fdd70b6d40e3cda",
      "parents": [
        "065d0971f568c556e00525b7742788130844bfce"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 06 17:54:29 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue May 12 11:45:56 2026 +0800"
      },
      "message": "[api][runtime][java] Support agent skills in Java.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "065d0971f568c556e00525b7742788130844bfce",
      "tree": "995c31a257d05a26b01951f88381ca5a5ccbf377",
      "parents": [
        "6b480bd68a95729e10af318149157e35142847c4"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 06 17:51:51 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue May 12 11:45:56 2026 +0800"
      },
      "message": "[plan][java] Add bash tool in java.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "6b480bd68a95729e10af318149157e35142847c4",
      "tree": "d1d1ad48ffc6952a5af3be1a39e2796b60cce59b",
      "parents": [
        "fa5bcf12ad73680fb120899c058b434e0acf1c0f"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 06 17:50:11 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue May 12 11:45:56 2026 +0800"
      },
      "message": "[api][java] Extract resource context.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "fa5bcf12ad73680fb120899c058b434e0acf1c0f",
      "tree": "3532847bb64693dd74a9ae87b07347b3800380f1",
      "parents": [
        "c72f8f6f03d1e7891bb6af2d692a4f8f163bb595"
      ],
      "author": {
        "name": "WenjinXie",
        "email": "wenjin272@gmail.com",
        "time": "Wed May 06 17:33:38 2026 +0800"
      },
      "committer": {
        "name": "Wenjin Xie",
        "email": "166717626+wenjin272@users.noreply.github.com",
        "time": "Tue May 12 11:45:56 2026 +0800"
      },
      "message": "[api][java] Inject output format prompt after the first system prompt for ReAct agent.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "c72f8f6f03d1e7891bb6af2d692a4f8f163bb595",
      "tree": "a0623026dea4ab6d29109b19940fe025d79c5f15",
      "parents": [
        "1931403096d1befab50dea084d2f0593f580a4be"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Mon May 11 19:13:50 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 10:13:50 2026 +0800"
      },
      "message": "[runtime] Support per-event-type configurable log levels for event log (#609)"
    },
    {
      "commit": "1931403096d1befab50dea084d2f0593f580a4be",
      "tree": "d6bb9e9437815d70b545b9862c0b7de7db303eb9",
      "parents": [
        "1181f69f3dde16612e34e35fc7bdcfe443daf753"
      ],
      "author": {
        "name": "Weiqing Yang",
        "email": "wiyang@linkedin.com",
        "time": "Sun May 10 23:03:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 14:03:30 2026 +0800"
      },
      "message": "[runtime] Refactor ActionExecutionOperator into focused manager classes (#546)"
    }
  ],
  "next": "1181f69f3dde16612e34e35fc7bdcfe443daf753"
}
