This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a change to branch hardened-python-base-images
in repository https://gitbox.apache.org/repos/asf/airflow.git


    omit 62605dc7c2a Export KinD logs when the lang-SDK K8S test setup fails
    omit 6ec8bc8d8bd Give the OpenLineage start-up a bit more time in the 
short-stall timeout test
    omit 2a7b4bd9138 Document the stricter C extension builds of the hardened 
images
    omit b8c2a01a911 Let old C extensions build in the trixie CI image
    omit fa3a233638e Install Java that exists on trixie in the Java examples
    omit 78c31766197 Invalidate the CI image mount cache for the trixie base
    omit b1bf5b4866b Count only host keys when waiting for sshd in the CI image
    omit b10142a7826 Add trixie and sigstore to the docs spelling wordlist
    omit 33814813ac2 Warn about apt pulling a second Python into hardened images
    omit 2f9631980e9 Refresh the shared library cache after apt runs in 
hardened images
    omit 4e51828ba6e Install the Python build dependencies for the legacy image 
flavor
    omit 6a42e6be384 Keep a second hardened Python out of the trixie images
    omit 3180fbaa64d Document the anonymous Debian package repository of the 
hardened images
    omit 0e3bf7c7fbf Restore the PAM configs the trixie hardened images strip
    omit 8771ac35f7d Trust Microsoft's newer signing key for the trixie MSSQL 
repository
    omit 7af494a3a2c Drop CI image packages that Debian trixie no longer has
    omit 0ea83c10fe6 Support the trixie hardened images' Debian-packaged Python 
and test legacy images like regular ones
    omit b4e7582c15c Base images on trixie and keep a legacy bookworm PROD 
