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

ashb pushed a change to branch single-pass-spelling
in repository https://gitbox.apache.org/repos/asf/airflow.git


    omit 733b47b6888 Halve the time to build docs locally by inlining spell 
checking
     add bb721616ad0 Fix AWS auth manager login when the IdP is on another site 
(#74529)
     add 65a83820fef Let SandboxToolset be deep-copied again (#74525)
     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 d05147d56cb Halve the time to build docs locally by inlining spell 
checking

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   (733b47b6888)
            \
             N -- N -- N   refs/heads/single-pass-spelling (d05147d56cb)

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 +-
 .github/workflows/k8s-tests.yml                    |   36 +-
 .rat-excludes                                      |    1 +
 .../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       |   39 +-
 .../execution_api/routes/asset_state_store.py      |   40 +-
 .../execution_api/routes/task_instances.py         |  496 +++++--
 .../execution_api/routes/task_state_store.py       |    8 +-
 .../api_fastapi/execution_api/routes/xcoms.py      |  359 ++++-
 .../api_fastapi/execution_api/versions/__init__.py |    8 +
 .../execution_api/versions/v2026_10_30.py          |   25 +
 .../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           | 1441 +++++++++++++++++-
 .../versions/head/test_task_state_store.py         |   27 +-
 .../execution_api/versions/head/test_xcoms.py      |  682 ++++++++-
 .../versions/v2026_10_30/test_task_instances.py    |   16 +
 .../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 ++++
 dev/breeze/doc/05_test_commands.rst                |   10 +-
 dev/breeze/doc/ci/04_selective_checks.md           |   17 +-
 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 +-
 .../airflow_breeze/commands/kubernetes_commands.py |  531 ++++---
 .../commands/kubernetes_commands_config.py         |    3 +-
 .../src/airflow_breeze/commands/ui_commands.py     |    8 +-
 .../src/airflow_breeze/utils/selective_checks.py   |   15 +
 .../tests/test_kubernetes_lang_sdk_commands.py     |  196 ++-
 dev/breeze/tests/test_selective_checks.py          |   55 +
 dev/breeze/tests/test_ui_commands.py               |    9 +
 devel-common/src/sphinx_exts/airflow_spelling.py   |    8 +-
 .../src/sphinx_exts/docs_build/spelling_checks.py  |    3 +
 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 +-
 .../sphinx_exts/docs_build/test_spelling_checks.py |   18 +
 .../unit/sphinx_exts/test_airflow_spelling.py      |    4 +-
 docs/spelling_wordlist.txt                         |    4 +
 go-sdk/internal/genspec/authoring.go               |    2 +
 go-sdk/pkg/execution/genmodels/models.gen.go       |   75 +-
 go-sdk/schema/dag-schema.json                      |   12 +
 go-sdk/schema/supervisor-schema.json               |  101 ++
 java-sdk/sdk/build.gradle.kts                      |    1 +
 java-sdk/sdk/schema/dag-schema.json                |   12 +
 kubernetes-tests/lang_sdk/Dockerfile.java          |   31 -
 kubernetes-tests/lang_sdk/Dockerfile.runtimes      |   49 +
 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 +++
 .../docs/auth-manager/setup/identity-center.rst    |   10 +
 .../amazon/aws/auth_manager/routes/login.py        |    9 +-
 .../amazon/aws/auth_manager/routes/test_login.py   |   27 +-
 .../aws/executors/batch/test_batch_executor.py     |   31 +-
 .../amazon/aws/executors/ecs/test_ecs_executor.py  |   31 +-
 .../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/hitl_review.rst           |    5 +
 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/toolsets/hook.rst         |   11 +-
 providers/common/ai/docs/toolsets/logging.rst      |   30 +-
 providers/common/ai/docs/toolsets/sql.rst          |   16 +
 .../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/mixins/usage_budget.py     |  152 ++
 .../airflow/providers/common/ai/operators/agent.py |  109 +-
 .../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 +-
 .../providers/common/ai/toolsets/sandbox.py        |   16 +-
 .../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   |  463 ++++--
 .../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 +++++-
 .../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 +-
 .../tests/unit/common/ai/toolsets/test_sandbox.py  |   24 +-
 .../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 +++-
 .../check_template_context_variable_in_sync.py     |    2 +
 scripts/ci/prek/ts_compile_lint_common_ai.py       |    1 +
 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/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   |   17 +
 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  |  101 ++
 .../sdk/execution_time/schema/versions/__init__.py |    4 +
 .../execution_time/schema/versions/v2026_10_30.py  |   35 +-
 .../src/airflow/sdk/execution_time/supervisor.py   |    6 +-
 .../src/airflow/sdk/execution_time/task_runner.py  |   58 +-
 task-sdk/src/airflow/sdk/log.py                    |   33 +-
 task-sdk/src/airflow/sdk/types.py                  |    9 +-
 .../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         |   81 +-
 .../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    |  111 +-
 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               |  101 ++
 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                 |   35 +
 .../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 +
 779 files changed, 49786 insertions(+), 5922 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
 delete mode 100644 kubernetes-tests/lang_sdk/Dockerfile.java
 create mode 100644 kubernetes-tests/lang_sdk/Dockerfile.runtimes
 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/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 task-sdk/src/airflow/sdk/definitions/_internal/loop.py
 create mode 100644 task-sdk/src/airflow/sdk/execution_time/loop.py
 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 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