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

dabla pushed a change to branch 
dabla/durable-operators/02-durable-msgraph-powerbi
in repository https://gitbox.apache.org/repos/asf/airflow.git


 discard 54a2887eeac Warn once per run when a durable MSGraph task has no task 
state store
 discard aff3e7e2d20 Read the kept MSGraph pages only when the durable operator 
returns them
 discard a43b6d8864a Make the PowerBI refresh and MSGraph operators resume 
after a retry
 discard 52ae0697490 Use one ResumableJobMixin fallback from common.compat in 
providers
     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 a23aa81c62e Fix flaky static checks crashing on ts-sdk node_modules 
during editable build (#74117)
     add d6d425da028 Declare pyarrow for Parquet output of SqlToS3Operator 
(#74691)
     add 8317410ef7d Do not warn about bare postgresql:// metadata DB URLs 
(#74863)
     add 23f4aee0239 Fix Dag version diff max-changes border, limit wording and 
duplicate count (#74818)
     add 0795688f863 Bump swagger-ui-dist from 5.33.1 to 5.33.2 in /registry 
(#74872)
     add 7acab3c3b02 Bump the ui-plugin-template-package-updates group across 1 
directory with 7 updates (#74877)
     add e009c1167eb Bump the edge-ui-package-updates group across 1 directory 
with 13 updates (#74879)
     add b9aa889577c Cover long-running jobs in the deferrable BigQuery check 
system test (#74356)
     add f54d32d969b Cap the workers of the SFTP concurrent directory transfer 
test (#74888)
     add 3ce8d152d0d Keep queued connection tests from overwriting newer 
connections (#74837)
     add 20ccfcd7457 Match camelCase keys against sensitive field names in 
masker (#74840)
     add c7cec687bb6 Cap `pydantic-ai-skills` below 2 for the Common AI skills 
extra (#74899)
     add 91937288435 Bump the core-ui-package-updates group across 1 directory 
with 16 updates (#74881)
     add f8b42cf2f41 Bump happy-dom from 20.14.5 to 21.0.1 in 
/airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui (#74876)
     add 7178a785947 Bump the ts-sdk-package-updates group across 1 directory 
with 3 updates (#74874)
     add 1f4fe796933 Keep the pydantic-ai first-run banner out of Common AI 
task logs (#74900)
     add b1ce1cac7f5 Fix Common AI Model tab not loading on Airflow 3.4 (#74898)
     add 0eab1db3d2b Replay an OpenAI Agents SDK agent's completed calls when 
Airflow retries its task (#74770)
     add f5038e67834 Fix dynamically mapped tasks never running on scheduled 
Dag runs (#74861)
     add bd0aedee6eb Bump the typescript group across 1 directory with 4 
updates (#74878)
     add 6e16f26400f Bump the auth-ui-package-updates group across 1 directory 
with 8 updates (#74875)
     add 47c1c416525 Bump happy-dom from 20.14.5 to 21.0.1 in 
/airflow-core/src/airflow/ui (#74882)
     add 47b092846cc Bump the uv-dependency-updates group across 1 directory 
with 4 updates (#74509)
     add f3784d2e9e1 Cancel the BigQuery job when BigQueryToGCSOperator is 
killed (#74564)
     add ed5496fe78d Remove unreachable break in get_bagged_dag (#72332)
     add bfe64b1991e Add AthenaSparkSensor (#72229)
     add a6af7e5a08e Show the actual value in two breeze and CI script error 
messages (#74894)
     add db1397a1e89 Reject duplicate durable toolset ids and fail deferred 
tools with `UnsupportedToolDeferralError` (#74902)
     add 4eda1ee76ea Make Common AI example Dags reach the behaviour they show 
(#74901)
     add dba55d8728a Add password grant type to Snowflake OAuth token requests 
(#74804)
     add 5caec465d3d Stop the OpenLineage execution timeout test flaking on 
busy CI runners (#74927)
     add 3fbf0134fde Remove redundant Snowflake prefixes from Cortex Agent and 
SQL API modules (#74300)
     add a5c28069af8 Cancel the Dataflow job when a user kills the deferred 
task (#69586)
     add c35db24a38c Fix Cloud Function invoke operator docs link (#69226)
     add d5aed746ad9 Avoid Vertex AI Feature Store system Dag import timeout 
(#69823)
     add 6a925a8fbe6 Resolve loop iterations through family and path columns on 
dynamic regions (#74892)
     add a1dbc930726 Stop holding `typesafe-sdk` and `boat-sdk` back in the uv 
lock (#74903)
     add 79ce98f1101 Prepare ad-hoc providers release 2026-10-17 (#74933)
     add 70363ba55e6 Fix stale Common AI docs and add a guide to writing a 
toolset (#74904)
     add 4b464ee29ba Clear language SDK task XComs in the coordinator when a 
try starts (#74221)
     add c0e61578a82 Add the Common AI docs fixes to the 1.0.0 changelog 
(#74937)
     add 76943ec8e44 Fix Celery result backend compatibility with PgBouncer 
(#74841)
     add 0266cae0e24 Keep the custom-toolset example's version from changing 
the PyPI path (#74939)
     add 4bc581aab21 Allow GKE Autopilot clusters without node pools and stop 
GKE pod trigger reviving should_delete_pod (#69876)
     add a9440be98a9 Update providers metadata 2026-10-18 (#74942)
     add 5dc96d65dd3 Fail publishing provider docs when a provider is missing 
from the site index (#74941)
     add fd4654dce4f Fall back for empty console domain (#70067)
     add 7644e35f8b7 Add retry-safe batch_id_prefix to 
DataprocCreateBatchOperator (#69855)
     add b00cfeb11f0 Drain result_queue before dispatch in LocalExecutor to 
prevent runtime dispatch deadlock (#70545)
     add c3cc5573b80 Batch triggerer unused trigger cleanup deletes (#70961)
     add 3f03b18920f Document that use_job_schedule also stops asset-triggered 
Dag runs (#73952)
     add b59f7489cd8 Make ZIP_REGEX case-insensitive to match .ZIP archives 
(#74269)
     add 4fbbcddf022 Reduce db clean batch probe overhead (#74455)
     add b8987f0356c UI: Open nav sidebar menus on hover and add a Dags menu 
(#74745)
     add 113bc123a6b Warn when ignore_unknown_values is a no-op in 
GCSToBigQueryOperator (#71675)
     add 0f8d6f88b0e UI: Keep unnamed columns out of the table columns menu 
(#74774)
     add 912bbe58050 Fix Dag list run badges and counters not refreshing after 
completion (#74734)
     add 71e74bc9554 Add deadline callback log visibility to the Dag Run view 
in UI (#73580)
     add a1e66b1f1d3 Check hooks before cancelling BigQuery jobs in on_kill 
(#74946)
     add ae8c970f12d Fix Discord embed author name length validation using 
wrong limit (#74940)
     add 34ffab8e4a4 Fix GKEStartPodOperator ignoring execution_timeout when 
deferrable (#71528)
     add 4bda61c8c3d Keep the HTTPError when a Dataprep error body is not JSON 
(#71702)
     add 7bf4936bd79 Bump prettier from 3.9.9 to 3.9.10 in 
/providers/fab/src/airflow/providers/fab/www (#74765)
     add 675b02a2f9b Make airflow-core typing hold for SQLAlchemy 2.0 and 2.1 
(#74629)
     add 099c03e4435 Fix SqlToS3Operator failing for every format when df_type 
is polars (#74692)
     add 917bde28c4f Use one ResumableJobMixin fallback from common.compat in 
providers
     add c3c7e7afec8 Update 
providers/common/compat/tests/unit/common/compat/test__resumable_job_mixin.py
     add 0057bb619e0 Make the PowerBI refresh and MSGraph operators resume 
after a retry
     add c06d0315f00 Read the kept MSGraph pages only when the durable operator 
returns them
     add 5935680110d Warn once per run when a durable MSGraph task has no task 
state store

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   (54a2887eeac)
            \
             N -- N -- N   
refs/heads/dabla/durable-operators/02-durable-msgraph-powerbi (5935680110d)

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 +-
 .../prepare-providers-documentation/SKILL.md       |    7 +
 .../release-management-config.md                   |    9 +
 .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 +-
 .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/docs/migrations-ref.rst               |    4 +-
 airflow-core/newsfragments/70714.significant.rst   |    1 +
 airflow-core/newsfragments/74709.bugfix.rst        |    1 +
 airflow-core/newsfragments/74837.bugfix.rst        |    1 +
 airflow-core/newsfragments/74840.bugfix.rst        |    1 +
 airflow-core/pyproject.toml                        |    2 +-
 .../api_fastapi/auth/managers/base_auth_manager.py |    3 +-
 .../auth/managers/simple/ui/package.json           |   18 +-
 .../auth/managers/simple/ui/pnpm-lock.yaml         |  462 +++---
 .../api_fastapi/core_api/datamodels/ui/deadline.py |    7 +
 .../api_fastapi/core_api/datamodels/ui/grid.py     |   17 +-
 .../api_fastapi/core_api/openapi/_private_ui.yaml  |  166 +-
 .../core_api/openapi/v2-rest-api-generated.yaml    |   43 +-
 .../core_api/routes/public/connections.py          |    4 +-
 .../core_api/routes/public/task_instances.py       |   19 +-
 .../api_fastapi/core_api/routes/public/xcom.py     |   18 +
 .../api_fastapi/core_api/routes/ui/deadlines.py    |   75 +-
 .../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 +-
 .../core_api/services/ui/dependencies.py           |    6 +-
 .../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/connection_tests.py       |    7 +-
 .../execution_api/routes/task_instances.py         |   52 +-
 .../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/config_templates/config.yml        |   14 +-
 airflow-core/src/airflow/configuration.py          |   29 +-
 .../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/executors/local_executor.py        |    1 +
 .../src/airflow/jobs/scheduler_job_runner.py       |   11 +-
 .../src/airflow/jobs/triggerer_job_runner.py       |   74 +-
 .../0142_3_4_0_unify_task_attempt_ownership.py     |  263 ++-
 .../0143_3_4_0_add_dynamic_region_storage.py       |    6 +
 ..._add_commit_allows_update_to_connection_test.py |   51 +
 ..._job.py => 0148_3_5_0_add_session_id_to_job.py} |    4 +-
 airflow-core/src/airflow/models/connection_test.py |   26 +-
 airflow-core/src/airflow/models/dagrun.py          |   44 +-
 airflow-core/src/airflow/models/deadline.py        |  139 +-
 airflow-core/src/airflow/models/dynamic_region.py  |  232 ++-
 airflow-core/src/airflow/models/pool.py            |    2 +-
 .../src/airflow/models/task_coordinates.py         |    9 +-
 airflow-core/src/airflow/models/taskinstance.py    |   41 +-
 airflow-core/src/airflow/models/trigger.py         |   81 +-
 airflow-core/src/airflow/models/xcom.py            |    7 +-
 .../src/airflow/serialization/definitions/dag.py   |    2 +-
 .../airflow/serialization/definitions/deadline.py  |   90 +-
 .../src/airflow/ui/openapi-gen/queries/common.ts   |   14 +-
 .../ui/openapi-gen/queries/ensureQueryData.ts      |   29 +-
 .../src/airflow/ui/openapi-gen/queries/prefetch.ts |   29 +-
 .../src/airflow/ui/openapi-gen/queries/queries.ts  |   29 +-
 .../src/airflow/ui/openapi-gen/queries/suspense.ts |   29 +-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts |   72 +-
 .../ui/openapi-gen/requests/services.gen.ts        |   43 +-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |   60 +-
 airflow-core/src/airflow/ui/package.json           |   42 +-
 airflow-core/src/airflow/ui/pnpm-lock.yaml         |  891 ++++++-----
 .../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  |   10 +
 .../src/airflow/ui/public/i18n/locales/en/dag.json |   46 +-
 .../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 +-
 .../Clear/TaskInstance/ClearTaskInstanceDialog.tsx |   17 +-
 .../src/components/DagActions/RunBackfillForm.tsx  |   11 +-
 .../DataTable/DataTable.columnVisibility.test.tsx  |   20 +
 .../DataTable/DataTable.expanding.test.tsx         |   74 +
 .../ui/src/components/DataTable/DataTable.tsx      |   35 +-
 .../ui/src/components/DataTable/TableList.tsx      |   32 +-
 .../ui/src/components/DataTable/features.ts        |    5 +-
 .../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}                        |   31 +-
 .../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 +-
 .../ui/src/components/renderStructuredLog.test.tsx |   18 +-
 .../ui/src/components/renderStructuredLog.tsx      |    3 +-
 .../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 +-
 .../src/airflow/ui/src/layouts/Nav/AdminButton.tsx |   20 +-
 .../airflow/ui/src/layouts/Nav/BrowseButton.tsx    |   20 +-
 .../airflow/ui/src/layouts/Nav/DagsButton.test.tsx |   67 +
 .../src/airflow/ui/src/layouts/Nav/DagsButton.tsx  |   77 +
 .../src/airflow/ui/src/layouts/Nav/DocsButton.tsx  |   56 +-
 .../src/airflow/ui/src/layouts/Nav/Nav.tsx         |   11 +-
 .../airflow/ui/src/layouts/Nav/NavMenu.test.tsx    |   90 ++
 .../src/airflow/ui/src/layouts/Nav/NavMenu.tsx     |  170 ++
 .../src/airflow/ui/src/layouts/Nav/PluginMenus.tsx |   44 +-
 .../airflow/ui/src/layouts/Nav/SecurityButton.tsx  |   26 +-
 .../ui/src/layouts/Nav/UserSettingsButton.tsx      |  190 ++-
 .../Asset/AssetStateStore/AssetStateStore.tsx      |    1 +
 .../ui/src/pages/Connections/Connections.tsx       |    1 +
 .../ui/src/pages/Dag/Backfills/Backfills.tsx       |   11 +-
 .../ui/src/pages/Dag/Versions/VersionDiff.test.tsx |   30 +-
 .../ui/src/pages/Dag/Versions/VersionDiff.tsx      |   41 +-
 .../ui/src/pages/Dag/Versions/Versions.test.tsx    |    6 +
 .../airflow/ui/src/pages/Dag/Versions/Versions.tsx |    9 +
 .../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx   |    1 +
 .../DagsList/DagsListColumns.test.tsx}             |   17 +-
 .../ui/src/pages/DagsList/DagsListColumns.tsx      |    4 +
 .../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/CallbackLogs.test.tsx |   85 +
 .../src/airflow/ui/src/pages/Run/CallbackLogs.tsx  |  189 +++
 .../airflow/ui/src/pages/Run/Callbacks.test.tsx    |  139 ++
 .../src/airflow/ui/src/pages/Run/Callbacks.tsx     |  161 ++
 .../airflow/ui/src/pages/Run/Execution.test.tsx    |  490 ------
 .../src/airflow/ui/src/pages/Run/Execution.tsx     |  325 ----
 .../src/airflow/ui/src/pages/Run/Run.test.tsx      |   81 +
 airflow-core/src/airflow/ui/src/pages/Run/Run.tsx  |   36 +-
 .../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   |   59 +-
 .../pages/TaskInstances/TaskInstancesFilter.tsx    |   33 +-
 .../ui/src/pages/TaskStateStore/TaskStateStore.tsx |    1 +
 .../pages/TaskStateStore/TaskStateStoreModal.tsx   |    9 +-
 .../airflow/ui/src/pages/Variables/Variables.tsx   |    1 +
 .../src/airflow/ui/src/pages/XCom/XCom.test.tsx    |   18 +
 .../src/airflow/ui/src/pages/XCom/XCom.tsx         |    2 +
 .../ui/src/queries/useDagRunStateCounts.tsx        |    2 +-
 .../src/airflow/ui/src/queries/useDags.test.tsx    |  101 ++
 .../src/airflow/ui/src/queries/useDags.tsx         |    2 +-
 .../src/airflow/ui/src/queries/useGridStructure.ts |   32 +-
 .../src/airflow/ui/src/queries/useIsLoopGroup.ts   |   72 +
 .../src/airflow/ui/src/queries/useLogs.tsx         |   45 +-
 .../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         |    4 +-
 .../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/option.ts    |   10 +-
 .../src/airflow/ui/src/utils/useFiltersHandler.ts  |    1 +
 airflow-core/src/airflow/utils/cli.py              |    4 +-
 airflow-core/src/airflow/utils/db.py               |    2 +-
 airflow-core/src/airflow/utils/db_cleanup.py       |    4 +-
 airflow-core/src/airflow/utils/file.py             |    2 +-
 .../src/airflow/utils/log/path_log_reader.py       |   98 ++
 airflow-core/src/airflow/utils/sqlalchemy.py       |   12 +-
 .../tests/unit/always/test_project_structure.py    |    1 -
 .../auth/managers/test_base_auth_manager.py        |   17 +
 .../core_api/routes/public/test_connections.py     |   21 +
 .../core_api/routes/public/test_extra_links.py     |    7 +-
 .../core_api/routes/public/test_task_instances.py  |   27 +-
 .../core_api/routes/public/test_xcom.py            |   48 +
 .../core_api/routes/ui/test_deadlines.py           |  125 +-
 .../api_fastapi/core_api/routes/ui/test_gantt.py   |   29 +
 .../api_fastapi/core_api/routes/ui/test_grid.py    |   72 +-
 .../tests/unit/api_fastapi/core_api/test_app.py    |    1 +
 .../unit/api_fastapi/execution_api/test_app.py     |    4 +
 .../versions/head/test_connection_tests.py         |   33 +
 .../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 +
 airflow-core/tests/unit/core/test_configuration.py |   24 +
 .../tests/unit/dag_processing/test_collection.py   |   44 +
 .../tests/unit/executors/test_local_executor.py    |   80 +
 airflow-core/tests/unit/jobs/test_scheduler_job.py |   57 +-
 airflow-core/tests/unit/jobs/test_triggerer_job.py |  238 ++-
 .../test_0142_unify_task_attempt_ownership.py      |  530 +++++-
 .../test_0143_add_dynamic_region_storage.py        |   10 +-
 .../test_0144_rename_stored_map_index.py           |   12 +-
 airflow-core/tests/unit/models/conftest.py         |    8 +-
 .../tests/unit/models/test_connection_test.py      |   32 +-
 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_dynamic_region.py       |  233 ++-
 .../tests/unit/models/test_mappedoperator.py       |  126 ++
 .../tests/unit/models/test_taskinstance.py         |    6 +-
 airflow-core/tests/unit/models/test_trigger.py     |  245 ++-
 .../tests/unit/utils/log/test_path_log_reader.py   |   76 +
 airflow-core/tests/unit/utils/test_cli_util.py     |   60 +
 airflow-core/tests/unit/utils/test_db_cleanup.py   |   22 +
 airflow-core/tests/unit/utils/test_file.py         |   16 +-
 airflow-core/tests/unit/utils/test_sqlalchemy.py   |   20 +
 .../src/airflowctl/ctl/commands/pool_command.py    |    2 +
 .../airflow_ctl/ctl/commands/test_pool_command.py  |   45 +
 contributing-docs/07_local_virtualenv.rst          |    8 +-
 dev/README_RELEASE_PROVIDERS.md                    |   65 +-
 .../images/output_workflow-run_publish-docs.svg    |   28 +-
 .../images/output_workflow-run_publish-docs.txt    |    2 +-
 .../airflow_breeze/commands/workflow_commands.py   |  170 +-
 .../commands/workflow_commands_config.py           |    1 +
 dev/breeze/src/airflow_breeze/utils/github.py      |    2 +-
 .../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 +
 dev/breeze/tests/test_workflow_commands.py         |  205 +++
 dev/breeze/uv.lock                                 |   91 +-
 .../react_plugin_template/package.json             |   14 +-
 .../react_plugin_template/pnpm-lock.yaml           |  404 ++---
 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 +
 .../docs_build/test_build_docs_mermaid.py          |  104 ++
 .../tests/unit/sphinx_exts/test_mermaid_svg.py     |   83 +
 docs/spelling_wordlist.txt                         |    1 +
 generated/provider_metadata.json                   |  438 +++++
 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 +-
 .../alibaba/cloud/log/oss_task_handler.py          |    2 +-
 providers/amazon/docs/index.rst                    |    7 +-
 .../amazon/docs/operators/athena/athena_spark.rst  |   25 +-
 providers/amazon/docs/transfer/sql_to_s3.rst       |    4 +
 providers/amazon/provider.yaml                     |    1 +
 providers/amazon/pyproject.toml                    |    6 +
 .../airflow/providers/amazon/aws/hooks/athena.py   |    7 +
 .../amazon/aws/log/cloudwatch_task_handler.py      |    6 +-
 .../providers/amazon/aws/log/s3_task_handler.py    |    2 +-
 .../providers/amazon/aws/sensors/athena_spark.py   |   84 +
 .../providers/amazon/aws/transfers/sql_to_s3.py    |   18 +-
 .../airflow/providers/amazon/aws/waiters/dms.json  |    4 +-
 .../airflow/providers/amazon/get_provider_info.py  |    5 +-
 .../system/amazon/aws/example_athena_spark.py      |   25 +-
 .../unit/amazon/aws/sensors/test_athena_spark.py   |  175 ++
 .../unit/amazon/aws/transfers/test_sql_to_s3.py    |   59 +-
 .../tests/unit/amazon/aws/waiters/test_dms.py      |   36 +-
 .../providers/apache/hdfs/log/hdfs_task_handler.py |    2 +-
 providers/celery/docs/celery_executor.rst          |   17 +
 providers/celery/provider.yaml                     |    2 +
 .../providers/celery/executors/default_celery.py   |   30 +-
 .../airflow/providers/celery/get_provider_info.py  |    2 +-
 .../unit/celery/executors/test_celery_executor.py  |    7 +-
 .../unit/celery/executors/test_default_celery.py   |  175 ++
 providers/common/ai/README.rst                     |    6 +-
 providers/common/ai/docs/approval_gates.rst        |  211 ++-
 providers/common/ai/docs/capabilities.rst          |    5 +-
 providers/common/ai/docs/changelog.rst             |   34 +-
 providers/common/ai/docs/code_mode.rst             |    5 +-
 providers/common/ai/docs/durable_execution.rst     |   88 +-
 providers/common/ai/docs/features.rst              |   13 +-
 providers/common/ai/docs/frameworks/adk.rst        |    2 +-
 providers/common/ai/docs/frameworks/anthropic.rst  |   11 +-
 providers/common/ai/docs/frameworks/index.rst      |   39 +-
 .../common/ai/docs/frameworks/openai_agents.rst    |  230 +++
 .../common/ai/docs/frameworks/pydantic_ai.rst      |    6 +
 providers/common/ai/docs/frameworks/strands.rst    |    2 +-
 .../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                 |    4 +-
 providers/common/ai/docs/observability.rst         |   42 +-
 providers/common/ai/docs/operators/agent.rst       |    7 +-
 providers/common/ai/docs/operators/llm.rst         |    7 +-
 providers/common/ai/docs/operators/llm_batch.rst   |    6 +
 providers/common/ai/docs/recovery.rst              |    3 +-
 providers/common/ai/docs/retry_policies.rst        |    8 +-
 providers/common/ai/docs/sandbox/index.rst         |    4 +-
 providers/common/ai/docs/stability.rst             |   11 +-
 providers/common/ai/docs/supported_services.rst    |   10 +-
 providers/common/ai/docs/toolsets/custom.rst       |  173 ++
 providers/common/ai/docs/toolsets/datafusion.rst   |    7 +-
 providers/common/ai/docs/toolsets/hook.rst         |   16 +
 providers/common/ai/docs/toolsets/index.rst        |   14 +-
 providers/common/ai/docs/toolsets/logging.rst      |    4 +-
 .../ai/docs/toolsets/progressive_disclosure.rst    |  146 ++
 providers/common/ai/docs/toolsets/skills.rst       |   10 +-
 providers/common/ai/docs/troubleshooting.rst       |   10 +-
 providers/common/ai/pyproject.toml                 |   16 +-
 .../providers/common/ai/durable/fingerprint.py     |  509 +++++-
 .../providers/common/ai/durable/openai_agents.py   |  479 ++++++
 .../common/ai/example_dags/example_adk_agent.py    |    8 +-
 .../common/ai/example_dags/example_agent_memory.py |    2 +-
 .../ai/example_dags/example_agent_tool_approval.py |    2 +-
 .../example_dags/example_anthropic_tool_runner.py  |    7 +-
 .../ai/example_dags/example_custom_toolset.py      |  160 ++
 .../common/ai/example_dags/example_llm_approval.py |   54 +
 .../ai/example_dags/example_llm_retry_policy.py    |   19 +-
 .../ai/example_dags/example_openai_agents_agent.py |   90 ++
 .../example_dags/example_openai_agents_durable.py  |   90 ++
 .../example_progressive_tool_disclosure.py         |  107 ++
 .../ai/example_dags/example_strands_agent.py       |    6 +-
 .../providers/common/ai/hooks/pydantic_ai.py       |    5 +
 .../airflow/providers/common/ai/mixins/approval.py |   12 +-
 .../airflow/providers/common/ai/observability.py   |    5 +
 .../airflow/providers/common/ai/operators/agent.py |   67 +-
 .../airflow/providers/common/ai/operators/llm.py   |   18 +-
 .../providers/common/ai/operators/llm_batch.py     |   12 +-
 .../providers/common/ai/plugins/model_panel.py     |    2 +-
 .../airflow/providers/common/ai/policies/retry.py  |   23 +-
 .../airflow/providers/common/ai/tools/__init__.py  |    4 +-
 .../providers/common/ai/tools/openai_agents.py     |  391 +++++
 .../airflow/providers/common/ai/tools/tracing.py   |   11 +-
 .../airflow/providers/common/ai/toolsets/hook.py   |  133 +-
 .../airflow/providers/common/ai/toolsets/skills.py |   16 +-
 .../providers/common/ai/utils/tool_metrics.py      |    2 +-
 .../unit/common/ai/durable/test_capability.py      |   58 +
 .../tests/unit/common/ai/durable/test_code_mode.py |  229 +++
 .../unit/common/ai/durable/test_fingerprint.py     | 1687 +++++++++++++++++++-
 .../unit/common/ai/durable/test_openai_agents.py   |  521 ++++++
 .../tests/unit/common/ai/hooks/test_pydantic_ai.py |   18 +
 .../tests/unit/common/ai/operators/test_agent.py   |  175 +-
 .../ai/operators/test_agent_tool_approval.py       |    1 -
 .../unit/common/ai/operators/test_llm_batch.py     |   20 +
 .../unit/common/ai/plugins/test_model_panel.py     |   18 +-
 .../ai/tests/unit/common/ai/policies/test_retry.py |   82 +-
 .../unit/common/ai/tools/test_openai_agents.py     |  611 +++++++
 .../ai/tests/unit/common/ai/toolsets/test_hook.py  |  216 ++-
 .../tests/unit/common/ai/toolsets/test_skills.py   |   17 +
 .../providers/common/compat/_retry_policy.py       |    5 +-
 .../common/compat/test__resumable_job_mixin.py     |    2 +-
 .../tests/unit/common/compat/test__retry_policy.py |   16 +
 providers/dbt/cloud/docs/index.rst                 |    8 +-
 providers/dbt/cloud/pyproject.toml                 |    2 +-
 .../providers/dbt/cloud/utils/openlineage.py       |   57 +-
 .../tests/unit/dbt/cloud/utils/test_openlineage.py |   20 +-
 .../providers/discord/hooks/discord_webhook.py     |    2 +-
 .../unit/discord/hooks/test_discord_webhook.py     |    2 +-
 .../providers/edge3/plugins/www/package.json       |   26 +-
 .../providers/edge3/plugins/www/pnpm-lock.yaml     |  815 +++++-----
 .../providers/elasticsearch/log/es_task_handler.py |    5 +-
 .../unit/elasticsearch/log/test_es_task_handler.py |    3 +
 .../fab/src/airflow/providers/fab/www/package.json |    2 +-
 .../src/airflow/providers/fab/www/pnpm-lock.yaml   |   10 +-
 providers/google/docs/operators/cloud/dataproc.rst |   13 +
 .../google/docs/operators/cloud/functions.rst      |   26 +
 .../google/docs/operators/cloud/vertex_ai.rst      |    5 +
 .../providers/google/cloud/hooks/dataprep.py       |   16 +-
 .../google/cloud/hooks/vertex_ai/feature_store.py  |   31 +-
 .../google/cloud/log/cloud_logging_task_handler.py |    5 +-
 .../providers/google/cloud/log/gcs_task_handler.py |    4 +-
 .../providers/google/cloud/operators/bigquery.py   |    6 +-
 .../providers/google/cloud/operators/dataflow.py   |   37 +-
 .../providers/google/cloud/operators/dataproc.py   |   52 +-
 .../providers/google/cloud/operators/functions.py  |    2 +-
 .../google/cloud/operators/kubernetes_engine.py    |   26 +-
 .../cloud/operators/vertex_ai/feature_store.py     |   17 +-
 .../google/cloud/transfers/bigquery_to_gcs.py      |   13 +
 .../google/cloud/transfers/gcs_to_bigquery.py      |   44 +-
 .../providers/google/cloud/triggers/dataflow.py    |  101 +-
 .../google/cloud/triggers/kubernetes_engine.py     |    3 +-
 .../providers/google/common/hooks/base_google.py   |    3 +-
 .../bigquery/example_bigquery_queries_async.py     |   54 +-
 .../cloud/dataproc/example_dataproc_batch.py       |   22 +
 .../kubernetes_engine/example_kubernetes_engine.py |    2 +-
 .../example_kubernetes_engine_async.py             |    5 +-
 .../example_kubernetes_engine_job.py               |    5 +-
 .../example_kubernetes_engine_kueue.py             |    2 +-
 .../example_kubernetes_engine_ray.py               |    6 -
 .../example_kubernetes_engine_resource.py          |    5 +-
 .../vertex_ai/example_vertex_ai_feature_store.py   |   36 +-
 .../tests/unit/google/cloud/hooks/test_dataprep.py |   31 +
 .../cloud/hooks/vertex_ai/test_feature_store.py    |   40 +-
 .../cloud/log/test_cloud_logging_task_handler.py   |    5 +
 .../unit/google/cloud/operators/test_bigquery.py   |   12 +
 .../unit/google/cloud/operators/test_dataflow.py   |  116 ++
 .../unit/google/cloud/operators/test_dataproc.py   |  170 ++
 .../cloud/operators/test_kubernetes_engine.py      |   98 +-
 .../google/cloud/transfers/test_bigquery_to_gcs.py |   53 +
 .../google/cloud/transfers/test_gcs_to_bigquery.py |  124 ++
 .../unit/google/cloud/triggers/test_dataflow.py    |  224 ++-
 .../cloud/triggers/test_kubernetes_engine.py       |   20 +-
 .../unit/google/common/hooks/test_base_google.py   |   16 +
 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 ++
 .../microsoft/azure/log/wasb_task_handler.py       |    2 +-
 .../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/README.rst                        |    2 +-
 providers/openai/docs/index.rst                    |    2 +-
 providers/openai/pyproject.toml                    |    2 +-
 .../src/airflow/providers/openai/hooks/openai.py   |   79 +-
 .../openai/tests/unit/openai/hooks/test_openai.py  |  202 ++-
 .../unit/openlineage/plugins/test_execution.py     |    9 +-
 .../providers/opensearch/log/os_task_handler.py    |    5 +-
 .../unit/opensearch/log/test_os_task_handler.py    |    3 +
 providers/sftp/tests/unit/sftp/hooks/test_sftp.py  |    4 +
 providers/snowflake/docs/connections/snowflake.rst |    5 +-
 ...snowflake_cortex_agent.rst => cortex_agent.rst} |    8 +-
 .../operators/__init__.py => docs/redirects.txt}   |    2 +
 providers/snowflake/provider.yaml                  |   12 +-
 .../providers/snowflake/get_provider_info.py       |   12 +-
 .../airflow/providers/snowflake/hooks/__init__.py  |   19 +
 .../{snowflake_cortex_agent.py => cortex_agent.py} |    0
 .../airflow/providers/snowflake/hooks/snowflake.py |   35 +-
 .../hooks/{snowflake_sql_api.py => sql_api.py}     |    0
 .../providers/snowflake/operators/__init__.py      |   14 +
 .../{snowflake_cortex_agent.py => cortex_agent.py} |    2 +-
 .../providers/snowflake/operators/snowflake.py     |    2 +-
 .../snowflake/triggers/snowflake_trigger.py        |    2 +-
 .../providers/snowflake/utils/openlineage.py       |    4 +-
 .../snowflake/example_snowflake_cortex_agent.py    |    4 +-
 ...wflake_cortex_agent.py => test_cortex_agent.py} |   27 +-
 .../tests/unit/snowflake/hooks/test_snowflake.py   |  126 ++
 .../{test_snowflake_sql_api.py => test_sql_api.py} |    4 +-
 ...wflake_cortex_agent.py => test_cortex_agent.py} |    4 +-
 .../unit/snowflake/operators/test_snowflake.py     |   14 +-
 .../{test_snowflake_sql.py => test_sql.py}         |    0
 .../unit/snowflake/triggers/test_snowflake.py      |    8 +-
 .../tests/unit/snowflake/utils/test_openlineage.py |   14 +-
 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 +-
 pyproject.toml                                     |   31 +-
 registry/package.json                              |    2 +-
 registry/pnpm-lock.yaml                            |   10 +-
 reproducible_build.yaml                            |    4 +-
 scripts/ci/prek/upgrade_important_versions.py      |    2 +-
 scripts/ci/testing/summarize_captured_warnings.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    |   23 +
 scripts/tools/setup_breeze                         |    5 +-
 .../logging/src/airflow_shared/logging/remote.py   |   16 +-
 .../observability/metrics/metrics_template.yaml    |    3 +-
 .../secrets_masker/secrets_masker.py               |   17 +-
 .../tests/secrets_masker/test_secrets_masker.py    |   49 +-
 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/coordinators/_subprocess.py    |   41 +-
 .../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            |   17 +
 .../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   |   28 +-
 .../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 +
 .../tests/task_sdk/coordinators/test_subprocess.py |  179 ++-
 .../task_sdk/definitions/test_retry_policy.py      |  121 +-
 .../tests/task_sdk/execution_time/test_loop.py     |  214 ++-
 .../task_sdk/execution_time/test_supervisor.py     |   92 +-
 .../task_sdk/execution_time/test_task_runner.py    |  191 +++
 .../importers/yaml_importer/test_importer.py       |  117 ++
 ts-sdk/pnpm-lock.yaml                              |  145 +-
 ts-sdk/schema/supervisor-schema.json               |   49 +
 ts-sdk/src/generated/supervisor.ts                 |   14 +
 uv.lock                                            |   56 +-
 555 files changed, 24731 insertions(+), 5716 deletions(-)
 create mode 100644 airflow-core/newsfragments/70714.significant.rst
 create mode 100644 airflow-core/newsfragments/74709.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74837.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74840.bugfix.rst
 create mode 100644 
airflow-core/src/airflow/migrations/versions/0147_3_4_0_add_commit_allows_update_to_connection_test.py
 rename 
airflow-core/src/airflow/migrations/versions/{0147_3_5_0_add_session_id_to_job.py
 => 0148_3_5_0_add_session_id_to_job.py} (97%)
 create mode 100644 
airflow-core/src/airflow/ui/src/components/DataTable/DataTable.expanding.test.tsx
 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/{utils/option.ts => 
components/LoopDecisionReason.tsx} (62%)
 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/layouts/Nav/DagsButton.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/layouts/Nav/DagsButton.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/layouts/Nav/NavMenu.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/layouts/Nav/NavMenu.tsx
 copy airflow-core/src/airflow/ui/src/{utils/executionParams.test.ts => 
pages/DagsList/DagsListColumns.test.tsx} (63%)
 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
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Run/CallbackLogs.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Run/CallbackLogs.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Callbacks.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Callbacks.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/pages/Run/Run.test.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/queries/useDags.test.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/src/airflow/utils/log/path_log_reader.py
 create mode 100644 airflow-core/tests/unit/utils/log/test_path_log_reader.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
 create mode 100644 devel-common/tests/unit/sphinx_exts/test_mermaid_svg.py
 create mode 100644 
providers/amazon/src/airflow/providers/amazon/aws/sensors/athena_spark.py
 create mode 100644 
providers/amazon/tests/unit/amazon/aws/sensors/test_athena_spark.py
 create mode 100644 
providers/celery/tests/unit/celery/executors/test_default_celery.py
 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/toolsets/custom.rst
 create mode 100644 providers/common/ai/docs/toolsets/progressive_disclosure.rst
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/openai_agents.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_custom_toolset.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_openai_agents_durable.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/tools/openai_agents.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/durable/test_openai_agents.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
 rename providers/snowflake/docs/operators/{snowflake_cortex_agent.rst => 
cortex_agent.rst} (91%)
 copy 
providers/snowflake/{src/airflow/providers/snowflake/operators/__init__.py => 
docs/redirects.txt} (92%)
 rename 
providers/snowflake/src/airflow/providers/snowflake/hooks/{snowflake_cortex_agent.py
 => cortex_agent.py} (100%)
 rename 
providers/snowflake/src/airflow/providers/snowflake/hooks/{snowflake_sql_api.py 
=> sql_api.py} (100%)
 rename 
providers/snowflake/src/airflow/providers/snowflake/operators/{snowflake_cortex_agent.py
 => cortex_agent.py} (99%)
 rename 
providers/snowflake/tests/unit/snowflake/hooks/{test_snowflake_cortex_agent.py 
=> test_cortex_agent.py} (97%)
 rename 
providers/snowflake/tests/unit/snowflake/hooks/{test_snowflake_sql_api.py => 
test_sql_api.py} (99%)
 rename 
providers/snowflake/tests/unit/snowflake/operators/{test_snowflake_cortex_agent.py
 => test_cortex_agent.py} (98%)
 rename 
providers/snowflake/tests/unit/snowflake/operators/{test_snowflake_sql.py => 
test_sql.py} (100%)
 create mode 100755 scripts/in_container/install_mermaid_cli.sh
 copy providers/snowflake/src/airflow/providers/snowflake/operators/__init__.py 
=> scripts/tests/in_container/test_generate_mprocs_config.py (56%)
 copy providers/snowflake/src/airflow/providers/snowflake/operators/__init__.py 
=> task-sdk/src/airflow/sdk/definitions/loop.py (62%)

Reply via email to