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

ashb pushed a change to branch task-loops-stack-13
in repository https://gitbox.apache.org/repos/asf/airflow.git


    omit 3cd958fbe37 Show loop iterations and outcomes throughout the UI
    omit ca74c05bcf0 Show current task executions in the UI
    omit 3f0b2a0f668 Let the HITL review plugin address one loop pass or mapped 
slot
    omit 5e14006bcb9 Read current task executions by exact region and try
    omit 17d815507f2 Clear selected loop work and regenerate only what was 
replaced
    omit 636464c677c fixup! Run loop gates and advance iterations atomically
    omit b67633d880d Run loop gates and advance iterations atomically
    omit 8d6022be4c5 fixup! Attribute log, asset-event and asset-state writes 
to the task attempt
    omit 6bbef826c60 Attribute log, asset-event and asset-state writes to the 
task attempt
    omit 51490131016 fixup! Give every mapped expansion a region and store its 
index as region_index
    omit 6e36d1da41f Give every mapped expansion a region and store its index 
as region_index
    omit fb403e99af7 fixup! Pin loop definitions and carry region coordinates 
through task execution
    omit 4b30b1240f5 Pin loop definitions and carry region coordinates through 
task execution
    omit 6bf6974756c fixup! Resolve live producers by region and read their 
XCom by attempt
    omit 1cd79a7d61d Resolve live producers by region and read their XCom by 
attempt
    omit fe9cd341b63 fixup! Introduce the (internal/db level) concept of 
"dynamic regions" for TIs
    omit 9ac294e7d22 Introduce the (internal/db level) concept of "dynamic 
