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

shahar1 pushed a change to branch test-runs-on-github-actions-runner
in repository https://gitbox.apache.org/repos/asf/airflow.git


 discard c3909562036 Stash to the cache bucket of the RunsOn stack running the 
job
 discard 6c0e912113d Give the jobs added on main a RunsOn size class
 discard d2522eb7599 Give the TypeScript SDK docs job a RunsOn size class
 discard 6e8d39f7db9 Run the CI on RunsOn runners for the fork test
     add 350761ce775 Mark decision_policy experimental on the decision models 
page and finish the ClassifierRetryPolicy stability row (#74713)
     add de856e4aa44 Fix the common.ai message_history trimming example and 
link the memory page (#74706)
     add d79c0b18f35 Fix ORM models failing to configure in processes that skip 
database setup (#74642)
     add dd607da5ab3 Add Anthropic tool runner adapter for `common.ai` toolsets 
(#73962)
     add e288b73c85b Check all names before airflow roles import writes 
anything (#74711)
     add 90ea1b7ed86 Add EmrServerlessGetSessionEndpointOperator to Amazon 
provider (#70766)
     add 98391ff597b Add `OpenShell` backend for sandbox tools (#73961)
     add 64c207d56f8 Document how common.ai agent tasks recover from provider 
and worker failures (#74708)
     add 1f70ead81ef Fix /ui/dags recent-runs query degradation on large, 
skewed dag_run tables (#74401)
     add 190befa57c1 Ask the model again when a durable agent's retry would 
replay its rejected answers (#74720)
     add 7993ee19955 Remove `agent_params` from LLM operators so they cannot 
run tools (#74721)
     add 3259e8960f8 Mask tool output from every capability in Common AI agents 
(#73993)
     add f31684af859 Add the manifest format for manifest-backed versioned Dag 
bundles (#72476)
     add bcbb825e199 Stop rejecting valid non-ASCII Anthropic batches as too 
large (#74662)
     add 7e3b2c64f1d UI: Keep JSON text in string HITL params instead of 
showing [object Object] (#74702)
     add 0b7aed6491d Add a feature map to the Common AI docs (#74723)
     add ea805e3bfb0 UI: Fix clearing a task instance doing nothing after 
Confirm (#74725)
     add 7f733c87abf Prepare ad-hoc providers release 2026-10-14 (#74733)
     add d189eac87c1 Cover YAML-generated Java Dags in the java_sdk e2e test 
(#74710)
     add 22f86cb5514 Snowflake, Databricks: emit query lineage via OpenLineage 
public API (#73655)
     add 6a91a17be4e Fix Dag processor client compatibility with httpx2 (#74731)
     add dd7e8ab8321 Fail the task when a reviewed output no longer matches 
`output_type` (#74473)
     add 27433bf4830 Show Dag version diff values-hidden pill only when values 
are hidden (#74746)
     add df5cf9ecb56 UI: Add clicked tags to the Dags list filters instead of 
replacing them (#74622)
     add a31a6a340e3 Render docs mermaid diagrams at build time so they show on 
airflow.apache.org (#74757)
     add c72d0072a10 Close German Translation Gaps 2026-10-14 (#74760)
     add 42945d62b1f Upgrade Task Loop UX (#74671)
     add fa7c5899a99 Let LLMBatchOperator request_params be templated (#74751)
     add 5b32faffff8 Implement delta argument coercion (#74749)
     add 4e8ab38306f Fix HookToolset calls to hook methods that take a datetime 
(#74759)
     add 6a134fa4d03 dbt Cloud: emit OpenLineage events via the OpenLineage 
public API (#74754)
     add a87c6ddb52a Allow downgrading past the TI ownership migration when 
data is present (#74407)
     add 937dfb6894d Fix CI image build after mprocs was renamed to dekit 
(#74715)
     add 0a66ba0c468 Update my CODEOWNERS entries to focus on AI providers and 
the registry (#74795)
     add cf839aca896 Fix JWT token not refreshed when token expires mid-request 
(#68499)
     add 5a6ab34fd51 Fix flaky in-process Execution API transport lifecycle 
test on MySQL (#74785)
     add 868d791a17c Add an OpenAI Agents SDK adapter for `common.ai` toolsets 
(#74767)
     add 6cf83327d46 UI: Drop the loading spinner for base React plugins 
(#74762)
     add 04572ba9500 Run the OpenAI Agents adapter tests in the agent framework 
CI job (#74768)
     add 7a55044c0fa Re-enable backporting to v3-4-test for the 3.4.0 RC phase 
(#74798)
     add bb140716849 Re lock uv.lock after new provider versions got stampped. 
(#74799)
     add c65451f5397 Walk through the reviewer's side of Common AI approval 
gates (#74737)
     add 5ab698987f9 Allow durable agent execution with a `CodeMode` capability 
(#74735)
     add bbf2c5b1c47 Fix Lang-SDK decoder typing for pydantic 2.14 TypeForm 
signature (#74628)
     add e2237bfc7ee UI: Guard the remaining RadioCardRoot values instead of 
casting (#74743)
     add 7c2c9226e0f Let retry policies reschedule a task without using a retry 
(#74719)
     add fc12cb2ca8f Document progressive tool disclosure for Common AI 
toolsets (#74736)
     add 098d0174731 Report a Dag whose timetable fails to load as an import 
error (#74709)
     add 61f1d4b85e1 Resolve a trigger's XCom requests as its deferred task 
instance (#74772)
     add 637b741f1a6 Pass Dag runs directly to Deadline references (#70714)
     add 53c83b952b1 Record OpenAI Agents SDK traces as the Airflow task's 
OpenTelemetry spans (#74769)
     add 03f45f3ad51 Update the DMS replication_task_modified waiter states 
(#74522)
     add 62641fa9ac0 Fix CLI --bundle-name finding no Dags in Git bundles 
(#73377)
     add efb49f5e36d Stop prek hooks changing uv.lock and fail CI when it is 
stale (#74803)
     add 5941f0c19e0 Update providers metadata 2026-10-13 (#74648)
     add ce0a1c474c9 add WasbDagBundle to load Dags from Azure Blob Storage 
(#67016)
     add 665b94999c3 Java SDK: Reject byte arrays instead of letting the task 
hang (#74218)
     add e1d881b5c4f Fix `SSHRemoteJobOperator` mangling environment values 
with spaces or shell characters (#74810)
     add 736c349cdca Fingerprint durable agent steps that hold sets or values 
that are not JSON (#71575)
     add 6997dc76fe5 Add async aget_conn and acreate_embeddings to OpenAIHook 
(#74149)
     add 91a8ab6950a Fix airflowctl pools export/import dropping pool team 
ownership (#73132)
     add d5ba49cbd6a Close German Translation Gaps 2026-10-15 (#74802)
     add 4c4bab01e06 Allow loop gates to add human-readable decisions (#74806)
     add 238bb6ee2bd Complete Hebrew UI translations 2026-10-16 (#74467)
     add 4c98adf9e20 Skip the scheduler's Dag lookup for Dag runs with no 
callback to send (#74835)
     add 896f3711bdd Update Magpie floor to 0.9.0.dev202610140816 (#74815)
     add 028a4da8672 Add Map Index search to dag breadcrumb (#74763)
     add 9fa54394793 Run the CI on RunsOn runners for the fork test
     add e6b08d9e0bf Give the TypeScript SDK docs job a RunsOn size class
     add 304f708fcd6 Give the jobs added on main a RunsOn size class
     add 307fee8eeec Stash to the cache bucket of the RunsOn stack running the 
job
     add 9544800d4f3 Run the React UI tests on the 8-CPU RunsOn class

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   (c3909562036)
            \
             N -- N -- N   refs/heads/test-runs-on-github-actions-runner 
(9544800d4f3)

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/locales/he.md  |   32 +-
 .apache-magpie.lock                                |    6 +-
 .github/CODEOWNERS                                 |    4 +-
 .github/boring-cyborg.yml                          |   29 +-
 .github/workflows/agent-framework-tests.yml        |    4 +-
 .github/workflows/automatic-backport.yml           |    2 +-
 .github/workflows/basic-tests.yml                  |    2 +-
 .pre-commit-config.yaml                            |   20 +-
 Dockerfile.ci                                      |    6 +-
 RELEASE_NOTES.rst                                  |   24 +
 .../administration-and-deployment/dag-bundles.rst  |    3 +
 .../docs/authoring-and-scheduling/loops.rst        |   30 +-
 airflow-core/docs/core-concepts/tasks.rst          |   89 +-
 airflow-core/docs/howto/deadline-alerts.rst        |   25 +-
 airflow-core/newsfragments/70714.significant.rst   |    1 +
 airflow-core/newsfragments/74709.bugfix.rst        |    1 +
 airflow-core/pyproject.toml                        |    2 +-
 .../api_fastapi/core_api/datamodels/ui/grid.py     |   17 +-
 .../api_fastapi/core_api/openapi/_private_ui.yaml  |   20 +
 .../core_api/openapi/v2-rest-api-generated.yaml    |   43 +-
 .../core_api/routes/public/task_instances.py       |   19 +-
 .../api_fastapi/core_api/routes/public/xcom.py     |   18 +
 .../airflow/api_fastapi/core_api/routes/ui/dags.py |   31 +-
 .../api_fastapi/core_api/routes/ui/gantt.py        |   10 +-
 .../airflow/api_fastapi/core_api/routes/ui/grid.py |   46 +-
 .../core_api/services/public/task_coordinates.py   |   23 +-
 .../core_api/services/public/task_instances.py     |   11 +-
 .../api_fastapi/core_api/services/ui/grid.py       |   39 +-
 .../src/airflow/api_fastapi/execution_api/app.py   |   39 +-
 .../execution_api/datamodels/taskinstance.py       |   21 +
 .../api_fastapi/execution_api/in_process.py        |   15 +-
 .../execution_api/routes/task_instances.py         |   22 +-
 .../api_fastapi/execution_api/routes/xcoms.py      |  199 ++-
 .../airflow/api_fastapi/execution_api/security.py  |    1 +
 .../api_fastapi/execution_api/versions/__init__.py |    2 +
 .../execution_api/versions/v2026_10_30.py          |   12 +
 .../src/airflow/cli/commands/dag_command.py        |    2 +
 .../src/airflow/dag_processing/api_client.py       |   34 +-
 .../src/airflow/dag_processing/bundles/manifest.py |  571 +++++++
 .../src/airflow/dag_processing/collection.py       |   27 +
 .../airflow/dag_processing/lang_sdk_processor.py   |   11 +-
 .../src/airflow/dag_processing/processor.py        |   11 +-
 .../airflow/example_dags/example_retry_policy.py   |   26 +-
 .../src/airflow/example_dags/example_task_loops.py |    6 +-
 .../src/airflow/jobs/scheduler_job_runner.py       |    9 +-
 .../src/airflow/jobs/triggerer_job_runner.py       |   58 +-
 .../0142_3_4_0_unify_task_attempt_ownership.py     |  263 ++-
 airflow-core/src/airflow/models/base.py            |   11 +-
 airflow-core/src/airflow/models/dagrun.py          |   44 +-
 airflow-core/src/airflow/models/deadline.py        |  139 +-
 airflow-core/src/airflow/models/dynamic_region.py  |    3 +-
 airflow-core/src/airflow/models/taskinstance.py    |   41 +-
 airflow-core/src/airflow/models/trigger.py         |   18 +-
 .../src/airflow/serialization/definitions/dag.py   |    2 +-
 .../airflow/serialization/definitions/deadline.py  |   90 +-
 .../src/airflow/ui/openapi-gen/queries/common.ts   |    5 +-
 .../ui/openapi-gen/queries/ensureQueryData.ts      |   10 +-
 .../src/airflow/ui/openapi-gen/queries/prefetch.ts |   10 +-
 .../src/airflow/ui/openapi-gen/queries/queries.ts  |   10 +-
 .../src/airflow/ui/openapi-gen/queries/suspense.ts |   10 +-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts |   33 +
 .../ui/openapi-gen/requests/services.gen.ts        |    8 +-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |   17 +
 .../src/airflow/ui/public/i18n/locales/ca/dag.json |    4 +-
 .../airflow/ui/public/i18n/locales/de/admin.json   |    1 +
 .../airflow/ui/public/i18n/locales/de/common.json  |   18 +
 .../ui/public/i18n/locales/de/components.json      |    8 +-
 .../src/airflow/ui/public/i18n/locales/de/dag.json |   36 +-
 .../airflow/ui/public/i18n/locales/de/dags.json    |   12 +-
 .../src/airflow/ui/public/i18n/locales/el/dag.json |    4 +-
 .../airflow/ui/public/i18n/locales/en/common.json  |    9 +
 .../src/airflow/ui/public/i18n/locales/en/dag.json |   23 +-
 .../airflow/ui/public/i18n/locales/en/dags.json    |    1 +
 .../src/airflow/ui/public/i18n/locales/fr/dag.json |    4 +-
 .../airflow/ui/public/i18n/locales/he/admin.json   |   35 +-
 .../airflow/ui/public/i18n/locales/he/assets.json  |   19 +-
 .../airflow/ui/public/i18n/locales/he/browse.json  |   35 +
 .../airflow/ui/public/i18n/locales/he/common.json  |  150 +-
 .../ui/public/i18n/locales/he/components.json      |   63 +-
 .../src/airflow/ui/public/i18n/locales/he/dag.json |  122 +-
 .../airflow/ui/public/i18n/locales/he/dags.json    |   51 +-
 .../ui/public/i18n/locales/he/dashboard.json       |   26 +-
 .../src/airflow/ui/public/i18n/locales/ko/dag.json |    4 +-
 .../src/airflow/ui/public/i18n/locales/pl/dag.json |    4 +-
 .../airflow/ui/public/i18n/locales/zh-TW/dag.json  |    4 +-
 .../ui/src/components/ActionAccordion/columns.tsx  |    2 +
 .../airflow/ui/src/components/Breadcrumb/Crumb.tsx |   22 +-
 .../ui/src/components/Breadcrumb/CrumbSwitcher.tsx |   36 +-
 .../ui/src/components/Clear/Run/ClearRunDialog.tsx |   68 +-
 .../TaskInstance/ClearGroupTaskInstanceDialog.tsx  |   50 +-
 .../ClearTaskInstanceConfirmationDialog.tsx        |   12 +-
 .../TaskInstance/ClearTaskInstanceDialog.test.tsx  |   47 +-
 .../Clear/TaskInstance/ClearTaskInstanceDialog.tsx |   17 +-
 .../src/components/DagActions/RunBackfillForm.tsx  |   11 +-
 .../components/FilterBar/filters/LoopFilter.tsx    |  167 ++
 .../FilterBar/filters/loopParams.test.ts           |   73 +
 .../src/components/FilterBar/filters/loopParams.ts |   60 +
 .../airflow/ui/src/components/Graph/TaskLink.tsx   |   17 +-
 .../airflow/ui/src/components/Graph/TaskNode.tsx   |    3 +
 .../LoopDecisionReason.tsx}                        |   28 +-
 .../airflow/ui/src/components/LoopOptionLabel.tsx  |   76 +
 .../TaskInstance/MarkTaskInstanceAsDialog.tsx      |   14 +-
 .../src/airflow/ui/src/components/SearchSelect.tsx |  113 +-
 .../ui/src/components/TaskInstanceTooltip.test.tsx |   25 +
 .../ui/src/components/TaskInstanceTooltip.tsx      |   18 +-
 .../src/airflow/ui/src/components/TaskName.tsx     |   22 +-
 .../src/components/TriggerDag/TriggerDAGForm.tsx   |   16 +-
 .../airflow/ui/src/components/TriggerDag/types.ts  |    5 +-
 .../src/airflow/ui/src/constants/filterConfigs.tsx |   12 +
 .../ui/src/constants/reprocessBehaviourParams.ts   |    8 +-
 .../src/airflow/ui/src/constants/searchParams.ts   |    3 +-
 .../ui/src/hooks/useResolvePassCoordinate.test.ts  |  110 ++
 .../ui/src/hooks/useResolvePassCoordinate.ts       |   87 +
 .../ui/src/hooks/useTaskInstanceCoordinates.ts     |    1 +
 .../ui/src/layouts/Details/DagBreadcrumb.test.tsx  |   79 +-
 .../ui/src/layouts/Details/DagBreadcrumb.tsx       |   92 +-
 .../layouts/Details/Gantt/GanttTimeline.test.tsx   |  139 +-
 .../ui/src/layouts/Details/Gantt/GanttTimeline.tsx |   43 +-
 .../airflow/ui/src/layouts/Details/Gantt/utils.ts  |   10 +
 .../airflow/ui/src/layouts/Details/Grid/Grid.tsx   |    9 +-
 .../ui/src/layouts/Details/Grid/GridTI.test.tsx    |    4 +-
 .../airflow/ui/src/layouts/Details/Grid/GridTI.tsx |    8 +-
 .../ui/src/layouts/Details/Grid/TaskNames.tsx      |   25 +-
 .../layouts/Details/IterationSwitcherButton.tsx    |  121 ++
 .../src/layouts/Details/MapIndexSwitcherButton.tsx |   98 ++
 .../src/airflow/ui/src/layouts/Details/NavTabs.tsx |   87 +-
 .../ui/src/layouts/Details/SearchDagRuns.test.tsx  |   38 +-
 .../ui/src/layouts/Details/SearchDagRuns.tsx       |   49 +-
 .../ui/src/layouts/Details/SearchDags.test.tsx     |  135 +-
 .../airflow/ui/src/layouts/Details/SearchDags.tsx  |   74 +-
 .../src/layouts/Details/SearchMapIndexes.test.tsx  |  192 +++
 .../ui/src/layouts/Details/SearchMapIndexes.tsx    |  168 ++
 .../ui/src/layouts/Details/searchOptions.test.ts   |   41 +-
 .../ui/src/layouts/Details/searchOptions.ts        |   59 +-
 .../ui/src/pages/Dag/Backfills/Backfills.tsx       |   11 +-
 .../ui/src/pages/Dag/Versions/VersionDiff.test.tsx |   33 +-
 .../ui/src/pages/Dag/Versions/VersionDiff.tsx      |   16 +-
 .../airflow/ui/src/pages/DagsList/DagTags.test.tsx |  124 ++
 .../src/airflow/ui/src/pages/DagsList/DagTags.tsx  |   62 +-
 .../pages/GroupTaskInstance/GroupTaskInstance.tsx  |    1 -
 .../GroupTaskInstance/GroupTaskInstances.test.tsx  |   93 --
 .../pages/GroupTaskInstance/GroupTaskInstances.tsx |   29 +-
 .../LoopIterations/IterationSelect.test.tsx        |  107 --
 .../LoopIterations/IterationSelect.tsx             |  155 --
 .../GroupTaskInstance/LoopIterations/index.ts      |   19 -
 .../LoopIterations/loopUtils.test.ts               |   24 +-
 .../GroupTaskInstance/LoopIterations/loopUtils.ts  |   17 +-
 .../GroupTaskInstance/useLoopOutcomeStats.test.tsx |   64 +
 .../GroupTaskInstance/useLoopOutcomeStats.tsx      |   20 +-
 .../src/airflow/ui/src/pages/ReactPlugin.test.tsx  |   17 +
 .../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 -
 .../pages/Task/Overview/LoopHistoryChart.test.tsx  |    2 +-
 .../src/pages/Task/Overview/LoopHistoryChart.tsx   |    2 +-
 .../ui/src/pages/TaskInstance/Header.test.tsx      |   34 +-
 .../airflow/ui/src/pages/TaskInstance/Header.tsx   |   27 +
 .../src/pages/TaskInstance/TaskInstance.test.tsx   |    2 +-
 .../ui/src/pages/TaskInstance/TaskInstance.tsx     |   10 +-
 .../src/pages/TaskInstances/TaskInstances.test.tsx |   42 +-
 .../ui/src/pages/TaskInstances/TaskInstances.tsx   |   58 +-
 .../pages/TaskInstances/TaskInstancesFilter.tsx    |   33 +-
 .../pages/TaskStateStore/TaskStateStoreModal.tsx   |    9 +-
 .../src/airflow/ui/src/pages/XCom/XCom.test.tsx    |   18 +
 .../src/airflow/ui/src/pages/XCom/XCom.tsx         |    1 +
 .../src/airflow/ui/src/queries/useGridStructure.ts |   32 +-
 .../src/airflow/ui/src/queries/useIsLoopGroup.ts   |   72 +
 .../ui/src/queries/useLoopFilterOptions.test.ts    |  109 ++
 .../airflow/ui/src/queries/useLoopFilterOptions.ts |  180 +++
 .../src/airflow/ui/src/queries/useLoopSummary.ts   |    9 +-
 airflow-core/src/airflow/ui/src/router.tsx         |    2 -
 .../ui/src/system-components/Modal/Modal.test.tsx  |   29 +-
 .../ui/src/system-components/Modal/Modal.tsx       |   33 +-
 .../airflow/ui/src/utils/executionParams.test.ts   |   35 +-
 .../src/airflow/ui/src/utils/executionParams.ts    |   32 +-
 airflow-core/src/airflow/ui/src/utils/hitl.test.ts |   48 +-
 airflow-core/src/airflow/ui/src/utils/hitl.ts      |   18 +-
 airflow-core/src/airflow/ui/src/utils/option.ts    |   10 +-
 .../src/airflow/ui/src/utils/useFiltersHandler.ts  |    1 +
 airflow-core/src/airflow/utils/cli.py              |    2 +
 .../src/airflow/utils/orm_event_handlers.py        |    4 -
 .../core_api/routes/public/test_task_instances.py  |   27 +-
 .../core_api/routes/public/test_xcom.py            |   48 +
 .../api_fastapi/core_api/routes/ui/test_dags.py    |   51 +
 .../api_fastapi/core_api/routes/ui/test_gantt.py   |   29 +
 .../api_fastapi/core_api/routes/ui/test_grid.py    |   72 +-
 .../unit/api_fastapi/execution_api/test_app.py     |    4 +
 .../execution_api/test_dag_processor_client.py     |   18 +-
 .../execution_api/versions/head/test_router.py     |   92 +-
 .../versions/head/test_task_instances.py           |  251 +--
 .../execution_api/versions/head/test_xcoms.py      |  189 ++-
 .../tests/unit/cli/commands/test_dag_command.py    |   69 +
 .../unit/dag_processing/bundles/test_manifest.py   |  881 ++++++++++
 .../tests/unit/dag_processing/test_api_client.py   |  173 +-
 .../tests/unit/dag_processing/test_collection.py   |   44 +
 airflow-core/tests/unit/jobs/test_scheduler_job.py |   36 +-
 airflow-core/tests/unit/jobs/test_triggerer_job.py |  207 ++-
 .../test_0142_unify_task_attempt_ownership.py      |  530 +++++-
 airflow-core/tests/unit/models/conftest.py         |    8 +-
 airflow-core/tests/unit/models/test_base.py        |   43 +-
 airflow-core/tests/unit/models/test_dagrun.py      |   36 +-
 airflow-core/tests/unit/models/test_deadline.py    |  257 +--
 .../tests/unit/models/test_deadline_alert.py       |   84 +-
 .../tests/unit/models/test_mappedoperator.py       |  126 ++
 .../tests/unit/models/test_taskinstance.py         |    2 +-
 airflow-core/tests/unit/models/test_trigger.py     |   27 +-
 airflow-core/tests/unit/utils/test_cli_util.py     |   60 +
 .../tests/unit/utils/test_orm_event_handlers.py    |   37 -
 .../src/airflowctl/ctl/commands/pool_command.py    |    2 +
 .../airflow_ctl/ctl/commands/test_pool_command.py  |   45 +
 airflow-e2e-tests/docker/java.yml                  |    6 +
 airflow-e2e-tests/java-native-bundle/build.gradle  |    1 +
 .../apache/airflow/e2e/NativeBundleBuilder.java    |   12 +-
 .../apache/airflow/e2e/nativedag/DynamicDags.java  |   74 +
 .../e2e_test_utils/dynamic_dags.py                 |   71 +
 .../go_sdk_tests/test_go_sdk_dynamic_dag.py        |   47 +-
 .../java_sdk_tests/test_java_sdk_dynamic_dag.py    |   89 ++
 contributing-docs/07_local_virtualenv.rst          |    8 +-
 .../src/airflow_breeze/utils/selective_checks.py   |    1 -
 .../src/airflow_breeze/utils/verification_plan.py  |    5 +
 dev/breeze/tests/test_selective_checks.py          |   50 +-
 dev/breeze/tests/test_shim_version_check.py        |    4 +-
 dev/breeze/tests/test_verification_plan.py         |   12 +
 devel-common/pyproject.toml                        |    2 +-
 devel-common/src/docs/README.rst                   |   19 +
 devel-common/src/docs/build_docs.py                |   37 +
 devel-common/src/docs/utils/conf_constants.py      |    2 +-
 devel-common/src/sphinx_exts/mermaid_config.json   |    3 +
 .../src/sphinx_exts/mermaid_puppeteer_config.json  |    3 +
 devel-common/src/sphinx_exts/mermaid_svg.py        |   66 +
 devel-common/src/tests_common/pytest_plugin.py     |   15 -
 .../docs_build/test_build_docs_mermaid.py          |  104 ++
 ...python_builtin_xrefs.py => test_mermaid_svg.py} |   69 +-
 docs/spelling_wordlist.txt                         |   12 +
 generated/provider_metadata.json                   |  422 +++++
 go-sdk/pkg/execution/genmodels/models.gen.go       |   22 +-
 go-sdk/schema/supervisor-schema.json               |   49 +
 .../main/kotlin/org/apache/airflow/sdk/Client.kt   |    5 +-
 .../org/apache/airflow/sdk/execution/MsgPack.kt    |   13 +-
 .../org/apache/airflow/sdk/execution/CommTest.kt   |   34 +
 providers/.last_release_date.txt                   |    2 +-
 providers/amazon/README.rst                        |    2 +-
 providers/amazon/docs/changelog.rst                |   16 +-
 providers/amazon/docs/index.rst                    |    2 +-
 .../amazon/docs/operators/emr/emr_serverless.rst   |   17 +
 providers/amazon/provider.yaml                     |    2 +-
 providers/amazon/pyproject.toml                    |    2 +-
 .../airflow/providers/amazon/aws/operators/emr.py  |   60 +-
 .../airflow/providers/amazon/aws/waiters/dms.json  |    4 +-
 .../amazon/aws/example_emr_serverless_session.py   |   11 +
 .../aws/operators/test_emr_serverless_session.py   |   62 +-
 .../tests/unit/amazon/aws/waiters/test_dms.py      |   36 +-
 providers/common/ai/README.rst                     |   20 +-
 providers/common/ai/docs/agent_security.rst        |   18 +-
 providers/common/ai/docs/approval_gates.rst        |  238 ++-
 providers/common/ai/docs/capabilities.rst          |   11 +-
 providers/common/ai/docs/changelog.rst             |   97 +-
 providers/common/ai/docs/code_mode.rst             |    5 +-
 providers/common/ai/docs/decision_models.rst       |    6 +-
 providers/common/ai/docs/durable_execution.rst     |   99 +-
 providers/common/ai/docs/features.rst              |  311 +++-
 providers/common/ai/docs/frameworks/anthropic.rst  |  212 +++
 providers/common/ai/docs/frameworks/index.rst      |   56 +-
 .../common/ai/docs/frameworks/openai_agents.rst    |  162 ++
 .../common/ai/docs/frameworks/pydantic_ai.rst      |   22 +-
 .../ai/docs/img/approval_required_actions.png      |  Bin 0 -> 78595 bytes
 .../common/ai/docs/img/approval_review_form.png    |  Bin 0 -> 95532 bytes
 providers/common/ai/docs/index.rst                 |   15 +-
 providers/common/ai/docs/installation.rst          |   12 +-
 providers/common/ai/docs/message_history.rst       |   11 +-
 providers/common/ai/docs/observability.rst         |   45 +-
 providers/common/ai/docs/operations.rst            |    3 +
 providers/common/ai/docs/operators/agent.rst       |    7 +-
 providers/common/ai/docs/operators/llm.rst         |   54 +-
 providers/common/ai/docs/operators/llm_batch.rst   |    6 +
 providers/common/ai/docs/operators/llm_branch.rst  |    6 +-
 .../common/ai/docs/operators/llm_file_analysis.rst |    6 +-
 .../ai/docs/operators/llm_schema_compare.rst       |    9 +-
 providers/common/ai/docs/provider_fallback.rst     |   22 +-
 providers/common/ai/docs/recovery.rst              |  163 ++
 providers/common/ai/docs/retry_policies.rst        |    9 +-
 providers/common/ai/docs/sandbox/backends.rst      |  221 ++-
 providers/common/ai/docs/sandbox/configuration.rst |   21 +-
 providers/common/ai/docs/sandbox/index.rst         |   58 +-
 providers/common/ai/docs/stability.rst             |   18 +-
 providers/common/ai/docs/toolsets/hook.rst         |   16 +
 providers/common/ai/docs/toolsets/index.rst        |   12 +-
 providers/common/ai/docs/toolsets/logging.rst      |    4 +-
 .../common/ai/docs/toolsets/object_storage.rst     |    3 +-
 .../ai/docs/toolsets/progressive_disclosure.rst    |  146 ++
 providers/common/ai/docs/toolsets/skills.rst       |   10 +-
 providers/common/ai/docs/troubleshooting.rst       |    6 +-
 providers/common/ai/provider.yaml                  |   15 +-
 providers/common/ai/pyproject.toml                 |   38 +-
 .../ai/src/airflow/providers/common/ai/__init__.py |    2 +-
 .../airflow/providers/common/ai/batch/anthropic.py |   24 +-
 .../providers/common/ai/batch/output_schema.py     |    9 +-
 .../providers/common/ai/durable/capability.py      |   13 +-
 .../providers/common/ai/durable/fingerprint.py     |  516 +++++-
 .../airflow/providers/common/ai/durable/journal.py |   63 +-
 .../common/ai/example_dags/example_agent_memory.py |    2 +-
 .../ai/example_dags/example_agent_recovery.py      |   70 +
 .../example_dags/example_aip_progress_tracker.py   |    6 +-
 .../example_dags/example_anthropic_tool_runner.py  |   82 +
 .../common/ai/example_dags/example_llm.py          |   11 +-
 .../common/ai/example_dags/example_llm_approval.py |   54 +
 .../ai/example_dags/example_openai_agents_agent.py |   90 ++
 .../example_progressive_tool_disclosure.py         |  107 ++
 .../src/airflow/providers/common/ai/exceptions.py  |   19 +
 .../providers/common/ai/get_provider_info.py       |    7 +-
 .../providers/common/ai/hooks/pydantic_ai.py       |   10 +
 .../airflow/providers/common/ai/mixins/approval.py |   61 +-
 .../providers/common/ai/mixins/hitl_review.py      |   14 +-
 .../airflow/providers/common/ai/observability.py   |    5 +
 .../airflow/providers/common/ai/operators/agent.py |   23 +-
 .../airflow/providers/common/ai/operators/llm.py   |   88 +-
 .../providers/common/ai/operators/llm_batch.py     |   12 +-
 .../providers/common/ai/operators/llm_branch.py    |    9 +-
 .../common/ai/operators/llm_file_analysis.py       |   11 +-
 .../common/ai/operators/llm_schema_compare.py      |   26 +-
 .../providers/common/ai/operators/llm_sql.py       |   10 +-
 .../airflow/providers/common/ai/policies/retry.py  |   18 +-
 .../providers/common/ai/sandbox/__init__.py        |    2 +
 .../providers/common/ai/sandbox/openshell.py       | 1139 +++++++++++++
 .../airflow/providers/common/ai/tools/__init__.py  |    4 +-
 .../airflow/providers/common/ai/tools/anthropic.py |  288 ++++
 .../providers/common/ai/tools/openai_agents.py     |  391 +++++
 .../airflow/providers/common/ai/tools/tracing.py   |   11 +-
 .../airflow/providers/common/ai/toolsets/hook.py   |  133 +-
 .../providers/common/ai/utils/coroutines.py        |   13 +-
 .../airflow/providers/common/ai/utils/masking.py   |   26 +-
 .../providers/common/ai/utils/output_type.py       |  142 +-
 .../providers/common/ai/utils/tool_metrics.py      |    2 +-
 .../providers/common/ai/utils/toolset_base.py      |   83 +-
 .../common/ai/tests/system/common/ai/README.md     |   17 +
 .../common/ai/example_sandbox_toolset_openshell.py |  122 ++
 .../tests/unit/common/ai/batch/test_anthropic.py   |   57 +-
 .../unit/common/ai/batch/test_output_schema.py     |   13 +-
 .../unit/common/ai/durable/test_capability.py      |  164 +-
 .../tests/unit/common/ai/durable/test_code_mode.py |  229 +++
 .../unit/common/ai/durable/test_fingerprint.py     | 1687 +++++++++++++++++++-
 .../tests/unit/common/ai/durable/test_journal.py   |   90 +-
 .../tests/unit/common/ai/hooks/test_pydantic_ai.py |   45 +
 .../tests/unit/common/ai/mixins/test_approval.py   |  133 +-
 .../unit/common/ai/mixins/test_hitl_review.py      |   58 +
 .../tests/unit/common/ai/operators/test_agent.py   |  245 ++-
 .../ai/tests/unit/common/ai/operators/test_llm.py  |  115 +-
 .../unit/common/ai/operators/test_llm_batch.py     |   20 +
 .../unit/common/ai/operators/test_llm_branch.py    |   25 +
 .../common/ai/operators/test_llm_file_analysis.py  |   31 +-
 .../common/ai/operators/test_llm_schema_compare.py |   14 +-
 .../tests/unit/common/ai/operators/test_llm_sql.py |   13 +-
 .../ai/tests/unit/common/ai/policies/test_retry.py |   37 +-
 .../tests/unit/common/ai/sandbox/test_openshell.py | 1479 +++++++++++++++++
 .../ai/tests/unit/common/ai/test_exceptions.py     |    2 +
 .../tests/unit/common/ai/tools/test_anthropic.py   |  364 +++++
 .../unit/common/ai/tools/test_openai_agents.py     |  611 +++++++
 .../ai/tests/unit/common/ai/toolsets/test_hook.py  |  216 ++-
 .../tests/unit/common/ai/utils/test_coroutines.py  |   14 +
 .../ai/tests/unit/common/ai/utils/test_masking.py  |   51 +-
 .../tests/unit/common/ai/utils/test_output_type.py |  422 ++++-
 .../unit/common/ai/utils/test_toolset_base.py      |   42 +-
 providers/common/compat/README.rst                 |    6 +-
 providers/common/compat/docs/changelog.rst         |   11 +
 providers/common/compat/docs/index.rst             |    6 +-
 providers/common/compat/provider.yaml              |    3 +-
 providers/common/compat/pyproject.toml             |    6 +-
 .../airflow/providers/common/compat/__init__.py    |    2 +-
 .../providers/common/compat/_retry_policy.py       |    5 +-
 .../src/airflow/providers/common/compat/sdk.py     |    7 +-
 .../tests/unit/common/compat/test__retry_policy.py |   16 +
 providers/databricks/docs/index.rst                |    2 +-
 providers/databricks/pyproject.toml                |    2 +-
 .../providers/databricks/hooks/databricks_sql.py   |    5 +-
 .../providers/databricks/utils/openlineage.py      |  123 +-
 .../unit/databricks/hooks/test_databricks_sql.py   |   16 +-
 .../unit/databricks/utils/test_openlineage.py      |  947 +++--------
 providers/dbt/cloud/docs/changelog.rst             |    3 +-
 providers/dbt/cloud/docs/index.rst                 |    8 +-
 providers/dbt/cloud/provider.yaml                  |    2 +-
 providers/dbt/cloud/pyproject.toml                 |    2 +-
 .../providers/dbt/cloud/utils/openlineage.py       |   57 +-
 .../tests/unit/dbt/cloud/utils/test_openlineage.py |   20 +-
 .../fab/auth_manager/cli_commands/role_command.py  |   26 +
 .../auth_manager/cli_commands/test_role_command.py |   69 +
 providers/google/docs/changelog.rst                |    9 +-
 providers/google/provider.yaml                     |    2 +-
 providers/microsoft/azure/docs/bundles/index.rst   |   80 +
 providers/microsoft/azure/docs/index.rst           |    1 +
 providers/microsoft/azure/provider.yaml            |    5 +
 .../providers/microsoft/azure/bundles}/__init__.py |    0
 .../providers/microsoft/azure/bundles/wasb.py      |  154 ++
 .../providers/microsoft/azure/get_provider_info.py |    6 +
 .../providers/microsoft/azure/hooks/wasb.py        |  108 ++
 .../unit/microsoft/azure/bundles}/__init__.py      |    0
 .../unit/microsoft/azure/bundles/test_wasb.py      |  279 ++++
 .../tests/unit/microsoft/azure/hooks/test_wasb.py  |  160 ++
 providers/openai/pyproject.toml                    |    2 +-
 .../src/airflow/providers/openai/hooks/openai.py   |   79 +-
 .../openai/tests/unit/openai/hooks/test_openai.py  |  202 ++-
 .../openlineage/utils/sql_hook_lineage.py          |   28 +-
 .../openlineage_policy_hook_lineage_dag.json       |   16 +-
 .../openlineage/utils/test_sql_hook_lineage.py     |    6 +-
 providers/snowflake/docs/index.rst                 |    2 +-
 providers/snowflake/pyproject.toml                 |    2 +-
 .../airflow/providers/snowflake/hooks/snowflake.py |    5 +-
 .../providers/snowflake/utils/openlineage.py       |  174 +-
 .../tests/unit/snowflake/hooks/test_snowflake.py   |   17 +-
 .../tests/unit/snowflake/utils/test_openlineage.py |  886 +++-------
 providers/ssh/docs/operators/ssh_remote_job.rst    |    4 +
 .../providers/ssh/operators/ssh_remote_job.py      |    4 +-
 .../src/airflow/providers/ssh/utils/remote_job.py  |    9 +-
 .../ssh/tests/unit/ssh/utils/test_remote_job.py    |   42 +-
 reproducible_build.yaml                            |    4 +-
 scripts/ci/prek/upgrade_important_versions.py      |    2 +-
 scripts/in_container/bin/generate_mprocs_config.py |    3 +-
 scripts/in_container/install_mermaid_cli.sh        |   40 +
 scripts/in_container/run_agent_framework_tests.sh  |   36 +-
 .../in_container/run_provider_yaml_files_check.py  |   10 +-
 .../in_container/test_generate_mprocs_config.py    |   19 +-
 scripts/tools/setup_breeze                         |    5 +-
 .../observability/metrics/metrics_template.yaml    |    5 +-
 task-sdk/docs/api.rst                              |    2 +
 task-sdk/docs/conf.py                              |    2 +-
 task-sdk/docs/index.rst                            |    1 +
 task-sdk/src/airflow/sdk/__init__.py               |    3 +
 task-sdk/src/airflow/sdk/__init__.pyi              |    2 +
 task-sdk/src/airflow/sdk/api/client.py             |   16 +-
 .../src/airflow/sdk/api/datamodels/_generated.py   |   14 +
 .../src/airflow/sdk/definitions/_internal/loop.py  |   10 +-
 task-sdk/src/airflow/sdk/definitions/deadline.py   |   37 +-
 .../sdk/definitions/decorators/task_group.py       |    6 +-
 .../src/airflow/sdk/definitions/loop.py            |   20 +-
 .../src/airflow/sdk/definitions/retry_policy.py    |   94 +-
 task-sdk/src/airflow/sdk/execution_time/comms.py   |    7 +
 task-sdk/src/airflow/sdk/execution_time/loop.py    |   70 +-
 .../airflow/sdk/execution_time/schema/schema.json  |   49 +
 .../execution_time/schema/versions/v2026_10_30.py  |   12 +-
 .../src/airflow/sdk/execution_time/supervisor.py   |   12 +-
 .../src/airflow/sdk/execution_time/task_runner.py  |   74 +-
 .../airflow/sdk/importers/yaml_importer/builder.py |  215 ++-
 task-sdk/tests/task_sdk/api/test_client.py         |   27 +
 .../task_sdk/definitions/test_retry_policy.py      |  121 +-
 .../tests/task_sdk/execution_time/test_loop.py     |  214 ++-
 .../task_sdk/execution_time/test_supervisor.py     |   24 +-
 .../task_sdk/execution_time/test_task_runner.py    |  191 +++
 .../importers/yaml_importer/test_importer.py       |  117 ++
 ts-sdk/schema/supervisor-schema.json               |   49 +
 ts-sdk/src/generated/supervisor.ts                 |   14 +
 uv.lock                                            |   55 +-
 451 files changed, 24336 insertions(+), 5950 deletions(-)
 create mode 100644 airflow-core/newsfragments/70714.significant.rst
 create mode 100644 airflow-core/newsfragments/74709.bugfix.rst
 create mode 100644 airflow-core/src/airflow/dag_processing/bundles/manifest.py
 create mode 100644 
airflow-core/src/airflow/ui/src/components/FilterBar/filters/LoopFilter.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/components/FilterBar/filters/loopParams.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/components/FilterBar/filters/loopParams.ts
 copy airflow-core/src/airflow/ui/src/{layouts/Details/Grid/DurationTick.tsx => 
components/LoopDecisionReason.tsx} (67%)
 create mode 100644 
airflow-core/src/airflow/ui/src/components/LoopOptionLabel.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/hooks/useResolvePassCoordinate.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/hooks/useResolvePassCoordinate.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/IterationSwitcherButton.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/MapIndexSwitcherButton.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/SearchMapIndexes.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/layouts/Details/SearchMapIndexes.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/DagsList/DagTags.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstances.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/IterationSelect.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/IterationSelect.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/index.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/useLoopOutcomeStats.test.tsx
 delete mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Execution.test.tsx
 delete mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Execution.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useLoopFilterOptions.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/queries/useLoopFilterOptions.ts
 create mode 100644 
airflow-core/tests/unit/dag_processing/bundles/test_manifest.py
 delete mode 100644 airflow-core/tests/unit/utils/test_orm_event_handlers.py
 create mode 100644 
airflow-e2e-tests/java-native-bundle/src/java/org/apache/airflow/e2e/nativedag/DynamicDags.java
 create mode 100644 
airflow-e2e-tests/tests/airflow_e2e_tests/e2e_test_utils/dynamic_dags.py
 create mode 100644 
airflow-e2e-tests/tests/airflow_e2e_tests/java_sdk_tests/test_java_sdk_dynamic_dag.py
 create mode 100644 devel-common/src/sphinx_exts/mermaid_config.json
 create mode 100644 devel-common/src/sphinx_exts/mermaid_puppeteer_config.json
 create mode 100644 devel-common/src/sphinx_exts/mermaid_svg.py
 create mode 100644 
devel-common/tests/unit/sphinx_exts/docs_build/test_build_docs_mermaid.py
 copy devel-common/tests/unit/sphinx_exts/{test_python_builtin_xrefs.py => 
test_mermaid_svg.py} (53%)
 create mode 100644 providers/common/ai/docs/frameworks/anthropic.rst
 create mode 100644 providers/common/ai/docs/frameworks/openai_agents.rst
 create mode 100644 providers/common/ai/docs/img/approval_required_actions.png
 create mode 100644 providers/common/ai/docs/img/approval_review_form.png
 create mode 100644 providers/common/ai/docs/recovery.rst
 create mode 100644 providers/common/ai/docs/toolsets/progressive_disclosure.rst
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_agent_recovery.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_anthropic_tool_runner.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llm_approval.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_openai_agents_agent.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_progressive_tool_disclosure.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/sandbox/openshell.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/tools/anthropic.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/tools/openai_agents.py
 create mode 100644 
providers/common/ai/tests/system/common/ai/example_sandbox_toolset_openshell.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_code_mode.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/sandbox/test_openshell.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/tools/test_anthropic.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/tools/test_openai_agents.py
 create mode 100644 providers/microsoft/azure/docs/bundles/index.rst
 copy {airflow-core/src/airflow/_shared => 
providers/microsoft/azure/src/airflow/providers/microsoft/azure/bundles}/__init__.py
 (100%)
 create mode 100644 
providers/microsoft/azure/src/airflow/providers/microsoft/azure/bundles/wasb.py
 copy {airflow-core/src/airflow/_shared => 
providers/microsoft/azure/tests/unit/microsoft/azure/bundles}/__init__.py (100%)
 create mode 100644 
providers/microsoft/azure/tests/unit/microsoft/azure/bundles/test_wasb.py
 create mode 100755 scripts/in_container/install_mermaid_cli.sh
 copy dev/breeze/src/airflow_breeze/utils/helm_chart_utils.py => 
scripts/tests/in_container/test_generate_mprocs_config.py (62%)
 copy airflow-core/tests/unit/task/conftest.py => 
task-sdk/src/airflow/sdk/definitions/loop.py (66%)

Reply via email to