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

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


    omit 0b745b6d992 Keep perl-base in step with the perl apt can install
    omit 38f4e53e454 Keep apt from replacing the hardened images' Python
    omit 4f51eec403c Export KinD logs when the lang-SDK K8S test setup fails
    omit b2717397d4a Give the OpenLineage start-up a bit more time in the 
short-stall timeout test
    omit bccb6261115 Document the stricter C extension builds of the hardened 
images
    omit 297a2b7ec6b Let old C extensions build in the trixie CI image
    omit e43d58fb78d Install Java that exists on trixie in the Java examples
    omit 0bf37ef31b8 Invalidate the CI image mount cache for the trixie base
    omit 1747240d15e Count only host keys when waiting for sshd in the CI image
    omit 647c8d8efbb Add trixie and sigstore to the docs spelling wordlist
    omit 0492494d676 Warn about apt pulling a second Python into hardened images
    omit 17f0f0003df Refresh the shared library cache after apt runs in 
hardened images
    omit 02442738c2a Install the Python build dependencies for the legacy image 
flavor
    omit fbbd0843d61 Keep a second hardened Python out of the trixie images
    omit 025dee71b42 Document the anonymous Debian package repository of the 
hardened images
    omit 0632f7e9432 Restore the PAM configs the trixie hardened images strip
    omit 0a94d668c6d Trust Microsoft's newer signing key for the trixie MSSQL 
repository
    omit 8bf856ae348 Drop CI image packages that Debian trixie no longer has
    omit 2c92ba62a74 Support the trixie hardened images' Debian-packaged Python 
and test legacy images like regular ones
    omit 6260a3723ce Base images on trixie and keep a legacy bookworm PROD 