image flavor
    omit 91dacce1b55 Base CI and PROD images on hardened Python images
     add 7675d8d2f39 Add missing UI translations for Greek(el) (#74460)
     add 6255513a3b6 Add missing Polish UI translations (#74533)
     add 9bf8cc0a6fb Add Snowflake Cortex Agent management operators (#70930)
     add 0bae39f4884 Document that `SQLToolset` does not check functions 
without `allowed_tables` (#74444)
     add 1a6ea8899c3 UI: Group digits of counters in translated strings (#74296)
     add 051d5d85d2f TS SDK: Add human-in-the-loop tasks to native Dags (#74484)
     add 0c3853692bc Add user-facing docs for the new Task Loops feature. 
(#74274)
     add 78572f6efc7 Introduce the (internal/db level) concept of "dynamic 
regions" for TIs (#74275)
     add 2f7d9662623 Resolve live producers by region and read their XCom by 
attempt (#74344)
     add 9bc8cad3f84 Pin loop definitions and carry region coordinates through 
task execution (#74345)
     add 93f857f40da Give every mapped expansion a region and store its index 
as region_index (#74346)
     add 6b20a69691e Attribute log, asset-event and asset-state writes to the 
task attempt (#74347)
     add 551d54bdaee Run loop gates and advance iterations atomically (#74348)
     add ea4519b9f56 Clear selected loop work and regenerate only what was 
replaced (#74349)
     add 0226554076f Read current task executions by exact region and try 
(#74350)
     add feafb6c5ee1 Let the HITL review plugin address one loop pass or mapped 
slot (#74351)
     add d0f83bb4a3a Show current task executions in the UI (#74352)
     add fe589528ee4 Show loop iterations and outcomes throughout the UI 
(#74354)
     add ed572aff106 Bound LLM operator usage_limits across task retries 
(#74396)
     add 12bb6d9b953 Cover native TypeScript and Java Dags, including control 
flow, in the e2e suites (#73847)
     add 7749ecdb977 Bump eslint-plugin-unicorn (#74508)
     add 4ca1f6693bb Deprecate cyclic TaskGroup dependencies (#73746)
     add 72ac4fb4f1c Stop loading the task runner on every Airflow process 
startup (#74496)
     add 78d31882a08 Test that deferred capability ids stay out of Common AI 
durable fingerprints (#74423)
     add 06e7e284e32 Log capability tool calls in AgentOperator (#72202)
     add 3ac1e4f7f2e Make asset event batching opt-in (#68517)
     add 92340cf4171 i18n(ko): Add missing translations (Oct 1) (#74006)
     add c96984baf44 Add sqlglot drift tripwires for common.ai read-only SQL 
validation (#74487)
     add 1530df852ba Rename `HookToolset` `tool_name_prefix` to `tool_prefix` 
(#74447)
     add 0f06fca0fcc Exclude the Apache Tinkerpop and Vespa providers from 3.14 
(#74559)
     add 823381c1dcc Add the Python 3.15 release manager to the sigstore check 
(#74572)
     add 337642574a6 YAML Dag file parser (#74084)
     add c1d17df7b48 Warn on suspicious Dag and task IDs at Java SDK build time 
(#69937)
     add 270b2abfc25 Run TypeScript SDK unit tests on pull requests (#74513)
     add b7f7fa3439b Fix prek setup order in contributor quickstart (#74585)
     add 1806c28c36f Fix agent HITL review for list, marker and function output 
types (#74537)
     add ff6974f45e7 Record Jarek Potiuk's voting address in the PMC roster 
(#74582)
     add 3af85e214f4 Avoid a supervisor round trip before poke for rescheduled 
sensors (#68012)
     add fac3157a735 Add start-beta-process command to cut beta pre-releases 
(#74464)
     add 194e0ea4c98 Add a generated supported services page for the common.ai 
provider (#72939)
     add 0ca8f9ba718 Base CI and PROD images on hardened Python images
     add ced87fdd161 Base images on trixie and keep a legacy bookworm PROD 
image flavor
     add 936d78b993c Support the trixie hardened images' Debian-packaged Python 
and test legacy images like regular ones
     add f5efb87eddb Drop CI image packages that Debian trixie no longer has
     add f24c0a3c33d Trust Microsoft's newer signing key for the trixie MSSQL 
repository
     add 4dbf9e39c50 Restore the PAM configs the trixie hardened images strip
     add 16e1f56031e Document the anonymous Debian package repository of the 
hardened images
     add 914f638270a Keep a second hardened Python out of the trixie images
     add 3a93a018b9e Install the Python build dependencies for the legacy image 
flavor
     add 42c6b3dd389 Refresh the shared library cache after apt runs in 
hardened images
     add ae9d9d78813 Warn about apt pulling a second Python into hardened images
     add 9d66ae13ad7 Add trixie and sigstore to the docs spelling wordlist
     add f15f33dbc53 Count only host keys when waiting for sshd in the CI image
     add 1ed1b7cb7db Invalidate the CI image mount cache for the trixie base
     add 454308e3f67 Install Java that exists on trixie in the Java examples
     add 97783c647ce Let old C extensions build in the trixie CI image
     add 03bec43fc93 Document the stricter C extension builds of the hardened 
images
     add 65f5a2b5d2d Give the OpenLineage start-up a bit more time in the 
short-stall timeout test
     add 4083bb966f5 Export KinD logs when the lang-SDK K8S test setup fails
     add 052dbaa8ab1 Keep apt from replacing the hardened images' Python

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (62605dc7c2a)
            \
             N -- N -- N   refs/heads/hardened-python-base-images (052dbaa8ab1)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .agents/skills/airflow-translations/SKILL.md       |    4 +
 .agents/skills/airflow-translations/locales/ar.md  |   10 +-
 .agents/skills/airflow-translations/locales/ca.md  |    2 +-
 .agents/skills/airflow-translations/locales/de.md  |    2 +-
 .agents/skills/airflow-translations/locales/el.md  |    2 +-
 .agents/skills/airflow-translations/locales/es.md  |    2 +-
 .agents/skills/airflow-translations/locales/fr.md  |    2 +-
 .agents/skills/airflow-translations/locales/he.md  |    4 +-
 .agents/skills/airflow-translations/locales/hu.md  |    4 +-
 .agents/skills/airflow-translations/locales/ja.md  |    2 +-
 .agents/skills/airflow-translations/locales/ko.md  |   26 +-
 .agents/skills/airflow-translations/locales/nl.md  |    2 +-
 .agents/skills/airflow-translations/locales/pl.md  |    6 +-
 .agents/skills/airflow-translations/locales/pt.md  |    2 +-
 .agents/skills/airflow-translations/locales/tr.md  |    2 +-
 .../skills/airflow-translations/locales/zh-CN.md   |   12 +-
 .../skills/airflow-translations/locales/zh-TW.md   |    8 +-
 .apache-magpie-overrides/pmc-roster.md             |    2 +-
 .github/workflows/ci-amd.yml                       |   36 +
 .github/workflows/ci-arm.yml                       |   36 +
 .github/workflows/k8s-tests.yml                    |   36 +-
 .github/workflows/release-constraints.yml          |   21 +-
 .pre-commit-config.yaml                            |   14 +
 .rat-excludes                                      |    1 +
 Dockerfile                                         |   19 +
 Dockerfile.ci                                      |   19 +
 .../dag-serialization.rst                          |    2 +-
 .../task-and-asset-state-store.rst                 |    4 +-
 .../authoring-and-scheduling/asset-scheduling.rst  |   64 +
 .../docs/authoring-and-scheduling/deferring.rst    |    2 +-
 .../dynamic-task-mapping.rst                       |   18 +-
 .../docs/authoring-and-scheduling/index.rst        |    2 +
 .../loops-and-mapped-tasks.rst                     |   61 +
 .../docs/authoring-and-scheduling/loops.rst        |  392 +++++
 airflow-core/docs/core-concepts/dags.rst           |   72 +
 .../core-concepts/task-and-asset-state-store.rst   |    2 +-
 .../docs/core-concepts/task-state-store.rst        |    4 +-
 airflow-core/docs/core-concepts/tasks.rst          |    2 +-
 airflow-core/docs/migrations-ref.rst               |   11 +-
 airflow-core/newsfragments/68517.significant.rst   |   14 +
 airflow-core/newsfragments/73746.significant.rst   |   22 +
 airflow-core/newsfragments/task-loops.feature.rst  |    1 +
 .../auth/managers/simple/ui/package.json           |    2 +-
 .../auth/managers/simple/ui/pnpm-lock.yaml         |   70 +-
 .../airflow/api_fastapi/common/parameters/misc.py  |    3 +-
 .../airflow/api_fastapi/common/parameters/sort.py  |    6 +-
 .../api_fastapi/common/parameters/task_instance.py |    7 +-
 .../src/airflow/api_fastapi/common/region.py       |   54 +
 .../core_api/datamodels/asset_state_store.py       |    8 +-
 .../api_fastapi/core_api/datamodels/assets.py      |    2 +
 .../api_fastapi/core_api/datamodels/event_logs.py  |    2 +
 .../core_api/datamodels/task_instance_history.py   |   10 +-
 .../core_api/datamodels/task_instances.py          |   42 +-
 .../api_fastapi/core_api/datamodels/ui/common.py   |    4 +
 .../datamodels/ui/{gantt.py => execution.py}       |   44 +-
 .../api_fastapi/core_api/datamodels/ui/gantt.py    |   10 +-
 .../api_fastapi/core_api/datamodels/ui/grid.py     |   58 +
 .../core_api/datamodels/ui/structure.py            |    4 +
 .../api_fastapi/core_api/datamodels/xcom.py        |   10 +-
 .../api_fastapi/core_api/openapi/_private_ui.yaml  |  661 ++++++++
 .../core_api/openapi/v2-rest-api-generated.yaml    | 1151 ++++++++++++-
 .../core_api/routes/public/asset_state_store.py    |   16 +
 .../api_fastapi/core_api/routes/public/assets.py   |    6 +
 .../api_fastapi/core_api/routes/public/dag_run.py  |    7 +-
 .../core_api/routes/public/event_logs.py           |   33 +-
 .../core_api/routes/public/extra_links.py          |   39 +-
 .../api_fastapi/core_api/routes/public/hitl.py     |   98 +-
 .../api_fastapi/core_api/routes/public/log.py      |   27 +-
 .../core_api/routes/public/task_instances.py       |  537 +++++--
 .../core_api/routes/public/task_state_store.py     |  105 +-
 .../api_fastapi/core_api/routes/public/xcom.py     |  119 +-
 .../api_fastapi/core_api/routes/ui/__init__.py     |    2 +
 .../airflow/api_fastapi/core_api/routes/ui/dags.py |   12 +-
 .../api_fastapi/core_api/routes/ui/execution.py    |  112 ++
 .../api_fastapi/core_api/routes/ui/gantt.py        |   28 +-
 .../airflow/api_fastapi/core_api/routes/ui/grid.py |  123 +-
 .../core_api/routes/ui/partitioned_dag_runs.py     |   11 +-
 .../core_api/services/public/dag_run.py            |  119 +-
 .../core_api/services/public/event_logs.py         |   10 +-
 .../core_api/services/public/task_coordinates.py   |  249 +++
 .../core_api/services/public/task_instances.py     |  398 ++++-
 .../api_fastapi/core_api/services/ui/execution.py  |   74 +
 .../api_fastapi/core_api/services/ui/grid.py       |  278 +++-
 .../api_fastapi/core_api/services/ui/task_group.py |   15 +
 .../src/airflow/api_fastapi/execution_api/app.py   |   12 +-
 .../execution_api/datamodels/taskinstance.py       |   42 +-
 .../execution_api/routes/asset_state_store.py      |   40 +-
 .../execution_api/routes/task_instances.py         |  510 ++++--
 .../execution_api/routes/task_reschedules.py       |   11 +-
 .../execution_api/routes/task_state_store.py       |    8 +-
 .../api_fastapi/execution_api/routes/xcoms.py      |  359 ++++-
 .../api_fastapi/execution_api/versions/__init__.py |   10 +
 .../execution_api/versions/v2026_10_30.py          |   35 +
 .../versions/v2026_10_30_xcom_params.py}           |   33 +-
 .../src/airflow/api_fastapi/logging/decorators.py  |   39 +
 airflow-core/src/airflow/assets/manager.py         |   33 +-
 .../src/airflow/cli/commands/dag_command.py        |    9 +-
 .../airflow/cli/commands/state_store_command.py    |    6 +-
 .../src/airflow/cli/commands/task_command.py       |  103 +-
 .../src/airflow/config_templates/config.yml        |   15 +
 .../src/airflow/dag_processing/collection.py       |    1 +
 airflow-core/src/airflow/dag_processing/dagbag.py  |   31 +-
 .../src/airflow/dag_processing/processor.py        |    3 +
 .../src/airflow/example_dags/example_task_loops.py |  114 ++
 .../src/airflow/executors/base_executor.py         |    5 +-
 .../src/airflow/executors/workloads/task.py        |   23 +-
 .../src/airflow/jobs/scheduler_job_runner.py       |  289 +++-
 .../src/airflow/jobs/triggerer_job_runner.py       |   37 +-
 airflow-core/src/airflow/migrations/utils.py       |   72 +
 .../0142_3_4_0_unify_task_attempt_ownership.py     |   26 +-
 .../0143_3_4_0_add_dynamic_region_storage.py       |  211 +++
 .../versions/0144_3_4_0_rename_stored_map_index.py |   76 +
 .../0145_3_4_0_add_task_identity_to_events.py      |   49 +
 .../0146_3_4_0_add_asset_state_writer_identity.py  |   55 +
 airflow-core/src/airflow/models/__init__.py        |    1 +
 airflow-core/src/airflow/models/asset.py           |   21 +-
 .../src/airflow/models/asset_state_store.py        |    9 +-
 airflow-core/src/airflow/models/dagrun.py          |  627 ++++++--
 airflow-core/src/airflow/models/dagwarning.py      |    1 +
 airflow-core/src/airflow/models/dynamic_region.py  |  885 ++++++++++
 airflow-core/src/airflow/models/expandinput.py     |   31 +-
 airflow-core/src/airflow/models/log.py             |   71 +-
 .../src/airflow/models/renderedtifields.py         |    2 +-
 airflow-core/src/airflow/models/serialized_dag.py  |    4 +-
 .../src/airflow/models/task_coordinates.py         |  838 ++++++++++
 .../src/airflow/models/task_state_store.py         |   20 +-
 airflow-core/src/airflow/models/taskinstance.py    |  773 ++++++++-
 airflow-core/src/airflow/models/trigger.py         |   17 +-
 airflow-core/src/airflow/models/xcom.py            |   71 +-
 .../src/airflow/serialization/dag_version_diff.py  |    2 +
 .../airflow/serialization/definitions/assets.py    |   13 +
 .../serialization/definitions/baseoperator.py      |    6 +-
 .../src/airflow/serialization/definitions/dag.py   |  154 +-
 .../serialization/definitions/mappedoperator.py    |   55 +-
 .../serialization/definitions/operatorlink.py      |    8 +-
 .../airflow/serialization/definitions/taskgroup.py |   10 +
 .../airflow/serialization/definitions/xcom_arg.py  |  111 +-
 airflow-core/src/airflow/serialization/encoders.py |    7 +-
 airflow-core/src/airflow/serialization/schema.json |   12 +
 .../airflow/serialization/serialized_objects.py    |   22 +-
 airflow-core/src/airflow/state/metastore.py        |   94 +-
 airflow-core/src/airflow/ti_deps/dep_context.py    |   71 +-
 .../airflow/ti_deps/deps/mapped_task_expanded.py   |    2 +-
 .../ti_deps/deps/mapped_task_upstream_dep.py       |   37 +-
 .../ti_deps/deps/not_previously_skipped_dep.py     |    8 +-
 .../airflow/ti_deps/deps/ready_to_reschedule.py    |    9 +-
 .../src/airflow/ti_deps/deps/trigger_rule_dep.py   |   98 +-
 airflow-core/src/airflow/timetables/assets.py      |   35 +-
 airflow-core/src/airflow/timetables/base.py        |   16 +
 airflow-core/src/airflow/timetables/simple.py      |   91 +-
 .../src/airflow/ui/openapi-gen/queries/common.ts   |  175 +-
 .../ui/openapi-gen/queries/ensureQueryData.ts      |  263 ++-
 .../src/airflow/ui/openapi-gen/queries/prefetch.ts |  263 ++-
 .../src/airflow/ui/openapi-gen/queries/queries.ts  |  369 ++++-
 .../src/airflow/ui/openapi-gen/queries/suspense.ts |  263 ++-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts | 1207 ++++++++++++--
 .../ui/openapi-gen/requests/services.gen.ts        |  370 ++++-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |  529 +++++-
 .../airflow/ui/public/i18n/locales/ar/admin.json   |   12 +-
 .../airflow/ui/public/i18n/locales/ar/common.json  |   14 +-
 .../ui/public/i18n/locales/ar/components.json      |   56 +-
 .../src/airflow/ui/public/i18n/locales/ar/dag.json |   30 +-
 .../airflow/ui/public/i18n/locales/ar/dags.json    |    4 +-
 .../ui/public/i18n/locales/ar/dashboard.json       |   18 +-
 .../airflow/ui/public/i18n/locales/ar/hitl.json    |   12 +-
 .../airflow/ui/public/i18n/locales/ca/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/ca/browse.json  |    2 +-
 .../airflow/ui/public/i18n/locales/ca/common.json  |   16 +-
 .../ui/public/i18n/locales/ca/components.json      |   40 +-
 .../src/airflow/ui/public/i18n/locales/ca/dag.json |   24 +-
 .../airflow/ui/public/i18n/locales/ca/dags.json    |    4 +-
 .../ui/public/i18n/locales/ca/dashboard.json       |   14 +-
 .../airflow/ui/public/i18n/locales/ca/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/de/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/de/browse.json  |    4 +-
 .../airflow/ui/public/i18n/locales/de/common.json  |   16 +-
 .../ui/public/i18n/locales/de/components.json      |   40 +-
 .../src/airflow/ui/public/i18n/locales/de/dag.json |   24 +-
 .../airflow/ui/public/i18n/locales/de/dags.json    |    4 +-
 .../ui/public/i18n/locales/de/dashboard.json       |   12 +-
 .../airflow/ui/public/i18n/locales/de/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/el/admin.json   |   19 +-
 .../airflow/ui/public/i18n/locales/el/assets.json  |   16 +-
 .../airflow/ui/public/i18n/locales/el/browse.json  |   32 +
 .../airflow/ui/public/i18n/locales/el/common.json  |  143 +-
 .../ui/public/i18n/locales/el/components.json      |   70 +-
 .../src/airflow/ui/public/i18n/locales/el/dag.json |  101 +-
 .../airflow/ui/public/i18n/locales/el/dags.json    |   49 +-
 .../ui/public/i18n/locales/el/dashboard.json       |   27 +-
 .../airflow/ui/public/i18n/locales/el/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/en/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/en/browse.json  |    2 +-
 .../airflow/ui/public/i18n/locales/en/common.json  |   18 +-
 .../ui/public/i18n/locales/en/components.json      |   30 +-
 .../src/airflow/ui/public/i18n/locales/en/dag.json |   71 +-
 .../airflow/ui/public/i18n/locales/en/dags.json    |    8 +-
 .../ui/public/i18n/locales/en/dashboard.json       |   14 +-
 .../airflow/ui/public/i18n/locales/en/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/es/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/es/common.json  |   16 +-
 .../ui/public/i18n/locales/es/components.json      |   28 +-
 .../src/airflow/ui/public/i18n/locales/es/dag.json |   20 +-
 .../airflow/ui/public/i18n/locales/es/dags.json    |    4 +-
 .../ui/public/i18n/locales/es/dashboard.json       |   10 +-
 .../airflow/ui/public/i18n/locales/es/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/fr/admin.json   |    8 +-
 .../airflow/ui/public/i18n/locales/fr/browse.json  |    6 +-
 .../airflow/ui/public/i18n/locales/fr/common.json  |   20 +-
 .../ui/public/i18n/locales/fr/components.json      |   60 +-
 .../src/airflow/ui/public/i18n/locales/fr/dag.json |   34 +-
 .../airflow/ui/public/i18n/locales/fr/dags.json    |    4 +-
 .../ui/public/i18n/locales/fr/dashboard.json       |   20 +-
 .../airflow/ui/public/i18n/locales/fr/hitl.json    |   10 +-
 .../airflow/ui/public/i18n/locales/he/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/he/common.json  |   14 +-
 .../ui/public/i18n/locales/he/components.json      |   22 +-
 .../src/airflow/ui/public/i18n/locales/he/dag.json |   22 +-
 .../airflow/ui/public/i18n/locales/he/dags.json    |    4 +-
 .../ui/public/i18n/locales/he/dashboard.json       |   10 +-
 .../airflow/ui/public/i18n/locales/he/hitl.json    |   10 +-
 .../airflow/ui/public/i18n/locales/hi/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/hi/common.json  |   12 +-
 .../ui/public/i18n/locales/hi/components.json      |   26 +-
 .../src/airflow/ui/public/i18n/locales/hi/dag.json |   20 +-
 .../airflow/ui/public/i18n/locales/hi/dags.json    |    4 +-
 .../ui/public/i18n/locales/hi/dashboard.json       |   10 +-
 .../airflow/ui/public/i18n/locales/hi/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/hu/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/hu/common.json  |   12 +-
 .../ui/public/i18n/locales/hu/components.json      |   28 +-
 .../src/airflow/ui/public/i18n/locales/hu/dag.json |   20 +-
 .../airflow/ui/public/i18n/locales/hu/dags.json    |    4 +-
 .../ui/public/i18n/locales/hu/dashboard.json       |    6 +-
 .../airflow/ui/public/i18n/locales/hu/hitl.json    |    4 +-
 .../airflow/ui/public/i18n/locales/it/admin.json   |    8 +-
 .../airflow/ui/public/i18n/locales/it/common.json  |    4 +-
 .../ui/public/i18n/locales/it/components.json      |   44 +-
 .../src/airflow/ui/public/i18n/locales/it/dag.json |    6 +-
 .../airflow/ui/public/i18n/locales/it/dags.json    |    4 +-
 .../ui/public/i18n/locales/it/dashboard.json       |    6 +-
 .../airflow/ui/public/i18n/locales/it/hitl.json    |    6 +-
 .../airflow/ui/public/i18n/locales/ja/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/ja/common.json  |    4 +-
 .../ui/public/i18n/locales/ja/components.json      |   24 +-
 .../src/airflow/ui/public/i18n/locales/ja/dag.json |    4 +-
 .../airflow/ui/public/i18n/locales/ja/dags.json    |    4 +-
 .../ui/public/i18n/locales/ja/dashboard.json       |    4 +-
 .../airflow/ui/public/i18n/locales/ja/hitl.json    |    4 +-
 .../airflow/ui/public/i18n/locales/ko/admin.json   |    5 +-
 .../airflow/ui/public/i18n/locales/ko/assets.json  |    1 +
 .../airflow/ui/public/i18n/locales/ko/browse.json  |    2 +-
 .../airflow/ui/public/i18n/locales/ko/common.json  |   58 +-
 .../ui/public/i18n/locales/ko/components.json      |   44 +-
 .../src/airflow/ui/public/i18n/locales/ko/dag.json |  135 +-
 .../airflow/ui/public/i18n/locales/ko/dags.json    |   35 +-
 .../ui/public/i18n/locales/ko/dashboard.json       |   14 +-
 .../airflow/ui/public/i18n/locales/ko/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/nl/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/nl/common.json  |   12 +-
 .../ui/public/i18n/locales/nl/components.json      |   26 +-
 .../src/airflow/ui/public/i18n/locales/nl/dag.json |   20 +-
 .../airflow/ui/public/i18n/locales/nl/dags.json    |    4 +-
 .../ui/public/i18n/locales/nl/dashboard.json       |    6 +-
 .../airflow/ui/public/i18n/locales/nl/hitl.json    |    8 +-
 .../airflow/ui/public/i18n/locales/pl/admin.json   |   13 +-
 .../airflow/ui/public/i18n/locales/pl/assets.json  |    1 +
 .../airflow/ui/public/i18n/locales/pl/browse.json  |    6 +-
 .../airflow/ui/public/i18n/locales/pl/common.json  |   68 +-
 .../ui/public/i18n/locales/pl/components.json      |   91 +-
 .../src/airflow/ui/public/i18n/locales/pl/dag.json |  108 +-
 .../airflow/ui/public/i18n/locales/pl/dags.json    |   25 +-
 .../ui/public/i18n/locales/pl/dashboard.json       |   35 +-
 .../airflow/ui/public/i18n/locales/pl/hitl.json    |   12 +-
 .../airflow/ui/public/i18n/locales/pt/admin.json   |    8 +-
 .../airflow/ui/public/i18n/locales/pt/common.json  |   10 +-
 .../ui/public/i18n/locales/pt/components.json      |   44 +-
 .../src/airflow/ui/public/i18n/locales/pt/dag.json |    6 +-
 .../airflow/ui/public/i18n/locales/pt/dags.json    |    4 +-
 .../ui/public/i18n/locales/pt/dashboard.json       |    6 +-
 .../airflow/ui/public/i18n/locales/pt/hitl.json    |    6 +-
 .../airflow/ui/public/i18n/locales/ru/admin.json   |   12 +-
 .../airflow/ui/public/i18n/locales/ru/common.json  |   16 +-
 .../ui/public/i18n/locales/ru/components.json      |   58 +-
 .../src/airflow/ui/public/i18n/locales/ru/dag.json |   36 +-
 .../airflow/ui/public/i18n/locales/ru/dags.json    |    4 +-
 .../ui/public/i18n/locales/ru/dashboard.json       |   18 +-
 .../airflow/ui/public/i18n/locales/ru/hitl.json    |   12 +-
 .../airflow/ui/public/i18n/locales/th/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/th/common.json  |    4 +-
 .../ui/public/i18n/locales/th/components.json      |   16 +-
 .../src/airflow/ui/public/i18n/locales/th/dag.json |    4 +-
 .../airflow/ui/public/i18n/locales/th/dags.json    |    4 +-
 .../ui/public/i18n/locales/th/dashboard.json       |    4 +-
 .../airflow/ui/public/i18n/locales/th/hitl.json    |    4 +-
 .../airflow/ui/public/i18n/locales/tr/admin.json   |    4 +-
 .../airflow/ui/public/i18n/locales/tr/common.json  |   12 +-
 .../ui/public/i18n/locales/tr/components.json      |   26 +-
 .../src/airflow/ui/public/i18n/locales/tr/dag.json |   20 +-
 .../airflow/ui/public/i18n/locales/tr/dags.json    |    4 +-
 .../ui/public/i18n/locales/tr/dashboard.json       |    6 +-
 .../airflow/ui/public/i18n/locales/tr/hitl.json    |    4 +-
 .../ui/public/i18n/locales/zh-CN/admin.json        |    4 +-
 .../ui/public/i18n/locales/zh-CN/common.json       |   12 +-
 .../ui/public/i18n/locales/zh-CN/components.json   |   26 +-
 .../airflow/ui/public/i18n/locales/zh-CN/dag.json  |   14 +-
 .../airflow/ui/public/i18n/locales/zh-CN/dags.json |    4 +-
 .../ui/public/i18n/locales/zh-CN/dashboard.json    |    6 +-
 .../airflow/ui/public/i18n/locales/zh-CN/hitl.json |    8 +-
 .../ui/public/i18n/locales/zh-TW/admin.json        |    4 +-
 .../ui/public/i18n/locales/zh-TW/browse.json       |    2 +-
 .../ui/public/i18n/locales/zh-TW/common.json       |   16 +-
 .../ui/public/i18n/locales/zh-TW/components.json   |   30 +-
 .../airflow/ui/public/i18n/locales/zh-TW/dag.json  |   22 +-
 .../airflow/ui/public/i18n/locales/zh-TW/dags.json |    4 +-
 .../ui/public/i18n/locales/zh-TW/dashboard.json    |   12 +-
 .../airflow/ui/public/i18n/locales/zh-TW/hitl.json |    8 +-
 .../components/ActionAccordion/ActionAccordion.tsx |    6 +-
 .../ui/src/components/ActionAccordion/columns.tsx  |   16 +-
 .../ui/src/components/AssetProgressCell.test.tsx   |   70 +
 .../ui/src/components/AssetProgressCell.tsx        |   15 +-
 .../TaskInstance/ClearGroupTaskInstanceDialog.tsx  |    1 -
 .../ClearTaskInstanceConfirmationDialog.tsx        |   33 +-
 .../TaskInstance/ClearTaskInstanceDialog.test.tsx  |  357 ++++-
 .../Clear/TaskInstance/ClearTaskInstanceDialog.tsx |  383 +++--
 .../ui/src/components/DurationChart.test.tsx       |   36 +-
 .../airflow/ui/src/components/DurationChart.tsx    |   10 +-
 .../ui/src/components/Graph/TaskLink.test.tsx      |    6 +-
 .../airflow/ui/src/components/Graph/TaskLink.tsx   |   11 +-
 .../airflow/ui/src/components/Graph/TaskNode.tsx   |    4 +
 .../ui/src/components/Graph/elkGraphUtils.ts       |    6 +
 .../ui/src/components/Graph/reactflowUtils.ts      |    2 +
 .../TaskInstance/MarkTaskInstanceAsDialog.test.tsx |   61 +-
 .../TaskInstance/MarkTaskInstanceAsDialog.tsx      |   14 +-
 .../ui/src/components/TaskInstanceTooltip.test.tsx |    1 +
 .../ui/src/components/TaskInstanceTooltip.tsx      |   31 +-
 .../src/airflow/ui/src/components/TaskName.tsx     |   17 +-
 .../ui/src/components/TaskTrySelect.test.tsx       |   18 +-
 .../airflow/ui/src/components/TaskTrySelect.tsx    |   31 +-
 .../src/airflow/ui/src/constants/searchParams.ts   |    5 +
 .../ui/src/hooks/useHITLReviewTabs.test.tsx        |   58 +
 .../src/airflow/ui/src/hooks/useHITLReviewTabs.ts  |   26 +-
 .../src/airflow/ui/src/hooks/useLoopRuleStats.tsx  |   61 +
 .../ui/src/hooks/usePluginAppliesToContext.test.ts |   36 +-
 .../ui/src/hooks/usePluginAppliesToContext.ts      |    4 +-
 .../airflow/ui/src/hooks/useRequiredActionTabs.ts  |   55 +-
 .../ui/src/hooks/useSelectedVersion.test.tsx       |   73 +
 .../src/airflow/ui/src/hooks/useSelectedVersion.ts |    3 +
 .../ui/src/hooks/useTaskInstanceCoordinates.ts     |   17 +-
 .../ui/src/hooks/useTaskInstanceView.test.ts       |   97 ++
 .../airflow/ui/src/hooks/useTaskInstanceView.ts    |   68 +
 airflow-core/src/airflow/ui/src/i18n/config.ts     |   10 +
 .../src/airflow/ui/src/i18n/locales.test.ts        |  101 ++
 .../ui/src/layouts/Details/DagBreadcrumb.test.tsx  |   20 +-
 .../ui/src/layouts/Details/DagBreadcrumb.tsx       |    6 +-
 .../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx |    1 -
 .../layouts/Details/Gantt/GanttTimeline.test.tsx   |  120 +-
 .../ui/src/layouts/Details/Gantt/GanttTimeline.tsx |   20 +-
 .../ui/src/layouts/Details/Gantt/utils.test.ts     |  122 +-
 .../airflow/ui/src/layouts/Details/Gantt/utils.ts  |   50 +-
 .../airflow/ui/src/layouts/Details/Grid/Bar.tsx    |    3 +-
 .../ui/src/layouts/Details/Grid/GridButton.tsx     |    4 +-
 .../ui/src/layouts/Details/Grid/GridTI.test.tsx    |   13 +
 .../airflow/ui/src/layouts/Details/Grid/GridTI.tsx |   10 +-
 .../layouts/Details/Grid/TaskInstancesColumn.tsx   |    1 +
 .../ui/src/layouts/Details/Grid/TaskNames.tsx      |    5 +-
 .../Asset/AssetStateStore/AssetStateStore.test.tsx |  123 ++
 .../Asset/AssetStateStore/AssetStateStore.tsx      |   14 +-
 .../ui/src/pages/Dag/Versions/VersionDiff.test.tsx |    4 +-
 .../src/pages/DagsList/PartitionScheduleModal.tsx  |    1 +
 .../airflow/ui/src/pages/Events/Events.test.tsx    |   61 +
 .../src/airflow/ui/src/pages/Events/Events.tsx     |    8 +-
 .../pages/GroupTaskInstance/GroupTaskInstance.tsx  |    1 +
 .../GroupTaskInstance/GroupTaskInstances.test.tsx  |   93 ++
 .../pages/GroupTaskInstance/GroupTaskInstances.tsx |   47 +
 .../ui/src/pages/GroupTaskInstance/Header.tsx      |   19 +
 .../LoopIterations/IterationSelect.test.tsx        |  107 ++
 .../LoopIterations/IterationSelect.tsx             |  155 ++
 .../{ => LoopIterations}/index.ts                  |    3 +-
 .../LoopIterations/loopUtils.test.ts               |  110 ++
 .../GroupTaskInstance/LoopIterations/loopUtils.ts  |   58 +
 .../ui/src/pages/GroupTaskInstance/index.ts        |    2 +-
 .../GroupTaskInstance/useLoopOutcomeStats.tsx      |   74 +
 .../pages/HITLTaskInstances/HITLResponseForm.tsx   |    2 +
 .../src/airflow/ui/src/pages/ReactPlugin.test.tsx  |   28 +-
 .../src/airflow/ui/src/pages/ReactPlugin.tsx       |    4 +
 .../airflow/ui/src/pages/Run/Execution.test.tsx    |  512 ++++++
 .../src/airflow/ui/src/pages/Run/Execution.tsx     |  325 ++++
 airflow-core/src/airflow/ui/src/pages/Run/Run.tsx  |    1 +
 .../airflow/ui/src/pages/Task/GroupTaskHeader.tsx  |    7 +-
 .../pages/Task/Overview/LoopHistoryChart.test.tsx  |  129 ++
 .../src/pages/Task/Overview/LoopHistoryChart.tsx   |  137 ++
 .../ui/src/pages/Task/Overview/Overview.test.tsx   |   43 +-
 .../ui/src/pages/Task/Overview/Overview.tsx        |    9 +-
 .../ui/src/pages/TaskInstance/AssetEvents.test.tsx |   61 +
 .../ui/src/pages/TaskInstance/AssetEvents.tsx      |    8 +-
 .../ui/src/pages/TaskInstance/BlockingDeps.tsx     |    2 +
 .../ui/src/pages/TaskInstance/Details.test.tsx     |   19 +-
 .../airflow/ui/src/pages/TaskInstance/Details.tsx  |   64 +-
 .../ui/src/pages/TaskInstance/ExtraLinks.test.tsx  |   20 +-
 .../ui/src/pages/TaskInstance/ExtraLinks.tsx       |    3 +
 .../ui/src/pages/TaskInstance/HITLResponse.tsx     |    4 +
 .../ui/src/pages/TaskInstance/Header.test.tsx      |   32 +-
 .../airflow/ui/src/pages/TaskInstance/Header.tsx   |   24 +-
 .../pages/TaskInstance/Logs/ExternalLogLink.tsx    |    6 +-
 .../ui/src/pages/TaskInstance/Logs/Logs.tsx        |   28 +-
 .../pages/TaskInstance/Logs/LogsTryNumber.test.tsx |   25 +
 .../src/pages/TaskInstance/Logs/TaskLogHeader.tsx  |    6 +-
 .../src/pages/TaskInstance/RenderedTemplates.tsx   |    3 +
 .../src/pages/TaskInstance/TaskInstance.test.tsx   |  253 ++-
 .../ui/src/pages/TaskInstance/TaskInstance.tsx     |  116 +-
 .../TaskInstances/BulkClearTaskInstancesButton.tsx |  126 +-
 .../BulkDeleteTaskInstancesButton.tsx              |    3 +
 .../BulkMarkTaskInstancesAsButton.tsx              |   13 +-
 .../DeleteTaskInstanceButton.test.tsx              |   58 +
 .../TaskInstances/DeleteTaskInstanceButton.tsx     |    3 +
 .../src/pages/TaskInstances/TaskInstances.test.tsx |   88 +-
 .../ui/src/pages/TaskInstances/TaskInstances.tsx   |   50 +-
 .../ClearAllTaskStateStoreButton.tsx               |    4 +-
 .../TaskStateStore/DeleteTaskStateStoreButton.tsx  |    4 +-
 .../pages/TaskStateStore/TaskStateStore.test.tsx   |  114 ++
 .../ui/src/pages/TaskStateStore/TaskStateStore.tsx |    4 +
 .../TaskStateStore/TaskStateStoreModal.test.tsx    |   81 +
 .../pages/TaskStateStore/TaskStateStoreModal.tsx   |    5 +-
 .../airflow/ui/src/pages/XCom/AddXComButton.tsx    |    4 +
 .../airflow/ui/src/pages/XCom/DeleteXComButton.tsx |    2 +
 .../airflow/ui/src/pages/XCom/EditXComButton.tsx   |    2 +
 .../src/airflow/ui/src/pages/XCom/XCom.tsx         |   24 +-
 .../airflow/ui/src/pages/XCom/XComEntry.test.tsx   |   46 +-
 .../src/airflow/ui/src/pages/XCom/XComEntry.tsx    |   15 +-
 .../airflow/ui/src/pages/XCom/XComModal.test.tsx   |   82 +
 .../src/airflow/ui/src/pages/XCom/XComModal.tsx    |   21 +-
 .../airflow/ui/src/queries/gridViewQueryKeys.ts    |    4 +
 .../airflow/ui/src/queries/useBulkClearDryRun.ts   |  114 --
 .../ui/src/queries/useBulkClearTaskInstances.ts    |  133 --
 .../ui/src/queries/useBulkMarkAsDryRun.test.tsx    |   76 +
 .../airflow/ui/src/queries/useBulkMarkAsDryRun.ts  |    4 +-
 .../ui/src/queries/useClearTaskInstances.test.tsx  |   82 +
 .../ui/src/queries/useClearTaskInstances.ts        |   38 +-
 .../queries/useClearTaskInstancesDryRun.test.tsx   |   88 +
 .../ui/src/queries/useClearTaskInstancesDryRun.ts  |   57 +-
 .../src/airflow/ui/src/queries/useIsLoopGroup.ts   |   18 +-
 .../src/airflow/ui/src/queries/useLogs.test.ts     |   44 +-
 .../src/airflow/ui/src/queries/useLogs.tsx         |   22 +-
 .../src/airflow/ui/src/queries/useLoopHistory.ts   |   13 +-
 .../airflow/ui/src/queries/useLoopSummary.test.tsx |   93 ++
 .../src/airflow/ui/src/queries/useLoopSummary.ts   |   77 +
 .../ui/src/queries/usePatchTaskInstance.test.tsx   |   60 +
 .../airflow/ui/src/queries/usePatchTaskInstance.ts |    6 +-
 .../ui/src/queries/usePatchTaskInstanceDryRun.ts   |    2 +
 .../ui/src/queries/useTaskInstanceNote.test.tsx    |   54 +
 .../airflow/ui/src/queries/useTaskInstanceNote.ts  |    2 +-
 .../airflow/ui/src/queries/useUpdateHITLDetail.ts  |    6 +
 airflow-core/src/airflow/ui/src/router.tsx         |    6 +-
 .../airflow/ui/src/utils/executionParams.test.ts   |   18 +-
 .../src/airflow/ui/src/utils/executionParams.ts    |   28 +-
 .../src/airflow/ui/src/utils/links.test.ts         |   15 +
 airflow-core/src/airflow/ui/src/utils/links.ts     |   18 +-
 .../src/airflow/ui/src/utils/loopTaskInstance.ts   |   10 +-
 airflow-core/src/airflow/utils/db.py               |    5 +-
 airflow-core/src/airflow/utils/db_cleanup.py       |    8 +-
 .../src/airflow/utils/log/file_task_handler.py     |   42 +-
 .../src/airflow/utils/log/task_log_address.py      |  268 ++++
 airflow-core/src/airflow/utils/sqlalchemy.py       |   57 +-
 .../unit/api_fastapi/common/test_parameters.py     |   12 +
 .../routes/public/test_asset_state_store.py        |   55 +
 .../core_api/routes/public/test_assets.py          |   61 +
 .../core_api/routes/public/test_dag_run.py         |  212 ++-
 .../core_api/routes/public/test_dag_warning.py     |    6 +-
 .../core_api/routes/public/test_event_logs.py      |  205 ++-
 .../core_api/routes/public/test_execution.py       |  177 ++
 .../core_api/routes/public/test_extra_links.py     |  111 +-
 .../core_api/routes/public/test_hitl.py            |  140 ++
 .../api_fastapi/core_api/routes/public/test_log.py |  129 +-
 .../core_api/routes/public/test_task_instances.py  | 1546 +++++++++++++++++-
 .../routes/public/test_task_state_store.py         |  143 +-
 .../core_api/routes/public/test_xcom.py            |  164 +-
 .../api_fastapi/core_api/routes/test_routes.py     |   22 +
 .../core_api/routes/ui/test_execution.py           |   82 +
 .../api_fastapi/core_api/routes/ui/test_gantt.py   |   47 +
 .../api_fastapi/core_api/routes/ui/test_grid.py    |  435 ++++-
 .../routes/ui/test_partitioned_dag_runs.py         |   48 +-
 .../core_api/routes/ui/test_structure.py           |   28 +
 .../core_api/services/ui/test_execution.py         |   72 +
 .../unit/api_fastapi/execution_api/test_app.py     |    2 +-
 .../versions/head/test_asset_state_store.py        |   52 +
 .../versions/head/test_task_instances.py           | 1691 ++++++++++++++++++--
 .../versions/head/test_task_state_store.py         |   27 +-
 .../execution_api/versions/head/test_xcoms.py      |  682 +++++++-
 .../versions/v2026_10_30/test_task_instances.py    |   61 +-
 .../unit/api_fastapi/logging/test_decorators.py    |   67 +
 airflow-core/tests/unit/assets/test_manager.py     |   43 +-
 .../tests/unit/callbacks/test_callback_requests.py |   13 +-
 .../tests/unit/cli/commands/test_dag_command.py    |   40 +-
 .../unit/cli/commands/test_partition_command.py    |   53 +-
 .../unit/cli/commands/test_state_store_command.py  |   10 +-
 .../tests/unit/cli/commands/test_task_command.py   |  283 +++-
 .../tests/unit/dag_processing/test_collection.py   |   24 +
 .../tests/unit/dag_processing/test_dagbag.py       |   86 +-
 .../tests/unit/dag_processing/test_processor.py    |   35 +
 .../tests/unit/executors/test_base_executor.py     |   11 +
 .../tests/unit/executors/test_workloads.py         |  159 +-
 airflow-core/tests/unit/jobs/test_scheduler_job.py |  716 ++++++++-
 airflow-core/tests/unit/jobs/test_triggerer_job.py |   44 +-
 .../test_0143_add_dynamic_region_storage.py        |  231 +++
 .../test_0144_rename_stored_map_index.py           |  324 ++++
 airflow-core/tests/unit/models/conftest.py         |  113 ++
 airflow-core/tests/unit/models/test_asset.py       |   87 +-
 airflow-core/tests/unit/models/test_cleartasks.py  |  868 +++++++++-
 airflow-core/tests/unit/models/test_dag.py         |   63 +-
 airflow-core/tests/unit/models/test_dagrun.py      |  904 ++++++++++-
 .../tests/unit/models/test_dynamic_region.py       |  885 ++++++++++
 airflow-core/tests/unit/models/test_log.py         |   92 +-
 .../tests/unit/models/test_mappedoperator.py       |  414 ++++-
 .../tests/unit/models/test_task_coordinates.py     |  635 ++++++++
 airflow-core/tests/unit/models/test_task_data.py   |   22 +-
 .../tests/unit/models/test_task_state_store.py     |   18 +-
 .../tests/unit/models/test_taskinstance.py         |  402 ++++-
 airflow-core/tests/unit/models/test_xcom_arg.py    |  242 +++
 .../unit/serialization/definitions/test_assets.py  |   19 +
 .../unit/serialization/test_dag_serialization.py   |  104 +-
 .../unit/serialization/test_dag_version_diff.py    |   31 +
 airflow-core/tests/unit/state/test_metastore.py    |  136 ++
 .../ti_deps/deps/test_mapped_task_upstream_dep.py  |   33 +-
 .../ti_deps/deps/test_ready_to_reschedule_dep.py   |   28 +
 .../unit/ti_deps/deps/test_trigger_rule_dep.py     |  295 +++-
 .../tests/unit/timetables/test_assets_timetable.py |  144 +-
 .../unit/timetables/test_partitioned_timetable.py  |   54 +-
 .../tests/unit/utils/log/test_task_log_address.py  |  362 +++++
 airflow-core/tests/unit/utils/test_db.py           |   20 +
 airflow-core/tests/unit/utils/test_db_cleanup.py   |   49 +-
 airflow-core/tests/unit/utils/test_log_handlers.py |    1 +
 airflow-core/tests/unit/utils/test_sqlalchemy.py   |   62 +-
 .../src/airflowctl/api/datamodels/generated.py     |   75 +
 airflow-ctl/src/airflowctl/ctl/cli_config.py       |   30 +-
 .../tests/airflow_ctl/api/test_operations.py       |    2 +
 .../airflow_ctl/ctl/commands/test_task_command.py  |    3 +
 .../tests/airflow_ctl/ctl/test_cli_config.py       |   60 +-
 airflow-e2e-tests/docker/java.yml                  |   10 +-
 airflow-e2e-tests/docker/ts.yml                    |   12 +
 .../.gitignore                                     |    0
 .../java-native-bundle/build.gradle                |   38 +-
 .../gradle.properties                              |    0
 .../java-native-bundle/settings.gradle             |   21 +-
 .../apache/airflow/e2e/NativeBundleBuilder.java    |  150 ++
 .../airflow/e2e/nativedag/AnnotationDag.java       |  106 ++
 .../apache/airflow/e2e/nativedag/TargetDag.java    |   28 +-
 .../tests/airflow_e2e_tests/conftest.py            |   59 +-
 .../tests/airflow_e2e_tests/constants.py           |    5 +
 .../airflow_e2e_tests/e2e_test_utils/clients.py    |   36 +
 .../java_sdk_tests/test_java_sdk_native_dag.py     |  215 +++
 .../ts_sdk_tests/test_ts_sdk_hitl.py               |  200 +++
 .../ts_sdk_tests/test_ts_sdk_native_dag.py         |  253 +++
 .../03a_contributors_quick_start_beginners.rst     |   31 +-
 dev/README_RELEASE_AIRFLOW.md                      |   24 +
 dev/breeze/doc/05_test_commands.rst                |   10 +-
 dev/breeze/doc/09_release_management_tasks.rst     |   14 +
 dev/breeze/doc/ci/04_selective_checks.md           |   21 +-
 dev/breeze/doc/images/output_k8s.svg               |   26 +-
 dev/breeze/doc/images/output_k8s.txt               |    2 +-
 .../doc/images/output_k8s_run-complete-tests.svg   |    6 +-
 .../doc/images/output_k8s_run-complete-tests.txt   |    2 +-
 .../doc/images/output_k8s_setup-lang-sdk-test.svg  |   28 +-
 .../doc/images/output_k8s_setup-lang-sdk-test.txt  |    2 +-
 .../doc/images/output_release-management.svg       |  122 +-
 .../doc/images/output_release-management.txt       |    2 +-
 ...utput_release-management_start-beta-process.svg |  138 ++
 ...utput_release-management_start-beta-process.txt |    1 +
 .../output_setup_check-all-params-in-groups.svg    |    6 +-
 .../output_setup_check-all-params-in-groups.txt    |    2 +-
 .../output_setup_regenerate-command-images.svg     |   56 +-
 .../output_setup_regenerate-command-images.txt     |    2 +-
 .../airflow_breeze/commands/kubernetes_commands.py |  531 +++---
 .../commands/kubernetes_commands_config.py         |    3 +-
 .../commands/release_candidate_command.py          |  140 +-
 .../commands/release_management_commands_config.py |   11 +
 .../src/airflow_breeze/commands/ui_commands.py     |    8 +-
 .../airflow_breeze/utils/release_constraints.py    |   10 +-
 .../src/airflow_breeze/utils/selective_checks.py   |   26 +-
 .../src/airflow_breeze/utils/verification_plan.py  |    1 +
 .../tests/test_kubernetes_lang_sdk_commands.py     |  196 ++-
 dev/breeze/tests/test_release_candidate_command.py |   88 +-
 dev/breeze/tests/test_release_constraints.py       |    1 +
 dev/breeze/tests/test_selective_checks.py          |   93 +-
 dev/breeze/tests/test_ui_commands.py               |    9 +
 .../src/sphinx_exts/providers_extensions.py        |   34 +-
 .../provider_connection_services.rst.jinja2        |   28 +
 devel-common/src/tests_common/pytest_plugin.py     |   15 +
 .../src/tests_common/test_utils/asserts.py         |   20 +
 .../tests_common/test_utils/attempt_ownership.py   |   10 +-
 .../src/tests_common/test_utils/taskinstance.py    |    8 +-
 .../unit/sphinx_exts/test_providers_extensions.py  |   57 +
 docker-stack-docs/build.rst                        |    6 +
 docs/spelling_wordlist.txt                         |    9 +
 go-sdk/internal/genspec/authoring.go               |    2 +
 go-sdk/pkg/execution/genmodels/models.gen.go       |  191 ++-
 go-sdk/schema/dag-schema.json                      |   12 +
 go-sdk/schema/supervisor-schema.json               |  114 ++
 .../apache/airflow/sdk/plugin/AirflowSdkPlugin.kt  |   23 +
 .../airflow/sdk/plugin/AirflowSdkPluginTest.kt     |   50 +
 java-sdk/sdk/build.gradle.kts                      |    1 +
 java-sdk/sdk/schema/dag-schema.json                |   12 +
 .../org/apache/airflow/sdk/BundleInspector.kt      |  113 ++
 .../main/kotlin/org/apache/airflow/sdk/DagDef.kt   |   10 +-
 .../kotlin/org/apache/airflow/sdk/IdValidation.kt  |   86 +
 .../org/apache/airflow/sdk/BundleInspectorTest.kt  |  164 ++
 .../org/apache/airflow/sdk/IdValidationTest.kt     |  105 ++
 .../{Dockerfile.java => Dockerfile.runtimes}       |   21 +-
 kubernetes-tests/lang_sdk/README.md                |  145 +-
 .../lang_sdk/airflowignore_all                     |    0
 kubernetes-tests/lang_sdk/config/values.yaml       |   67 +-
 ..._sdk_combined.py => lang_sdk_mixed_language.py} |   30 +-
 kubernetes-tests/lang_sdk/go_example/main.go       |   21 +-
 .../airflow/k8sexample/K8sBundleBuilder.java       |    4 +-
 ...binedExample.java => MixedLanguageExample.java} |   16 +-
 .../lang_sdk/pod_templates/lang_sdk_golang.yaml    |  118 --
 .../{lang_sdk_java.yaml => lang_sdk_worker.yaml}   |   60 +-
 kubernetes-tests/lang_sdk/stage_artifacts.py       |   92 --
 kubernetes-tests/lang_sdk/ts_example/.gitignore    |    3 +
 .../lang_sdk/ts_example}/package.json              |    5 +-
 .../lang_sdk/ts_example/pnpm-lock.yaml             |  336 ++++
 kubernetes-tests/lang_sdk/ts_example/src/main.ts   |   47 +
 .../lang_sdk/ts_example}/tsconfig.json             |   13 +-
 ...executor.py => test_lang_sdk_mixed_language.py} |   24 +-
 .../kubernetes_tests/test_lang_sdk_native_dag.py   |  206 +++
 .../aws/executors/batch/test_batch_executor.py     |   31 +-
 .../amazon/aws/executors/ecs/test_ecs_executor.py  |   31 +-
 providers/apache/tinkerpop/README.rst              |    2 +-
 providers/apache/tinkerpop/provider.yaml           |    4 +
 providers/apache/tinkerpop/pyproject.toml          |    3 +-
 .../kubernetes/operators/test_spark_kubernetes.py  |    4 +-
 providers/common/ai/.pre-commit-config.yaml        |    2 +-
 providers/common/ai/docs/agent_security.rst        |   14 +-
 providers/common/ai/docs/capabilities.rst          |   10 +-
 providers/common/ai/docs/changelog.rst             |   11 +
 providers/common/ai/docs/connections/langchain.rst |   10 +-
 providers/common/ai/docs/hitl_review.rst           |    5 +
 providers/common/ai/docs/index.rst                 |    1 +
 providers/common/ai/docs/model_providers.rst       |    3 +
 providers/common/ai/docs/operators/agent.rst       |   11 +-
 providers/common/ai/docs/operators/llm.rst         |   53 +-
 providers/common/ai/docs/stability.rst             |    5 +-
 providers/common/ai/docs/supported_services.rst    |   82 +
 providers/common/ai/docs/toolsets/hook.rst         |   11 +-
 providers/common/ai/docs/toolsets/logging.rst      |   30 +-
 providers/common/ai/docs/toolsets/sql.rst          |   16 +
 providers/common/ai/provider.yaml                  |   32 +-
 .../providers/common/ai/durable/fingerprint.py     |   19 +-
 .../common/ai/example_dags/example_agent.py        |    4 +-
 .../common/ai/example_dags/example_hook_toolset.py |    2 +-
 .../providers/common/ai/get_provider_info.py       |   31 +-
 .../providers/common/ai/hooks/pydantic_ai.py       |    2 +-
 .../providers/common/ai/mixins/usage_budget.py     |  152 ++
 .../airflow/providers/common/ai/operators/agent.py |  143 +-
 .../airflow/providers/common/ai/operators/llm.py   |   49 +-
 .../providers/common/ai/operators/llm_branch.py    |    8 +-
 .../common/ai/operators/llm_file_analysis.py       |    5 +-
 .../common/ai/operators/llm_schema_compare.py      |   20 +-
 .../providers/common/ai/operators/llm_sql.py       |    8 +-
 .../providers/common/ai/plugins/hitl_review.py     |  125 +-
 .../providers/common/ai/plugins/www/package.json   |    1 +
 .../providers/common/ai/plugins/www/src/api.ts     |   13 +-
 .../ai/plugins/www/src/components/ChatPage.tsx     |    9 +-
 .../common/ai/plugins/www/src/hooks/useSession.ts  |    5 +-
 .../providers/common/ai/plugins/www/src/main.tsx   |   46 +-
 .../common/ai/plugins/www/tests/api.test.ts        |   63 +
 .../common/ai/plugins/www/tests/main.test.mjs      |   43 +
 .../airflow/providers/common/ai/tools/__init__.py  |    8 +-
 .../airflow/providers/common/ai/toolsets/hook.py   |   40 +-
 .../providers/common/ai/toolsets/logging.py        |   51 +-
 .../airflow/providers/common/ai/utils/logging.py   |   11 -
 .../providers/common/ai/utils/usage_budget.py      |   15 +-
 .../common/ai/tests/unit/common/ai/conftest.py     |   48 +
 .../tests/unit/common/ai/decorators/test_agent.py  |   12 +-
 .../unit/common/ai/durable/test_fingerprint.py     |   15 +
 .../unit/common/ai/mixins/test_usage_budget.py     |  190 +++
 .../tests/unit/common/ai/operators/test_agent.py   |  568 +++++--
 .../ai/tests/unit/common/ai/operators/test_llm.py  |  246 ++-
 .../unit/common/ai/operators/test_llm_branch.py    |  121 +-
 .../common/ai/operators/test_llm_file_analysis.py  |   88 +-
 .../common/ai/operators/test_llm_schema_compare.py |  129 +-
 .../tests/unit/common/ai/operators/test_llm_sql.py |  121 +-
 .../unit/common/ai/plugins/test_hitl_review.py     |  469 +++++-
 .../tests/unit/common/ai/test_provider_metadata.py |  478 ++++++
 .../unit/common/ai/tools/test__from_toolset.py     |    2 +-
 .../ai/tests/unit/common/ai/tools/test_tools.py    |    5 +-
 .../ai/tests/unit/common/ai/toolsets/test_hook.py  |   58 +-
 .../tests/unit/common/ai/toolsets/test_logging.py  |  135 +-
 .../ai/tests/unit/common/ai/utils/test_logging.py  |   17 -
 .../unit/common/ai/utils/test_sql_validation.py    |  163 +-
 providers/common/io/docs/state_store_backend.rst   |    4 +-
 providers/common/io/provider.yaml                  |    4 +-
 .../providers/common/io/get_provider_info.py       |    2 +-
 .../providers/common/io/state_store/backend.py     |   32 +-
 .../airflow/providers/common/io/version_compat.py  |    1 +
 .../unit/common/io/state_store/test_backend.py     |   49 +-
 .../src/airflow/providers/edge3/cli/api_client.py  |   19 +-
 .../src/airflow/providers/edge3/cli/worker.py      |    3 +
 .../providers/edge3/worker_api/datamodels.py       |    7 +
 .../providers/edge3/worker_api/routes/logs.py      |   31 +-
 .../edge3/worker_api/v2-edge-generated.yaml        |   28 +
 .../edge3/tests/unit/edge3/cli/test_api_client.py  |   52 +
 .../edge3/tests/unit/edge3/cli/test_worker.py      |   31 +-
 .../unit/edge3/worker_api/routes/test_logs.py      |  139 ++
 .../providers/elasticsearch/log/es_task_handler.py |    3 +-
 .../unit/elasticsearch/log/test_es_task_handler.py |    6 +
 .../providers/openlineage/plugins/facets.py        |    7 +-
 .../providers/openlineage/plugins/listener.py      |   37 +-
 .../providers/openlineage/plugins/macros.py        |    6 +-
 .../airflow/providers/openlineage/utils/utils.py   |  163 +-
 .../providers/openlineage/version_compat.py        |    3 +-
 .../unit/openlineage/plugins/test_listener.py      |   71 +
 .../tests/unit/openlineage/plugins/test_macros.py  |   40 +-
 .../tests/unit/openlineage/plugins/test_utils.py   |   39 +-
 .../tests/unit/openlineage/utils/test_utils.py     |  285 +++-
 .../providers/opensearch/log/os_task_handler.py    |    3 +-
 .../unit/opensearch/log/test_os_task_handler.py    |    6 +
 .../docs/operators/snowflake_cortex_agent.rst      |  108 +-
 .../snowflake/operators/snowflake_cortex_agent.py  |  278 +++-
 .../snowflake/example_snowflake_cortex_agent.py    |   60 +-
 .../operators/test_snowflake_cortex_agent.py       |  309 +++-
 providers/vespa/README.rst                         |    2 +-
 providers/vespa/provider.yaml                      |    3 +
 providers/vespa/pyproject.toml                     |    3 +-
 pyproject.toml                                     |    8 +-
 .../check_template_context_variable_in_sync.py     |    2 +
 .../ci/prek/check_yaml_importer_schema_versions.py |  137 ++
 scripts/ci/prek/generate_yaml_importer_schema.py   |   66 +
 scripts/ci/prek/ts_compile_lint_common_ai.py       |    1 +
 scripts/docker/install_os_dependencies.sh          |   19 +
 shared/state/src/airflow_shared/state/__init__.py  |   48 +-
 shared/state/tests/state/test_state.py             |   28 +
 task-sdk/docs/api.rst                              |    2 +
 task-sdk/docs/concepts.rst                         |    2 +-
 task-sdk/docs/deferred-vs-async-operators.rst      |   12 +-
 task-sdk/docs/dynamic-task-mapping.rst             |    8 +-
 task-sdk/docs/examples.rst                         |    4 +-
 task-sdk/pyproject.toml                            |    1 +
 task-sdk/src/airflow/sdk/__init__.py               |    3 +
 task-sdk/src/airflow/sdk/__init__.pyi              |    2 +
 task-sdk/src/airflow/sdk/api/client.py             |   50 +-
 .../src/airflow/sdk/api/datamodels/_generated.py   |   20 +
 task-sdk/src/airflow/sdk/bases/decorator.py        |   27 +-
 task-sdk/src/airflow/sdk/bases/operator.py         |    1 +
 task-sdk/src/airflow/sdk/bases/xcom.py             |    2 +
 .../src/airflow/sdk/definitions/_internal/loop.py  |  218 +++
 .../src/airflow/sdk/definitions/_internal/node.py  |   15 +-
 .../src/airflow/sdk/definitions/asset/__init__.py  |   13 +
 task-sdk/src/airflow/sdk/definitions/context.py    |    4 +-
 task-sdk/src/airflow/sdk/definitions/dag.py        |   62 +-
 .../sdk/definitions/decorators/task_group.py       |   39 +-
 .../src/airflow/sdk/definitions/mappedoperator.py  |    1 -
 task-sdk/src/airflow/sdk/definitions/taskgroup.py  |   45 +-
 .../airflow/sdk/definitions/timetables/assets.py   |   51 +-
 task-sdk/src/airflow/sdk/definitions/xcom_arg.py   |    3 +-
 task-sdk/src/airflow/sdk/exceptions.py             |    4 +
 task-sdk/src/airflow/sdk/execution_time/comms.py   |    4 +
 .../airflow/sdk/execution_time/lazy_sequence.py    |    4 +
 task-sdk/src/airflow/sdk/execution_time/loop.py    |  104 ++
 .../airflow/sdk/execution_time/request_handlers.py |   34 +-
 .../airflow/sdk/execution_time/schema/schema.json  |  114 ++
 .../sdk/execution_time/schema/versions/__init__.py |    6 +
 .../execution_time/schema/versions/v2026_10_30.py  |   51 +-
 .../src/airflow/sdk/execution_time/supervisor.py   |    6 +-
 .../src/airflow/sdk/execution_time/task_runner.py  |   63 +-
 .../sdk/importers/yaml_importer/__init__.py        |   29 +-
 .../sdk/importers/yaml_importer/migrator.py        |  168 ++
 .../airflow/sdk/importers/yaml_importer/models.py  |  459 ++++++
 .../airflow/sdk/importers/yaml_importer/parser.py  |  102 ++
 .../sdk/importers/yaml_importer/schema.json        |  365 +++++
 .../importers/yaml_importer/versions/__init__.py   |   30 +-
 task-sdk/src/airflow/sdk/log.py                    |   33 +-
 task-sdk/src/airflow/sdk/types.py                  |    9 +-
 task-sdk/tests/conftest.py                         |    6 +
 .../task_sdk/definitions/_internal/test_loop.py    |  431 +++++
 .../task_sdk/definitions/decorators/test_result.py |   39 +-
 .../definitions/decorators/test_task_group.py      |  120 +-
 task-sdk/tests/task_sdk/definitions/test_asset.py  |   16 +
 task-sdk/tests/task_sdk/definitions/test_dag.py    |  334 +++-
 .../tests/task_sdk/definitions/test_xcom_arg.py    |   51 +-
 .../task_sdk/definitions/timetables/test_assets.py |  166 ++
 .../execution_time/schema/test_migrator.py         |  153 +-
 .../tests/task_sdk/execution_time/test_comms.py    |   16 +-
 .../tests/task_sdk/execution_time/test_loop.py     |  245 +++
 .../execution_time/test_request_handlers.py        |   51 +
 .../task_sdk/execution_time/test_supervisor.py     |   42 +-
 .../task_sdk/execution_time/test_task_runner.py    |  129 +-
 .../task_sdk/importers/yaml_importer}/__init__.py  |    0
 .../importers/yaml_importer/example_dag.yaml       |   69 +
 .../importers/yaml_importer/test_migrator.py       |  188 +++
 .../importers/yaml_importer/test_parser.py         |  576 +++++++
 task-sdk/tests/task_sdk/test_log.py                |   32 +
 ts-sdk/README.md                                   |   94 +-
 ts-sdk/adr/0002-native-dag-interface.md            |   18 +-
 ts-sdk/api-docs/dag-authoring-api.ts               |    1 +
 ts-sdk/{vitest.config.ts => api-docs/hitl-api.ts}  |   18 +-
 ts-sdk/capabilities.yaml                           |    9 +-
 ts-sdk/example/README.md                           |    5 +
 ts-sdk/example/package.json                        |    4 +-
 ts-sdk/example/src/ai-approval.ts                  |  198 +++
 ts-sdk/example/src/hitl.ts                         |  137 ++
 ts-sdk/example/src/main.ts                         |   12 +-
 ts-sdk/example/src/native.ts                       |  167 ++
 ts-sdk/example/tsconfig.json                       |    4 +-
 ts-sdk/package.json                                |    4 +
 ts-sdk/schema/dag-schema.json                      |   12 +
 ts-sdk/schema/supervisor-schema.json               |  114 ++
 ts-sdk/scripts/generate-dag-schema.mjs             |    2 +
 ts-sdk/src/coordinator/client.ts                   |   19 +
 ts-sdk/src/coordinator/operator-runner.ts          |  140 ++
 ts-sdk/src/coordinator/protocol.ts                 |    4 +
 ts-sdk/src/coordinator/runtime.ts                  |   63 +-
 ts-sdk/src/coordinator/serde.ts                    |  275 +---
 ts-sdk/src/generated/supervisor.ts                 |   37 +
 .../GroupTaskInstance => ts-sdk/src/hitl}/index.ts |   12 +-
 ts-sdk/src/hitl/operator.ts                        |  281 ++++
 ts-sdk/src/hitl/spec.ts                            |  447 ++++++
 ts-sdk/src/sdk/bundle.ts                           |   30 +-
 ts-sdk/src/sdk/dag-graph.ts                        |  236 +++
 ts-sdk/src/sdk/dag.ts                              |  117 +-
 .../dag-authoring-api.ts => src/sdk/env.ts}        |   33 +-
 ts-sdk/src/sdk/operator.ts                         |  150 ++
 ts-sdk/src/sdk/plain-json.ts                       |   60 +
 .../trigger-dag-run-execute.ts}                    |  106 +-
 ts-sdk/src/sdk/trigger-dag-run.ts                  |   43 +-
 ts-sdk/tests/coordinator/integration.test.ts       |  561 ++++++-
 ts-sdk/tests/coordinator/operator-runner.test.ts   |  207 +++
 ts-sdk/tests/hitl/operator.test.ts                 |  169 ++
 ts-sdk/tests/hitl/spec.test.ts                     |  353 ++++
 ts-sdk/tests/public-api.test.ts                    |    6 +
 ts-sdk/tests/sdk/dag.test.ts                       |   35 +
 ts-sdk/tests/sdk/hitl-inference.test.ts            |  117 ++
 ts-sdk/tests/sdk/native-dag-example.test.ts        |  213 +++
 ts-sdk/tests/sdk/trigger-dag-run.test.ts           |   21 +-
 ts-sdk/tsconfig.json                               |   12 +-
 ts-sdk/vitest.config.ts                            |   15 +
 uv.lock                                            |  550 +++----
 836 files changed, 54723 insertions(+), 6513 deletions(-)
 create mode 100644 
airflow-core/docs/authoring-and-scheduling/loops-and-mapped-tasks.rst
 create mode 100644 airflow-core/docs/authoring-and-scheduling/loops.rst
 create mode 100644 airflow-core/newsfragments/68517.significant.rst
 create mode 100644 airflow-core/newsfragments/73746.significant.rst
 create mode 100644 airflow-core/newsfragments/task-loops.feature.rst
 create mode 100644 airflow-core/src/airflow/api_fastapi/common/region.py
 copy airflow-core/src/airflow/api_fastapi/core_api/datamodels/ui/{gantt.py => 
execution.py} (52%)
 create mode 100644 
airflow-core/src/airflow/api_fastapi/core_api/routes/ui/execution.py
 create mode 100644 
airflow-core/src/airflow/api_fastapi/core_api/services/public/task_coordinates.py
 create mode 100644 
airflow-core/src/airflow/api_fastapi/core_api/services/ui/execution.py
 copy airflow-core/src/airflow/api_fastapi/{core_api/datamodels/ui/gantt.py => 
execution_api/versions/v2026_10_30_xcom_params.py} (52%)
 create mode 100644 airflow-core/src/airflow/example_dags/example_task_loops.py
 create mode 100644 
airflow-core/src/airflow/migrations/versions/0143_3_4_0_add_dynamic_region_storage.py
 create mode 100644 
airflow-core/src/airflow/migrations/versions/0144_3_4_0_rename_stored_map_index.py
 create mode 100644 
airflow-core/src/airflow/migrations/versions/0145_3_4_0_add_task_identity_to_events.py
 create mode 100644 
airflow-core/src/airflow/migrations/versions/0146_3_4_0_add_asset_state_writer_identity.py
 create mode 100644 airflow-core/src/airflow/models/dynamic_region.py
 create mode 100644 airflow-core/src/airflow/models/task_coordinates.py
 create mode 100644 
airflow-core/src/airflow/ui/src/components/AssetProgressCell.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/hooks/useHITLReviewTabs.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/hooks/useLoopRuleStats.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/hooks/useSelectedVersion.test.tsx
 copy ts-sdk/vitest.config.ts => 
airflow-core/src/airflow/ui/src/hooks/useTaskInstanceCoordinates.ts (64%)
 create mode 100644 
airflow-core/src/airflow/ui/src/hooks/useTaskInstanceView.test.ts
 create mode 100644 airflow-core/src/airflow/ui/src/hooks/useTaskInstanceView.ts
 create mode 100644 airflow-core/src/airflow/ui/src/i18n/locales.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Asset/AssetStateStore/AssetStateStore.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Events/Events.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstances.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstances.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/IterationSelect.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/IterationSelect.tsx
 copy airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/{ => 
LoopIterations}/index.ts (93%)
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/loopUtils.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/loopUtils.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/useLoopOutcomeStats.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Execution.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Execution.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Task/Overview/LoopHistoryChart.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Task/Overview/LoopHistoryChart.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/TaskInstance/AssetEvents.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/TaskInstances/DeleteTaskInstanceButton.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStore.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStoreModal.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/XCom/XComModal.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/queries/useBulkClearDryRun.ts
 delete mode 100644 
airflow-core/src/airflow/ui/src/queries/useBulkClearTaskInstances.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useBulkMarkAsDryRun.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useClearTaskInstances.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useClearTaskInstancesDryRun.test.tsx
 copy ts-sdk/vitest.config.ts => 
airflow-core/src/airflow/ui/src/queries/useIsLoopGroup.ts (54%)
 copy ts-sdk/vitest.config.ts => 
airflow-core/src/airflow/ui/src/queries/useLoopHistory.ts (70%)
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useLoopSummary.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/queries/useLoopSummary.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/usePatchTaskInstance.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useTaskInstanceNote.test.tsx
 copy ts-sdk/vitest.config.ts => 
airflow-core/src/airflow/ui/src/utils/executionParams.test.ts (59%)
 copy 
kubernetes-tests/lang_sdk/java_example/src/java/org/apache/airflow/k8sexample/K8sBundleBuilder.java
 => airflow-core/src/airflow/ui/src/utils/executionParams.ts (57%)
 copy ts-sdk/vitest.config.ts => 
airflow-core/src/airflow/ui/src/utils/loopTaskInstance.ts (74%)
 create mode 100644 airflow-core/src/airflow/utils/log/task_log_address.py
 create mode 100644 
airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_execution.py
 create mode 100644 
airflow-core/tests/unit/api_fastapi/core_api/routes/ui/test_execution.py
 create mode 100644 
airflow-core/tests/unit/api_fastapi/core_api/services/ui/test_execution.py
 create mode 100644 
airflow-core/tests/unit/migrations/test_0143_add_dynamic_region_storage.py
 create mode 100644 
airflow-core/tests/unit/migrations/test_0144_rename_stored_map_index.py
 create mode 100644 airflow-core/tests/unit/models/conftest.py
 create mode 100644 airflow-core/tests/unit/models/test_dynamic_region.py
 create mode 100644 airflow-core/tests/unit/models/test_task_coordinates.py
 create mode 100644 airflow-core/tests/unit/utils/log/test_task_log_address.py
 copy airflow-e2e-tests/{java-test-bundle => java-native-bundle}/.gitignore 
(100%)
 copy 
kubernetes-tests/lang_sdk/java_example/src/java/org/apache/airflow/k8sexample/K8sBundleBuilder.java
 => airflow-e2e-tests/java-native-bundle/build.gradle (55%)
 copy airflow-e2e-tests/{java-test-bundle => 
java-native-bundle}/gradle.properties (100%)
 copy ts-sdk/vitest.config.ts => 
airflow-e2e-tests/java-native-bundle/settings.gradle (68%)
 create mode 100644 
airflow-e2e-tests/java-native-bundle/src/java/org/apache/airflow/e2e/NativeBundleBuilder.java
 create mode 100644 
airflow-e2e-tests/java-native-bundle/src/java/org/apache/airflow/e2e/nativedag/AnnotationDag.java
 copy 
kubernetes-tests/lang_sdk/java_example/src/java/org/apache/airflow/k8sexample/K8sBundleBuilder.java
 => 
airflow-e2e-tests/java-native-bundle/src/java/org/apache/airflow/e2e/nativedag/TargetDag.java
 (50%)
 create mode 100644 
airflow-e2e-tests/tests/airflow_e2e_tests/java_sdk_tests/test_java_sdk_native_dag.py
 create mode 100644 
airflow-e2e-tests/tests/airflow_e2e_tests/ts_sdk_tests/test_ts_sdk_hitl.py
 create mode 100644 
airflow-e2e-tests/tests/airflow_e2e_tests/ts_sdk_tests/test_ts_sdk_native_dag.py
 create mode 100644 
dev/breeze/doc/images/output_release-management_start-beta-process.svg
 create mode 100644 
dev/breeze/doc/images/output_release-management_start-beta-process.txt
 create mode 100644 
devel-common/src/sphinx_exts/templates/provider_connection_services.rst.jinja2
 create mode 100644 
devel-common/tests/unit/sphinx_exts/test_providers_extensions.py
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/BundleInspector.kt
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/IdValidation.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/BundleInspectorTest.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/IdValidationTest.kt
 copy kubernetes-tests/lang_sdk/{Dockerfile.java => Dockerfile.runtimes} (54%)
 copy manifests/.gitignore => kubernetes-tests/lang_sdk/airflowignore_all (100%)
 rename kubernetes-tests/lang_sdk/dags/{lang_sdk_combined.py => 
lang_sdk_mixed_language.py} (68%)
 rename 
kubernetes-tests/lang_sdk/java_example/src/java/org/apache/airflow/k8sexample/{CombinedExample.java
 => MixedLanguageExample.java} (71%)
 delete mode 100644 kubernetes-tests/lang_sdk/pod_templates/lang_sdk_golang.yaml
 rename kubernetes-tests/lang_sdk/pod_templates/{lang_sdk_java.yaml => 
lang_sdk_worker.yaml} (57%)
 delete mode 100644 kubernetes-tests/lang_sdk/stage_artifacts.py
 create mode 100644 kubernetes-tests/lang_sdk/ts_example/.gitignore
 copy {ts-sdk/example => kubernetes-tests/lang_sdk/ts_example}/package.json 
(71%)
 create mode 100644 kubernetes-tests/lang_sdk/ts_example/pnpm-lock.yaml
 create mode 100644 kubernetes-tests/lang_sdk/ts_example/src/main.ts
 copy {ts-sdk => kubernetes-tests/lang_sdk/ts_example}/tsconfig.json (54%)
 rename 
kubernetes-tests/tests/kubernetes_tests/{test_lang_sdk_coordinator_executor.py 
=> test_lang_sdk_mixed_language.py} (78%)
 create mode 100644 
kubernetes-tests/tests/kubernetes_tests/test_lang_sdk_native_dag.py
 create mode 100644 providers/common/ai/docs/supported_services.rst
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/mixins/usage_budget.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/tests/api.test.ts
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/tests/main.test.mjs
 create mode 100644 
providers/common/ai/tests/unit/common/ai/mixins/test_usage_budget.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/test_provider_metadata.py
 create mode 100755 scripts/ci/prek/check_yaml_importer_schema_versions.py
 create mode 100755 scripts/ci/prek/generate_yaml_importer_schema.py
 create mode 100644 task-sdk/src/airflow/sdk/definitions/_internal/loop.py
 create mode 100644 task-sdk/src/airflow/sdk/execution_time/loop.py
 rename kubernetes-tests/lang_sdk/Dockerfile.java => 
task-sdk/src/airflow/sdk/importers/yaml_importer/__init__.py (57%)
 create mode 100644 task-sdk/src/airflow/sdk/importers/yaml_importer/migrator.py
 create mode 100644 task-sdk/src/airflow/sdk/importers/yaml_importer/models.py
 create mode 100644 task-sdk/src/airflow/sdk/importers/yaml_importer/parser.py
 create mode 100644 task-sdk/src/airflow/sdk/importers/yaml_importer/schema.json
 copy airflow-core/src/airflow/ti_deps/deps/mapped_task_expanded.py => 
task-sdk/src/airflow/sdk/importers/yaml_importer/versions/__init__.py (58%)
 create mode 100644 task-sdk/tests/task_sdk/definitions/_internal/test_loop.py
 create mode 100644 
task-sdk/tests/task_sdk/definitions/timetables/test_assets.py
 create mode 100644 task-sdk/tests/task_sdk/execution_time/test_loop.py
 copy {airflow-core/src/airflow/_shared => 
task-sdk/tests/task_sdk/importers/yaml_importer}/__init__.py (100%)
 create mode 100644 
task-sdk/tests/task_sdk/importers/yaml_importer/example_dag.yaml
 create mode 100644 
task-sdk/tests/task_sdk/importers/yaml_importer/test_migrator.py
 create mode 100644 
task-sdk/tests/task_sdk/importers/yaml_importer/test_parser.py
 copy ts-sdk/{vitest.config.ts => api-docs/hitl-api.ts} (78%)
 create mode 100644 ts-sdk/example/src/ai-approval.ts
 create mode 100644 ts-sdk/example/src/hitl.ts
 create mode 100644 ts-sdk/example/src/native.ts
 create mode 100644 ts-sdk/src/coordinator/operator-runner.ts
 copy {airflow-core/src/airflow/ui/src/pages/GroupTaskInstance => 
ts-sdk/src/hitl}/index.ts (81%)
 create mode 100644 ts-sdk/src/hitl/operator.ts
 create mode 100644 ts-sdk/src/hitl/spec.ts
 create mode 100644 ts-sdk/src/sdk/dag-graph.ts
 copy ts-sdk/{api-docs/dag-authoring-api.ts => src/sdk/env.ts} (60%)
 create mode 100644 ts-sdk/src/sdk/operator.ts
 create mode 100644 ts-sdk/src/sdk/plain-json.ts
 rename ts-sdk/src/{coordinator/trigger-runner.ts => 
sdk/trigger-dag-run-execute.ts} (67%)
 create mode 100644 ts-sdk/tests/coordinator/operator-runner.test.ts
 create mode 100644 ts-sdk/tests/hitl/operator.test.ts
 create mode 100644 ts-sdk/tests/hitl/spec.test.ts
 create mode 100644 ts-sdk/tests/sdk/hitl-inference.test.ts
 create mode 100644 ts-sdk/tests/sdk/native-dag-example.test.ts

Reply via email to