regions" for TIs
    omit 9c4a8ac4552 fixup! Add user-facing docs for the new Task Loops feature.
    omit 2abe8a16e6b fixup! Add user-facing docs for the new Task Loops feature.
    omit e060a063212 Add user-facing docs for the new Task Loops feature.
     add 3fa1eb5a27a Add URL param support to calendar view (#73237) (#73762)
     add d7c60857bc0 Expose the resolved LLM model name on a dedicated XCom key 
(#74272)
     add c8de3793a25 Make provider signing resumable after interruption (#74465)
     add 88b83d1f0d4 Fix Spark submit standalone status polling to use correct 
REST endpoint (#71949)
     add 7c014e1b61a Fix plugin applies_to scoping defects found in review 
(#74425)
     add fb235e6926a Preserve newlines in XCom tab string values (#74112)
     add 42b25f5df74 Add documentation and sample DAG for `ExasolToS3Operator` 
(#73940)
     add 150be723896 Close Catalan gap (#74361)
     add bc96a14f776 UI: Move UI-only e2e checks to unit tests (#74367)
     add e82b196c065 Dag run breadcrumb switcher (#74471)
     add 23cd2c89304 Fix missing end-of-file newline in XComEntry.test.tsx 
(#74476)
     add bf2de26c7b7 Fix Quick Start installing Airflow 3.1.1 instead of the 
documented version (#74474)
     add 42dfb20b812 Assert on structured log events in common.ai tests (#74443)
     add 386c0ba69eb Export `DataFusionToolset`, `AgentSkillsToolset` and 
`LoggingToolset`… (#74449)
     add 00967b20550 Bump the ui-plugin-template-package-updates group across 1 
directory with 7 updates (#74331)
     add 6eae11fb7dc Bump the registry-security-updates group across 1 
directory with 2 updates (#74326)
     add 30aad96a041 Bump the uv-dependency-updates group across 1 directory 
with 6 updates (#74259)
     add 23b3e7b4147 Bump the ts-sdk-package-updates group across 1 directory 
with 2 updates (#74253)
     add f5c535bbae0 Bump swagger-ui-dist (#74251)
     add d3899db5079 Bump oauthlib (#74325)
     add 7811cbacf5a Reject unsupported output_type and bound HITL XCom pull 
retries (#74450)
     add 6e5d9ddc185 Update the TypeScript SDK docs for Dags declared in 
TypeScript (#73875)
     add 2bda1928703 Java SDK: Pack each native Dag's source file into the 
bundle JAR (#74096)
     add d4013cc2b5b Java SDK: Pick one of two tasks with a condition (#74438)
     add c3043c266c6 Java SDK: Choose one of several tasks with a branch 
(#74439)
     add c5f504366d5 Java SDK: Trigger another Dag's run from a native Java Dag 
(#74440)
     add 7f945b45d07 Make `SQLToolset` `check_query` follow `allow_writes` like 
`query` (#74448)
     add bb9b1775f15 Add user-facing docs for the new Task Loops feature.
     add 942d14a2fa8 fixup! Add user-facing docs for the new Task Loops feature.
     add 1562ee6026b fixup! Add user-facing docs for the new Task Loops feature.
     add fd5a17d300a Introduce the (internal/db level) concept of "dynamic 
regions" for TIs
     add 6cab9a2cf29 fixup! Introduce the (internal/db level) concept of 
"dynamic regions" for TIs
     add e1731ac40ab Resolve live producers by region and read their XCom by 
attempt
     add a67defefa75 fixup! Resolve live producers by region and read their 
XCom by attempt
     add 2b19719a444 Pin loop definitions and carry region coordinates through 
task execution
     add aed05fb6f89 fixup! Pin loop definitions and carry region coordinates 
through task execution
     add 4741eefd7ce fixup! Pin loop definitions and carry region coordinates 
through task execution
     add faac1e97be6 Give every mapped expansion a region and store its index 
as region_index
     add dea17629246 fixup! Give every mapped expansion a region and store its 
index as region_index
     add 93f88c1a804 fixup! Give every mapped expansion a region and store its 
index as region_index
     add f851d581dcc Attribute log, asset-event and asset-state writes to the 
task attempt
     add a1c767057a9 fixup! Attribute log, asset-event and asset-state writes 
to the task attempt
     add aedf1846026 fixup! Attribute log, asset-event and asset-state writes 
to the task attempt
     add b14e19e40a2 Run loop gates and advance iterations atomically
     add 20a03228dd7 fixup! Run loop gates and advance iterations atomically
     add 240027dae72 fixup! Run loop gates and advance iterations atomically
     add 20fc40c86c8 Clear selected loop work and regenerate only what was 
replaced
     add db052e49a59 fixup! Clear selected loop work and regenerate only what 
was replaced
     add 7be9bdb7d6d Read current task executions by exact region and try
     add 83bd2e6405c fixup! Read current task executions by exact region and try
     add 63e7074410d Let the HITL review plugin address one loop pass or mapped 
slot
     add e42341ae557 fixup! Let the HITL review plugin address one loop pass or 
mapped slot
     add edc1ffdedac Show current task executions in the UI
     add 9abbfd78cf8 fixup! Show current task executions in the UI
     new 8c0486ab618 Show loop iterations and outcomes throughout the UI
     new f0c69597d6f fixup! Show loop iterations and outcomes throughout the UI

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   (3cd958fbe37)
            \
             N -- N -- N   refs/heads/task-loops-stack-13 (f0c69597d6f)

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.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .pre-commit-config.yaml                            |  13 +-
 .../0015-per-dag-source-in-bundle-artifact.md      |   2 +
 .../docs/administration-and-deployment/plugins.rst | 105 ++-
 .../language-sdks/index.rst                        |  81 +-
 .../language-sdks/java.rst                         |   4 +
 .../language-sdks/typescript.rst                   | 882 ++++++++++-----------
 .../docs/authoring-and-scheduling/loops.rst        |   6 +-
 airflow-core/docs/security/api_permissions_ref.rst |   4 -
 airflow-core/docs/start.rst                        |   9 +-
 airflow-core/newsfragments/74278.feature.rst       |   2 +-
 .../core_api/datamodels/task_instance_history.py   |   2 +-
 .../core_api/datamodels/task_instances.py          |   2 +-
 .../core_api/datamodels/{ => ui}/execution.py      |   0
 .../api_fastapi/core_api/datamodels/ui/gantt.py    |   4 +-
 .../api_fastapi/core_api/datamodels/ui/grid.py     |  24 +-
 .../api_fastapi/core_api/openapi/_private_ui.yaml  | 325 ++++++--
 .../core_api/openapi/v2-rest-api-generated.yaml    | 411 +++-------
 .../api_fastapi/core_api/routes/public/__init__.py |   2 -
 .../core_api/routes/public/event_logs.py           |  24 +-
 .../core_api/routes/public/extra_links.py          |  11 +-
 .../api_fastapi/core_api/routes/public/hitl.py     |  11 +-
 .../core_api/routes/public/task_instances.py       | 113 ++-
 .../api_fastapi/core_api/routes/public/xcom.py     |  24 +-
 .../api_fastapi/core_api/routes/ui/__init__.py     |   2 +
 .../core_api/routes/{public => ui}/execution.py    |  16 +-
 .../api_fastapi/core_api/routes/ui/gantt.py        |   9 +-
 .../airflow/api_fastapi/core_api/routes/ui/grid.py |  47 +-
 .../core_api/services/public/event_logs.py         |  27 +-
 .../core_api/services/public/task_coordinates.py   |  65 +-
 .../core_api/services/public/task_instances.py     |   1 +
 .../core_api/services/{public => ui}/execution.py  |  13 +-
 .../api_fastapi/core_api/services/ui/grid.py       | 231 ++++--
 .../api_fastapi/core_api/services/ui/task_group.py |   6 +-
 .../execution_api/datamodels/taskinstance.py       |   9 +-
 .../execution_api/routes/task_instances.py         | 212 +++--
 .../api_fastapi/execution_api/routes/xcoms.py      |  25 +-
 airflow-core/src/airflow/assets/manager.py         |  12 +-
 .../src/airflow/jobs/scheduler_job_runner.py       |   1 +
 .../src/airflow/jobs/triggerer_job_runner.py       |   1 +
 .../versions/0144_3_4_0_rename_stored_map_index.py |  47 +-
 airflow-core/src/airflow/models/dagrun.py          | 151 ++--
 airflow-core/src/airflow/models/dynamic_region.py  | 121 ++-
 airflow-core/src/airflow/models/log.py             |  47 +-
 .../src/airflow/models/task_coordinates.py         | 128 ++-
 airflow-core/src/airflow/models/taskinstance.py    | 114 ++-
 airflow-core/src/airflow/models/trigger.py         |   5 +-
 airflow-core/src/airflow/plugins_manager.py        |  93 ++-
 .../src/airflow/serialization/definitions/dag.py   |  27 +-
 .../src/airflow/ui/openapi-gen/queries/common.ts   |  30 +-
 .../ui/openapi-gen/queries/ensureQueryData.ts      |  63 +-
 .../src/airflow/ui/openapi-gen/queries/prefetch.ts |  63 +-
 .../src/airflow/ui/openapi-gen/queries/queries.ts  |  63 +-
 .../src/airflow/ui/openapi-gen/queries/suspense.ts |  63 +-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts | 544 ++++++-------
 .../ui/openapi-gen/requests/services.gen.ts        |  98 ++-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   | 180 ++---
 .../airflow/ui/public/i18n/locales/ca/assets.json  |   3 +-
 .../airflow/ui/public/i18n/locales/ca/browse.json  |  30 +
 .../airflow/ui/public/i18n/locales/ca/common.json  |  38 +-
 .../ui/public/i18n/locales/ca/components.json      |  17 +-
 .../src/airflow/ui/public/i18n/locales/ca/dag.json |  68 ++
 .../airflow/ui/public/i18n/locales/ca/dags.json    |  29 +
 .../ui/public/i18n/locales/ca/dashboard.json       |  17 +-
 .../airflow/ui/public/i18n/locales/en/common.json  |   2 +
 .../src/airflow/ui/public/i18n/locales/en/dag.json |  18 +-
 .../airflow/ui/public/i18n/locales/en/dags.json    |   1 +
 .../ui/src/components/ActionAccordion/columns.tsx  |   4 +-
 .../ui/src/components/Breadcrumb/CrumbSwitcher.tsx |  85 ++
 .../airflow/ui/src/components/Breadcrumb/index.ts  |   1 +
 .../TaskInstance/ClearExecutionDialog.test.tsx     | 139 +++-
 .../Clear/TaskInstance/ClearExecutionDialog.tsx    |  82 +-
 .../TaskInstance/ClearTaskInstanceDialog.test.tsx  |  48 ++
 .../Clear/TaskInstance/ClearTaskInstanceDialog.tsx |   5 +-
 .../DagActions/RunBackfillForm.dateRange.test.tsx  | 118 +++
 .../ui/src/components/DataTable/DataTable.test.tsx |  15 +-
 .../TaskInstance/MarkTaskInstanceAsDialog.test.tsx |  23 +
 .../TaskInstance/MarkTaskInstanceAsDialog.tsx      |   4 +-
 .../components/SearchDags/SearchDagsControl.tsx    |  37 -
 .../airflow/ui/src/components/SearchDags/index.ts  |  20 -
 .../src/airflow/ui/src/components/SearchSelect.tsx | 117 +++
 .../ui/src/components/TaskInstanceTooltip.tsx      |  17 +-
 .../src/airflow/ui/src/constants/localStorage.ts   |   2 -
 .../src/airflow/ui/src/constants/searchParams.ts   |   3 +
 .../ui/src/hooks/usePluginAppliesToContext.test.ts |  32 +-
 .../ui/src/hooks/usePluginAppliesToContext.ts      |  49 +-
 .../ui/src/hooks/useTaskInstanceView.test.ts       |  68 +-
 .../airflow/ui/src/hooks/useTaskInstanceView.ts    |   1 +
 .../ui/src/layouts/Details/DagBreadcrumb.test.tsx  |  71 +-
 .../ui/src/layouts/Details/DagBreadcrumb.tsx       |  44 +-
 .../src/layouts/Details/DagRunSwitcherButton.tsx   |  89 +++
 .../ui/src/layouts/Details/DagSwitcherButton.tsx   |  75 +-
 .../layouts/Details/Gantt/GanttTimeline.test.tsx   |   8 +-
 .../ui/src/layouts/Details/Gantt/GanttTimeline.tsx |   5 +-
 .../ui/src/layouts/Details/Gantt/utils.test.ts     |  62 +-
 .../airflow/ui/src/layouts/Details/Gantt/utils.ts  |  36 +-
 .../ui/src/layouts/Details/SearchDagRuns.test.tsx  | 215 +++++
 .../ui/src/layouts/Details/SearchDagRuns.tsx       | 129 +++
 .../Details}/SearchDags.test.tsx                   |   2 +-
 .../SearchDags => layouts/Details}/SearchDags.tsx  |  67 +-
 .../ui/src/layouts/Details/searchOptions.test.ts   |  50 ++
 .../ui/src/layouts/Details/searchOptions.ts        |  66 ++
 .../Dag/Calendar/Calendar.failedView.test.tsx      | 140 ++++
 .../ui/src/pages/Dag/Calendar/Calendar.test.tsx    | 153 ++++
 .../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx |  53 +-
 .../airflow/ui/src/pages/Dag/Code/Code.test.tsx    |  72 ++
 ...ader.test.tsx => RequiredActionsRoute.test.tsx} |  46 +-
 .../airflow/ui/src/pages/Dag/Tasks/Tasks.test.tsx  | 114 +++
 .../ui/src/pages/DagsList/DagsList.test.tsx        |  29 +
 .../GroupTaskInstance/GroupTaskInstances.test.tsx  |  73 ++
 .../pages/GroupTaskInstance/GroupTaskInstances.tsx |  11 +-
 .../ui/src/pages/GroupTaskInstance/Header.tsx      |   4 +-
 .../LoopIterations/IterationSelect.test.tsx        |   5 +-
 .../LoopIterations/IterationSelect.tsx             |  28 +-
 .../LoopIterations/loopUtils.test.ts               |  11 -
 .../GroupTaskInstance/LoopIterations/loopUtils.ts  |  89 +--
 .../GroupTaskInstance/useLoopOutcomeStats.tsx      |  18 +-
 .../airflow/ui/src/pages/Run/Execution.test.tsx    | 105 ++-
 .../src/airflow/ui/src/pages/Run/Execution.tsx     |  41 +-
 .../pages/Task/Overview/LoopHistoryChart.test.tsx  |  48 +-
 .../src/pages/Task/Overview/LoopHistoryChart.tsx   |  11 +-
 .../ui/src/pages/TaskInstance/Details.test.tsx     |   2 +-
 .../airflow/ui/src/pages/TaskInstance/Details.tsx  |  11 +-
 .../ui/src/pages/TaskInstance/Logs/Logs.test.tsx   |  62 +-
 .../src/pages/TaskInstance/TaskInstance.test.tsx   |  37 +
 .../ui/src/pages/TaskInstance/TaskInstance.tsx     |   4 +-
 .../BulkMarkTaskInstancesAsButton.tsx              |   5 +-
 .../src/pages/TaskInstances/TaskInstances.test.tsx |  18 +-
 .../ui/src/pages/TaskInstances/TaskInstances.tsx   |  10 +-
 .../src/airflow/ui/src/pages/XCom/XCom.test.tsx    |  80 ++
 .../airflow/ui/src/pages/XCom/XComEntry.test.tsx   |  26 +
 .../src/airflow/ui/src/pages/XCom/XComEntry.tsx    |  19 +-
 .../ui/src/queries/useClearTaskInstances.test.tsx  |  57 ++
 .../ui/src/queries/useClearTaskInstances.ts        |  33 +-
 .../ui/src/queries/usePatchTaskInstance.test.tsx   |  60 ++
 .../airflow/ui/src/queries/usePatchTaskInstance.ts |   4 +-
 .../levels.js => src/utils/loopTaskInstance.ts}    |  12 +-
 airflow-core/src/airflow/ui/src/utils/option.ts    |   4 +
 .../airflow/ui/src/utils/pluginAppliesTo.test.ts   |   7 +-
 .../src/airflow/ui/tests/e2e/fixtures/pom.ts       |   5 -
 .../src/airflow/ui/tests/e2e/pages/BackfillPage.ts |  30 -
 .../airflow/ui/tests/e2e/pages/DagCalendarTab.ts   |  47 +-
 .../src/airflow/ui/tests/e2e/pages/DagCodePage.ts  |  20 -
 .../airflow/ui/tests/e2e/pages/DagDetailPage.ts    |  49 --
 .../src/airflow/ui/tests/e2e/pages/DagRunPage.ts   |   8 +-
 .../src/airflow/ui/tests/e2e/pages/DagRunsPage.ts  |  32 -
 .../airflow/ui/tests/e2e/pages/DagRunsTabPage.ts   |  33 -
 .../src/airflow/ui/tests/e2e/pages/DagsPage.ts     | 115 ---
 .../src/airflow/ui/tests/e2e/pages/XComsPage.ts    |  14 -
 .../src/airflow/ui/tests/e2e/specs/asset.spec.ts   |  17 +-
 .../airflow/ui/tests/e2e/specs/backfill.spec.ts    |  64 --
 .../airflow/ui/tests/e2e/specs/dag-bundles.spec.ts |  37 +-
 .../ui/tests/e2e/specs/dag-calendar-tab.spec.ts    |  75 +-
 .../ui/tests/e2e/specs/dag-code-tab.spec.ts        |   8 -
 .../airflow/ui/tests/e2e/specs/dag-detail.spec.ts  |  43 -
 .../src/airflow/ui/tests/e2e/specs/dag-run.spec.ts |  13 +-
 .../ui/tests/e2e/specs/dag-runs-tab.spec.ts        |  30 +-
 .../airflow/ui/tests/e2e/specs/dag-runs.spec.ts    |  10 -
 .../airflow/ui/tests/e2e/specs/dag-tasks.spec.ts   | 102 ---
 .../airflow/ui/tests/e2e/specs/dags-list.spec.ts   |  67 +-
 .../src/airflow/ui/tests/e2e/specs/plugins.spec.ts |  35 +-
 .../airflow/ui/tests/e2e/specs/providers.spec.ts   |  19 +-
 .../ui/tests/e2e/specs/task-instances.spec.ts      |   5 -
 .../airflow/ui/tests/e2e/specs/task-logs.spec.ts   |  66 +-
 .../src/airflow/ui/tests/e2e/specs/xcoms.spec.ts   |  20 +-
 .../src/airflow/utils/log/task_log_address.py      |  20 +-
 .../tests/unit/always/test_project_structure.py    |   2 -
 .../core_api/routes/public/test_dag_run.py         |   2 +-
 .../core_api/routes/public/test_event_logs.py      |  51 +-
 .../core_api/routes/public/test_execution.py       |  50 +-
 .../core_api/routes/public/test_extra_links.py     |   8 +-
 .../core_api/routes/public/test_hitl.py            |  43 +-
 .../api_fastapi/core_api/routes/public/test_log.py |  25 +
 .../core_api/routes/public/test_task_instances.py  | 221 +++++-
 .../routes/public/test_task_state_store.py         |   4 +
 .../core_api/routes/public/test_xcom.py            |   7 +
 .../api_fastapi/core_api/routes/test_routes.py     |  22 +
 .../core_api/routes/ui/test_execution.py           |  68 ++
 .../api_fastapi/core_api/routes/ui/test_gantt.py   |   8 +-
 .../api_fastapi/core_api/routes/ui/test_grid.py    | 191 ++++-
 .../core_api/services/public/test_event_logs.py    |  10 +-
 .../services/{public => ui}/test_execution.py      |  10 +-
 .../versions/head/test_task_instances.py           | 239 ++++--
 .../execution_api/versions/head/test_xcoms.py      |  98 ++-
 .../tests/unit/executors/test_workloads.py         |   5 +-
 airflow-core/tests/unit/jobs/test_scheduler_job.py |  15 +-
 .../test_0144_rename_stored_map_index.py           |  23 +
 airflow-core/tests/unit/models/test_cleartasks.py  | 102 ++-
 airflow-core/tests/unit/models/test_dagrun.py      | 141 +++-
 .../tests/unit/models/test_dynamic_region.py       |   2 +-
 airflow-core/tests/unit/models/test_log.py         |  71 ++
 .../tests/unit/models/test_task_coordinates.py     | 133 +++-
 .../tests/unit/models/test_taskinstance.py         |  51 +-
 .../tests/unit/plugins/test_plugins_manager.py     | 158 +++-
 .../tests/unit/utils/log/test_task_log_address.py  |  24 +
 .../src/airflowctl/api/datamodels/generated.py     |  50 +-
 airflow-ctl/src/airflowctl/ctl/cli_config.py       |  30 +-
 .../tests/airflow_ctl/ctl/test_cli_config.py       |  60 +-
 dev/breeze/uv.lock                                 |  48 +-
 .../react_plugin_template/package.json             |  14 +-
 .../react_plugin_template/pnpm-lock.yaml           | 406 +++++-----
 dev/sign.sh                                        |   9 +
 .../src/tests_common/test_utils/asserts.py         |   7 +-
 go-sdk/pkg/execution/genmodels/models.gen.go       |   3 -
 go-sdk/schema/supervisor-schema.json               |   5 -
 java-sdk/README.md                                 |  10 +-
 java-sdk/capabilities.yaml                         |  18 +-
 .../airflow/example/ExampleBundleBuilder.java      |   3 +-
 .../example/nativedag/AnnotationExample.java       |  44 +-
 .../example/nativedag/InterfaceExample.java        |  57 +-
 .../airflow/example/nativedag/TargetExample.java   |  49 ++
 java-sdk/plugin/build.gradle.kts                   |   6 +
 .../apache/airflow/sdk/plugin/AirflowSdkPlugin.kt  |  55 +-
 .../org/apache/airflow/sdk/plugin/ClassFiles.kt    |  85 ++
 .../apache/airflow/sdk/plugin/PackDagSources.kt    | 256 ++++++
 .../airflow/sdk/plugin/AirflowSdkPluginTest.kt     | 365 +++++++++
 .../apache/airflow/sdk/plugin/ClassFilesTest.kt    |  80 ++
 .../airflow/sdk/plugin/PackDagSourcesTest.kt       |  89 +++
 .../org/apache/airflow/sdk/plugin/TestSupport.kt}  |  38 +-
 .../org/apache/airflow/sdk/BuilderProcessor.kt     | 209 ++++-
 .../kotlin/org/apache/airflow/sdk/BuilderTest.kt   | 692 +++++++++++++++-
 .../ci/prek/check_serialization_conformance.py     |   2 +-
 java-sdk/sdk/build.gradle.kts                      |  68 ++
 java-sdk/sdk/module.md                             |   6 +-
 .../main/kotlin/org/apache/airflow/sdk/Bundle.kt   |  27 +-
 .../kotlin/org/apache/airflow/sdk/Condition.kt     | 224 ++++++
 .../main/kotlin/org/apache/airflow/sdk/DagDef.kt   | 140 ++++
 .../main/kotlin/org/apache/airflow/sdk/Decider.kt  |  90 +++
 .../main/kotlin/org/apache/airflow/sdk/Server.kt   | 109 ++-
 .../main/kotlin/org/apache/airflow/sdk/Switch.kt   | 240 ++++++
 .../kotlin/org/apache/airflow/sdk/TaskGroupRef.kt  |  81 ++
 .../kotlin/org/apache/airflow/sdk/TriggerDagRun.kt | 189 +++++
 .../org/apache/airflow/sdk/execution/Client.kt     |  88 ++
 .../org/apache/airflow/sdk/execution/Logger.kt     |   5 +
 .../org/apache/airflow/sdk/execution/Serde.kt      | 129 ++-
 .../org/apache/airflow/sdk/execution/Task.kt       |  42 +-
 .../apache/airflow/sdk/execution/TriggerRunner.kt  | 324 ++++++++
 .../org/apache/airflow/sdk/internal/DagSource.kt   |  66 ++
 .../org/apache/airflow/sdk/internal/Fields.kt      |  33 +
 .../kotlin/org/apache/airflow/sdk/internal/Ids.kt  |  10 +
 .../apache/airflow/example/DagSourceFixtures.kt}   |  49 +-
 .../org/apache/airflow/sdk/ArgTestSupport.kt       |  19 +
 .../kotlin/org/apache/airflow/sdk/ClientTest.kt    |  19 +
 .../kotlin/org/apache/airflow/sdk/ConditionTest.kt | 208 +++++
 .../kotlin/org/apache/airflow/sdk/DagSourceTest.kt | 132 +++
 .../kotlin/org/apache/airflow/sdk/ServerTest.kt    |   6 +-
 .../kotlin/org/apache/airflow/sdk/SwitchTest.kt    | 224 ++++++
 .../org/apache/airflow/sdk/TriggerDagRunTest.kt    | 275 +++++++
 .../airflow/sdk/conformance/SerializeJava.kt       | 191 ++++-
 .../org/apache/airflow/sdk/execution/CommTest.kt   | 171 ++++
 .../org/apache/airflow/sdk/execution/TaskTest.kt   | 319 ++++++++
 .../airflow/sdk/execution/TriggerRunnerTest.kt     | 473 +++++++++++
 .../apache/airflow/sdk/internal/ArgValuesTest.kt   |  19 +
 .../org/apache/airflow/sdk/internal/RefsTest.kt    |  65 ++
 .../{redshift_to_s3.rst => exasol_to_s3.rst}       |  40 +-
 providers/amazon/provider.yaml                     |   1 +
 .../providers/amazon/aws/transfers/exasol_to_s3.py |   5 +-
 .../airflow/providers/amazon/get_provider_info.py  |   1 +
 ...xample_ftp_to_s3.py => example_exasol_to_s3.py} |  37 +-
 .../providers/apache/spark/hooks/spark_submit.py   |  48 +-
 .../unit/apache/spark/hooks/test_spark_submit.py   | 491 +++++++-----
 .../cncf/kubernetes/template_rendering.py          |  21 +-
 .../cncf/kubernetes/test_template_rendering.py     |  32 -
 providers/common/ai/.pre-commit-config.yaml        |   2 +-
 providers/common/ai/docs/hitl_review.rst           |  18 +-
 providers/common/ai/docs/observability.rst         |  18 +-
 providers/common/ai/docs/toolsets/index.rst        |  26 +-
 providers/common/ai/docs/toolsets/sql.rst          |   4 +-
 .../providers/common/ai/mixins/hitl_review.py      |  21 +-
 .../airflow/providers/common/ai/operators/agent.py |  11 +-
 .../airflow/providers/common/ai/operators/llm.py   |  27 +-
 .../providers/common/ai/operators/llm_branch.py    |   6 +-
 .../common/ai/operators/llm_schema_compare.py      |   4 +
 .../providers/common/ai/operators/llm_sql.py       |   5 +-
 .../providers/common/ai/plugins/www/package.json   |   1 +
 .../providers/common/ai/toolsets/__init__.py       |   9 +
 .../airflow/providers/common/ai/toolsets/sql.py    |  41 +-
 .../airflow/providers/common/ai/utils/logging.py   |   6 +
 .../ai/decorators/test_llm_schema_compare.py       |  14 +
 .../unit/common/ai/decorators/test_llm_sql.py      |  12 +
 .../unit/common/ai/managed_agents/test_failover.py |   7 +-
 .../unit/common/ai/mixins/test_hitl_review.py      |  37 +-
 .../tests/unit/common/ai/operators/test_agent.py   |  43 +-
 .../ai/tests/unit/common/ai/operators/test_llm.py  |  19 +-
 .../unit/common/ai/operators/test_llm_branch.py    |  19 +-
 .../common/ai/operators/test_llm_schema_compare.py |   6 +
 .../tests/unit/common/ai/operators/test_llm_sql.py |   4 +
 .../unit/common/ai/plugins/test_hitl_review.py     | 225 +++++-
 .../ai/tests/unit/common/ai/policies/test_retry.py |  18 +-
 .../ai/tests/unit/common/ai/sandbox/test_base.py   |   2 +-
 .../ai/tests/unit/common/ai/sandbox/test_modal.py  |  12 +-
 .../unit/common/ai/toolsets/test_managed_agent.py  |   9 +-
 .../tests/unit/common/ai/toolsets/test_sandbox.py  |  21 +-
 .../ai/tests/unit/common/ai/toolsets/test_sql.py   |  62 ++
 .../unit/common/ai/utils/test_toolset_base.py      |   4 +-
 .../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      |  35 +-
 .../edge3/worker_api/v2-edge-generated.yaml        |  21 +
 .../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      |  94 +++
 providers/fab/docs/auth-manager/access-control.rst |   4 -
 .../airflow/providers/openlineage/utils/utils.py   |  15 +-
 .../tests/unit/openlineage/utils/test_utils.py     |  45 +-
 registry/package.json                              |   2 +-
 registry/pnpm-lock.yaml                            |  26 +-
 scripts/ci/lang_sdk_serialization/test_dags.yaml   |   5 +-
 scripts/ci/prek/check_applies_to_roots_in_sync.py  | 117 +++
 scripts/ci/prek/ts_compile_lint_common_ai.py       |   1 +
 .../ci/prek/test_check_applies_to_roots_in_sync.py |  84 ++
 task-sdk/src/airflow/sdk/api/client.py             |   3 -
 task-sdk/src/airflow/sdk/bases/decorator.py        |   6 +-
 .../airflow/sdk/coordinators/java/_dag_importer.py |   4 +-
 .../src/airflow/sdk/definitions/_internal/loop.py  |  12 +
 task-sdk/src/airflow/sdk/definitions/dag.py        |   4 +
 task-sdk/src/airflow/sdk/execution_time/comms.py   |   1 -
 task-sdk/src/airflow/sdk/execution_time/loop.py    |   1 -
 .../airflow/sdk/execution_time/request_handlers.py |   1 -
 .../airflow/sdk/execution_time/schema/schema.json  |   5 -
 .../execution_time/schema/versions/v2026_10_30.py  |   4 +-
 .../src/airflow/sdk/execution_time/task_runner.py  |   3 +
 task-sdk/src/airflow/sdk/types.py                  |   9 +-
 .../coordinators/java/test_dag_importer.py         |  19 +
 .../task_sdk/definitions/decorators/test_result.py |  39 +-
 task-sdk/tests/task_sdk/definitions/test_dag.py    |  40 +
 .../execution_time/schema/test_migrator.py         |   2 -
 .../tests/task_sdk/execution_time/test_loop.py     |  17 +-
 .../execution_time/test_request_handlers.py        |   3 -
 .../task_sdk/execution_time/test_supervisor.py     |   4 -
 ts-sdk/README.md                                   | 283 ++-----
 ts-sdk/docs/index.md                               |  68 +-
 ts-sdk/example/README.md                           |  23 +-
 ts-sdk/pnpm-lock.yaml                              | 270 ++++---
 ts-sdk/schema/supervisor-schema.json               |   5 -
 ts-sdk/src/generated/supervisor.ts                 |   2 -
 336 files changed, 15166 insertions(+), 5200 deletions(-)
 rename airflow-core/src/airflow/api_fastapi/core_api/datamodels/{ => 
ui}/execution.py (100%)
 rename airflow-core/src/airflow/api_fastapi/core_api/routes/{public => 
ui}/execution.py (87%)
 rename airflow-core/src/airflow/api_fastapi/core_api/services/{public => 
ui}/execution.py (85%)
 create mode 100644 
airflow-core/src/airflow/ui/src/components/Breadcrumb/CrumbSwitcher.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/components/DagActions/RunBackfillForm.dateRange.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/components/SearchDags/SearchDagsControl.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/components/SearchDags/index.ts
 create mode 100644 airflow-core/src/airflow/ui/src/components/SearchSelect.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/DagRunSwitcherButton.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/SearchDagRuns.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/SearchDagRuns.tsx
 rename airflow-core/src/airflow/ui/src/{components/SearchDags => 
layouts/Details}/SearchDags.test.tsx (99%)
 rename airflow-core/src/airflow/ui/src/{components/SearchDags => 
layouts/Details}/SearchDags.tsx (60%)
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/searchOptions.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/searchOptions.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/Calendar.failedView.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/Calendar.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Dag/Code/Code.test.tsx
 copy airflow-core/src/airflow/ui/src/pages/Dag/{DagHeader.test.tsx => 
RequiredActionsRoute.test.tsx} (51%)
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Dag/Tasks/Tasks.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/XCom/XCom.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/usePatchTaskInstance.test.tsx
 copy airflow-core/src/airflow/ui/{rules/levels.js => 
src/utils/loopTaskInstance.ts} (71%)
 delete mode 100644 airflow-core/src/airflow/ui/tests/e2e/pages/DagDetailPage.ts
 delete mode 100644 
airflow-core/src/airflow/ui/tests/e2e/specs/dag-detail.spec.ts
 create mode 100644 
airflow-core/tests/unit/api_fastapi/core_api/routes/ui/test_execution.py
 rename airflow-core/tests/unit/api_fastapi/core_api/services/{public => 
ui}/test_execution.py (86%)
 create mode 100644 
java-sdk/example/src/java/org/apache/airflow/example/nativedag/TargetExample.java
 create mode 100644 
java-sdk/plugin/src/main/kotlin/org/apache/airflow/sdk/plugin/ClassFiles.kt
 create mode 100644 
java-sdk/plugin/src/main/kotlin/org/apache/airflow/sdk/plugin/PackDagSources.kt
 create mode 100644 
java-sdk/plugin/src/test/kotlin/org/apache/airflow/sdk/plugin/AirflowSdkPluginTest.kt
 create mode 100644 
java-sdk/plugin/src/test/kotlin/org/apache/airflow/sdk/plugin/ClassFilesTest.kt
 create mode 100644 
java-sdk/plugin/src/test/kotlin/org/apache/airflow/sdk/plugin/PackDagSourcesTest.kt
 copy 
java-sdk/{example/src/java/org/apache/airflow/example/ExampleBundleBuilder.java 
=> plugin/src/test/kotlin/org/apache/airflow/sdk/plugin/TestSupport.kt} (50%)
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/Condition.kt
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/Decider.kt
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/Switch.kt
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/TriggerDagRun.kt
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/execution/TriggerRunner.kt
 create mode 100644 
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/internal/DagSource.kt
 copy 
java-sdk/sdk/src/{testFixtures/kotlin/org/apache/airflow/sdk/execution/LogCapture.kt
 => test/kotlin/org/apache/airflow/example/DagSourceFixtures.kt} (57%)
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/ConditionTest.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/DagSourceTest.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/SwitchTest.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/TriggerDagRunTest.kt
 create mode 100644 
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/execution/TriggerRunnerTest.kt
 copy providers/amazon/docs/transfer/{redshift_to_s3.rst => exasol_to_s3.rst} 
(51%)
 copy providers/amazon/tests/system/amazon/aws/{example_ftp_to_s3.py => 
example_exasol_to_s3.py} (71%)
 create mode 100755 scripts/ci/prek/check_applies_to_roots_in_sync.py
 create mode 100644 scripts/tests/ci/prek/test_check_applies_to_roots_in_sync.py

Reply via email to