)]}'
{
  "log": [
    {
      "commit": "170ac6ede1628c4829c6595a1c2be08b00fffb5d",
      "tree": "fc4dfd2f2c4865b5c00482babe3f8eda4ef8929d",
      "parents": [
        "9b18d230d341167c1bad73a28cbb94cdf2b1b2ae"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Sun May 03 19:11:18 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 03 19:11:18 2026 +0900"
      },
      "message": "Align Dag capitalization from \"DAG\" to \"Dag\" in core_api (#66211)\n\n* refactor: Align Dag capitalization from \"DAG\" to \"Dag\" in core_api\n\n* Align public API error tests with Dag capitalization"
    },
    {
      "commit": "9b18d230d341167c1bad73a28cbb94cdf2b1b2ae",
      "tree": "b10b664b8c31ed1a0829bf478848087829a4b299",
      "parents": [
        "16db2488268ccc311159834d90f9d02af0e4e436"
      ],
      "author": {
        "name": "Wei Lee",
        "email": "weilee.rx@gmail.com",
        "time": "Sun May 03 15:09:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 03 15:09:26 2026 +0800"
      },
      "message": "fix(backfill): populate partition_date on partitioned backfill runs (#65998)"
    },
    {
      "commit": "16db2488268ccc311159834d90f9d02af0e4e436",
      "tree": "7db0ad86ebc290bc7b787bf4de14327420015b59",
      "parents": [
        "1f84a5686135ea307aa360ca669f3f3b9d366c16"
      ],
      "author": {
        "name": "Yeonguk Choo",
        "email": "choo121600@gmail.com",
        "time": "Sun May 03 13:36:49 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 03 07:36:49 2026 +0300"
      },
      "message": "Remove inactive Korean translation owner (#66295)"
    },
    {
      "commit": "1f84a5686135ea307aa360ca669f3f3b9d366c16",
      "tree": "808fd12bce51baadaf65ac16983816ce29e5f028",
      "parents": [
        "8dab708863a85916b80ae2144aa4e7d8f21d2537"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Sun May 03 07:35:41 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 03 07:35:41 2026 +0300"
      },
      "message": "Apply AIR201-style replacements (#65197)"
    },
    {
      "commit": "8dab708863a85916b80ae2144aa4e7d8f21d2537",
      "tree": "b366ece95eb0110d02f327ac0173bf0914213532",
      "parents": [
        "865718c7d97129f4e8e8a6534263ae7bda968bc9"
      ],
      "author": {
        "name": "Shahar Epstein",
        "email": "60007259+shahar1@users.noreply.github.com",
        "time": "Sat May 02 18:59:09 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 18:59:09 2026 +0300"
      },
      "message": "Document airflow-site index update for providers (#66281)"
    },
    {
      "commit": "865718c7d97129f4e8e8a6534263ae7bda968bc9",
      "tree": "7dde292d5d6adcd864ab9c21d6b162db02fefb8b",
      "parents": [
        "254758d50930c171bcced3932dadd192dc122745"
      ],
      "author": {
        "name": "Shahar Epstein",
        "email": "60007259+shahar1@users.noreply.github.com",
        "time": "Sat May 02 15:05:28 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 14:05:28 2026 +0200"
      },
      "message": "Clarify \u0027Fixing released docs\u0027 section to cover failed initial publish case (#66253)"
    },
    {
      "commit": "254758d50930c171bcced3932dadd192dc122745",
      "tree": "90ef5ccd1e69b8ee8dde985676fd5bab83c88e60",
      "parents": [
        "4a9b5a0f70a79802ee1eac48a4580f926f00177f"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Sat May 02 11:39:17 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 11:39:17 2026 +0100"
      },
      "message": "Fix dag.test() to sync sibling DAGs across calls (#64884) (#66205)\n\n`DAG.test()` previously skipped its bundle-sync loop when the parent DAG\nwas already serialized in the metadata DB. Sibling DAGs that the parent\ntriggers via `TriggerDagRunOperator` were therefore never written, and\nthe in-process Execution API returned 404 for them.\n\nThe fix:\n\n- Look up `DagModel.bundle_name` for `self.dag_id`. If found and the\n  bundle is still configured, re-walk only that one bundle so sibling\n  DAGs reach the DB without re-parsing every other configured bundle on\n  every call.\n- If the recorded bundle is no longer configured (renamed / removed),\n  fall back to walking all configured bundles.\n- Drop `_airflow_parsing_context_manager(dag_id\u003dself.dag_id)` from the\n  re-walk: setting `_AIRFLOW_PARSING_CONTEXT_DAG_ID` to the parent\u0027s id\n  would cause dynamic-DAG files using `get_parsing_context().dag_id` to\n  early-return and omit the trigger target from the bag, defeating the\n  re-sync.\n\nTests cover:\n\n- The original repro (parent already synced, target absent).\n- Dynamic-DAG variant using `get_parsing_context()` early-return.\n- Stale recorded bundle name no longer in current config.\n- Only the owning bundle is parsed when the parent is already in DB.\n\ncloses: #64884 \ncloses: https://github.com/apache/airflow/pull/64945"
    },
    {
      "commit": "4a9b5a0f70a79802ee1eac48a4580f926f00177f",
      "tree": "df976315076bebfab43be7d8b5f7ec98e2d835af",
      "parents": [
        "251fe925b5484fe6ff11e6b6de46ef8099c320c9"
      ],
      "author": {
        "name": "Jed Cunningham",
        "email": "66968678+jedcunningham@users.noreply.github.com",
        "time": "Sat May 02 04:35:07 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 18:35:07 2026 +0800"
      },
      "message": "Don\u0027t re-emit logical_date when previous data_interval is zero-length (#66132)\n\nCo-authored-by: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\nCo-authored-by: Wei Lee \u003cweilee.rx@gmail.com\u003e"
    },
    {
      "commit": "251fe925b5484fe6ff11e6b6de46ef8099c320c9",
      "tree": "9b23a901be503b1731c5ae932b0cc7584c8ea328",
      "parents": [
        "1738252d21ad65333ec884579eec910acc5472cc"
      ],
      "author": {
        "name": "Colten",
        "email": "70793703+ColtenOuO@users.noreply.github.com",
        "time": "Sat May 02 17:54:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 11:54:33 2026 +0200"
      },
      "message": "Use contextlib.suppress instead of try-except-pass and re-enable SIM105 (#66193)\n\nSigned-off-by: ColtenOuO \u003cjun930436@gmail.com\u003e"
    },
    {
      "commit": "1738252d21ad65333ec884579eec910acc5472cc",
      "tree": "dd52f5a0dc2b2af83776ac39e12e544a41d75ae9",
      "parents": [
        "8fc246721e5f348c43e8c3176d06aad9ead18f2e"
      ],
      "author": {
        "name": "Colten",
        "email": "70793703+ColtenOuO@users.noreply.github.com",
        "time": "Sat May 02 17:53:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 17:53:45 2026 +0800"
      },
      "message": "Enable PT007 rule to apache.kafka Provider test (#66147)"
    },
    {
      "commit": "8fc246721e5f348c43e8c3176d06aad9ead18f2e",
      "tree": "e8c8eb30f948bae475c7c2db931543dbd732de7d",
      "parents": [
        "47514c0e3f287dac3182f81525970537c8892f09"
      ],
      "author": {
        "name": "André Ahlert",
        "email": "andre@aex.partners",
        "time": "Sat May 02 06:32:55 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 11:32:55 2026 +0200"
      },
      "message": "Docs: Expand Helm Chart upgrade tasks in Airflow 3 migration guide (#66118)\n\n* Docs: Expand Helm Chart upgrade tasks in Airflow 3 migration guide\n\nReplace the two-line Helm Chart note in the Airflow 3 migration guide\nwith a dedicated subsection that lists the concrete action items for\nupgrading the official chart from Airflow 2.x to 3.x: webserver to\napiServer rename with a values.yaml before/after, secret_key relocation,\njwtSecretName, the standalone dagProcessor deployment, FabAuthManager\ndefault, webserver_config.py rework, minimum Kubernetes 1.30, the DB\nmigration job, and a pointer to the chart release notes for renamed and\nremoved keys.\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e\n\n* Move Helm Chart upgrade tasks to chart/docs\n\nAddress review from @Miretpl: chart-specific upgrade content belongs\nunder chart/docs, mirroring the providers/fab/docs/upgrading.rst pattern\nwhere each component owns its upgrade guide and the core migration guide\nlinks to it.\n\nMove the expanded Helm Chart upgrade checklist from\nairflow-core/docs/installation/upgrading_to_airflow3.rst to a new\nchart/docs/upgrading-to-airflow-3.rst, restore the original two-line\nnote in the core guide, and add a pointer to the chart doc from the\ncore guide. Register the new file in chart/docs/index.rst under Guides.\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e\n\n---------\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e"
    },
    {
      "commit": "47514c0e3f287dac3182f81525970537c8892f09",
      "tree": "7dea51af3e389a05ee6a6549d75671513301bae3",
      "parents": [
        "5830111c217ac1639718f5f6022f982caf456d92"
      ],
      "author": {
        "name": "Yunhui Chae",
        "email": "53514545+kir-rin@users.noreply.github.com",
        "time": "Sat May 02 18:17:30 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 11:17:30 2026 +0200"
      },
      "message": "Fix heading level for \"Alternative: legacy global install\" in breeze docs (#66252)"
    },
    {
      "commit": "5830111c217ac1639718f5f6022f982caf456d92",
      "tree": "480807f12565704f793d1ca0e21dff0c6c844e93",
      "parents": [
        "ac338e05ff4002508ebec84fcf884f044588e6ec"
      ],
      "author": {
        "name": "Mohit Swain",
        "email": "mohitswain@google.com",
        "time": "Sat May 02 08:22:49 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 11:22:49 2026 +0300"
      },
      "message": "Add engine flag support to Dataproc ClusterGenerator and bump google-cloud-dataproc to 5.27.0 (#65130)"
    },
    {
      "commit": "ac338e05ff4002508ebec84fcf884f044588e6ec",
      "tree": "6590950bf24e079d24da978a867a0d8b848a6a8e",
      "parents": [
        "ea349226ae01f1a530881a6eab46420ae946c91f"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Sat May 02 16:43:36 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 16:43:36 2026 +0900"
      },
      "message": "refactor: word changed from DAG to Dag in airflow-ctl-tests/ (#66113)"
    },
    {
      "commit": "ea349226ae01f1a530881a6eab46420ae946c91f",
      "tree": "a3f461b011599dcc8357bacee7cfbce2c8a14a3a",
      "parents": [
        "a52b0a2332113c9f9033e63153051797bb1ee25b"
      ],
      "author": {
        "name": "Paul",
        "email": "leeyspaul@users.noreply.github.com",
        "time": "Fri May 01 22:25:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 08:25:27 2026 +0300"
      },
      "message": "Add Celery worker workload dispatch regression tests (#65849)"
    },
    {
      "commit": "a52b0a2332113c9f9033e63153051797bb1ee25b",
      "tree": "452e473d1d9b3893554e2a2a69206fe9243810d8",
      "parents": [
        "5dbfff59266395bca5211a3f7a187cea713fdab3"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Sat May 02 07:14:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 07:14:24 2026 +0200"
      },
      "message": "Fix edge3 worker deadlock regression test on Python 3.14 (#66247)\n\nThe test relied on `@patch(\"airflow.sdk.execution_time.supervisor.supervise\")`\npropagating into the worker subprocess via fork-inheritance. Python 3.14\nflipped the POSIX default multiprocessing start method from `fork` to\n`forkserver`, where children spawn from a fresh interpreter and parent-side\npatches no longer apply — so `supervise()` ran for real and the test timed\nout instead of triggering the queue-deadlock condition.\n\nPatch `EdgeWorker._launch_job` and use an explicit `fork` context to spawn\na small top-level subprocess that pushes a \u003e64 KB exception to the queue.\nThat reproduces the actual production deadlock (Queue feeder thread blocked\non the 64 KB OS pipe buffer with `is_alive()` still True) without depending\non the start method or on test-process patches surviving.\n\nVerified locally on Python 3.10 (passes) and 3.14 (was timing out, now\npasses); confirmed regression detection by temporarily reverting the\n`worker.py` deadlock fix and observing the test fails."
    },
    {
      "commit": "5dbfff59266395bca5211a3f7a187cea713fdab3",
      "tree": "a52c3ef8cda9e51775b43860166c1399e136fa7d",
      "parents": [
        "1442b522d20d09a143689ee406410f8033f3938a"
      ],
      "author": {
        "name": "Jens Scheffler",
        "email": "95105677+jscheffl@users.noreply.github.com",
        "time": "Sat May 02 06:25:58 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 07:25:58 2026 +0300"
      },
      "message": "Fix deprecation warnings for workers.logGroomerSidecar (#66238) (#66243)\n\nCo-authored-by: Przemysław Mirowski \u003c17602603+Miretpl@users.noreply.github.com\u003e"
    },
    {
      "commit": "1442b522d20d09a143689ee406410f8033f3938a",
      "tree": "fd052ab2f9719c94a576da69141946724eee70f6",
      "parents": [
        "f83f645ba8a35bd8c12e0d96a105e420b9ca62f5"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Sat May 02 04:55:39 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 04:55:39 2026 +0100"
      },
      "message": "Add UsageLimits support to common.ai operators (#66248)\n\nThreads pydantic-ai UsageLimits through every common.ai operator\n(LLMOperator, AgentOperator, LLMBranchOperator, LLMSQLQueryOperator,\nLLMFileAnalysisOperator, LLMSchemaCompareOperator) and their @task.*\ndecorators by forwarding the new keyword to agent.run_sync. Use it to\nfail tasks that exceed token, request, or tool-call budgets -- the\ncheck happens inside pydantic-ai\u0027s run loop so the limit applies even\nwhen retries trigger multiple model calls within a single task.\n\nDocs call out the implicit request_limit\u003d50 default in pydantic-ai\u0027s\nUsageLimits() so users who only want a token cap know to pass\nrequest_limit\u003dNone explicitly."
    },
    {
      "commit": "f83f645ba8a35bd8c12e0d96a105e420b9ca62f5",
      "tree": "4ce060d82b76a0ea925eb1dbacd736ad80b001b2",
      "parents": [
        "cbd2698592850709115210fedacf2870ec9854ae"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Sat May 02 04:19:20 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 04:19:20 2026 +0100"
      },
      "message": "Add pluggable retry policies for Airflow tasks (AIP-105) (#65474)\n\nAdds a retry_policy parameter to BaseOperator that evaluates exceptions\nat failure time and returns a RetryDecision (retry with custom delay,\nfail immediately, or fall through to default behaviour).\n\nAlso renames PubSubCreateSubscriptionOperator.retry_policy to\nmessage_retry_policy to avoid collision with the new BaseOperator\nparameter (the hook\u0027s retry_policy kwarg to Google\u0027s API is unchanged).\n\nDocument retry policies in Task SDK API reference\n\nAdd a Retry Policies section to task-sdk/docs/api.rst covering the\nfive public symbols (RetryPolicy, ExceptionRetryPolicy, RetryRule,\nRetryDecision, RetryAction) and link to the concepts page in core\ndocs via intersphinx.\n\nAdd the same five classes to the Key imports list in\ntask-sdk/docs/index.rst so DAG authors can find them alongside the\nother public airflow.sdk classes.\n\nUse airflow.sdk public namespace in retry policy docs and example\n\nUser-facing surfaces (docs, example DAGs) should import from the\npublic airflow.sdk namespace, not the internal\nairflow.sdk.definitions.retry_policy module path. All five symbols\n(RetryPolicy, RetryDecision, RetryAction, RetryRule,\nExceptionRetryPolicy) are already re-exported from airflow.sdk.\n\nAdd BackfillAwareRetryPolicy as second custom-policy example\n\nPair the existing HTTPStatusRetryPolicy example (which shows\ninspecting exception attributes) with a context-driven example\n(which shows reading dag_run.run_type), so the docs cover both\ndata sources that motivate subclassing RetryPolicy.\n\nUse HTTPStatusRetryPolicy as the custom-policy doc example\n\nReplace the OptOutRetryPolicy example (which only demonstrated\nRetryDecision.default()) with HTTPStatusRetryPolicy, which shows\nthe actual reason to subclass RetryPolicy: inspecting exception\nattributes (status codes, Retry-After header) that the declarative\nExceptionRetryPolicy rules cannot capture.\n\nAlso rename the section heading from \"Custom policies\" to\n\"Custom retry policies\" for clarity.\n\nAddress review feedback on retry policy docs\n\n- Clarify that retry_policy is set at task level via .partial(), per-index\n  variation is not supported on .expand()\n- Rename BusinessHoursRetryPolicy example to OptOutRetryPolicy to match\n  what the body actually does (keys off dag_run.conf \"no_retry\" flag)\n- Remove LLM-powered retry policies subsection from core docs; it lives\n  in providers/common/ai/docs/retry_policies.rst (PR #65451)"
    },
    {
      "commit": "cbd2698592850709115210fedacf2870ec9854ae",
      "tree": "4707c3b493cc5d0d78be0c30fcdb3895b7a4e5f9",
      "parents": [
        "ee0dc3f3867431807505acd7dadd23cfd165b14f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat May 02 03:12:33 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 03:12:33 2026 +0200"
      },
      "message": "Bump the uv-dependency-updates group in /dev/breeze with 3 updates (#66228)\n\nBumps the uv-dependency-updates group in /dev/breeze with 3 updates: [packaging](https://github.com/pypa/packaging), [prek](https://github.com/j178/prek) and [boto3](https://github.com/boto/boto3).\n\n\nUpdates `packaging` from 26.1 to 26.2\n- [Release notes](https://github.com/pypa/packaging/releases)\n- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)\n- [Commits](https://github.com/pypa/packaging/compare/26.1...26.2)\n\nUpdates `prek` from 0.3.10 to 0.3.11\n- [Release notes](https://github.com/j178/prek/releases)\n- [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/j178/prek/compare/v0.3.10...v0.3.11)\n\nUpdates `boto3` from 1.42.94 to 1.42.96\n- [Release notes](https://github.com/boto/boto3/releases)\n- [Commits](https://github.com/boto/boto3/compare/1.42.94...1.42.96)\n\n---\nupdated-dependencies:\n- dependency-name: packaging\n  dependency-version: \u002726.2\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: uv-dependency-updates\n- dependency-name: prek\n  dependency-version: 0.3.11\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: uv-dependency-updates\n- dependency-name: boto3\n  dependency-version: 1.42.96\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: uv-dependency-updates\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ee0dc3f3867431807505acd7dadd23cfd165b14f",
      "tree": "d859fb589c0890e201bf39fd8126e95c415fed41",
      "parents": [
        "0b0c35a6608c27478a9a4bd6f4b945d261ca8418"
      ],
      "author": {
        "name": "Jason(Zhe-You) Liu",
        "email": "68415893+jason810496@users.noreply.github.com",
        "time": "Sat May 02 07:09:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 01:09:01 2026 +0200"
      },
      "message": "Use SQLite for import and OpenAPI spec generation scripts (#66209)"
    },
    {
      "commit": "0b0c35a6608c27478a9a4bd6f4b945d261ca8418",
      "tree": "02adfe4123e44d184aad265f9998349a9131cc6f",
      "parents": [
        "29a5adf5510d5d8cf7bd201989d091256cd65e09"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Sat May 02 07:50:36 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 07:50:36 2026 +0900"
      },
      "message": "i18n(ko): add missing translations(Apr 30) (#66163)\n\n* i18n(ko): add missing Korean translation placeholders\n\n`breeze ui check-translation-completeness --language ko --add-missing --remove-unused`\n\n* i18n(ko): translate for missing translations(Apr 30)"
    },
    {
      "commit": "29a5adf5510d5d8cf7bd201989d091256cd65e09",
      "tree": "a6c93dd16a8b6520b334b14bde99e6b2ffc5976b",
      "parents": [
        "b3343d3b31058afd7e326590e1cbd692dd2f76da"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat May 02 00:09:12 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 00:09:12 2026 +0200"
      },
      "message": "Bump the edge-ui-package-updates group across 1 directory with 11 updates (#66227)\n\nBumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@chakra-ui/react](https://github.com/chakra-ui/chakra-ui/tree/HEAD/packages/react) | `3.34.0` | `3.35.0` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.99.2` | `5.100.5` |\n| [axios](https://github.com/axios/axios) | `1.15.1` | `1.15.2` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.14.1` | `7.14.2` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.58.2` | `8.59.1` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.58.2` | `8.59.1` |\n| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.58.2` | `8.59.1` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.4` | `4.1.5` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.58.2` | `8.59.1` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.9` | `8.0.10` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.4` | `4.1.5` |\n\n\n\nUpdates `@chakra-ui/react` from 3.34.0 to 3.35.0\n- [Release notes](https://github.com/chakra-ui/chakra-ui/releases)\n- [Changelog](https://github.com/chakra-ui/chakra-ui/blob/main/packages/react/CHANGELOG.md)\n- [Commits](https://github.com/chakra-ui/chakra-ui/commits/@chakra-ui/react@3.35.0/packages/react)\n\nUpdates `@tanstack/react-query` from 5.99.2 to 5.100.5\n- [Release notes](https://github.com/TanStack/query/releases)\n- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)\n- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.100.5/packages/react-query)\n\nUpdates `axios` from 1.15.1 to 1.15.2\n- [Release notes](https://github.com/axios/axios/releases)\n- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)\n- [Commits](https://github.com/axios/axios/compare/v1.15.1...v1.15.2)\n\nUpdates `react-router-dom` from 7.14.1 to 7.14.2\n- [Release notes](https://github.com/remix-run/react-router/releases)\n- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)\n- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.14.2/packages/react-router-dom)\n\nUpdates `@typescript-eslint/eslint-plugin` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/eslint-plugin)\n\nUpdates `@typescript-eslint/parser` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/parser)\n\nUpdates `@typescript-eslint/utils` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/utils)\n\nUpdates `@vitest/coverage-v8` from 4.1.4 to 4.1.5\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/coverage-v8)\n\nUpdates `typescript-eslint` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/typescript-eslint)\n\nUpdates `vite` from 8.0.9 to 8.0.10\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v8.0.10/packages/vite)\n\nUpdates `vitest` from 4.1.4 to 4.1.5\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: \"@chakra-ui/react\"\n  dependency-version: 3.35.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: edge-ui-package-updates\n- dependency-name: \"@tanstack/react-query\"\n  dependency-version: 5.100.5\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: edge-ui-package-updates\n- dependency-name: axios\n  dependency-version: 1.15.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: edge-ui-package-updates\n- dependency-name: react-router-dom\n  dependency-version: 7.14.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: edge-ui-package-updates\n- dependency-name: \"@typescript-eslint/eslint-plugin\"\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: edge-ui-package-updates\n- dependency-name: \"@typescript-eslint/parser\"\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: edge-ui-package-updates\n- dependency-name: \"@typescript-eslint/utils\"\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: edge-ui-package-updates\n- dependency-name: \"@vitest/coverage-v8\"\n  dependency-version: 4.1.5\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: edge-ui-package-updates\n- dependency-name: typescript-eslint\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: edge-ui-package-updates\n- dependency-name: vite\n  dependency-version: 8.0.10\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: edge-ui-package-updates\n- dependency-name: vitest\n  dependency-version: 4.1.5\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: edge-ui-package-updates\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b3343d3b31058afd7e326590e1cbd692dd2f76da",
      "tree": "3fbcd3ac0b9b8f0cf04bf98cc90689fa421ffa76",
      "parents": [
        "5241f388f00ec85a46c9f2bb250e44682c140b2f"
      ],
      "author": {
        "name": "John Jackson",
        "email": "75442233+john-jac@users.noreply.github.com",
        "time": "Fri May 01 15:04:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 18:04:54 2026 -0400"
      },
      "message": "Add MwaaServerlessStartWorkflowRunOperator (#66046)"
    },
    {
      "commit": "5241f388f00ec85a46c9f2bb250e44682c140b2f",
      "tree": "c66ed4dbeb09b6442149ede1b6b9cdd143f129f9",
      "parents": [
        "67a889b3a29a3f1c86c44fda93398446966ac99b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 18:02:58 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 18:02:58 2026 -0400"
      },
      "message": "Bump the auth-ui-package-updates group across 1 directory with 12 updates (#66226)\n\nBumps the auth-ui-package-updates group with 12 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [@chakra-ui/react](https://github.com/chakra-ui/chakra-ui/tree/HEAD/packages/react) | `3.34.0` | `3.35.0` |\n| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.99.2` | `5.100.5` |\n| [axios](https://github.com/axios/axios) | `1.15.1` | `1.15.2` |\n| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.72.1` | `7.74.0` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.14.1` | `7.14.2` |\n| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.58.2` | `8.59.1` |\n| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.58.2` | `8.59.1` |\n| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.58.2` | `8.59.1` |\n| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.4` | `4.1.5` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.58.2` | `8.59.1` |\n| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.9` | `8.0.10` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.4` | `4.1.5` |\n\n\n\nUpdates `@chakra-ui/react` from 3.34.0 to 3.35.0\n- [Release notes](https://github.com/chakra-ui/chakra-ui/releases)\n- [Changelog](https://github.com/chakra-ui/chakra-ui/blob/main/packages/react/CHANGELOG.md)\n- [Commits](https://github.com/chakra-ui/chakra-ui/commits/@chakra-ui/react@3.35.0/packages/react)\n\nUpdates `@tanstack/react-query` from 5.99.2 to 5.100.5\n- [Release notes](https://github.com/TanStack/query/releases)\n- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)\n- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.100.5/packages/react-query)\n\nUpdates `axios` from 1.15.1 to 1.15.2\n- [Release notes](https://github.com/axios/axios/releases)\n- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)\n- [Commits](https://github.com/axios/axios/compare/v1.15.1...v1.15.2)\n\nUpdates `react-hook-form` from 7.72.1 to 7.74.0\n- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)\n- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.72.1...v7.74.0)\n\nUpdates `react-router-dom` from 7.14.1 to 7.14.2\n- [Release notes](https://github.com/remix-run/react-router/releases)\n- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)\n- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.14.2/packages/react-router-dom)\n\nUpdates `@typescript-eslint/eslint-plugin` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/eslint-plugin)\n\nUpdates `@typescript-eslint/parser` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/parser)\n\nUpdates `@typescript-eslint/utils` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/utils)\n\nUpdates `@vitest/coverage-v8` from 4.1.4 to 4.1.5\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/coverage-v8)\n\nUpdates `typescript-eslint` from 8.58.2 to 8.59.1\n- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)\n- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)\n- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.1/packages/typescript-eslint)\n\nUpdates `vite` from 8.0.9 to 8.0.10\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v8.0.10/packages/vite)\n\nUpdates `vitest` from 4.1.4 to 4.1.5\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest)\n\n---\nupdated-dependencies:\n- dependency-name: \"@chakra-ui/react\"\n  dependency-version: 3.35.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: \"@tanstack/react-query\"\n  dependency-version: 5.100.5\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: axios\n  dependency-version: 1.15.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: auth-ui-package-updates\n- dependency-name: react-hook-form\n  dependency-version: 7.74.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: react-router-dom\n  dependency-version: 7.14.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: auth-ui-package-updates\n- dependency-name: \"@typescript-eslint/eslint-plugin\"\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: \"@typescript-eslint/parser\"\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: \"@typescript-eslint/utils\"\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: \"@vitest/coverage-v8\"\n  dependency-version: 4.1.5\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: auth-ui-package-updates\n- dependency-name: typescript-eslint\n  dependency-version: 8.59.1\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: auth-ui-package-updates\n- dependency-name: vite\n  dependency-version: 8.0.10\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: auth-ui-package-updates\n- dependency-name: vitest\n  dependency-version: 4.1.5\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: auth-ui-package-updates\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "67a889b3a29a3f1c86c44fda93398446966ac99b",
      "tree": "ef64a1b73a87056c60f80d0f7f680620afe978db",
      "parents": [
        "da0119486b48e98b6d277100ab57637402044581"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 18:02:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 18:02:33 2026 -0400"
      },
      "message": "Bump stylelint (#66224)\n\nBumps the fab-ui-package-updates group with 1 update in the /providers/fab/src/airflow/providers/fab/www directory: [stylelint](https://github.com/stylelint/stylelint).\n\n\nUpdates `stylelint` from 17.9.0 to 17.9.1\n- [Release notes](https://github.com/stylelint/stylelint/releases)\n- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/stylelint/stylelint/compare/17.9.0...17.9.1)\n\n---\nupdated-dependencies:\n- dependency-name: stylelint\n  dependency-version: 17.9.1\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: fab-ui-package-updates\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "da0119486b48e98b6d277100ab57637402044581",
      "tree": "b5c9956c5a5db75c960386ef34eecdce1f52e12d",
      "parents": [
        "d24784f3ab37fcf29baf7b1d7f12c5b04cfcb8bd"
      ],
      "author": {
        "name": "Shahar Epstein",
        "email": "60007259+shahar1@users.noreply.github.com",
        "time": "Sat May 02 00:52:42 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 00:52:42 2026 +0300"
      },
      "message": "Update providers metadata 2026-05-02 (#66242)"
    },
    {
      "commit": "d24784f3ab37fcf29baf7b1d7f12c5b04cfcb8bd",
      "tree": "27c8fba45fd3d6450f24df49c18d5d8b7c1fdb9e",
      "parents": [
        "8f5ac08c439758289fa236df958def266a5b312c"
      ],
      "author": {
        "name": "Jorge Rocamora",
        "email": "33847633+aeroyorch@users.noreply.github.com",
        "time": "Fri May 01 23:37:26 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 23:37:26 2026 +0200"
      },
      "message": "Add test coverage for per-set queue in default KEDA query in Helm chart (#65486)\n\n* Add test coverage for per-set queue in default KEDA query in Helm chart\n\n* Rename test to `test_overwrite_queue_keda_query` according to review\n\nCo-authored-by: Przemysław Mirowski \u003c17602603+Miretpl@users.noreply.github.com\u003e\n\n* Add default parameter\n\n* Also assert parent keda override flows through in test_overwrite_queue_keda_query\n\n* Split test_overwrite_queue_keda_query into focused cases per review feedback\n\n* Drop redundant test_overwrite_parent_keda_propagates_to_sets per review\n\n---------\n\nCo-authored-by: Przemysław Mirowski \u003c17602603+Miretpl@users.noreply.github.com\u003e"
    },
    {
      "commit": "8f5ac08c439758289fa236df958def266a5b312c",
      "tree": "74c1c2bffab3ab9aeadf1e4230654616be6e4d52",
      "parents": [
        "304ad37c45c29f4d5f461028ecf400c6c9566524"
      ],
      "author": {
        "name": "Henry Chen",
        "email": "henryhenry0512@gmail.com",
        "time": "Sat May 02 05:27:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 23:27:27 2026 +0200"
      },
      "message": "Fix launcher RBAC for executor class paths (#66208)"
    },
    {
      "commit": "304ad37c45c29f4d5f461028ecf400c6c9566524",
      "tree": "eb0950af1dcf783ab0e5aa1cb39724a644b873d9",
      "parents": [
        "97b0ef2f2ed0020d5e81c0e805ef384aba4667be"
      ],
      "author": {
        "name": "Przemysław Mirowski",
        "email": "17602603+Miretpl@users.noreply.github.com",
        "time": "Fri May 01 22:54:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 22:54:50 2026 +0200"
      },
      "message": "Additional Chart Modifications After Airflow 2 Drop (#66199)\n\n* Remove createUserJob.isEnabled helper\n\n* Change dag-processor condition order\n\n* Remove definition of empty values\n\n* Remove enabled true in dag processor tests\n\n* Remove render_chart wrapper in api server tests"
    },
    {
      "commit": "97b0ef2f2ed0020d5e81c0e805ef384aba4667be",
      "tree": "9d6041fa203bfebbee4433da1ad1ed0246e5db0d",
      "parents": [
        "e6170ddb5b1f13dac5dada8e8bc5e4d6bd4b5529"
      ],
      "author": {
        "name": "Vincent",
        "email": "97131062+vincbeck@users.noreply.github.com",
        "time": "Fri May 01 16:49:39 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 16:49:39 2026 -0400"
      },
      "message": "Update `register_asset_change` to filter Dags based on teams (#66168)"
    },
    {
      "commit": "e6170ddb5b1f13dac5dada8e8bc5e4d6bd4b5529",
      "tree": "7aad86c1fa878d00af4b84d42ec7de1c4188aeb4",
      "parents": [
        "90bec8cb5af4a126d53008b49d1b14c21046c02e"
      ],
      "author": {
        "name": "Yoann",
        "email": "60654707+YoannAbriel@users.noreply.github.com",
        "time": "Fri May 01 13:37:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 21:37:34 2026 +0100"
      },
      "message": "Fix variable access in triggerer for deferrable operators (#63387)\n\nCloses: #61676"
    },
    {
      "commit": "90bec8cb5af4a126d53008b49d1b14c21046c02e",
      "tree": "1f494daa0e8cf3eb0446bb8fd3beb2cb74432648",
      "parents": [
        "72382b59106111135e1b784d3dc54e3b02ee0796"
      ],
      "author": {
        "name": "Jason(Zhe-You) Liu",
        "email": "68415893+jason810496@users.noreply.github.com",
        "time": "Sat May 02 01:49:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 19:49:54 2026 +0200"
      },
      "message": "Fix flaky test_migration_stairway by retrying each migration step (#66162)"
    },
    {
      "commit": "72382b59106111135e1b784d3dc54e3b02ee0796",
      "tree": "24522ec226d594053daff7d3ed45306d68a4758c",
      "parents": [
        "709ca1c23ae6d5f7bee18dffc6fba47c12f9af51"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Sat May 02 01:53:26 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 01:53:26 2026 +0900"
      },
      "message": "refactor: word changed from DAG to Dag in airflow-core/src/airflow/api (#66200)"
    },
    {
      "commit": "709ca1c23ae6d5f7bee18dffc6fba47c12f9af51",
      "tree": "bfda0841ebaa71ff7750c15e6f8d8f0d9c42f03e",
      "parents": [
        "900d832d4a79691b4b7c05ba2adb748ccdc3206f"
      ],
      "author": {
        "name": "Jens Scheffler",
        "email": "95105677+jscheffl@users.noreply.github.com",
        "time": "Fri May 01 17:29:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 17:29:00 2026 +0200"
      },
      "message": "Align helm-tests CODEOWNER with chart codeowner (#66182)"
    },
    {
      "commit": "900d832d4a79691b4b7c05ba2adb748ccdc3206f",
      "tree": "8ded252d319e3fe5bd226690a523e47d4eeb01e6",
      "parents": [
        "8ec8ec2c86faf98703d0ecbcc4abd7f3c53ad557"
      ],
      "author": {
        "name": "André Ahlert",
        "email": "andre@aex.partners",
        "time": "Fri May 01 08:36:50 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 13:36:50 2026 +0200"
      },
      "message": "pr-triage: collapse classify.md + suggested-actions.md into ordered decision table (#66126)\n\n* pr-triage: collapse classify.md + suggested-actions.md into ordered decision table\n\nThe skill\u0027s first-pass logic was split across classify.md (decision\nmatrix that turned PR state into one of seven classifications) and\nsuggested-actions.md (per-classification table that picked the\naction verb). Reading them in lock-step on every classification\nwas load-bearing, but the implicit ordering between them — C2b\n\"evaluate before C2\", the 9-row sub-ladder under\ndeterministic_flag, the Real-CI-guard reclassification path —\nwas invisible in either file in isolation.\n\nThis commit replaces both files with a single ordered decision\ntable at classify-and-act.md plus a companion rationale.md.\nThe table is first-match-wins across 22 rows; each row produces\na (classification, action, reason) tuple. Pre-filters F1-F5b run\nbefore the table. A precondition glossary names every compound\npredicate (has_deterministic_signal, ci_failures_only,\nunresolved_threads_only, unresolved_threads_only_likely_addressed,\ncopilot_review_stale, static_check, recent_main_failures,\nflagged_prs_by_author, follow_up_ping, first_time_no_real_ci)\nonce so the rows stay short.\n\nBehaviour-preserving for every real PR shape exercised by the\nempirical simulator added in companion PR #66125 — 60 PRs across\nboth ends of the open queue, zero divergences. Six theoretical\nedge cases shift behaviour by design (Row 1 priority for\npending_workflow_approval over the refusal-skip cases; Row 2\npriority for stale_copilot_review over data-anomaly skip). All\ndocumented in the validation log; none appeared in the empirical\nsample.\n\nRefinements bundled in:\n\n- new follow_up_ping glossary entry — old C3 had a three-clause\n  detection rule that was not reproducible from prose alone\n- new first_time_no_real_ci glossary entry — old C1 had an\n  EXPECTED-rollup fallback for first-time contributors that\n  Row 1 was originally missing; restored\n- Row 16 (\"no real CI ran -\u003e rebase\") gained an explicit\n  \"author NOT first-time\" guard. Same outcome as the old spec\n  (C1 caught first-time contributors before suggest-action ran)\n  but readable in isolation\n- Row 22 (data anomaly) carries an evaluation-order note in the\n  cross-cutting hard rules — the row\u0027s table position is\n  documentary; implementations evaluate it immediately before\n  the passing rows\n- pr-stats skill cross-references updated to point at the new\n  already_triaged rows in classify-and-act.md\n\nSKILL.md Step 2 (\"Filter and classify\") + Step 3 (\"Compute\nsuggested action per PR\") collapsed into a single Step 2\n(\"Filter, classify, and pick action\"). Cross-references in\nsibling files updated. Hot-path token cost on a typical triage\ninvocation drops from ~728 to ~340 lines.\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e\n\n* pr-triage: fix markdownlint MD032 + MD038 in classify-and-act.md\n\n- line 7: rewrap to avoid leading + being read as list marker\n- reason-template-rules: replace inline backticks containing\n  single comma + space pair (which the no-space-in-code rule\n  rejects) with prose\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e\n\n* pr-triage: drop space-only code span to satisfy markdownlint MD038\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e\n\n---------\n\nSigned-off-by: André Ahlert \u003candre@aex.partners\u003e"
    },
    {
      "commit": "8ec8ec2c86faf98703d0ecbcc4abd7f3c53ad557",
      "tree": "ba7f7ad9d37c4f931b0364d55447d68776271f06",
      "parents": [
        "ce276e71ce64751d17ecd0281f10941c1d7b14f3"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Fri May 01 12:18:44 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 12:18:44 2026 +0100"
      },
      "message": "Parallelise PyPI fetches in extract_metadata.py (#66186)"
    },
    {
      "commit": "ce276e71ce64751d17ecd0281f10941c1d7b14f3",
      "tree": "ed4f2d4a99482b1a6bdab3a30b340ac025b39b15",
      "parents": [
        "fed3bfbaaa88ae7e56caa3677d6fdd37cf9fffb2"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Fri May 01 12:18:15 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 12:18:15 2026 +0100"
      },
      "message": "Surface worker DAG parse duration in task log (#66138)"
    },
    {
      "commit": "fed3bfbaaa88ae7e56caa3677d6fdd37cf9fffb2",
      "tree": "b36e07b11908e8688fde100910f3bd8d31bb269f",
      "parents": [
        "f6ff800e0168ad06544b82e8fe4db66c461ff898"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Fri May 01 19:38:07 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 19:38:07 2026 +0900"
      },
      "message": "Align Dag capitalization from \"DAG\" to \"Dag\" for airflow-ctl/ (#66112)\n\n* refactor: word changed from DAG to Dag in airflow-ctl/\n\n* refactor: revert generated airflowctl datamodel changes\n\n* refactor: word changed from DAG to Dag in airflow-core/src/airflow/api_fastapi/datamodels\n\ngenerated files are included"
    },
    {
      "commit": "f6ff800e0168ad06544b82e8fe4db66c461ff898",
      "tree": "6a0125896df787071d8163c161a371e297d3e24c",
      "parents": [
        "07fba0bb4872765a1c3a7bde5b1c41bb46c3cab3"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Fri May 01 19:18:10 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 19:18:10 2026 +0900"
      },
      "message": "refactor: word changed from DAG to Dag in providers/apache/ (#66153)"
    },
    {
      "commit": "07fba0bb4872765a1c3a7bde5b1c41bb46c3cab3",
      "tree": "b2b842841b41909e90142b21a7f051cc66083b5c",
      "parents": [
        "9b9789ae6b005692dadb102932ca38efed1ddd28"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Fri May 01 18:43:00 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 12:43:00 2026 +0300"
      },
      "message": "Align Dag capitalization from \"DAG\" to \"Dag\" for providers/google/ (#66155)"
    },
    {
      "commit": "9b9789ae6b005692dadb102932ca38efed1ddd28",
      "tree": "d846702d82ee3ebd913cc4f3e1bd9ae7e543c995",
      "parents": [
        "c37960d53250efee4241abd12f5a8456281fbbee"
      ],
      "author": {
        "name": "Colten",
        "email": "70793703+ColtenOuO@users.noreply.github.com",
        "time": "Fri May 01 16:58:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 10:58:58 2026 +0200"
      },
      "message": "Use contextlib.suppress instead of try-except-pass in providers (#66178)\n\nSigned-off-by: ColtenOuO \u003cjun930436@gmail.com\u003e"
    },
    {
      "commit": "c37960d53250efee4241abd12f5a8456281fbbee",
      "tree": "87eacb03f39a627be646335b94fb2e8747275fd0",
      "parents": [
        "8c43743d3089ab08d61ed059b483084519e3df9d"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Fri May 01 04:45:57 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 05:45:57 2026 +0200"
      },
      "message": "Fix ASYNC110 violation in edge3 worker (#66192)\n\nPR #66144 added a `while job.is_running: await sleep(0.1)` polling loop\nto ensure the supervisor task has fully ended after results were\ngrabbed from the queue. This trips ruff\u0027s ASYNC110 lint and is now\nfailing the static-checks job on every PR.\n\nApply the same pattern used in PR #66157 for RedshiftDataTrigger:\nrefactor to `while True: if not \u003ccond\u003e: break; await sleep(...)`. Same\nbehaviour, ASYNC110-clean. The proper fix (asyncio.Event signalled by\nthe supervisor on completion) is a larger change and can land\nseparately."
    },
    {
      "commit": "8c43743d3089ab08d61ed059b483084519e3df9d",
      "tree": "906609f858a33387023c40c487f89dba9ba3e6cf",
      "parents": [
        "e6f5de4f5eda87c702a5a1c7625ba395221cce48"
      ],
      "author": {
        "name": "Yuseok Jo",
        "email": "yuseok89@gmail.com",
        "time": "Fri May 01 10:58:14 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 21:58:14 2026 -0400"
      },
      "message": "Fix DagVersion when clearing tasks with run on latest version (#65835)\n\n* Fix DagVersion when clearing tasks with run on latest version\n\n* UI: Merge two useEffects in ClearGroupTaskInstanceDialog\n\n* UI: Add spacing between clear task checkboxes\n\n* UI: Share run on latest version logic for clear dialogs\n\n* UI: Merge two useEffects in ClearTaskInstanceDialog\n\n* Fix CI: apply pre-commit auto-fixes"
    },
    {
      "commit": "e6f5de4f5eda87c702a5a1c7625ba395221cce48",
      "tree": "b34d7faa8f8d529469ecc8436719cb480e494cbb",
      "parents": [
        "ef0ff5cfe2bf46c853f47e676537b0d5c9ce4399"
      ],
      "author": {
        "name": "Dheeraj Turaga",
        "email": "dheerajturaga@gmail.com",
        "time": "Thu Apr 30 20:56:13 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 21:56:13 2026 -0400"
      },
      "message": "UI: Make DAG detail page scrollable on mobile viewports (#65899)\n\nOn phones the horizontal split between the Graph/Grid/Gantt pane and\n  the Details pane was squeezed to ~200px each, and nested overflow:hidden\n  containers hid the panes\u0027 internal scrollbars. The page was effectively\n  unusable on mobile.\n\n  Pin a 1280px min-width on the DAG page wrapper below Chakra\u0027s\n  breakpoint and switch the main-content box to overflow\u003dauto so the\n  browser exposes horizontal and vertical scrollbars. Desktop layout\n  (\u003e\u003d768px) is unchanged."
    },
    {
      "commit": "ef0ff5cfe2bf46c853f47e676537b0d5c9ce4399",
      "tree": "614b991b5d34d1fe09ed9c1934783f744f05d9c7",
      "parents": [
        "c1056986fff15b629829962b8a810d6f505fbdb2"
      ],
      "author": {
        "name": "Pablo Seibelt",
        "email": "pabloseibelt@sicarul.com",
        "time": "Thu Apr 30 20:24:59 2026 -0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 00:24:59 2026 +0100"
      },
      "message": "Preload source_aliases in process_executor_events (#65422)\n\nPR #56916 added a _eager_load_dag_run_for_validation helper that\nreturns two loader options so DRDataModel.model_validate can walk\nDagRun.consumed_asset_events[*].asset and source_aliases without\ntriggering lazy loads on a detached ORM instance. The helper\u0027s\ndocstring example applies both loaders, and _adopt_or_reset_orphaned_tasks\napplies both. SchedulerJobRunner.process_executor_events only applies\nasset_loader and discards alias_loader, leaving\nAssetEvent.source_aliases lazy-loaded.\n\nWhen Celery/Kubernetes executor reports a failed-while-queued event\nfor an asset-triggered DagRun whose consumed AssetEvent has a\nnon-empty source_aliases collection, SQLAlchemy detaches the\nAssetEvent by the time pydantic walks the DagRun, and source_aliases\nraises DetachedInstanceError wrapped as a pydantic ValidationError.\nThe exception escapes _run_scheduler_loop, the scheduler exits,\nwhich orphans in-flight task instances. The next scheduler\u0027s\n_adopt_or_reset_orphaned_tasks picks them up and replays the same\nvalidation path, crashing again.\n\nApply alias_loader alongside asset_loader at this call site.\n\nExtend test_process_executor_events_with_asset_events so the\nAssetEvent now carries a non-empty source_aliases collection and\nthe assertion verifies the alias survives into the callback payload.\n\nCo-authored-by: Claude \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "c1056986fff15b629829962b8a810d6f505fbdb2",
      "tree": "0ddff1a4e1ed095e12d233518cc0e0961f098647",
      "parents": [
        "41750f4deead2d5118146c57f882ad1c99c3f0fb"
      ],
      "author": {
        "name": "rjgoyln",
        "email": "151457491+rjgoyln@users.noreply.github.com",
        "time": "Fri May 01 06:49:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 23:49:25 2026 +0100"
      },
      "message": "Fix missing autoincrement sequence on callback_request downgrade (#65230)\n\ncloses: #65000 "
    },
    {
      "commit": "41750f4deead2d5118146c57f882ad1c99c3f0fb",
      "tree": "4afdca0509591d12ed9de9ce0fca173d6d24da0e",
      "parents": [
        "0abd0efa0a3da7b9692421fc6cbb9d7a52d6e898"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Thu Apr 30 22:57:17 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 22:57:17 2026 +0100"
      },
      "message": "Bump registry-build job timeout to 45 minutes (#66185)\n\nRecent successful full builds run 26-30 minutes (most recent: 29m49s,\n26m13s, 20m43s). The 30-minute timeout left near-zero headroom -- a\nmodest pypistats slowdown or transient registry/network blip during\nthe per-provider PyPI fetches in `extract_metadata.py` would race the\ntimeout and silently fail the registry update.\n\nAfter #66100 (#1305 fix), `registry-build.yml` fires automatically on\nevery wave-release dispatch. Bumping the timeout to 45 minutes gives\nmeaningful headroom without going so high that a genuinely stuck job\nsits around forever."
    },
    {
      "commit": "0abd0efa0a3da7b9692421fc6cbb9d7a52d6e898",
      "tree": "8234917f6adffd4949808d935c0e5056a9314b04",
      "parents": [
        "41caf5ee755f4c9d317c96b3248c744028341b36"
      ],
      "author": {
        "name": "Henry Chen",
        "email": "henryhenry0512@gmail.com",
        "time": "Fri May 01 05:12:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 23:12:52 2026 +0200"
      },
      "message": "fix false-green applyCustomEnv check for database cleanup (#65495)"
    },
    {
      "commit": "41caf5ee755f4c9d317c96b3248c744028341b36",
      "tree": "d955d1d1d40e57053ee0211b18137e30983b8f9a",
      "parents": [
        "8d656357b31ada72f741091ab407d35bebc98c6f"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Thu Apr 30 23:49:51 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 22:49:51 2026 +0200"
      },
      "message": "Add static analysis tests for DB migration anti-patterns (#64972)\n\n* Add static analysis tests for migration anti-patterns\n\nPrevent migration bugs like #64876 (DML before disable_sqlite_fkeys\nsilently breaking SQLite PRAGMA) from reaching production by adding:\n\n1. AST-based static analysis tests (test_migration_patterns.py) that\n   detect three anti-patterns across all migration files:\n   - MIG001: DML before disable_sqlite_fkeys (triggers autobegin)\n   - MIG002: DDL before disable_sqlite_fkeys (triggers autobegin)\n   - MIG003: DML without context.is_offline_mode() guard\n\n2. Unit tests for migration utility functions (test_migration_utils.py)\n   covering disable_sqlite_fkeys, mysql_drop_foreignkey_if_exists, and\n   ignore_sqlite_value_error with real database backends.\n\n3. Fixes confirmed SQLite PRAGMA bugs in migrations 0100 and 0106 by\n   moving all operations inside the disable_sqlite_fkeys block.\n\n4. Adds # noqa: MIG0XX suppression comments (with reasons) to 20 old\n   migrations with acknowledged violations, and configures ruff to\n   preserve them via external \u003d [\"MIG\"].\n\n* Fix DML detection for newline-separated SQL keywords\n\nDML_KEYWORDS used trailing spaces (\"DELETE \") which missed patterns\nlike \"DELETE\\nFROM ...\" after .strip().upper(). Switch to bare keywords\nwith split-based whitespace boundary check so any whitespace separator\n(space, newline, tab) is handled correctly.\n\n* Address PR feedback\n\n* MIG003: auto-suppress DML tied to same-table DDL, parse once per file\n\nMIG003 now detects when DML targets a table that also has DDL in the\nsame function (e.g. UPDATE before batch_alter_table on the same table)\nand skips the warning — these are safe data-prep operations. This\neliminates 61 of 63 noqa suppressions across 22 migration files; only\n2 genuine suppressions remain (pure DML in 0066).\n\nAlso refactors the integration test fixture to use module-scoped\nparametrize so each migration file is parsed once instead of 3x.\n\n* Address PR feedback by Lee-W\n\n* Fix stairway test connection exhaustion and timeout on PG/MySQL\n\nThe stairway test ran upgrade/downgrade for ~108 revisions but failed on\nPostgres with \"too many clients already\" and on MySQL by exceeding the\ndefault 60s per-test timeout.\n\nRoot causes:\n- Each upgradedb()/downgrade() enters _single_connection_pool which\n  reconfigures the ORM. dispose_orm() cannot synchronously close asyncpg\n  connections, so they accumulate until Postgres max_connections is hit.\n- Sync connections also leak from various paths (alembic env.py,\n  _configured_alembic_environment, post-migration hooks). With ~100\n  revisions x 3 ops, the default pool fills and exhausts max_connections.\n- Total wall time on MySQL exceeds the default 60s execution_timeout.\n\nFix: disable async session and use NullPool for the duration of the test\nso every connection is closed when returned to the pool, and bump the\nper-test execution_timeout to 900s."
    },
    {
      "commit": "8d656357b31ada72f741091ab407d35bebc98c6f",
      "tree": "f60e60f741f2e86d7e3df8d4c83dd387bf4a1d11",
      "parents": [
        "046b490f4e1bc7b6ddd38f73c7308e7cb46b275b"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Thu Apr 30 21:38:24 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 21:38:24 2026 +0100"
      },
      "message": "Guard registry-build sync against partial extracts (#66137)\n\n`aws s3 sync` exits 0 silently when its source directory is missing or\nempty, so a partial `breeze registry extract-data` failure (one provider\nerrors mid-run, Eleventy still produces a tree, sync uploads stale or\nempty JSON) would currently report green while leaving the live registry\nin an inconsistent state.\n\nThis adds the same pre-sync content guards `registry-backfill.yml` got\nin PR #66027: for incremental builds, assert each target provider\u0027s HTML\ndirectory + API directory + `versions.json` exist and are non-empty;\nfor full builds, assert the top-level `index.html`, `api/providers.json`\nlisting, and at least one provider subtree under `api/providers/` are\npresent. Any missing artifact aborts the sync with `::error::` before\nS3 is touched."
    },
    {
      "commit": "046b490f4e1bc7b6ddd38f73c7308e7cb46b275b",
      "tree": "ea89dae396c63e51328f4fd7b4baf2af0c5da607",
      "parents": [
        "a6cd84accc61c95aac0c8f07486b39b143a8cf22"
      ],
      "author": {
        "name": "Colten",
        "email": "70793703+ColtenOuO@users.noreply.github.com",
        "time": "Fri May 01 04:18:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 16:18:38 2026 -0400"
      },
      "message": "Fix ASYNC110 violation in RedshiftDataTrigger (#66157)"
    },
    {
      "commit": "a6cd84accc61c95aac0c8f07486b39b143a8cf22",
      "tree": "75bf7d6dc7fdc2231344edf8d742b334409daf84",
      "parents": [
        "466eb1c0ffb8374aeabb4d733db74a675ea11406"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Apr 30 16:18:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 16:18:29 2026 -0400"
      },
      "message": "Bump moment-timezone from 0.6.1 to 0.6.2 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#66166)\n\n* Bump moment-timezone\n\nBumps the fab-ui-package-updates group with 1 update in the /providers/fab/src/airflow/providers/fab/www directory: [moment-timezone](https://github.com/moment/moment-timezone).\n\n\nUpdates `moment-timezone` from 0.6.1 to 0.6.2\n- [Release notes](https://github.com/moment/moment-timezone/releases)\n- [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md)\n- [Commits](https://github.com/moment/moment-timezone/compare/0.6.1...0.6.2)\n\n---\nupdated-dependencies:\n- dependency-name: moment-timezone\n  dependency-version: 0.6.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: fab-ui-package-updates\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Update license\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: vincbeck \u003cvincbeck@amazon.com\u003e"
    },
    {
      "commit": "466eb1c0ffb8374aeabb4d733db74a675ea11406",
      "tree": "6bc711b6665a4e6111e941c5c3c2a4d8eb8b5f65",
      "parents": [
        "9fd43ee581a799a53ce6e5168c44ad7ec0674ec3"
      ],
      "author": {
        "name": "AutomationDev85",
        "email": "96178949+AutomationDev85@users.noreply.github.com",
        "time": "Thu Apr 30 22:07:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 22:07:31 2026 +0200"
      },
      "message": "Fix deadlock and add unit test (#66144)\n\nCo-authored-by: AutomationDev85 \u003cAutomationDev85\u003e"
    },
    {
      "commit": "9fd43ee581a799a53ce6e5168c44ad7ec0674ec3",
      "tree": "c8b08384f083cb4b62fff314ccd211481f63d5a1",
      "parents": [
        "d4407263c7ff2a3be125bbfcb99fddab08034079"
      ],
      "author": {
        "name": "Shahar Aviram",
        "email": "shahara.88@gmail.com",
        "time": "Thu Apr 30 21:39:02 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:39:02 2026 -0400"
      },
      "message": "E2E: Improve Playwright patterns in XComsPage (#65730)\n\nE2E: Improve Playwright patterns in XComsPage#"
    },
    {
      "commit": "d4407263c7ff2a3be125bbfcb99fddab08034079",
      "tree": "d15893a7cd31fba3d6c06efe5b2a15a0a4b79290",
      "parents": [
        "1b3bf55027b585d97f4922cc584cc8beb31a314b"
      ],
      "author": {
        "name": "Shashwati Bhattacharyaa",
        "email": "166847329+shashbha14@users.noreply.github.com",
        "time": "Fri May 01 00:07:21 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:37:21 2026 -0400"
      },
      "message": "Pass try_number to extra links API (#65661)\n\n* Forward try_number to extra links API for correct retry links\n\n* Rename newsfragment to match PR number\n\n* Add tryNumber to generated OpenAPI query hooks\n\n* Fix JSDoc param annotations for tryNumber in query hooks\n\n* Address review: read tryNumber from searchParams, add comment, remove newsfragment\n\n* Address review: use TaskInstanceHistory for past tries to ensure validation and immutability\n\n* Fix ruff: remove duplicate test method and fix line length\n\n* Optimize: query TaskInstance before DAG parsing to fail fast on missing TI\n\n* Fix test: update missing_dag expected response after TI-first query reorder\n\n---------\n\nCo-authored-by: Shashwati \u003cshashwatibhattacaharya21.2@gmail.com\u003e"
    },
    {
      "commit": "1b3bf55027b585d97f4922cc584cc8beb31a314b",
      "tree": "e7e043be96e60b4b658b9373ffdc4e7c53a4effb",
      "parents": [
        "c711347b8e42adb3c5776111532f67fcc6cd6083"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Apr 30 20:19:56 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 20:19:56 2026 +0200"
      },
      "message": "Add AI-driven prepare-providers-documentation skill (#65882)\n\n* Add AI-driven prepare-providers-documentation skill\n\nAdd a Claude Code skill that replaces the manual commit-by-commit\nclassification step in `breeze release-management\nprepare-provider-documentation` with AI-driven analysis. The skill\ninspects every PR using sub-agents, scopes multi-provider PRs to the\ncurrent provider\u0027s slice, applies an explicit breaking-change checklist\nagainst the actual diff, asks the release manager only when uncertain,\nand covers both the initial classification and the rebase-time\nincremental update flow.\n\nAuto-generated build files are still regenerated by breeze under the\nhood, so the skill stays consistent with existing release tooling. The\ninteractive breeze command remains documented as a fallback.\n\n* Address review feedback on prepare-providers-documentation skill\n\n- Scope breaking-change checklist\u0027s \"public symbol removed/renamed\" rule\n  to the actual public-interface paths (hooks, operators, sensors,\n  triggers, notifications, decorators, executors, top-level package, and\n  anything referenced from provider.yaml) so internal helpers like\n  utils/, _internal/, or pod_manager.py don\u0027t auto-trigger BREAKING_RISK.\n- Extend \"schema change in stored data\" rule to cover the serialized\n  state/context of BaseTrigger subclasses, so changes that would break\n  deferred tasks running across a provider upgrade are flagged.\n- Document prerequisites in dev/README_RELEASE_PROVIDERS.md: the skill\n  needs an agentic coding framework with the GitHub MCP server\n  configured. Show install steps for Claude Code and OpenAI Codex CLI.\n- Generalise README references so the skill is presented as\n  framework-neutral (loaded by Claude Code, OpenAI Codex CLI, or any\n  MCP-compatible client that discovers SKILL.md from .claude/skills/),\n  rather than Claude Code-exclusive."
    },
    {
      "commit": "c711347b8e42adb3c5776111532f67fcc6cd6083",
      "tree": "05d799b3436d00f109357bd481d7f826dc2dba10",
      "parents": [
        "67bab4a285c614e62f2a6d0bb3eeff2d6bdea568"
      ],
      "author": {
        "name": "John Jackson",
        "email": "75442233+john-jac@users.noreply.github.com",
        "time": "Thu Apr 30 11:11:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:11:14 2026 -0400"
      },
      "message": "Add `BedrockDeleteGuardrailOperator` (#66140)"
    },
    {
      "commit": "67bab4a285c614e62f2a6d0bb3eeff2d6bdea568",
      "tree": "05d21a64a6796a1b94a5891e1e4a076e24e2d83c",
      "parents": [
        "fa055dba61e1ed76d5f43eadfd235c4f8cc23216"
      ],
      "author": {
        "name": "Christos Bisias",
        "email": "christosbis@gmail.com",
        "time": "Thu Apr 30 21:11:00 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 19:11:00 2026 +0100"
      },
      "message": "Remove the DualStatsManager and the Stats interfaces (#63932)\n\n* initial approach\n\n* fix back compat in providers\n\n* reduce diffs\n\n* remove the Stats shim \u0026 handle backcompat in providers\n\n* fix stats references in providers tests\n\n* fix mypy check errors for core and providers\n\n* fix test_sdk.py\n\n* cleanup after rebase\n\n* remove legacy_map for providers backcompat and use a Stats shim\n\n* fix stats imports in airflow-core and task-sdk\n\n* fix test_scheduler_job\n\n* trigger CI again\n\n* fix test_dagrun, core/test_stats, test_edge_executor, test_task_runner\n\n* fix test_celery_executor + test_kubernetes_executor\n\n* read export_legacy_names in stats.initialize from config + add more unit tests\n\n* cleanup\n\n* cleanup airflow/stats.py\n\n* fix static check error\n\n* change providers version checks to AIRFLOW_V_3_2_1_PLUS\n\n* add \u0027# use next version\u0027 for common-compat\n\n* fix static check errors\n\n* restore pytest.mark.db_test in test_jobs\n\n* lazily initialize the registry at the first use + fix mypy observability error\n\n* use a timer wrapper for exit stack\n\n* cleanup comment in daemon_utils.py\n\n* remove the legacy_name_tags param\n\n* add DualStatsManager shim for forward compat of the edge3 provider with newer version of core \u0026 sdk\n\n* fix registry discrepancy for metric \u0027dag_processing.last_duration\u0027\n\n* remove the DualStatsManager shim\n\n* fix task_runner discrepancies with the registry + test_task_runner errors\n\n* fix edge3 test_jobs.py\n\n* fix base_executor metric discrepancies with the registry\n\n* fix test references for executor metrics\n\n* restore accidentally removed dynamic metrics in edge3 worker\n\n* fix back compat errors in the CI\n\n* cleanup\n\n* remove leftover Stats references in airflow-core and task-sdk\n\n* replace pid instance check by os.register_at_fork() in stats\n\n* replace _ExitStackTimer by _DualTimer\n\n* make timer() return TimerProtocol\n\n* update serialization/definitions/dag after rebase\n\n* remove \u0027Stats.\u0027 from airflow-core test_stats\n\n* update Stats.initialize in the openlineage listener\n\n* replace . with __ when replacing variables in legacy names\n\n* fix failures in test_triggerer_job.py after rebase\n\n* cleanup openlineage listener.py\n\n* provide a spec in all backend mocks in tests\n\n* fix test_triggerer_job after rebase\n\n* Addressing minor code review directly\n\n* remove unused import after rebase\n\n* fix mypy error in shared/observability\n\n* fix mypy error + observability tests\n\n---------\n\nCo-authored-by: Ash Berlin-Taylor \u003cash@apache.org\u003e"
    },
    {
      "commit": "fa055dba61e1ed76d5f43eadfd235c4f8cc23216",
      "tree": "b9a00d2632260f282f3530221112d8c414a51e86",
      "parents": [
        "c8e0ec564a7a4633533a50bc0f77c7f35f534f58"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Fri May 01 03:09:21 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:09:21 2026 -0400"
      },
      "message": "refactor: word changed from DAG to Dag in providers/amazon/ (#66152)"
    },
    {
      "commit": "c8e0ec564a7a4633533a50bc0f77c7f35f534f58",
      "tree": "643e2198a405ff8d8ed5198f3f591c55cf12515d",
      "parents": [
        "15180025fae9867608a9dde617a02ad76d6b78e8"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Apr 30 20:07:10 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 20:07:10 2026 +0200"
      },
      "message": "Document Connection-extras allowlist rule for provider hooks/operators (#66032)\n\n* Document that providers must not forward Connection extras blindly\n\nAdd a security section to providers/AGENTS.md explaining the trust\nboundary between Connection editors and DAG authors, and the\nallowlist rule for forwarding Connection.extra values to hooks,\noperators, and client libraries.\n\n* Update providers/AGENTS.md\n\nCo-authored-by: Shahar Epstein \u003c60007259+shahar1@users.noreply.github.com\u003e\n\n---------\n\nCo-authored-by: Shahar Epstein \u003c60007259+shahar1@users.noreply.github.com\u003e"
    },
    {
      "commit": "15180025fae9867608a9dde617a02ad76d6b78e8",
      "tree": "aef8aea7a448466cfa472aebf3df54512f061c37",
      "parents": [
        "6c61773caaa50bc514b951df9a9f9e7728b961ea"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Apr 30 19:59:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 19:59:20 2026 +0200"
      },
      "message": "PR triage: shorter contributor comments, link to docs for fixes (#66055)\n\nThe draft / comment-only / close templates carried multi-paragraph\nremediation prose, a Slack invite, and an inline \"what to do next\" list\nthat mostly paraphrased the linked Pull Request quality criteria doc.\nTrim them to one short body + a link, and replace the per-violation\ninline `prek` / `breeze` commands with a doc link so the bullet stays\non one line. Keep the \"not a rejection\" reassurance on draft and close\nwhere it carries weight, the no-rush line, the AI-attribution footer,\nand the canonical \"Pull Request quality criteria\" link text that\nre-triage classification uses as a marker."
    },
    {
      "commit": "6c61773caaa50bc514b951df9a9f9e7728b961ea",
      "tree": "f783ea6cbcbf10d234626bd80017860aaefd3b3d",
      "parents": [
        "e1c1db8f36d7d247e184a677fb0218726945511a"
      ],
      "author": {
        "name": "Jarek Potiuk",
        "email": "jarek@potiuk.com",
        "time": "Thu Apr 30 19:58:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 19:58:59 2026 +0200"
      },
      "message": "Make mongo testcontainer fixture resilient to Docker Hub flakes (#66154)\n\nA transient Docker Hub auth-server timeout when pulling mongo:latest\ncaused all 33 mongo provider unit tests to fail at fixture setup with\n\"context deadline exceeded\".\n\n- Pin the image to mongo:8.0 instead of :latest so the tag is stable\n  and does not re-resolve a moving target on every run.\n- Retry container start up to 3 times with 5s/10s backoff, so a single\n  registry-auth blip no longer cascades into 33 setup errors."
    },
    {
      "commit": "e1c1db8f36d7d247e184a677fb0218726945511a",
      "tree": "8865149d073a460f25b46c9cb3524e09b51ab74f",
      "parents": [
        "16450d2bdfa23ced4b4e941cab729dc0a8692698"
      ],
      "author": {
        "name": "Brent Bovenzi",
        "email": "brent@astronomer.io",
        "time": "Thu Apr 30 13:48:54 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:48:54 2026 -0400"
      },
      "message": "Rationalize null and max-lines eslint rules (#66124)\n\n* Up max-lines and remove null check\n\n* Lint after rebasing"
    },
    {
      "commit": "16450d2bdfa23ced4b4e941cab729dc0a8692698",
      "tree": "bfe1e7dccd37d6c003df4a5da04789b2837b9279",
      "parents": [
        "2ccc256b5347c14e2f0ee73ff70e46baec3ea50e"
      ],
      "author": {
        "name": "John Jackson",
        "email": "75442233+john-jac@users.noreply.github.com",
        "time": "Thu Apr 30 10:37:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:37:45 2026 -0400"
      },
      "message": "Add `S3TablesCreateTableBucketOperator` (#66119)"
    },
    {
      "commit": "2ccc256b5347c14e2f0ee73ff70e46baec3ea50e",
      "tree": "8d4e960bc8dfcf041ade28bf5043488cf17cab3d",
      "parents": [
        "db0191a421aadc7052a820e10653467f21a61882"
      ],
      "author": {
        "name": "SameerMesiah97",
        "email": "75502260+SameerMesiah97@users.noreply.github.com",
        "time": "Thu Apr 30 18:30:11 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 10:30:11 2026 -0700"
      },
      "message": "Add ExecuteCallback support to AwsLambdaExecutor (#63035)\n\nExtend AwsLambdaExecutor to support ExecuteCallback workloads\nintroduced in Airflow 3.2.\n\nCallback workloads are queued using the callback identifier and\nprocessed alongside task workloads. Both workload types are serialized\nand dispatched to AWS Lambda using the Task SDK runtime entrypoint\n`python -m airflow.sdk.execution_time.execute_workload`.\n\nUpdate executor lifecycle methods to support string-based callback\nidentifiers while preserving JSON-serialized TaskInstanceKey handling\nfor task workloads.\n\nAdd unit tests covering callback workload execution, queue override\npropagation, and adoption of callback workloads using string-based\nexternal_executor_id values.\n\nClean up AwsLambdaExecutor docstrings, comments, variable names, and typing to align with the workload-based executor model. Add back-compat shims for pending_workloads and running_workloads.\n\n---------\n\nCo-authored-by: Sameer Mesiah \u003csmesiah971@gmail.com\u003e"
    },
    {
      "commit": "db0191a421aadc7052a820e10653467f21a61882",
      "tree": "6ad94520c2140e472f8f4afd147f0083c055ed92",
      "parents": [
        "3e5c2c59f1184ca7d38a030bd3045d665f5505fb"
      ],
      "author": {
        "name": "Niko Oliveira",
        "email": "onikolas@amazon.com",
        "time": "Thu Apr 30 09:59:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:59:02 2026 -0400"
      },
      "message": "fix: Align DAG_ID with module name in S3 Tables and S3 Vectors system tests (#66134)"
    },
    {
      "commit": "3e5c2c59f1184ca7d38a030bd3045d665f5505fb",
      "tree": "9982f27d64af4dce60f74e369d9221ebc9baab83",
      "parents": [
        "d628ea02ccffcb80247648843bea19058c8ba7f5"
      ],
      "author": {
        "name": "iwannagotobed",
        "email": "us990704@yonsei.ac.kr",
        "time": "Fri May 01 01:37:34 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 01:37:34 2026 +0900"
      },
      "message": "i18n(Ko): add missing translation in dag.json (Apr 29) (#66086)\n\n* Translate Korean log match count\n\n* Update airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json\n\nCo-authored-by: hojeong park \u003cparkhj062@gmail.com\u003e\n\n---------\n\nCo-authored-by: hojeong park \u003cparkhj062@gmail.com\u003e"
    },
    {
      "commit": "d628ea02ccffcb80247648843bea19058c8ba7f5",
      "tree": "abe67dacf8657bc318ace9877226f4c5bda1642d",
      "parents": [
        "36b70fa5cd220bca717eb2e4b2913d7893e7ed6e"
      ],
      "author": {
        "name": "PrithviBadiga",
        "email": "45932166+PrithviBadiga@users.noreply.github.com",
        "time": "Thu Apr 30 08:08:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 11:08:22 2026 -0400"
      },
      "message": "Show dag run duration in grid tooltip (#65787)\n\n* Show dag run duration in grid tooltip\n\n* Reorder grid tooltip duration\n\n---------\n\nCo-authored-by: Prithvi Badiga \u003cPrithviBadiga@users.noreply.github.com\u003e"
    },
    {
      "commit": "36b70fa5cd220bca717eb2e4b2913d7893e7ed6e",
      "tree": "2b03638e96d94278fff75d3d48544235c7a6e4b5",
      "parents": [
        "dd155d32c715a656dd7402881844feeec9b77c1d"
      ],
      "author": {
        "name": "SameerMesiah97",
        "email": "75502260+SameerMesiah97@users.noreply.github.com",
        "time": "Thu Apr 30 16:07:55 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 11:07:55 2026 -0400"
      },
      "message": "Refactor DbtCloudRunJobOperator.execute() by extracting job ID (#64393)\n\nresolution, job run triggering/reuse, and terminal status handling\ninto dedicated helper methods.\n\nSplit the existing logic into _resolve_job_id, _get_or_trigger_run,\nand _handle_terminal_status to simplify the control flow and improve\nreadability of the operator.\n\nCo-authored-by: Sameer Mesiah \u003csmesiah971@gmail.com\u003e"
    },
    {
      "commit": "dd155d32c715a656dd7402881844feeec9b77c1d",
      "tree": "0b2d117e3806b51956825f1f9dfa88a200db068c",
      "parents": [
        "caac99233794a7bf156fc4137a687af6000546ad"
      ],
      "author": {
        "name": "Pierre Jeambrun",
        "email": "pierrejbrun@gmail.com",
        "time": "Thu Apr 30 17:03:31 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 11:03:31 2026 -0400"
      },
      "message": "UI: Add \u0027Mark task group as success/failed\u0027 action (#66146)"
    },
    {
      "commit": "caac99233794a7bf156fc4137a687af6000546ad",
      "tree": "aa59da65570dd7b6070f1469ca0a5347a0defb2f",
      "parents": [
        "44b79fe53981bee4c9ccf163acd927be34042774"
      ],
      "author": {
        "name": "Richard Wu",
        "email": "richard9@ualberta.ca",
        "time": "Thu Apr 30 08:54:12 2026 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 10:54:12 2026 -0400"
      },
      "message": "Dag Run and Overview Tab Display Deadlines (#62195)\n\n* Add FailedIcon component and DurationChart failed icon plugin\n\nThis commit introduces a new `FailedIcon` component for representing failure states in the UI, along with a plugin for the DurationChart that visually indicates failed indices. The `FailedIcon` is created using Chakra UI\u0027s icon system, while the plugin draws a custom icon on the chart for failed data points.\n\n* Add initial plugin files for AI provider with license information\n\n* Add deadline management features to DAG UI\n\n- Introduce CalendarDeadlines component to display deadlines in the calendar view.\n- Implement DeadlineAlertsBadge to show alerts related to deadlines in the DAG header.\n- Create DagDeadlines component for overview page to list upcoming and missed deadlines.\n- Add DeadlineStatus component to show the status of deadlines in the run details.\n- Enhance i18n support for new deadline-related strings in dag.json.\n\n* Add name and description fields to DeadlineAlert and related serialization\n\n* Refactor deadline management in DAG UI: update DeadlineAlert fields, remove CalendarDeadlines component, and enhance deadline display with new modal and row components.\n\n* Enhance AllDeadlinesModal: add pagination support and update deadline limit handling\n\n* Enhance AllDeadlinesModal: increase dialog size and add backdrop padding\n\n* Enhance DeadlineStatus: update icon colors for better visibility\n\n* Enhance Deadline Management: add completion rules, improve deadline alerts, and introduce DeadlineStatusModal\n\n* Enhance DeadlineAlertsBadge: include alert name in display and remove redundant description check\n\n* Enhance DeadlineAlertsBadge: display alert name conditionally and simplify alert retrieval logic\n\n* remove python\n\n* UI: Enhance deadline components with additional data handling and props\n\n* UI: Refactor alert handling to use alert IDs instead of names in deadlines components\n\n* undo\n\n* Enhance deadline status UI with improved translations and layout adjustments\n\n* Remove unused deadline-related translations from UI localization\n\n* Refactor deadline completion rule translations in UI components\n\n* Refactor deadline handling by consolidating deadline queries and removing unused code\n\n* Update airflow-core/src/airflow/ui/public/i18n/locales/en/dag.json\n\nCo-authored-by: Brent Bovenzi \u003cbrent.bovenzi@gmail.com\u003e\n\n* Refactor deadline handling and improve UI translations for deadline alerts\n\n* Update dialog sizes in AllDeadlinesModal and DeadlineStatusModal for improved UI layout\n\n---------\n\nCo-authored-by: Brent Bovenzi \u003cbrent.bovenzi@gmail.com\u003e"
    },
    {
      "commit": "44b79fe53981bee4c9ccf163acd927be34042774",
      "tree": "0445211a07e792abb38370404c2fb170bf53af0d",
      "parents": [
        "2d1ea1650053d8fc165d646029d4ab34f4dbb3b6"
      ],
      "author": {
        "name": "Kacper Muda",
        "email": "mudakacper@gmail.com",
        "time": "Thu Apr 30 14:19:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:19:07 2026 +0200"
      },
      "message": "feat: add public emit_dataset_lineage and emit_query_lineage API for OpenLineage provider (#65788)\n\n* feat: add public emit_dataset_lineage and emit_query_lineage API for OpenLineage provider\n\n# Conflicts:\n#\tproviders/openlineage/tests/unit/openlineage/utils/test_utils.py\n\n* Address Pr review comments\n\n* Address more commits"
    },
    {
      "commit": "2d1ea1650053d8fc165d646029d4ab34f4dbb3b6",
      "tree": "aaabd9eb5a9bb3c4d730bc44aa7cc700597f08fe",
      "parents": [
        "6761d3bc3733deb5da1c7dab94743380b850fc1f"
      ],
      "author": {
        "name": "Kacper Muda",
        "email": "mudakacper@gmail.com",
        "time": "Thu Apr 30 13:44:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:44:44 2026 +0200"
      },
      "message": "chore: Bump Ol client dependency to 1.46 (#66145)"
    },
    {
      "commit": "6761d3bc3733deb5da1c7dab94743380b850fc1f",
      "tree": "eb320b77b0db54e17b22888f030f3ad2b39b93c3",
      "parents": [
        "67014e1056ec3da98d5550552dc96137c85c2b89"
      ],
      "author": {
        "name": "Ephraim Anierobi",
        "email": "splendidzigy24@gmail.com",
        "time": "Thu Apr 30 12:04:00 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:04:00 2026 +0100"
      },
      "message": "Decouple session ownership and drop unused bundle_version from parse-result helpers (#66110)\n\nThe projected AIP-92 DB-to-API swap needs DagFileProcessorManager subclasses\nthat forward parser results through an API instead of the metadata DB.\n``handle_parsing_result`` is already public and the obvious override point,\nbut its caller ``_collect_results`` is wrapped in ``@provide_session`` and\nthreads the session in -- so an override that does not need a session has\nto either accept and ignore one or replace ``_collect_results`` itself just\nto dodge the decorator.\n\nMove the ``@provide_session`` decorator down onto ``handle_parsing_result``\nand stop passing the session from ``_collect_results``. The default\nbehaviour, the persistence path, and the per-cycle error isolation are\nunchanged; subclasses overriding ``handle_parsing_result`` can now run\nwithout a session being created on their behalf.\n\nAlso drop the unused ``bundle_version`` parameter from ``process_parse_results``\n(and its caller / tests) -- it was threaded through but never read."
    },
    {
      "commit": "67014e1056ec3da98d5550552dc96137c85c2b89",
      "tree": "1402094d77264a75644ae8dfa2d3d861e370d25d",
      "parents": [
        "2aa339713924051e5ccf62461a6eaafc50f85bfa"
      ],
      "author": {
        "name": "Ephraim Anierobi",
        "email": "splendidzigy24@gmail.com",
        "time": "Thu Apr 30 10:27:01 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 10:27:01 2026 +0100"
      },
      "message": "Make TriggerRunnerSupervisor.job optional (#66006)\n\n* Make TriggerRunnerSupervisor.job optional\n\nAllow subclasses targeting AIP-92 (Execution-API-backed triggerers) to\nconstruct without a metadata-DB-backed Job. heartbeat() and load_triggers()\nno-op when job is None; _create_workload() falls back to the supervisor\u0027s\nUUID for the log filename; emit_metrics() routes through a new metric_tags()\nhook that subclasses can override to supply hostname or other identity tags\nfrom any source.\n\n* Fail loudly when TriggerRunnerSupervisor methods are called without a Job\n\nheartbeat(), load_triggers(), and metric_tags() now raise RuntimeError\nwhen self.job is None instead of silently no-opping or returning empty\ntags. The empty-tags path was unsafe — DualStatsManager would hit the\nlegacy-name branch on every tick and raise ValueError because hostname\nis a required name variable for triggers.running and\ntriggerer.capacity_left. The silent no-ops in heartbeat/load_triggers\nalso turned a missing subclass override into a zombie supervisor that\nappeared alive but did nothing.\n\nAlso rename a local that shadowed the builtin id, document the int-vs-UUID\nlog-suffix divergence at the _create_workload site, and update the class\ndocstring to spell out the override contract for AIP-92 subclasses."
    },
    {
      "commit": "2aa339713924051e5ccf62461a6eaafc50f85bfa",
      "tree": "ce8c04bd3936cdc0055bca46eebdfcd28753549f",
      "parents": [
        "ebb0170309695c4873249fa04d44bcc9fb5a5852"
      ],
      "author": {
        "name": "Ephraim Anierobi",
        "email": "splendidzigy24@gmail.com",
        "time": "Thu Apr 30 09:00:59 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 09:00:59 2026 +0100"
      },
      "message": "Extract Client factory from TriggerRunnerSupervisor into overridable method (#65978)\n\n* Extract Client factory from TriggerRunnerSupervisor into overridable method\n\nSplits the in-process Client construction out of the cached_property\ninto a separate make_client() method so subclasses can override how\nthe Client is built while still benefiting from the cached_property.\n\n* Address review feedbacks"
    },
    {
      "commit": "ebb0170309695c4873249fa04d44bcc9fb5a5852",
      "tree": "1670c0a5cfc9e5e1cb064fdfad6f8202a1b667f9",
      "parents": [
        "0960ad2f6dfc439397fd1e2ef38036d1f1886af1"
      ],
      "author": {
        "name": "Amogh Desai",
        "email": "amoghrajesh1999@gmail.com",
        "time": "Thu Apr 30 13:01:25 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 13:01:25 2026 +0530"
      },
      "message": "AIP-103: Setting up foundation with ORM and Backend Abstraction  (#65759)\n\n* Adding ORM models for task_state and asset_state\n\n* Adding base state backend and metastore implementation\n\n* Introducing config: [state_store]"
    },
    {
      "commit": "0960ad2f6dfc439397fd1e2ef38036d1f1886af1",
      "tree": "5837f41e2796356d14401aa2117db1d5db58d0ff",
      "parents": [
        "b3197fb05f2d893b75595c70cec66807d2fdb905"
      ],
      "author": {
        "name": "Dev-iL",
        "email": "6509619+Dev-iL@users.noreply.github.com",
        "time": "Thu Apr 30 07:55:51 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:55:51 2026 +0800"
      },
      "message": "Add AIP-to-user-stories skill for generating recipe playbooks from AIPs (#65776)"
    },
    {
      "commit": "b3197fb05f2d893b75595c70cec66807d2fdb905",
      "tree": "6519f1083c663d5daa51ebf280b711201deb4767",
      "parents": [
        "b5e9bae6dc34d7b7cd1f63a1069439d414635b62"
      ],
      "author": {
        "name": "Jesse",
        "email": "35264598+JesseAtSZ@users.noreply.github.com",
        "time": "Thu Apr 30 11:49:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 11:49:26 2026 +0800"
      },
      "message": "i18n: update zh-CN translation for login label (#65194)"
    },
    {
      "commit": "b5e9bae6dc34d7b7cd1f63a1069439d414635b62",
      "tree": "f340fef5bd9dca0de51b82a3d412f936aa4cab32",
      "parents": [
        "db454a83ce6fc6e1cc5b02c3e6b52073ab2d0605"
      ],
      "author": {
        "name": "Kaxil Naik",
        "email": "kaxilnaik@gmail.com",
        "time": "Thu Apr 30 01:17:50 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 01:17:50 2026 +0100"
      },
      "message": "Fix wave-release auto-trigger meta-token expansion (#66100)\n\n`publish-docs-to-s3.yml`\u0027s build-info job dropped `all-providers` and\n`apache-airflow-providers` meta-tokens when computing `registry-providers`,\nwhich left the `update-registry` gate empty and silently skipped the\nregistry update on every wave release.\n\nThis fix extracts the registry-trigger logic into a small, unit-tested\nPython script (`dev/registry/derive_wave_providers.py`). When `INCLUDE_DOCS`\ncontains a meta-token (`all`, `all-providers`, `apache-airflow-providers`)\nAND the dispatch ref matches the wave-tag pattern (`providers/YYYY-MM-DD`),\nthe script derives the wave\u0027s actual provider list from per-provider tags\nreachable from the wave ref but not from the previous wave tag. Only those\nproviders go through the incremental registry build; non-wave providers\u0027\ndownload counts and latest pointers stay untouched.\n\nFor non-wave-tag dispatches (e.g., manual rebuild against `main`) or when\nthe derivation produces an empty list, the script falls back to a full\nregistry rebuild via a new `registry-full-build` output, which the gate\nhonors alongside the existing per-provider list. The downstream\n`registry-build.yml` already interprets `provider: \"\"` as \"full build\", so\nno change is needed there."
    },
    {
      "commit": "db454a83ce6fc6e1cc5b02c3e6b52073ab2d0605",
      "tree": "b3331bb5cbfa5e2826da9acb48e9a66b9e42cb12",
      "parents": [
        "85e661414d37b0fe878525ddda9d95da54f86310"
      ],
      "author": {
        "name": "Jason(Zhe-You) Liu",
        "email": "68415893+jason810496@users.noreply.github.com",
        "time": "Thu Apr 30 07:01:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 01:01:00 2026 +0200"
      },
      "message": "CI: Block new modules under `airflow-core/src/airflow/utils/` (#66105)"
    },
    {
      "commit": "85e661414d37b0fe878525ddda9d95da54f86310",
      "tree": "871e7902543c1a7763c074717876c360d309a614",
      "parents": [
        "56a01b6abb1b77c99bb7e55e18302c3ed71e7303"
      ],
      "author": {
        "name": "Bugra Ozturk",
        "email": "bugraoz93@users.noreply.github.com",
        "time": "Thu Apr 30 00:45:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 00:45:24 2026 +0200"
      },
      "message": "Lint ClearTaskInstanceDialog.tsx (#66129)"
    },
    {
      "commit": "56a01b6abb1b77c99bb7e55e18302c3ed71e7303",
      "tree": "fc9ff62e027085c1dd9e2ee7fe30e94a6e974ae3",
      "parents": [
        "4082687dfc57a68c9321dc5be8c2289c76c14c17"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Thu Apr 30 06:40:18 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 23:40:18 2026 +0200"
      },
      "message": "refactor: word changed from DAG to Dag in chart/ (#66114)"
    },
    {
      "commit": "4082687dfc57a68c9321dc5be8c2289c76c14c17",
      "tree": "0b5e30974e6ee974f47f47f7eff13cc8047176fb",
      "parents": [
        "ac59ee01015f22a585631d8ffe3976961f09bf31"
      ],
      "author": {
        "name": "Jake McGrath",
        "email": "116606359+jroachgolf84@users.noreply.github.com",
        "time": "Wed Apr 29 17:34:43 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 00:34:43 2026 +0300"
      },
      "message": "Add `access_control_list` to `DatabricksWorkflowTaskGroup` (#64538)\n\n* issue-64527: Adding access_control_list to DatabricksWorkflowTaskGroup\n\n* Delete uv.lock\n\n* issue-64527: Re-adding uv.lock\n\n* issue-64527: Restoring uv.lock\n\n* issue-64527: Removing TODO\n\n* issue-64527: Implementing Copilot suggestions\n\n* Update providers/databricks/src/airflow/providers/databricks/operators/databricks_workflow.py\n\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* issue-64527: Resolving Copilot suggestions\n\n* issue-64527: Updating docstring, adding new test\n\n---------\n\nCo-authored-by: Jarek Potiuk \u003cjarek@potiuk.com\u003e\nCo-authored-by: Copilot \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "ac59ee01015f22a585631d8ffe3976961f09bf31",
      "tree": "c4e1045ee4c6091b70fa701191a1cb84e95d354f",
      "parents": [
        "0217a7b1048037895a41c30151314cf199ea8f14"
      ],
      "author": {
        "name": "Aakcht",
        "email": "aakcht@gmail.com",
        "time": "Thu Apr 30 02:32:56 2026 +0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 23:32:56 2026 +0200"
      },
      "message": "Chart: add missing tpl for SA annotations (#66095)"
    },
    {
      "commit": "0217a7b1048037895a41c30151314cf199ea8f14",
      "tree": "266ae2e81daf9136927b2931b76eefa2d47c6bd6",
      "parents": [
        "9a09bc2ee67b4bfac58bcc4acb21733e2e9bfe8c"
      ],
      "author": {
        "name": "John Jackson",
        "email": "75442233+john-jac@users.noreply.github.com",
        "time": "Wed Apr 29 14:07:08 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 17:07:08 2026 -0400"
      },
      "message": "Add `BedrockCreateGuardrailOperator` (#66035)"
    },
    {
      "commit": "9a09bc2ee67b4bfac58bcc4acb21733e2e9bfe8c",
      "tree": "82eac05af5102ba27d08794b6d4de8efa3f66dbe",
      "parents": [
        "b08af1239d856ebdefc68da4f21eb2d3888ac327"
      ],
      "author": {
        "name": "Oscar Ligthart",
        "email": "oscar.ligthart@vinted.com",
        "time": "Wed Apr 29 21:50:55 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 15:50:55 2026 -0400"
      },
      "message": "feat: implement patching of task group instances in API (#62812)\n\n* feat: implement patching of task group instances in API\n\n* feat: improve upon N+1 query problem\n\n* fix: revert back to multi calls\n\n* feat: implement set_task_group_state with locking mechanism\n\n* feat: some cleanup and additional tests\n\n* chore: improve function name\n\n* Small Adjustments\n\n* Small Adjustments\n\n* Fix note bug\n\n---------\n\nCo-authored-by: pierrejeambrun \u003cpierrejbrun@gmail.com\u003e"
    },
    {
      "commit": "b08af1239d856ebdefc68da4f21eb2d3888ac327",
      "tree": "79bb839a28546e6071034d7324ae3719a74fe1d9",
      "parents": [
        "d56f8e9b228163f12e28a272894334107a425298"
      ],
      "author": {
        "name": "Itay Adler",
        "email": "35665981+itayweb@users.noreply.github.com",
        "time": "Wed Apr 29 22:19:09 2026 +0300"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 15:19:09 2026 -0400"
      },
      "message": "Feat: Adding task-level filters to DAG view in graph tab (#64271)\n\n* feat: added task level filters in dag view\n\n* feat: moved to task stream filters\n\n* feat: adding new hebrew translations for the new task-level filters\n\n* feat: moving the filters to new search button\n\n* fix: fixing searching params and adding ctrl f support\n\n* fix: adding new hook test, reverting unnecessary placeholder translations, moved new filters to components folder\n\n* fix: reverting unnecessary translations placeholder\n\n* fix: refactoring more ui code include converting to use state badges, converting useOpenGroups to useGroups for reuse and more\n\n* fix: fixing conflict with TaskInstance filters and reducing calls to flattenGraphNodes\n\n* fix: changing the keyboard hotkey to open new graph task filters\n\n* fix: applying new useGroups hook in the new graph component test\n\n* fix: adding hints to be more cleared about the task filters along with fixing filter params\n\n* fix: adding hint for keyboard shortcut"
    },
    {
      "commit": "d56f8e9b228163f12e28a272894334107a425298",
      "tree": "0c8dfeff5faca3baa193a038722aa24530def281",
      "parents": [
        "249067e1c1e56d07e5111b007d5cfc7964957e33"
      ],
      "author": {
        "name": "Daeun Baek",
        "email": "70556627+nuebaek@users.noreply.github.com",
        "time": "Thu Apr 30 03:27:43 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 03:27:43 2026 +0900"
      },
      "message": "i18n(Ko): add missing translations in dag.json (Apr 29) (#66092)\n\n* i18n(Ko): add missing translations in dag.json (Apr 29)\n\n* Update airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json\n\n---------\n\nCo-authored-by: Yeonguk Choo \u003cchoo121600@gmail.com\u003e"
    },
    {
      "commit": "249067e1c1e56d07e5111b007d5cfc7964957e33",
      "tree": "92b5a4537362392b9cb36a490b4fab55641f40da",
      "parents": [
        "50ad3b9166e8cb66e581821d9f9e05901015bff4"
      ],
      "author": {
        "name": "Park Jiwon",
        "email": "57484954+david-parkk@users.noreply.github.com",
        "time": "Thu Apr 30 03:27:20 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 03:27:20 2026 +0900"
      },
      "message": "i18n(Ko): add missing translations in dag.json (#66079)\n\n* i18n(Ko): add missing translations in dag.json\n\n* i18n(Ko): fix by prek --last-commit\n\n* Update airflow-core/src/airflow/ui/public/i18n/locales/ko/dag.json\n\n---------\n\nCo-authored-by: Yeonguk Choo \u003cchoo121600@gmail.com\u003e"
    },
    {
      "commit": "50ad3b9166e8cb66e581821d9f9e05901015bff4",
      "tree": "5502891d9f23c5f9d2d64d57d5f33bd8e2ebacec",
      "parents": [
        "08f8b74c711cb03b679d36385915f2bc3f4d5e01"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Thu Apr 30 03:02:56 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 14:02:56 2026 -0400"
      },
      "message": "refactor: word changed from DAG to Dag in contributing-docs/ (#66116)"
    },
    {
      "commit": "08f8b74c711cb03b679d36385915f2bc3f4d5e01",
      "tree": "7db9e680bad6891c2e7b12e8b5bd8b6b6c7e6488",
      "parents": [
        "b89a16d3e8b7b98b76c69dd8e6aa3aea995692ab"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Thu Apr 30 03:02:20 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 14:02:20 2026 -0400"
      },
      "message": "refactor: word changed from DAG to Dag in clients/ (#66115)"
    },
    {
      "commit": "b89a16d3e8b7b98b76c69dd8e6aa3aea995692ab",
      "tree": "82febba39506aa5bb150f1103cc193f8301872b7",
      "parents": [
        "14fda0279ac3d626d4fed07aeba9cd787e81fc37"
      ],
      "author": {
        "name": "이지수",
        "email": "jisoolee031@gmail.com",
        "time": "Thu Apr 30 02:51:28 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 02:51:28 2026 +0900"
      },
      "message": "i18n(Ko): fix spacing around colon in components.json (#66096)\n\nCo-authored-by: Yeonguk Choo \u003cchoo121600@gmail.com\u003e"
    },
    {
      "commit": "14fda0279ac3d626d4fed07aeba9cd787e81fc37",
      "tree": "1f0e33c265172efd83b5ca4c13ac33082c08e869",
      "parents": [
        "e65b2384e271fa2727b63102296efb080e0510cd"
      ],
      "author": {
        "name": "Sangun-Lee-6",
        "email": "126453145+Sangun-Lee-6@users.noreply.github.com",
        "time": "Thu Apr 30 02:38:02 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 02:38:02 2026 +0900"
      },
      "message": "CLI: Fix Backfill help text capitalization (#66093)"
    },
    {
      "commit": "e65b2384e271fa2727b63102296efb080e0510cd",
      "tree": "4f0e2db4bfbdfcc8b851aa8a0a59a432c5a0fbd4",
      "parents": [
        "2a1a9d13ca5538bae2594a4ed7ce0f071ebdc9bf"
      ],
      "author": {
        "name": "Vincent",
        "email": "97131062+vincbeck@users.noreply.github.com",
        "time": "Wed Apr 29 13:22:45 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 13:22:45 2026 -0400"
      },
      "message": "Add `allow_producer_teams` to the serialization layer (#65980)"
    },
    {
      "commit": "2a1a9d13ca5538bae2594a4ed7ce0f071ebdc9bf",
      "tree": "ecbcf6147e41e44b7a23e72d189aff16d75936f7",
      "parents": [
        "d139d3765f8625589c4142d140497794000cafe7"
      ],
      "author": {
        "name": "Pierre Jeambrun",
        "email": "pierrejbrun@gmail.com",
        "time": "Wed Apr 29 19:15:15 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 13:15:15 2026 -0400"
      },
      "message": "UI: Add Clear All Mapped Tasks button  (#65813)\n\n* feat(ui): add Clear All Mapped Tasks button\n\nPicks up the feature from stale PR apache/airflow#60591 (author: Vedant\nMadane). Closes #60460.\n\nSurgical extension of the existing ClearTaskInstance* components:\n\n- ClearTaskInstanceDialog gains an \u0027allMapped\u0027 mode. When set,\n  dagId/dagRunId/taskId are taken from props instead of taskInstance,\n  task_ids uses the string form ([taskId]) to target every mapped TI,\n  and the note patch omits map_index so the backend applies it to all\n  mapped instances at once. Existing single-TI callers are unchanged.\n- ClearTaskInstanceButton gains the same \u0027allMapped\u0027 pass-through.\n- ClearTaskInstanceConfirmationDialog picks the string or tuple form\n  for task_ids depending on whether mapIndex is present.\n- New button rendered on the MappedTaskInstance header and next to the\n  TaskInstances filter when the route identifies a specific task.\n\n* Address some review comments"
    },
    {
      "commit": "d139d3765f8625589c4142d140497794000cafe7",
      "tree": "64ab55c65f1862665db4442116aa6017e702d1d0",
      "parents": [
        "ff15983262376fb375a67e23ecbc5c2a32786fa0"
      ],
      "author": {
        "name": "Ash Berlin-Taylor",
        "email": "ash@apache.org",
        "time": "Wed Apr 29 17:44:03 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 12:44:03 2026 -0400"
      },
      "message": "Show the task ID attributes (ti_id, task_id, etc.) once, not on every log line (#66036)\n\nA recent PR changed the structured log output to include these attributes on\nevery log message, which is very helpful for when the task logs make it to an\nexternal system, but when viewing them in Airflow directly it quickly becomes\n\"noise\" as they never change.\n\nThis PR \"extracts\" them out and shows them once at the the start just after\nthe source info and removes it from every other message.\n\nThey are also injected back in to the copy and download content"
    },
    {
      "commit": "ff15983262376fb375a67e23ecbc5c2a32786fa0",
      "tree": "8c972a90871ae57e0b1a710e0590a5350031a0ed",
      "parents": [
        "6f9fc5432d7868fbbc1cb7fc39a9b27b09ebeeff"
      ],
      "author": {
        "name": "Ephraim Anierobi",
        "email": "splendidzigy24@gmail.com",
        "time": "Wed Apr 29 17:40:25 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 17:40:25 2026 +0100"
      },
      "message": "Fix pod_override serialization in DAG details and executor path (#65407)\n\nSanitize default_args[\"executor_config\"][\"pod_override\"] in DAG\ndetails responses without changing other default_args values,\nand make V1Pod serialization force the Kubernetes import path\nso executor config no longer falls back to stringification.\n\nThis fixes two related Kubernetes serialization bugs: one where\nthe DAG details API could fail when pod_override was present in\ndefault_args, and another where V1Pod objects could be flattened\ninto strings before reaching the Kubernetes executor. The updated\ntests cover both the API response behavior and the serializer\nregression with real Kubernetes pod objects."
    },
    {
      "commit": "6f9fc5432d7868fbbc1cb7fc39a9b27b09ebeeff",
      "tree": "eb1137e3a2c9f4bab17f80a93f3ed647f72af484",
      "parents": [
        "f86fdd7e8384c755bef813490a96f86e85bd1e0e"
      ],
      "author": {
        "name": "hojeong park",
        "email": "parkhj062@gmail.com",
        "time": "Thu Apr 30 01:22:28 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 01:22:28 2026 +0900"
      },
      "message": "refactor: DAG to Dag in .github (#66108)"
    }
  ],
  "next": "f86fdd7e8384c755bef813490a96f86e85bd1e0e"
}