image flavor
    omit 31f121b5f82 Base CI and PROD images on hardened Python images
     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 7896826a0d0 Specify a minimum python version for hooks (#74995)
     add d2c41b8c202 Resolve async connections off the event loop before 
Airflow 3.3.2 (#74766)
     add 4c4b9c2d330 Raise a clear error when SqlToS3Operator has no Parquet 
engine (#74817)
     add 9ad8d78c277 Close SubprocessHook stdout pipe after command completes 
(#74780)
     add ee47d191279 Replace the empty breeze verify table with a one-line hint 
(#74778)
     add 2fab09576de Require Python 3.11+ for permission doc generators and 
fail on parse errors (#74654)
     add eddc34c4b44 Fail the local yml mounts prek hook when synchronization 
fails (#73785)
     add e5c2ea9b3d1 Ask agents to measure performance-sensitive components 
(#74579)
     add 986066e53d1 Record lessons from the October 2026 providers waves in 
the release docs (#75006)
     add fb6752829ad Clarify when to add a newsfragment (#74589)
     add a27f8e74da3 Let XCom backends tell loop iterations apart through 
store_value (#74858)
     add 7d9e14b1663 Exclude the current unreleased branch version from the 
providers compatibility matrix (#74997)
     add a48c5b99af4 Fix tag-providers --dry-run failing to find the push 
remote (#71303)
     add 515533c9db3 Ensure explicit UTF-8 encoding in prek scripts for Windows 
compatibility (#73679)
     add 19f1d581c70 Clarify sensitive data handling in security model (#70424)
     add 4969b1aeda4 Bump the github-actions-updates group with 10 updates 
(#74880)
     add a5e5e1a74be Reduce K8s test resource usage with single-node Kind 
clusters (#73998)
     add 6b42e65a8ea Run shared distribution tests in a single CI job (#74566)
     add 3d5c533cccc Redact secrets written through RedactedIO.writelines() 
(#72063)
     add e7369d04c45 Clarify backfill reprocessing options (#72590)
     add fefb87a6035 Run the Kerberos renewer without metadata database checks 
(#75000)
     add 8143b8d93dc Guard register_at_fork in shared stats for Windows 
compatibility (#73680)
     add 04e68bf6247 Keep .airflowignore rules when the Dags folder symlink is 
switched (#74853)
     add 7dd91f20652 Add missing zh-CN translations for new UI strings (#73943)
     add 3eab3f2be63 Use one ResumableJobMixin fallback from common.compat in 
providers (#74673)
     add 40a97a34ca7 Make the PowerBI refresh and MSGraph operators durable 
(#74675)
     add 935bac04f06 Add AzureAISearchHook to the Microsoft Azure provider 
(#74290)
     add 777bf9b1888 TS SDK: Add edge labels with label() (#74494)
     add a785a717c10 Add documentation for the new YAML Dag format (#74748)
     add 3b0388815f0 Centralize EKS kubeconfig and credential setup in EksHook 
(#74775)
     add 5087893ab02 Add missing Taiwanese Mandarin translations for new UI 
strings (#75061)
     add 2be399f1418 Fix wrong command and API wording in airflowctl docs and 
help (#75058)
     add 26395211972 Document running multiple Airflow instances on the same 
host (#75056)
     add 923a096ee5d Validate connection ports in core model (#74461)
     add 48a0f8e22be Push LLMOperator's token usage and cost to XCom (#74355)
     add d01d3510589 Make the scheduler Dag cache size and TTL configurable 
(#71816)
     add b107f602438 Render XCom values on the API server without rebuilding 
objects (#74829)
     add 8942dd49831 Scope asset-wide queued event deletion to editable Dags 
(#74839)
     add 6f358052a42 Send task inlets and outlets as JSON lists in OpenLineage 
facet (#74666)
     add e0c54d330d0 Clean up deleted worktrees' Breeze resources automatically 
(#74282)
     add 27c8cd7059c Reserve graph header width for loop-group iteration badge 
(#75076)
     add 7cae03be33f Speed up API server requests by keeping JWT checks off the 
event loop (#74856)
     add cffe6dfdcf1 Fix flaky LocalExecutor concurrent result refill test 
(#75030)
     add a26f9f9926c Fix missing and incorrect endpoints in the API permission 
reference (#74871)
     add 5ce21c5ad74 Fix mypy errors from SQLAlchemy 2.1 typing in fab sorting 
and standard sensor_helper (#75075)
     add 1d66775efcb Limit Glue retry task UUID scan (#71546)
     add 57fb394afe8 Validate CallbackTrigger callback path before running the 
callback (#74842)
     add 325360c2b92 Reject reserved serialization keys in Dag run conf (#74834)
     add 99f2b8618df Scope asset Dag and task references to readable Dags 
(#74836)
     add a1109f86030 Mask provider-declared sensitive connection extras on 
every connection type (#73794)
     add 6f408e1715b Scope upstream asset events of a Dag run to assets and 
Dags the caller may read (#72924)
     add fa83bd029cb Remove unused type: ignore comments in airflow-core 
(#75078)
     add 46ff76ec9c2 Fix the @asset example in the asset state store docs 
(#75070)
     add cae1728f127 Add EmrServerlessStopSessionOperator to Amazon provider 
(#74870)
     add ab1acec7aa8 Open the Dags menu from the Dags nav button instead of 
navigating (#75092)
     add d2a8457e768 Run the lang-SDK conformance serializer in its own 
virtualenv (#75085)
     add 233f9c3fc78 Decode deadline callback kwargs where the callback runs 
(#74830)
     add bfa23909190 Mask registered secrets at any nesting depth (#73793)
     add a26eb122498 Mask XCom values in the audit log (#73791)
     add b0239d215e1 Only rebuild built-in value types when converting 
next_kwargs for older workers (#73577)
     add 11174724838 Add the resume event to stored next_kwargs without 
decoding them (#73576)
     add a7ac9379cf9 Read XCom without object reconstruction during dependency 
evaluation (#72718)
     add e26dcc0e005 Fix Hive invalid-port tests after core connection port 
validation (#75119)
     add 486f8368e21 Pass runtime values to example Dag shell commands through 
env (#73787)
     add 173442e7951 Add non serializable asset's extra to openlineage e2e 
tests (#75094)
     add e3110a3092d Fix `Trigger.clean_unused` rejecting a caller-provided 
session (#75096)
     add 9a62eadd2e3 Update providers metadata 2026-10-19 (#75120)
     add 7fbcfeea272 UI: Replace stacked Dag header banners with inline status 
(#74516)
     add a27cd335152 Count declared integrations in the Registry homepage 
Integrations stat (#74862)
     add edcd4a50335 Hide assets the caller may not read from the UI 
dependencies graph (#73008)
     add f04f123b2cc Prevent Dag processor crashes with AWS CloudWatch when its 
log directory is outside `base_log_folder` (#74929)
     add 33e6b5f1fa9 Mock the simple auth manager in the upstream asset events 
permission test (#75126)
     add 604b23bb206 Document that the HITL operator body is rendered as 
Markdown (#75130)
     add 941316b4640 Stop UI unit tests from leaking requests to the network 
(#75084)
     add ac0c20c6ae3 Mock the simple auth manager in permission tests and guard 
against the base-class patch (#75138)
     add f20ff2cfa7a Add a Duplicate action to the Connections list (#75110)
     add 4bbe5f56ce8 Mask CLI secrets in the audit log by parsed argument, not 
argv position (#72650)
     add c1b25527a41 Keep parent DAG folders collapsed after one click (#75079)
     add c581c186987 Keep DAG folder selection distinct across bundle names 
(#75080)
     add b8db2af9cd6 Fix 500 when ordering the Dag list by state or start_date 
(#75025)
     add 3b025f96610 Base CI and PROD images on hardened Python images
     add a94a1726bbe Base images on trixie and keep a legacy bookworm PROD 
image flavor
     add 52147acd9c5 Support the trixie hardened images' Debian-packaged Python 
and test legacy images like regular ones
     add 72473d80fcb Drop CI image packages that Debian trixie no longer has
     add 60f6aec205d Trust Microsoft's newer signing key for the trixie MSSQL 
repository
     add c3440b33868 Restore the PAM configs the trixie hardened images strip
     add d3c96ad4d9f Document the anonymous Debian package repository of the 
hardened images
     add 8d2d88b0a48 Keep a second hardened Python out of the trixie images
     add aa5d73dd0a2 Install the Python build dependencies for the legacy image 
flavor
     add cde48f3dcd0 Refresh the shared library cache after apt runs in 
hardened images
     add b5142a07ccd Warn about apt pulling a second Python into hardened images
     add cac2e373b4e Add trixie and sigstore to the docs spelling wordlist
     add b1a69a878b6 Count only host keys when waiting for sshd in the CI image
     add 0e964b1932e Invalidate the CI image mount cache for the trixie base
     add 3cdd32807d2 Install Java that exists on trixie in the Java examples
     add ba7715450ef Let old C extensions build in the trixie CI image
     add 5f9b703a285 Document the stricter C extension builds of the hardened 
images
     add 2cee524c77f Export KinD logs when the lang-SDK K8S test setup fails
     add 59b9fad56d1 Keep apt from replacing the hardened images' Python
     add 8216e9e66e3 Keep perl-base in step with the perl apt can install

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   (0b745b6d992)
            \
             N -- N -- N   refs/heads/hardened-python-base-images (8216e9e66e3)

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-pr-draft-summary/SKILL.md   |    6 +-
 .agents/skills/airflow-publish-changes/SKILL.md    |    9 +-
 .../references/performance-sensitive-components.md |   30 +
 .agents/skills/airflow-translations/locales/he.md  |   32 +-
 .../prepare-providers-documentation/SKILL.md       |   15 +
 .../release-management-config.md                   |    9 +
 .apache-magpie.lock                                |    6 +-
 .github/workflows/airflow-e2e-tests.yml            |    4 +-
 .github/workflows/asf-allowlist-check.yml          |    2 +-
 .github/workflows/basic-tests.yml                  |   26 +-
 .github/workflows/ci-amd.yml                       |   12 +-
 .github/workflows/ci-arm.yml                       |   12 +-
 .github/workflows/ci-duration-monitor.yml          |    2 +-
 .github/workflows/ci-image-build.yml               |   16 +-
 .github/workflows/ci-image-checks.yml              |   10 +-
 .github/workflows/ci-notification.yml              |    4 +-
 .github/workflows/codeql-analysis.yml              |    6 +-
 .github/workflows/e2e-flaky-tests-report.yml       |    2 +-
 .github/workflows/finalize-tests.yml               |    2 +-
 .github/workflows/generate-constraints.yml         |    2 +-
 .github/workflows/helm-tests.yml                   |    2 +-
 .github/workflows/k8s-tests.yml                    |    6 +-
 .github/workflows/kustomize-overlays-tests.yml     |    6 +-
 .github/workflows/notify-uv-lock-conflicts.yml     |    2 +-
 .github/workflows/openlineage-e2e-compat-tests.yml |    2 +-
 .github/workflows/prod-image-build.yml             |    8 +-
 .github/workflows/publish-docs-to-s3.yml           |   20 +-
 .github/workflows/push-image-cache.yml             |    2 +-
 .github/workflows/registry-backfill.yml            |    2 +-
 .github/workflows/registry-build.yml               |    4 +-
 .github/workflows/registry-tests.yml               |    2 +-
 .github/workflows/release-constraints.yml          |    2 +-
 .../workflows/release_single_dockerhub_image.yml   |    4 +-
 .../scheduled-verify-release-calendar.yml          |    2 +-
 .github/workflows/ts-sdk-release.yml               |    8 +-
 .github/workflows/ui-e2e-tests.yml                 |    6 +-
 .../update-constraints-on-push-stable.yml          |    2 +-
 .github/workflows/update-constraints-on-push.yml   |    2 +-
 .pre-commit-config.yaml                            |   36 +-
 AGENTS.md                                          |    2 +-
 .../administration-and-deployment/dag-bundles.rst  |    3 +
 .../dag-importers.rst                              |   25 +-
 .../docs/authoring-and-scheduling/index.rst        |    1 +
 .../language-sdks/typescript.rst                   |   18 +
 .../docs/authoring-and-scheduling/loops.rst        |   31 +-
 .../docs/authoring-and-scheduling/yaml-dags.rst    |  454 ++++++
 .../docs/core-concepts/asset-state-store.rst       |    4 +-
 airflow-core/docs/core-concepts/backfill.rst       |   10 +-
 airflow-core/docs/core-concepts/xcoms.rst          |   21 +-
 airflow-core/docs/faq.rst                          |   52 +-
 airflow-core/docs/howto/run-behind-proxy.rst       |   32 +
 airflow-core/docs/migrations-ref.rst               |    4 +-
 airflow-core/docs/security/api_permissions_ref.rst |   60 +-
 airflow-core/docs/security/security_model.rst      |   15 +-
 airflow-core/docs/tutorial/hitl.rst                |   28 +
 airflow-core/newsfragments/71816.feature.rst       |    1 +
 airflow-core/newsfragments/73577.significant.rst   |    5 +
 airflow-core/newsfragments/73791.improvement.rst   |    1 +
 airflow-core/newsfragments/73793.improvement.rst   |    1 +
 airflow-core/newsfragments/73794.improvement.rst   |    1 +
 airflow-core/newsfragments/74830.significant.rst   |   10 +
 airflow-core/newsfragments/74834.bugfix.rst        |    1 +
 airflow-core/newsfragments/74836.bugfix.rst        |    1 +
 airflow-core/newsfragments/74837.bugfix.rst        |    1 +
 airflow-core/newsfragments/74839.bugfix.rst        |    1 +
 airflow-core/newsfragments/74840.bugfix.rst        |    1 +
 airflow-core/newsfragments/74842.improvement.rst   |    1 +
 .../task-loops-custom-backends.significant.rst     |   28 +
 airflow-core/pyproject.toml                        |    2 +-
 .../api_fastapi/auth/managers/base_auth_manager.py |    7 +-
 .../auth/managers/simple/ui/package.json           |   18 +-
 .../auth/managers/simple/ui/pnpm-lock.yaml         |  462 +++---
 .../api_fastapi/auth/middlewares/refresh_token.py  |  154 +-
 airflow-core/src/airflow/api_fastapi/compat.py     |    2 +-
 .../src/airflow/api_fastapi/core_api/app.py        |    6 +-
 .../api_fastapi/core_api/datamodels/assets.py      |   19 +-
 .../api_fastapi/core_api/datamodels/backfills.py   |    8 +-
 .../api_fastapi/core_api/datamodels/common.py      |   14 +
 .../api_fastapi/core_api/datamodels/connections.py |   57 +
 .../api_fastapi/core_api/datamodels/dag_run.py     |    8 +-
 .../api_fastapi/core_api/datamodels/ui/deadline.py |    7 +
 .../api_fastapi/core_api/datamodels/ui/grid.py     |   14 +-
 .../api_fastapi/core_api/openapi/_private_ui.yaml  |  155 +-
 .../core_api/openapi/v2-rest-api-generated.yaml    |   15 +-
 .../api_fastapi/core_api/routes/public/assets.py   |   67 +-
 .../core_api/routes/public/connections.py          |    4 +-
 .../api_fastapi/core_api/routes/public/dag_run.py  |   48 +-
 .../api_fastapi/core_api/routes/public/dags.py     |    2 +-
 .../core_api/routes/public/extra_links.py          |    5 +-
 .../core_api/routes/public/task_instances.py       |   20 +-
 .../api_fastapi/core_api/routes/public/xcom.py     |   41 +-
 .../api_fastapi/core_api/routes/ui/assets.py       |    9 +-
 .../airflow/api_fastapi/core_api/routes/ui/dags.py |    2 +-
 .../api_fastapi/core_api/routes/ui/deadlines.py    |   75 +-
 .../api_fastapi/core_api/routes/ui/dependencies.py |   20 +-
 .../core_api/services/public/connections.py        |   12 +-
 .../core_api/services/public/task_instances.py     |   11 +-
 .../core_api/services/ui/dependencies.py           |   80 +-
 .../api_fastapi/core_api/services/ui/grid.py       |   18 +-
 .../api_fastapi/execution_api/datamodels/dagrun.py |    8 +-
 .../execution_api/datamodels/taskinstance.py       |   21 +
 .../api_fastapi/execution_api/routes/__init__.py   |    2 +-
 .../execution_api/routes/connection_tests.py       |    7 +-
 .../execution_api/routes/task_instances.py         |   52 +-
 .../api_fastapi/execution_api/routes/xcoms.py      |  162 +-
 .../api_fastapi/execution_api/versions/__init__.py |    2 +
 .../execution_api/versions/v2025_08_10.py          |    2 +-
 .../execution_api/versions/v2025_10_27.py          |    2 +-
 .../execution_api/versions/v2025_11_05.py          |    2 +-
 .../execution_api/versions/v2026_04_06.py          |  240 ++-
 .../execution_api/versions/v2026_06_30.py          |   14 +-
 .../execution_api/versions/v2026_10_30.py          |   18 +-
 .../src/airflow/api_fastapi/logging/decorators.py  |   16 +
 airflow-core/src/airflow/cli/cli_config.py         |    8 +-
 .../src/airflow/cli/commands/kerberos_command.py   |    2 +-
 .../src/airflow/config_templates/config.yml        |   64 +-
 airflow-core/src/airflow/configuration.py          |   29 +-
 .../src/airflow/dag_processing/processor.py        |    9 +-
 .../airflow/example_dags/example_dag_decorator.py  |   20 +-
 .../src/airflow/example_dags/example_task_loops.py |    6 +-
 .../src/airflow/executors/base_executor.py         |    8 +
 .../src/airflow/executors/local_executor.py        |    1 +
 .../src/airflow/executors/workloads/callback.py    |    6 +
 .../src/airflow/jobs/scheduler_job_runner.py       |   53 +-
 .../src/airflow/jobs/triggerer_job_runner.py       |   47 +-
 .../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/backfill.py        |    4 +-
 airflow-core/src/airflow/models/callback.py        |   52 +-
 airflow-core/src/airflow/models/connection.py      |   44 +-
 airflow-core/src/airflow/models/connection_test.py |   26 +-
 airflow-core/src/airflow/models/dagrun.py          |   44 +-
 airflow-core/src/airflow/models/deadline.py        |   33 +-
 airflow-core/src/airflow/models/dynamic_region.py  |  232 ++-
 airflow-core/src/airflow/models/pool.py            |    2 +-
 airflow-core/src/airflow/models/serialized_dag.py  |    4 +-
 .../src/airflow/models/task_coordinates.py         |   13 +-
 airflow-core/src/airflow/models/taskinstance.py    |   21 +-
 airflow-core/src/airflow/models/trigger.py         |  150 +-
 airflow-core/src/airflow/models/xcom.py            |   50 +-
 airflow-core/src/airflow/serialization/decoders.py |   89 +-
 .../serialization/definitions/mappedoperator.py    |    2 +-
 .../serialization/definitions/operatorlink.py      |   14 +-
 airflow-core/src/airflow/serialization/encoders.py |   68 +-
 .../src/airflow/serialization/stringify.py         |   82 +-
 .../ti_deps/deps/not_previously_skipped_dep.py     |   66 +-
 .../src/airflow/ti_deps/deps/prev_dagrun_dep.py    |   14 +
 .../src/airflow/ti_deps/deps/trigger_rule_dep.py   |   12 +-
 airflow-core/src/airflow/timetables/simple.py      |    2 +-
 airflow-core/src/airflow/triggers/callback.py      |   27 +
 .../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 |   44 +-
 .../ui/openapi-gen/requests/services.gen.ts        |   41 +-
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |   55 +-
 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/common.json  |    7 +
 .../src/airflow/ui/public/i18n/locales/de/dag.json |   28 +-
 .../airflow/ui/public/i18n/locales/de/dags.json    |    4 +-
 .../src/airflow/ui/public/i18n/locales/el/dag.json |    4 -
 .../airflow/ui/public/i18n/locales/en/admin.json   |    2 +
 .../airflow/ui/public/i18n/locales/en/common.json  |    3 +
 .../src/airflow/ui/public/i18n/locales/en/dag.json |   28 +-
 .../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 -
 .../ui/public/i18n/locales/zh-CN/browse.json       |   18 +-
 .../ui/public/i18n/locales/zh-CN/common.json       |   21 +
 .../ui/public/i18n/locales/zh-CN/components.json   |    1 +
 .../airflow/ui/public/i18n/locales/zh-CN/dag.json  |    4 +
 .../airflow/ui/public/i18n/locales/zh-CN/dags.json |    4 +-
 .../ui/public/i18n/locales/zh-CN/dashboard.json    |   17 +-
 .../ui/public/i18n/locales/zh-TW/common.json       |   10 +
 .../ui/public/i18n/locales/zh-TW/components.json   |    2 +
 .../airflow/ui/public/i18n/locales/zh-TW/dag.json  |   47 +-
 .../airflow/ui/public/i18n/locales/zh-TW/dags.json |    1 +
 .../components/BackfillInProgressBadge.test.tsx    |   68 +
 .../ui/src/components/BackfillInProgressBadge.tsx  |   63 +
 .../src/components/Banner/BackfillBanner.test.tsx  |   94 --
 .../ui/src/components/Banner/BackfillBanner.tsx    |  150 --
 .../src/components/Banner/DrainingBanner.test.tsx  |   88 --
 .../ui/src/components/Banner/DrainingBanner.tsx    |   68 -
 .../airflow/ui/src/components/Breadcrumb/Crumb.tsx |   22 +-
 .../ui/src/components/Breadcrumb/CrumbSwitcher.tsx |   18 +-
 .../TaskInstance/ClearTaskInstanceDialog.test.tsx  |   15 +-
 ...Banner.test.tsx => DagDeactivatedChip.test.tsx} |   35 +-
 ...eactivatedBanner.tsx => DagDeactivatedChip.tsx} |   43 +-
 .../ui/src/components/DagImportErrorModal.tsx      |   27 +-
 .../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 +-
 .../ui/src/components/DrainingBadge.test.tsx       |   72 +
 .../airflow/ui/src/components/DrainingBadge.tsx    |   59 +-
 .../ui/src/components/Graph/elkGraphUtils.ts       |    5 +
 .../src/airflow/ui/src/components/HeaderCard.tsx   |    8 +-
 .../{Banner/index.tsx => LoopDecisionReason.tsx}   |   20 +-
 .../airflow/ui/src/components/NeedsReviewBadge.tsx |   18 +-
 .../ui/src/components/NeedsReviewButton.tsx        |   58 +-
 .../src/components/NeedsReviewIndicator.test.tsx   |   58 +
 .../ui/src/components/NeedsReviewIndicator.tsx     |   71 +
 .../airflow/ui/src/components/NotePreview.test.tsx |    8 +-
 .../src/airflow/ui/src/components/SearchSelect.tsx |  113 +-
 .../src/airflow/ui/src/components/StatusChip.tsx   |   67 +
 .../ui/src/components/renderStructuredLog.test.tsx |   18 +-
 .../ui/src/components/renderStructuredLog.tsx      |    3 +-
 .../ui/src/layouts/Details/DagBreadcrumb.test.tsx  |   33 +-
 .../ui/src/layouts/Details/DagBreadcrumb.tsx       |   32 +-
 .../ui/src/layouts/Details/DetailsLayout.tsx       |   12 +-
 .../src/layouts/Details/MapIndexSwitcherButton.tsx |   98 ++
 .../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 |   95 ++
 .../src/airflow/ui/src/layouts/Nav/DagsButton.tsx  |   75 +
 .../src/airflow/ui/src/layouts/Nav/DocsButton.tsx  |   56 +-
 .../src/airflow/ui/src/layouts/Nav/Nav.tsx         |   11 +-
 .../airflow/ui/src/layouts/Nav/NavButton.test.tsx  |   18 -
 .../src/airflow/ui/src/layouts/Nav/NavButton.tsx   |   17 +-
 .../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 ++-
 .../ui/src/mocks/handlers/{assets.ts => admin.ts}  |   38 +-
 .../src/airflow/ui/src/mocks/handlers/app.ts       |   57 +
 .../src/airflow/ui/src/mocks/handlers/assets.ts    |    8 +
 .../src/airflow/ui/src/mocks/handlers/dag.ts       |   53 +
 .../src/airflow/ui/src/mocks/handlers/dag_runs.ts  |   23 +
 .../src/airflow/ui/src/mocks/handlers/dags.ts      |    3 +
 .../src/airflow/ui/src/mocks/handlers/index.ts     |    6 +
 .../ui/src/mocks/handlers/task_instances.test.ts   |   43 +
 .../ui/src/mocks/handlers/task_instances.ts        |  100 ++
 .../ui/src/{utils/option.ts => mocks/server.ts}    |   21 +-
 .../Asset/AssetStateStore/AssetStateStore.tsx      |    1 +
 .../ui/src/pages/AssetsList/AssetsList.test.tsx    |   15 +-
 .../ui/src/pages/Connections/Connections.tsx       |    3 +
 .../Connections/DuplicateConnectionButton.test.tsx |  114 ++
 .../Connections/DuplicateConnectionButton.tsx      |  101 ++
 .../ui/src/pages/Dag/Backfills/Backfills.test.tsx  |   64 +
 .../ui/src/pages/Dag/Backfills/Backfills.tsx       |   97 +-
 .../airflow/ui/src/pages/Dag/DagHeader.test.tsx    |   14 +-
 .../src/airflow/ui/src/pages/Dag/Header.tsx        |   12 +-
 .../ui/src/pages/Dag/RequiredActionsRoute.test.tsx |   14 +-
 .../airflow/ui/src/pages/Dag/Tasks/Tasks.test.tsx  |   12 +-
 .../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 +
 .../ui/src/pages/DagBundles/DagBundles.test.tsx    |   15 +-
 .../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx   |    1 +
 .../src/airflow/ui/src/pages/DagsList/DagCard.tsx  |    2 +-
 .../DagsList/DagFolderTree/DagFolderTree.test.tsx  |   78 +-
 .../pages/DagsList/DagFolderTree/DagFolderTree.tsx |    6 +-
 .../DagsList/DagFolderTree/buildFolderTree.ts      |    3 +-
 .../DagsList/DagsFilters/DagsFilters.test.tsx      |   13 +-
 .../ui/src/pages/DagsList/DagsList.test.tsx        |   14 +-
 .../DagsList/DagsListColumns.test.tsx}             |   25 +-
 .../ui/src/pages/DagsList/DagsListColumns.tsx      |    6 +-
 .../GroupTaskInstance/useLoopOutcomeStats.test.tsx |   64 +
 .../GroupTaskInstance/useLoopOutcomeStats.tsx      |   16 +-
 .../src/airflow/ui/src/pages/ReactPlugin.test.tsx  |   10 +
 .../src/airflow/ui/src/pages/ReactPlugin.tsx       |    7 +-
 .../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    |  142 ++
 .../src/airflow/ui/src/pages/Run/Callbacks.tsx     |  161 ++
 .../src/airflow/ui/src/pages/Run/Header.tsx        |    2 +-
 .../src/airflow/ui/src/pages/Run/Run.test.tsx      |   81 +
 airflow-core/src/airflow/ui/src/pages/Run/Run.tsx  |   35 +-
 .../ui/src/pages/TaskInstance/Header.test.tsx      |   65 +-
 .../airflow/ui/src/pages/TaskInstance/Header.tsx   |   57 +-
 .../ui/src/pages/TaskInstance/stateReason.ts       |    8 +-
 .../ui/src/pages/TaskInstances/TaskInstances.tsx   |    1 +
 .../ui/src/pages/TaskStateStore/TaskStateStore.tsx |    1 +
 .../airflow/ui/src/pages/Variables/Variables.tsx   |    1 +
 .../src/airflow/ui/src/pages/XCom/XCom.test.tsx    |   32 +-
 .../src/airflow/ui/src/pages/XCom/XCom.tsx         |    2 +
 .../airflow/ui/src/pages/XCom/XComEntry.test.tsx   |    8 +-
 .../ui/src/queries/useDagRunStateCounts.tsx        |    2 +-
 .../src/airflow/ui/src/queries/useDags.test.tsx    |   96 ++
 .../src/airflow/ui/src/queries/useDags.tsx         |    2 +-
 .../src/airflow/ui/src/queries/useLogs.tsx         |   45 +-
 .../airflow/ui/src/queries/useTogglePause.test.tsx |   10 +-
 airflow-core/src/airflow/ui/src/router.tsx         |    2 +
 airflow-core/src/airflow/ui/src/utils/option.ts    |   10 +-
 .../airflow/ui/tests/e2e/specs/backfill.spec.ts    |   12 +-
 airflow-core/src/airflow/ui/testsSetup.ts          |   37 +-
 airflow-core/src/airflow/utils/cli.py              |  393 ++++-
 .../src/airflow/utils/cli_action_loggers.py        |    2 +-
 airflow-core/src/airflow/utils/db.py               |    2 +-
 airflow-core/src/airflow/utils/db_cleanup.py       |    6 +-
 airflow-core/src/airflow/utils/file.py             |    2 +-
 .../src/airflow/utils/log/path_log_reader.py       |   98 ++
 airflow-core/src/airflow/utils/memray_utils.py     |    2 +
 airflow-core/src/airflow/utils/retries.py          |    2 +-
 airflow-core/src/airflow/utils/sqlalchemy.py       |   12 +-
 airflow-core/tests/unit/always/test_connection.py  |    8 +
 .../tests/unit/always/test_project_structure.py    |    1 -
 .../auth/managers/test_base_auth_manager.py        |   45 +
 .../auth/middlewares/test_refresh_token.py         |  387 ++---
 .../core_api/datamodels/test_connections.py        |   60 +
 .../core_api/datamodels/test_dag_run.py            |   66 +-
 .../core_api/routes/public/test_assets.py          |  177 ++-
 .../core_api/routes/public/test_backfills.py       |   27 +
 .../core_api/routes/public/test_connections.py     |  154 ++
 .../core_api/routes/public/test_dag_run.py         |  113 +-
 .../core_api/routes/public/test_dags.py            |   12 +
 .../core_api/routes/public/test_extra_links.py     |    7 +-
 .../core_api/routes/public/test_task_instances.py  |   10 +-
 .../core_api/routes/public/test_xcom.py            |  154 +-
 .../api_fastapi/core_api/routes/ui/test_assets.py  |   42 +-
 .../api_fastapi/core_api/routes/ui/test_dags.py    |   12 +
 .../core_api/routes/ui/test_deadlines.py           |  125 +-
 .../core_api/routes/ui/test_dependencies.py        |  189 ++-
 .../api_fastapi/core_api/routes/ui/test_grid.py    |   40 +-
 .../tests/unit/api_fastapi/core_api/test_app.py    |    1 +
 .../versions/head/test_connection_tests.py         |   33 +
 .../execution_api/versions/head/test_dag_runs.py   |   21 +
 .../versions/head/test_task_instances.py           |  251 ++-
 .../execution_api/versions/head/test_xcoms.py      |  153 +-
 .../versions/v2026_04_06/test_task_instances.py    |  339 ++++
 .../unit/api_fastapi/logging/test_decorators.py    |   15 +
 airflow-core/tests/unit/api_fastapi/test_app.py    |   10 +
 .../tests/unit/cli/commands/test_dag_command.py    |    2 +-
 .../unit/cli/commands/test_kerberos_command.py     |   36 +
 airflow-core/tests/unit/cli/test_cli_parser.py     |   13 +
 airflow-core/tests/unit/core/test_configuration.py |   24 +
 .../tests/unit/dag_processing/test_processor.py    |   23 +-
 .../tests/unit/executors/test_base_executor.py     |    6 +-
 .../tests/unit/executors/test_local_executor.py    |  105 ++
 .../tests/unit/executors/test_workloads.py         |    4 +-
 airflow-core/tests/unit/jobs/test_scheduler_job.py |  119 +-
 airflow-core/tests/unit/jobs/test_triggerer_job.py |  174 ++-
 .../test_0143_add_dynamic_region_storage.py        |   10 +-
 .../test_0144_rename_stored_map_index.py           |   12 +-
 .../unit/migrations/test_migration_patterns.py     |    2 +-
 airflow-core/tests/unit/models/conftest.py         |    8 +-
 airflow-core/tests/unit/models/test_callback.py    |  200 ++-
 airflow-core/tests/unit/models/test_connection.py  |   29 +
 .../tests/unit/models/test_connection_test.py      |   34 +-
 airflow-core/tests/unit/models/test_dagbag.py      |   57 +
 airflow-core/tests/unit/models/test_dagrun.py      |   36 +-
 airflow-core/tests/unit/models/test_deadline.py    |  167 +-
 .../tests/unit/models/test_dynamic_region.py       |  233 ++-
 .../tests/unit/models/test_taskinstance.py         |    4 +-
 airflow-core/tests/unit/models/test_trigger.py     |  263 +++-
 airflow-core/tests/unit/models/test_xcom.py        |   90 ++
 .../tests/unit/plugins/test_plugins_manager.py     |    4 +-
 .../tests/unit/serialization/test_operatorlink.py  |   21 +
 .../unit/serialization/test_serialized_objects.py  |   86 +-
 .../tests/unit/serialization/test_stringify.py     |   91 +-
 .../deps/test_not_previously_skipped_dep.py        |  311 ++++
 .../unit/ti_deps/deps/test_trigger_rule_dep.py     |   62 +-
 airflow-core/tests/unit/triggers/test_callback.py  |  114 +-
 .../tests/unit/utils/log/test_path_log_reader.py   |   76 +
 airflow-core/tests/unit/utils/test_cli_util.py     |  746 ++++++++-
 airflow-core/tests/unit/utils/test_db_cleanup.py   |   22 +
 airflow-core/tests/unit/utils/test_db_manager.py   |    2 +-
 airflow-core/tests/unit/utils/test_file.py         |   16 +-
 airflow-core/tests/unit/utils/test_sqlalchemy.py   |   20 +
 airflow-ctl/README.md                              |    2 +-
 airflow-ctl/docs/howto/index.rst                   |    2 +-
 airflow-ctl/docs/images/command_hashes.txt         |    4 +-
 airflow-ctl/docs/images/output_auth.svg            |   86 +-
 airflow-ctl/docs/images/output_auth_login.svg      |  104 +-
 airflow-ctl/src/airflowctl/ctl/cli_config.py       |   10 +-
 .../src/airflowctl/ctl/commands/pool_command.py    |    2 +
 .../airflow_ctl/ctl/commands/test_pool_command.py  |   45 +
 contributing-docs/07_local_virtualenv.rst          |    8 +-
 contributing-docs/18_contribution_workflow.rst     |   59 +-
 contributing-docs/testing/k8s_tests.rst            |    9 +-
 dev/README_RELEASE_PROVIDERS.md                    |  165 +-
 dev/breeze/doc/01_installation.rst                 |    4 +
 dev/breeze/doc/03_developer_tasks.rst              |   41 +-
 dev/breeze/doc/04_troubleshooting.rst              |    5 +-
 dev/breeze/doc/05_test_commands.rst                |    2 +-
 ...19-isolate-docker-resources-per-git-worktree.md |  154 ++
 dev/breeze/doc/ci/04_selective_checks.md           |    2 +-
 dev/breeze/doc/images/output_setup.svg             |   14 +-
 dev/breeze/doc/images/output_setup.txt             |    2 +-
 dev/breeze/doc/images/output_setup_config.svg      |  100 +-
 dev/breeze/doc/images/output_setup_config.txt      |    2 +-
 .../images/output_workflow-run_publish-docs.svg    |   28 +-
 .../images/output_workflow-run_publish-docs.txt    |    2 +-
 .../airflow_breeze/commands/developer_commands.py  |   15 +-
 .../commands/release_management_commands.py        |    3 +
 .../src/airflow_breeze/commands/setup_commands.py  |   28 +-
 .../commands/setup_commands_config.py              |    1 +
 .../src/airflow_breeze/commands/verify_commands.py |   17 +-
 .../airflow_breeze/commands/workflow_commands.py   |  170 +-
 .../commands/workflow_commands_config.py           |    1 +
 .../src/airflow_breeze/params/shell_params.py      |    8 +-
 .../airflow_breeze/utils/docker_command_utils.py   |   89 +-
 dev/breeze/src/airflow_breeze/utils/github.py      |    2 +-
 .../src/airflow_breeze/utils/kubernetes_utils.py   |   34 +-
 dev/breeze/src/airflow_breeze/utils/path_utils.py  |   73 +-
 .../src/airflow_breeze/utils/selective_checks.py   |   15 +-
 .../src/airflow_breeze/utils/worktree_watcher.py   |  168 ++
 dev/breeze/tests/conftest.py                       |   16 +
 dev/breeze/tests/test_developer_commands.py        |   54 +-
 dev/breeze/tests/test_docker_command_utils.py      |  196 ++-
 dev/breeze/tests/test_git_worktree.py              |  123 +-
 dev/breeze/tests/test_kubernetes_utils.py          |   86 ++
 .../tests/test_release_management_commands.py      |   28 +
 dev/breeze/tests/test_selective_checks.py          |   88 +-
 dev/breeze/tests/test_shell_params.py              |   31 +-
 dev/breeze/tests/test_shim_version_check.py        |    4 +-
 dev/breeze/tests/test_verify_commands.py           |   18 +
 dev/breeze/tests/test_workflow_commands.py         |  205 +++
 dev/breeze/tests/test_worktree_watcher.py          |  193 +++
 dev/breeze/uv.lock                                 |   91 +-
 .../react_plugin_template/package.json             |   14 +-
 .../react_plugin_template/pnpm-lock.yaml           |  404 ++---
 dev/skill-evals/last-eval-hash.txt                 |    2 +-
 devel-common/src/docs/utils/conf_constants.py      |    1 +
 .../docs_build/third_party_inventories.py          |    1 +
 devel-common/src/tests_common/pytest_plugin.py     |   95 +-
 .../src/tests_common/test_utils/mock_context.py    |    1 +
 .../src/tests_common/test_utils/xcom_backends.py   |   17 +-
 docs/spelling_wordlist.txt                         |    2 +
 generated/known_airflow_exceptions.txt             |    2 +-
 generated/known_sdk_imports_in_core.txt            |    6 +-
 generated/provider_metadata.json                   |  442 ++++++
 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 +-
 .../amazon/docs/operators/emr/emr_serverless.rst   |   14 +
 providers/amazon/docs/operators/glue.rst           |    4 +-
 providers/amazon/docs/transfer/sql_to_s3.rst       |    4 +
 providers/amazon/provider.yaml                     |    1 +
 providers/amazon/pyproject.toml                    |    8 +-
 .../airflow/providers/amazon/aws/hooks/athena.py   |    7 +
 .../src/airflow/providers/amazon/aws/hooks/eks.py  |   32 +
 .../amazon/aws/log/cloudwatch_task_handler.py      |   16 +-
 .../providers/amazon/aws/log/s3_task_handler.py    |    2 +-
 .../airflow/providers/amazon/aws/operators/eks.py  |   46 +-
 .../airflow/providers/amazon/aws/operators/emr.py  |   92 ++
 .../airflow/providers/amazon/aws/operators/glue.py |   64 +-
 .../amazon/aws/operators/redshift_data.py          |   36 +-
 .../providers/amazon/aws/sensors/athena_spark.py   |   84 +
 .../providers/amazon/aws/transfers/sql_to_s3.py    |   48 +-
 .../airflow/providers/amazon/aws/triggers/eks.py   |   44 +-
 .../airflow/providers/amazon/aws/triggers/emr.py   |   48 +
 .../amazon/aws/waiters/emr-serverless.json         |   19 +
 .../airflow/providers/amazon/get_provider_info.py  |    5 +-
 .../system/amazon/aws/example_athena_spark.py      |   25 +-
 .../amazon/aws/example_emr_serverless_session.py   |   10 +
 .../amazon/tests/unit/amazon/aws/hooks/test_eks.py |   84 +
 .../amazon/aws/log/test_cloudwatch_task_handler.py |   15 +
 .../tests/unit/amazon/aws/operators/test_eks.py    |   64 +
 .../aws/operators/test_emr_serverless_session.py   |  115 +-
 .../tests/unit/amazon/aws/operators/test_glue.py   |  125 +-
 .../amazon/aws/operators/test_redshift_data.py     |   18 -
 .../unit/amazon/aws/sensors/test_athena_spark.py   |  175 +++
 .../unit/amazon/aws/transfers/test_sql_to_s3.py    |  155 +-
 .../tests/unit/amazon/aws/triggers/test_eks.py     |   29 +
 .../tests/unit/amazon/aws/triggers/test_emr.py     |   60 +
 .../providers/apache/hdfs/log/hdfs_task_handler.py |    2 +-
 .../hive/tests/unit/apache/hive/hooks/test_hive.py |   10 +-
 providers/apache/livy/pyproject.toml               |    2 +-
 .../providers/apache/livy/operators/livy.py        |   40 +-
 .../tests/unit/apache/livy/operators/test_livy.py  |   18 -
 providers/apache/spark/pyproject.toml              |    2 +-
 .../apache/spark/operators/spark_submit.py         |   35 +-
 .../apache/spark/operators/test_spark_submit.py    |   17 -
 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                     |    4 +-
 providers/common/ai/docs/changelog.rst             |   34 +-
 providers/common/ai/docs/durable_execution.rst     |   55 +-
 providers/common/ai/docs/features.rst              |    7 +-
 providers/common/ai/docs/frameworks/adk.rst        |    2 +-
 providers/common/ai/docs/frameworks/anthropic.rst  |   11 +-
 .../common/ai/docs/frameworks/openai_agents.rst    |   72 +-
 .../common/ai/docs/frameworks/pydantic_ai.rst      |    6 +
 providers/common/ai/docs/frameworks/strands.rst    |    2 +-
 providers/common/ai/docs/index.rst                 |    2 +-
 providers/common/ai/docs/observability.rst         |   43 +-
 providers/common/ai/docs/operators/llm.rst         |    8 +
 providers/common/ai/docs/retry_policies.rst        |    4 +-
 providers/common/ai/docs/stability.rst             |    3 +-
 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/index.rst        |    4 +-
 providers/common/ai/docs/troubleshooting.rst       |    4 +
 providers/common/ai/pyproject.toml                 |    7 +-
 .../providers/common/ai/durable/fingerprint.py     |  473 +++++-
 .../providers/common/ai/durable/openai_agents.py   |  479 ++++++
 .../common/ai/example_dags/example_adk_agent.py    |    8 +-
 .../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 ++
 .../ai/example_dags/example_llm_retry_policy.py    |   19 +-
 .../example_dags/example_openai_agents_durable.py  |   90 ++
 .../ai/example_dags/example_strands_agent.py       |    6 +-
 .../providers/common/ai/hooks/pydantic_ai.py       |    5 +
 .../airflow/providers/common/ai/operators/agent.py |   55 +-
 .../airflow/providers/common/ai/operators/llm.py   |  119 +-
 .../providers/common/ai/plugins/model_panel.py     |    2 +-
 .../airflow/providers/common/ai/policies/retry.py  |    5 +-
 .../airflow/providers/common/ai/toolsets/skills.py |   16 +-
 .../ai/tests/unit/common/ai/decorators/test_llm.py |   10 +-
 .../unit/common/ai/durable/test_capability.py      |   58 +
 .../unit/common/ai/durable/test_fingerprint.py     | 1628 +++++++++++++++++++-
 .../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   |  127 +-
 .../ai/operators/test_agent_tool_approval.py       |    1 -
 .../ai/tests/unit/common/ai/operators/test_llm.py  |  279 +++-
 .../unit/common/ai/plugins/test_model_panel.py     |   18 +-
 .../ai/tests/unit/common/ai/policies/test_retry.py |   45 +-
 .../tests/unit/common/ai/toolsets/test_skills.py   |   17 +
 .../common/compat/_resumable_job_mixin.py          |   58 +
 .../providers/common/compat/connection/__init__.py |   35 +-
 .../src/airflow/providers/common/compat/sdk.py     |    7 +
 .../common/compat/connection/test_connection.py    |   64 +
 .../common/compat/test__resumable_job_mixin.py     |   95 ++
 providers/common/io/docs/changelog.rst             |   10 +
 .../airflow/providers/common/io/xcom/backend.py    |   75 +-
 .../io/tests/unit/common/io/xcom/test_backend.py   |   55 +
 providers/databricks/pyproject.toml                |    2 +-
 .../providers/databricks/operators/databricks.py   |   42 +-
 .../unit/databricks/operators/test_databricks.py   |   18 -
 .../providers/discord/hooks/discord_webhook.py     |    2 +-
 .../unit/discord/hooks/test_discord_webhook.py     |    2 +-
 .../edge3/example_dags/integration_test.py         |    5 +-
 .../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 +
 providers/fab/docs/auth-manager/access-control.rst |   60 +-
 .../fab/auth_manager/api_fastapi/sorting.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/pyproject.toml                    |    2 +-
 .../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   |   46 +-
 .../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   |   30 +-
 .../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/README.rst               |    7 +-
 providers/microsoft/azure/docs/bundles/index.rst   |   80 +
 .../azure/docs/connections/azure_ai_search.rst     |   92 ++
 providers/microsoft/azure/docs/index.rst           |    8 +-
 .../microsoft/azure/docs/operators/ai_search.rst   |  121 ++
 .../microsoft/azure/docs/operators/msgraph.rst     |   12 +
 .../microsoft/azure/docs/operators/powerbi.rst     |   10 +
 providers/microsoft/azure/provider.yaml            |   53 +
 providers/microsoft/azure/pyproject.toml           |    5 +-
 .../providers/microsoft/azure/bundles}/__init__.py |    0
 .../providers/microsoft/azure/bundles/wasb.py      |  154 ++
 .../providers/microsoft/azure/exceptions.py        |    4 +
 .../providers/microsoft/azure/get_provider_info.py |   54 +
 .../providers/microsoft/azure/hooks/ai_search.py   |  355 +++++
 .../providers/microsoft/azure/hooks/msgraph.py     |   31 +-
 .../providers/microsoft/azure/hooks/wasb.py        |  108 ++
 .../microsoft/azure/log/wasb_task_handler.py       |    2 +-
 .../providers/microsoft/azure/operators/msgraph.py |  158 +-
 .../providers/microsoft/azure/operators/powerbi.py |   89 +-
 .../providers/microsoft/azure/triggers/powerbi.py  |    7 +-
 .../microsoft/azure/example_azure_ai_search.py     |  175 +++
 .../unit/microsoft/azure/bundles}/__init__.py      |    0
 .../unit/microsoft/azure/bundles/test_wasb.py      |  279 ++++
 .../unit/microsoft/azure/hooks/test_ai_search.py   |  394 +++++
 .../unit/microsoft/azure/hooks/test_msgraph.py     |   29 +
 .../tests/unit/microsoft/azure/hooks/test_wasb.py  |  160 ++
 .../unit/microsoft/azure/operators/test_msgraph.py |  162 +-
 .../unit/microsoft/azure/operators/test_powerbi.py |  288 ++--
 .../unit/microsoft/azure/triggers/test_powerbi.py  |   33 +
 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 ++-
 .../airflow/providers/openlineage/utils/utils.py   |   19 +
 .../example_openlineage_base_complex_dag.py        |   15 +-
 .../openlineage_base_complex_dag__af2.json         |   68 +-
 .../openlineage_base_complex_dag__af3.json         |   70 +-
 .../openlineage_base_simple_dag__af2.json          |    4 +
 .../openlineage_base_simple_dag__af3.json          |    4 +
 .../openlineage_custom_operator_failure_dag.json   |    2 +
 .../openlineage_manual_lineage_dag.json            |    4 +
 .../openlineage_taskflow_simple_dag.json           |    4 +
 .../unit/openlineage/plugins/test_execution.py     |   11 +-
 .../tests/unit/openlineage/utils/test_utils.py     |  102 +-
 .../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/pyproject.toml                 |    2 +-
 .../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     |   38 +-
 .../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     |   32 +-
 .../{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 +-
 .../example_dags/example_bash_decorator.py         |   17 +-
 .../standard/example_dags/example_bash_operator.py |   13 +-
 .../airflow/providers/standard/hooks/subprocess.py |   28 +-
 .../providers/standard/utils/sensor_helper.py      |   31 +-
 .../tests/unit/standard/hooks/test_subprocess.py   |   63 +-
 pyproject.toml                                     |   31 +-
 registry/package.json                              |    2 +-
 registry/pnpm-lock.yaml                            |   10 +-
 registry/src/_data/statsData.js                    |   15 +-
 registry/src/index.njk                             |    2 +-
 scripts/ci/docker-compose/backend-mysql.yml        |    2 +
 scripts/ci/docker-compose/backend-postgres.yml     |    2 +
 scripts/ci/docker-compose/base.yml                 |    2 +
 .../ci/docker-compose/integration-cassandra.yml    |    2 +
 scripts/ci/docker-compose/integration-celery.yml   |    3 +
 scripts/ci/docker-compose/integration-drill.yml    |    2 +
 .../docker-compose/integration-elasticsearch.yml   |    2 +
 scripts/ci/docker-compose/integration-kafka.yml    |    1 +
 scripts/ci/docker-compose/integration-kerberos.yml |    2 +
 scripts/ci/docker-compose/integration-keycloak.yml |    1 +
 .../ci/docker-compose/integration-localstack.yml   |    1 +
 scripts/ci/docker-compose/integration-mongo.yml    |    2 +
 scripts/ci/docker-compose/integration-mssql.yml    |    2 +
 .../ci/docker-compose/integration-openlineage.yml  |    2 +
 .../ci/docker-compose/integration-opensearch.yml   |    2 +
 scripts/ci/docker-compose/integration-otel.yml     |    4 +
 scripts/ci/docker-compose/integration-pinot.yml    |    1 +
 scripts/ci/docker-compose/integration-qdrant.yml   |    1 +
 scripts/ci/docker-compose/integration-redis.yml    |    3 +
 scripts/ci/docker-compose/integration-statsd.yml   |    3 +
 .../ci/docker-compose/integration-tinkerpop.yml    |    2 +
 scripts/ci/docker-compose/integration-trino.yml    |    2 +
 scripts/ci/docker-compose/integration-ydb.yml      |    1 +
 scripts/ci/docker-compose/local-all-sources.yml    |    2 +
 scripts/ci/docker-compose/local.yml                |    2 +
 scripts/ci/kubernetes/kind-cluster-conf.yaml       |    5 +-
 scripts/ci/lang_sdk_serialization/compare.py       |   13 +-
 scripts/ci/prek/check_auth_manager_mock_targets.py |   88 ++
 .../ci/prek/check_example_dag_shell_commands.py    |  266 ++++
 scripts/ci/prek/extract_permissions.py             |   63 +-
 scripts/ci/prek/fab_permissions_doc.py             |   27 +-
 scripts/ci/prek/local_yml_mounts.py                |    2 +
 scripts/ci/testing/summarize_captured_warnings.py  |    2 +-
 .../in_container/run_provider_yaml_files_check.py  |   10 +-
 .../prek/test_check_auth_manager_mock_targets.py   |   88 ++
 .../prek/test_check_example_dag_shell_commands.py  |  137 ++
 scripts/tests/ci/prek/test_extract_permissions.py  |  199 ++-
 scripts/tests/ci/prek/test_local_yml_mounts.py     |   79 +
 scripts/tools/setup_breeze                         |    5 +-
 .../logging/src/airflow_shared/logging/remote.py   |   16 +-
 .../module_loading/file_discovery.py               |   11 +-
 .../tests/module_loading/test_file_discovery.py    |   18 +
 .../airflow_shared/observability/metrics/stats.py  |    3 +-
 .../secrets_masker/secrets_masker.py               |   34 +-
 .../tests/secrets_masker/test_secrets_masker.py    |   66 +-
 task-sdk/docs/api.rst                              |    4 +
 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 +
 task-sdk/src/airflow/sdk/bases/xcom.py             |  383 ++++-
 .../src/airflow/sdk/coordinators/_subprocess.py    |   41 +-
 .../src/airflow/sdk/definitions/_internal/loop.py  |   10 +-
 .../sdk/definitions/decorators/task_group.py       |    6 +-
 .../src/airflow/sdk/definitions/loop.py            |   22 +-
 .../sdk/execution_time/callback_supervisor.py      |   29 +
 task-sdk/src/airflow/sdk/execution_time/comms.py   |    2 +
 .../airflow/sdk/execution_time/lazy_sequence.py    |    4 +-
 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   |   26 +-
 .../src/airflow/sdk/execution_time/task_runner.py  |   54 +-
 .../airflow/sdk/importers/yaml_importer/builder.py |  155 +-
 task-sdk/src/airflow/sdk/types.py                  |    2 +
 task-sdk/tests/task_sdk/api/test_client.py         |   27 +
 task-sdk/tests/task_sdk/bases/test_xcom.py         |  379 ++++-
 .../tests/task_sdk/coordinators/test_subprocess.py |  179 ++-
 .../execution_time/test_callback_supervisor.py     |  107 +-
 .../task_sdk/execution_time/test_lazy_sequence.py  |   27 +
 .../tests/task_sdk/execution_time/test_loop.py     |  214 +--
 .../task_sdk/execution_time/test_supervisor.py     |  122 +-
 .../task_sdk/execution_time/test_task_runner.py    |   83 +-
 .../importers/yaml_importer/test_importer.py       |   84 +
 ts-sdk/api-docs/dag-authoring-api.ts               |    1 +
 ts-sdk/pnpm-lock.yaml                              |  145 +-
 ts-sdk/schema/supervisor-schema.json               |   49 +
 ts-sdk/src/coordinator/serde.ts                    |   18 +-
 ts-sdk/src/generated/supervisor.ts                 |   14 +
 ts-sdk/src/index.ts                                |    2 +-
 ts-sdk/src/sdk/dag.ts                              |  112 +-
 ts-sdk/tests/coordinator/serde.test.ts             |   19 +
 ts-sdk/tests/public-api.test.ts                    |    2 +
 ts-sdk/tests/sdk/branching.test.ts                 |   10 +
 ts-sdk/tests/sdk/conditional.test.ts               |   23 +
 ts-sdk/tests/sdk/dag.test.ts                       |  128 ++
 uv.lock                                            |   57 +-
 783 files changed, 32984 insertions(+), 6071 deletions(-)
 create mode 100644 
.agents/skills/airflow-publish-changes/references/performance-sensitive-components.md
 create mode 100644 airflow-core/docs/authoring-and-scheduling/yaml-dags.rst
 create mode 100644 airflow-core/newsfragments/71816.feature.rst
 create mode 100644 airflow-core/newsfragments/73577.significant.rst
 create mode 100644 airflow-core/newsfragments/73791.improvement.rst
 create mode 100644 airflow-core/newsfragments/73793.improvement.rst
 create mode 100644 airflow-core/newsfragments/73794.improvement.rst
 create mode 100644 airflow-core/newsfragments/74830.significant.rst
 create mode 100644 airflow-core/newsfragments/74834.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74836.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74837.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74839.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74840.bugfix.rst
 create mode 100644 airflow-core/newsfragments/74842.improvement.rst
 create mode 100644 
airflow-core/newsfragments/task-loops-custom-backends.significant.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/BackfillInProgressBadge.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/components/BackfillInProgressBadge.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/components/Banner/BackfillBanner.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/components/Banner/BackfillBanner.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/components/Banner/DrainingBanner.test.tsx
 delete mode 100644 
airflow-core/src/airflow/ui/src/components/Banner/DrainingBanner.tsx
 rename 
airflow-core/src/airflow/ui/src/components/{DagDeactivatedBanner.test.tsx => 
DagDeactivatedChip.test.tsx} (79%)
 rename airflow-core/src/airflow/ui/src/components/{DagDeactivatedBanner.tsx => 
DagDeactivatedChip.tsx} (66%)
 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/DrainingBadge.test.tsx
 rename airflow-core/src/airflow/ui/src/components/{Banner/index.tsx => 
LoopDecisionReason.tsx} (62%)
 create mode 100644 
airflow-core/src/airflow/ui/src/components/NeedsReviewIndicator.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/components/NeedsReviewIndicator.tsx
 create mode 100644 airflow-core/src/airflow/ui/src/components/StatusChip.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/mocks/handlers/{assets.ts => admin.ts} 
(50%)
 create mode 100644 airflow-core/src/airflow/ui/src/mocks/handlers/app.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/mocks/handlers/task_instances.test.ts
 create mode 100644 
airflow-core/src/airflow/ui/src/mocks/handlers/task_instances.ts
 copy airflow-core/src/airflow/ui/src/{utils/option.ts => mocks/server.ts} (60%)
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Connections/DuplicateConnectionButton.test.tsx
 create mode 100644 
airflow-core/src/airflow/ui/src/pages/Connections/DuplicateConnectionButton.tsx
 copy airflow-core/src/airflow/ui/src/{components/DataTable/features.ts => 
pages/DagsList/DagsListColumns.test.tsx} (59%)
 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
 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/utils/log/path_log_reader.py
 create mode 100644 airflow-core/tests/unit/utils/log/test_path_log_reader.py
 create mode 100644 
dev/breeze/doc/adr/0019-isolate-docker-resources-per-git-worktree.md
 create mode 100644 dev/breeze/src/airflow_breeze/utils/worktree_watcher.py
 create mode 100644 dev/breeze/tests/test_kubernetes_utils.py
 create mode 100644 dev/breeze/tests/test_worktree_watcher.py
 copy scripts/ci/prek/local_yml_mounts.py => 
devel-common/src/tests_common/test_utils/xcom_backends.py (70%)
 mode change 100755 => 100644
 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/toolsets/custom.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_openai_agents_durable.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_openai_agents.py
 create mode 100644 
providers/common/compat/src/airflow/providers/common/compat/_resumable_job_mixin.py
 create mode 100644 
providers/common/compat/tests/unit/common/compat/test__resumable_job_mixin.py
 create mode 100644 providers/microsoft/azure/docs/bundles/index.rst
 create mode 100644 
providers/microsoft/azure/docs/connections/azure_ai_search.rst
 create mode 100644 providers/microsoft/azure/docs/operators/ai_search.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
 create mode 100644 
providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/ai_search.py
 create mode 100644 
providers/microsoft/azure/tests/system/microsoft/azure/example_azure_ai_search.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 100644 
providers/microsoft/azure/tests/unit/microsoft/azure/hooks/test_ai_search.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/ci/prek/check_auth_manager_mock_targets.py
 create mode 100755 scripts/ci/prek/check_example_dag_shell_commands.py
 create mode 100644 
scripts/tests/ci/prek/test_check_auth_manager_mock_targets.py
 create mode 100644 
scripts/tests/ci/prek/test_check_example_dag_shell_commands.py
 create mode 100644 scripts/tests/ci/prek/test_local_yml_mounts.py
 copy scripts/ci/prek/local_yml_mounts.py => 
task-sdk/src/airflow/sdk/definitions/loop.py (65%)
 mode change 100755 => 100644

Reply via email to