This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch jason/lang-sdk-e2e/08-native-e2e
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 8b1b9923110 Exclude airflowignore_all from the license check
discard b3c802f1648 Shorten the _ensure_executable docstring
discard bce911355fd Address review: chmod only the returned bundle, and
surface why one was skipped
discard 24de72d388f Discover executable bundles by footer, not by execute bit
discard 70b2aabf826 Rework the lang-SDK k8s harness for mixed-language and
native Dag tests
discard 0e3e03f4e51 Keep the k8s lang-SDK values comment within the YAML line
limit
discard 3c9b59fc98a Read a native Dag example's served Dags with bundleDags
discard 91195107e3e Say which coordinator runs the native e2e Java tasks
discard 4c4e43b6158 Drop the dag_bundle_name reason from the k8s native
TypeScript skip
discard a7f48edfa79 Parse native Dags in the e2e by class, not by Dag bundle
name
discard 0b24339a02e Name the skipped-branch e2e test after what it checks
discard c355d5c15be Document how the TypeScript example's native Dag gets
parsed
discard a357f8382ee Explain why the k8s native TypeScript Dag test is skipped
discard 7896f9a08a3 Pack the TypeScript example against the built SDK
discard b39107bda9d Build the TypeScript SDK before packing the k8s example
bundle
discard 073236e5b48 Key the Lang-SDK e2e jobs on native Dag modules only
discard ddfb7d95fb3 Build the k8s TypeScript artifacts only for the native Dag
test
discard b5c0d3fe3ee Share the Dag run lookup and the native Java queue name
discard 69696aa216c Run the Lang-SDK e2e jobs when native Dag parsing changes
discard ca0451d3bab Add a native Java Dag to the compose e2e
discard 44ac3a75bcd Keep the containerized Java build's Maven repository on
the host
discard 2c92a514f9c Check the native TypeScript Dag's source and triggered run
discard 75c8d88360e Parse the native TypeScript Dag in the compose e2e
discard df620a23da5 TS SDK: cover native TypeScript Dags end to end
discard 5d91e38934c Java SDK: Pack each native Dag's source file into the
bundle JAR
discard 406263c475b Java SDK: Record the class that declares each Dag and
describe it on request
discard 1c3a74c5c47 Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
discard 2e40afcdef9 Java SDK: Declare a Dag's task graph with @Builder.Deps
discard c6574595604 TS SDK: add triggerDagRun to the native Dag surface
discard 72ec6b106fe TS SDK: add multi-way branching with dag.switch
discard 0cfef3fddf5 TS SDK: add conditional branching with dag.if
omit 4663a325ec2 Show each native Dag's own source in the Code tab (#74249)
omit 7dbaafe8c52 Say tasks list runs a native TypeScript Dag's bundle
omit 443941ac9c4 Document how a NodeCoordinator is picked for parsing
TypeScript Dags
omit b38787ed046 Run a native TypeScript Dag's own bundle through the
native task branch
omit 917caaad9e5 Let the Node Dag importer find its coordinator
omit 38b7748b3a4 Hand out the Node Dag importer through get_dag_importer
omit 7a78614b099 Pin the Code view to the entry module in Node bundle tests
omit 348e95bf675 Let NodeDagImporter source read errors reach the caller
omit 102546d73bf Import NodeDagImporter at the top of the Node coordinator
omit 62ab930e65e Warn against defining a Dag in both TypeScript and Python
omit b940fd7c3cc Align the TypeScript build docs with the Code view
omit 3497a0ccd1c Say when the Dag processor needs Node.js for TypeScript
bundles
omit ba5b8cc06a6 Run a native TypeScript Dag's task from its own bundle
omit 47ba6da22b4 Share the bundle section mutation helper between Node tests
omit 4b88cfa0481 Document parsing native TypeScript Dags
omit 9addf2f20ba Parse native TypeScript Dags with the Node coordinator
omit cab56f42a9e Show both .airflowignore cases and syntaxes for the
task-handler JAR
omit d243b2bfcb0 Move a deferred secrets_masker import to the top of the
module
omit 705c315b7a7 Autospec the bundles this test class mocks
omit 87236e5c5e6 Assert execute_task never asks for the parsing coordinator
omit bce7efc0478 Say the native Java ignore bullet applies with one
coordinator too
omit 8ecee9ec935 Let the first executable JAR's Main-Class win, not the
last one found
omit 9f08bce28d2 Keep a JAR whose manifest cannot be read, not only for
OSError and BadZipFile
omit 37759fb9c26 Put the JAR a Dag was parsed from first on its classpath
omit 3b6a9d0d48b Say a JRE parses native Java Dags, and keep main's bundle
test mocks
omit 7a243c19d33 Say tasks list runs a native Java Dag's main class
omit b5f144dc0ad Fail a native task cleanly when its file or coordinator
class cannot load
omit 03ac85138ab Run a native Dag's task from its own Dag file
omit d1ffa7d818d Fail a task cleanly when its runtime cannot be launched
omit e63ffc3be9e Let the Java Dag importer find its coordinator
omit 3cd507c37b9 Read Java Dag sources from the bundle's sources.json index
omit f950fb8b502 Hand out the Java Dag importer through get_dag_importer
omit 2f3c1b7271c Keep the Java parse_dag test from changing the pytest
worker
omit cb7ff0320fb Stop promising that Java dependency JARs are not parsed
omit 1e5f033d9fc Reject a Java Dag JAR whose SDK cannot answer a parse
omit e6933d81c5b Run the JAR a native Java Dag was parsed from
omit 4c9eaf9b573 Report why a Java Dag JAR cannot be read
omit 801e5a1f843 Pass the task's Dag file to the coordinator's command
builder
omit 45761df8bb7 Run a task on its run's version when dag_bundle_name names
its bundle
omit a28bdee1c03 Document native Java Dag parsing
omit 1e85316e871 Name the JAR manifest attributes the Java coordinator reads
omit bb23794a6af Test the Java Dag source placeholder for a JAR without a
manifest
omit f6b87a7cae4 Treat an unreadable JAR like one without a manifest
omit c1a0bd225e1 Parse native Java Dags with their coordinator
omit 1f361c2bcbc Build the JVM command that parses a Dag JAR
omit 9c6cd0e3396 Read JAR manifests per the JAR specification
add e08216d0081 Go SDK: delete the XComs of earlier tries before a task
runs (#74178)
add ae082ab651f Go SDK: add dag.TaskGroup with nesting and group-level
edges (#74214)
add fa65343163d Remove FAB-related exclusion in SQLA tests (#74180)
add dbee3c6c11b Fix concurrent SFTP directory transfers dropping parent
hook's connection overrides (#73647)
add b79acc8a8d6 Fix google provider BQ openlineage checks (#71777)
add d6ab1aad3c6 Register TypeScript, Java and Go grammars for the Dag Code
tab (#74231)
add 747f69b1a8c Warn when db clean skips only some rows of a batch (#73568)
add 9b2cc1352c3 Handle plain Step Functions execution errors (#73881)
add d339bb2767a Fix Dataproc triggers swallowing task cancellation (#74192)
add e0e3454998f Add v3-4-test to CI, dependabot, backport, and fork-sync
configuration (#74219)
add 98e753847a3 Distinguish credential failures from AWS waiter exhaustion
(#73870)
add 71f98d3ac00 UI: Group digits of counters according to the selected
locale (#73713)
add 2d734dc9842 UI: Deflake backfill e2e tests on WebKit (#74200)
add 20f90a6e105 UI: Keep Dags list table rows on a single line (#74002)
add dafa0555a0e Bump stylelint (#74252)
add 08fae625769 Add datafusion handler for google cleanup script (#74234)
add 11bf87404c2 Restrict the second render pass in
SqlToSlackWebhookOperator (#71402)
add a048842a72a Fix google provider system tests dag version increase
issues (#72194)
add 48f6b517397 Require moto 5.2.2 or newer for the Amazon provider tests
(#74224)
add eb89b4092b9 Fix SSH commands failing when the task holds over 1024
file descriptors (#74211)
add 86aef85e35c Keep S3 Dag bundle downloads within the configured
directory (#73756)
add 1ab53cd8e38 Keep the Dag asset schedule the same shape for every
caller (#73805)
add fbdec9503c7 Support Table objects in BigQueryHook.create_table
table_resource (#73099)
add 67853607ab2 Add async Variable methods (aget, aset, adelete, akeys)
(#72329)
add 353d856281c Stop Kafka hook tests from leaving live clients behind
(#74285)
add b2786de47b7 Close German Translation Gaps 2026-10-05 (#74264)
add 2b33f02539a UI: Open provider connection fields by default and title
them by connection type (#74273)
add d4a47caaf09 Notify downstream Dags when COPY INTO writes a Unity
(Databricks) table (#74191)
add 51184d53a52 Clarify Dag processor scoping and team config in
Multi-Team docs (#73958)
add c9abbdbdb87 Bump the auth-ui-package-updates group across 1 directory
with 5 updates (#74254)
add 2793a170be5 Fix connection screenshots missing from the msgraph and
IBM MQ docs (#74287)
add f5774789ea0 Pr/split storage tab (#73989)
add 3a7e6031c6f corrected label for filter (#74189)
add 758ebbd35f4 Document decision models served over the System One API in
common.ai (#74266)
add 37df9a5a4ac Wait for the Lang-SDK runtime's descriptors to settle
before checking them (#74288)
add fd7ac131553 Clarify how the providers vote result lists voters (#73883)
add ed1435c2b57 UI: Surface Dag run conf in the header (#73987)
add 9c1bb68c41f Increase worker startup timeout in LocalExecutor process
death test (#74292)
add 5ec2045d474 Fix PostgresToGCSOperator fetching one row at a time with
psycopg3 (#73324)
add 00bc44480c7 Apply impersonation_chain to deferred BigQuery existence
checks (#71648)
add 69f98974344 Look up task logs by task try UUID (#74204)
add 65596fb5ae6 Bump the eslint group across 1 directory with 5 updates
(#73488)
add 9081eda445e Support Pydantic structured outputs in
`OpenAIResponseOperator` (#69812)
add 31b774803ce Correct usage_limits=None docstring on AgentOperator and
LLMOperator (#74307)
add ab4da0b5636 Java SDK: Declare a Dag's task graph with @Builder.Deps
(#71189)
add 0bffacc8740 Update providers metadata 2026-10-05 (#74315)
add eda8563d983 Keep polling in the BigQuery check triggers while a job is
running (#74305)
add af61379fc14 Include prompt cache token counts in AgentOperator's usage
XCom (#74277)
add 77b21f34c05 Fix Common AI durable retries and tool-approval resumes on
pydantic-ai 2.50+ (#74313)
add dcc9ce6246f Fix Common AI durable retries not replaying tools from a
capability without an id (#74314)
add e25f413ff61 Let the Modal sandbox backend read credentials from a
modal connection (#74302)
add ac147d07ffe Remove `code_mode` from `AgentOperator` in favor of the
`CodeMode` capability (#74312)
add 246e3b231c9 Add `include_traceback` to model-backed retry policies
(#74308)
add d18b831afc2 Show staging-only commits before resetting staging to main
(#74116)
add 84f5e0990a0 TS SDK: Step over an empty nested task group to the group
holding it (#74323)
add 342157f5aed Go SDK: run unit tests with the race detector in CI
(#74215)
add 4329cd68465 Pause v3-4-test automation while it is fast-forwarded for
3.4.0 betas (#74327)
add 8d37613cba5 Guard the Dag Code tab's Monaco grammar exports against
drift (#74246)
add 6038d1156dd Scope audit log rows to a Dag only from the request path
or body (#74232)
add 14960cf4624 Add AIP-85 to the AIP progress tracker registry (#74304)
add 6b6b1fa2d92 Discover executable bundles by footer, not by execute bit
(#74227)
add 4cae02cbee1 Update French (fr) UI translations to 100% coverage
(#74235)
add 6e5f3136b9b Fix dateless dag.test and tasks test destroying unrelated
Dag runs (#73813)
add a13edb47aef Go SDK: add dag.Switch with Case for multi-way branching
(#74321)
add 16813192320 Show provider URI schemes in the Provider Registry (#74284)
add 370606c1065 Fix Dags staying blocked by `max_active_runs` until the
next parse (#73032)
add 0609550c022 Lead the `common.ai` sandbox docs with when to use it and
where each piece runs (#74297)
add 87be0026872 Keep retried task attempts and their data under the
attempt UUID (#74222)
add a6d4ef08dc6 Apply hook_params to deferred dbt Cloud job runs (#74199)
add 5aa12d3765f Parse native Java Dags and show their source (#74036)
add 74698a57c68 Parse native TypeScript Dags with the Node coordinator
(#74037)
add 64ac6e12011 Go SDK: serialize a native Dag to Dag JSON (#74319)
add 8bb642be2d5 Add task state store support to the Go SDK task client
(#73420)
add 620838dd876 add missing logical date column. (#74340)
add c5ad609d35d Upgrade UI npm dependencies and resolve pnpm audit
advisories (#74303)
add cd947e3680a Remove provider tests that restate `template_fields` and
other class constants (#74359)
add de420be1d68 Fix mapped-task retry policy example in tasks docs (#74343)
add 0ca87cb8312 Fix short-circuit in a mapped task group not skipping
later tasks (#74283)
add 092444019b5 Remove Google hook tests duplicated across default-project
test classes (#74362)
add 75d9ebf60cb Add task state store API to the Java SDK (#73464)
add 95b5d83eaaa Document that DuckDB extension installs need a HOME
directory (#74301)
add 520d5dd3997 UI: Apply default visibility to newly added table columns
(#74320)
add 421a6da25bc UI: Add a Dag Run ID column to the Task Instances list
(#74316)
add dc2ee911151 UI: Add duration filter to DAG Backfills tab (#74202)
add 4699c48b6d8 Show recent task states on the Dags list page (#69619)
add a25667d2fbd Remember the Dag runs limit across tab switches and visits
(#74289)
add f92281e1d03 Drop Python 3.10 from CI, Breeze and the container images
(#74151)
add e853537c04b Bump inline script metadata to Python 3.11 (#74152)
add 199b0a85527 Remove Python 3.10 compatibility shims (#74153)
add 30826e6de20 Apply ruff Python 3.11 fixes to core, Task SDK, shared and
airflowctl (#74154)
add 0b7c7f2e198 Apply ruff Python 3.11 fixes to providers (#74155)
add dafc96e67c7 Apply ruff Python 3.11 fixes to dev tooling, scripts and
test suites (#74156)
add 3e0ed979c1c Require Python 3.11 in all distributions (#74157)
add f3a4f59520c Update provider READMEs for the Python 3.11 baseline
(#74158)
add 9cc55f2ad3e Update docs for the Python 3.11 baseline (#74159)
add b1e4ad03219 UI: Fix XCom list crash when a value request fails (#74131)
add 3e302fd257a Add UBM to the list of companies (#74375)
add 62917eab648 TS SDK: Add conditional branching with dag.if (#74069)
add 874bc6c215b TS SDK: Add multi-way branching with dag.switch (#74070)
add cdcbf12a3f1 Support PAT and key-pair auth in the Snowflake Cortex
Agent hook (#73932)
add 72d612c357d Add restricted-agent examples to common.ai toolset guides
(#74379)
add 07bed4fde80 Link registry modules to the guide section that documents
them (#71477)
add 202fe706955 TS SDK: Add triggerDagRun to native Dags (#74071)
add 2288ea4537a Fix XCom query in not_previously_skipped_dep to use
xcom_entity (#74377)
add 0619d10021e Java SDK: Group a native Dag's tasks with task groups
add 5974f53a198 Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
add b14b93580fd Test that the conformance check compares Dag params
add 278343e460d Java SDK: Leave config-backed Dag fields for Airflow to
fill in
add 164e9589de0 Java SDK: Leave out the email flags a Java task cannot act
on
add e53785eda1b Java SDK: Serialize a native Dag's task groups
add 2de1e31583f Java SDK: Write each Dag tag once, as Python does
add 38d2fa9807d Java SDK: Check native Dag serialization against Airflow's
add ca577878a39 Java SDK: Run the serialization conformance check on every
file that steers it
add 47c8e5b7afa Java SDK: Build a native Dag's timetable the way Python
does
add ba8f6a29e06 Java SDK: Carry a native Dag's call arguments as argument
bindings
add e053d8ffc9d Java SDK: Keep one unserializable Dag from failing a whole
bundle's parse
add 2ad331f4d33 Java SDK: Mark the native Dag capabilities as shipping in
3.4
add 78a344a238b Java SDK: Record the class that declares each Dag and
describe it on request
add 69ad51eaf9a Java SDK: Pack each native Dag's source file into the
bundle JAR
add cba80f349db Java SDK: Bound the describe run and keep its payload to
the bundle JAR
add 1e7616bea50 TS SDK: cover native TypeScript Dags end to end
add d79bbc9b645 Parse the native TypeScript Dag in the compose e2e
add cbab218b1fe Check the native TypeScript Dag's source and triggered run
add ace918a4c56 Keep the containerized Java build's Maven repository on
the host
add e49e3a775c4 Add a native Java Dag to the compose e2e
add a06f097f088 Run the Lang-SDK e2e jobs when native Dag parsing changes
add 2ca5fb4e859 Share the Dag run lookup and the native Java queue name
add 3f7bf7df81d Build the k8s TypeScript artifacts only for the native Dag
test
add f2538855d93 Key the Lang-SDK e2e jobs on native Dag modules only
add be7962f1860 Build the TypeScript SDK before packing the k8s example
bundle
add a3d7fecc6be Pack the TypeScript example against the built SDK
add 1952c5a3692 Explain why the k8s native TypeScript Dag test is skipped
add c0cb19d8ba8 Document how the TypeScript example's native Dag gets
parsed
add 21edb13d82c Name the skipped-branch e2e test after what it checks
add 06bee939561 Parse native Dags in the e2e by class, not by Dag bundle
name
add 26506514641 Drop the dag_bundle_name reason from the k8s native
TypeScript skip
add 467ee783335 Say which coordinator runs the native e2e Java tasks
add 9b33b9707cf Read a native Dag example's served Dags with bundleDags
add ba9b3af058d Keep the k8s lang-SDK values comment within the YAML line
limit
add b4fe99230eb Rework the lang-SDK k8s harness for mixed-language and
native Dag tests
add de018a0279a Exclude airflowignore_all from the license check
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 (8b1b9923110)
\
N -- N -- N refs/heads/jason/lang-sdk-e2e/08-native-e2e
(de018a0279a)
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:
.../pr-management-triage-comment-templates.md | 4 +-
.apache-magpie-overrides/release-verify-rc.md | 2 +-
.apache-magpie-overrides/release-vote-tally.md | 63 +
.apache-magpie-overrides/runtime-invocation.md | 2 +-
.codespellignorelines | 1 +
.github/actions/breeze/action.yml | 2 +-
.github/actions/prepare_all_ci_images/action.yml | 4 +-
.github/boring-cyborg.yml | 33 +-
.github/dependabot.yml | 55 +-
.github/workflows/additional-ci-image-checks.yml | 8 +-
.github/workflows/airflow-e2e-tests.yml | 2 +-
.github/workflows/automatic-backport.yml | 14 +-
.github/workflows/basic-tests.yml | 6 +
.github/workflows/ci-amd.yml | 5 +
.github/workflows/ci-arm.yml | 5 +
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/milestone-tag-assistant.yml | 1 +
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 2 +-
...t.yml => scheduled-upgrade-check-v3-4-test.yml} | 17 +-
.github/workflows/ui-e2e-tests.yml | 4 +-
.pre-commit-config.yaml | 50 +-
.readthedocs.yml | 2 +-
Dockerfile | 79 +-
Dockerfile.ci | 88 +-
INSTALL | 6 +-
INTHEWILD.md | 1 +
README.md | 2 +-
airflow-core/.pre-commit-config.yaml | 10 -
.../authoring-and-scheduling/language-sdks/go.rst | 99 +-
.../language-sdks/java.rst | 99 +-
.../language-sdks/typescript.rst | 53 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/debug.rst | 2 +-
airflow-core/docs/core-concepts/multi-team.rst | 69 +-
airflow-core/docs/core-concepts/tasks.rst | 27 +-
airflow-core/docs/extra-packages-ref.rst | 2 +-
airflow-core/docs/howto/set-up-database.rst | 4 +-
airflow-core/docs/howto/usage-cli.rst | 10 +-
...iagram_auth_manager_airflow_architecture.md5sum | 2 +-
.../diagram_auth_manager_airflow_architecture.py | 2 +-
.../img/diagram_basic_airflow_architecture.md5sum | 2 +-
.../docs/img/diagram_basic_airflow_architecture.py | 2 +-
...agram_dag_processor_airflow_architecture.md5sum | 2 +-
.../diagram_dag_processor_airflow_architecture.py | 2 +-
...diagram_distributed_airflow_architecture.md5sum | 2 +-
.../diagram_distributed_airflow_architecture.py | 2 +-
.../diagram_multi_team_airflow_architecture.md5sum | 2 +-
.../diagram_multi_team_airflow_architecture.png | Bin 574248 -> 555098
bytes
.../img/diagram_multi_team_airflow_architecture.py | 2 +-
.../img/diagram_task_execution_architecture.md5sum | 2 +-
.../img/diagram_task_execution_architecture.py | 2 +-
.../docs/img/diagram_task_lifecycle.md5sum | 2 +-
airflow-core/docs/img/diagram_task_lifecycle.py | 2 +-
.../docs/installation/installing-from-pypi.rst | 24 +-
airflow-core/docs/installation/prerequisites.rst | 2 +-
airflow-core/docs/migrations-ref.rst | 5 +-
.../vulnerabilities-in-3rd-party-dependencies.rst | 2 +-
airflow-core/docs/start.rst | 6 +-
airflow-core/newsfragments/74151.significant.rst | 17 +
airflow-core/pyproject.toml | 4 +-
airflow-core/src/airflow/api/common/delete_dag.py | 6 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 3 +-
.../auth/managers/simple/ui/package.json | 10 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 332 +--
.../src/airflow/api_fastapi/common/db/dag_runs.py | 33 +-
.../api_fastapi/common/db/task_instances.py | 35 +-
.../airflow/api_fastapi/common/parameters/sort.py | 3 +-
.../api_fastapi/core_api/datamodels/ui/assets.py | 6 +
.../api_fastapi/core_api/datamodels/ui/dags.py | 20 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 131 ++
.../api_fastapi/core_api/routes/public/assets.py | 3 +-
.../core_api/routes/public/dag_stats.py | 3 +-
.../core_api/routes/public/extra_links.py | 42 +-
.../api_fastapi/core_api/routes/public/hitl.py | 61 +-
.../api_fastapi/core_api/routes/public/log.py | 17 +-
.../core_api/routes/public/task_instances.py | 117 +-
.../core_api/routes/public/task_state_store.py | 4 +-
.../api_fastapi/core_api/routes/public/xcom.py | 166 +-
.../api_fastapi/core_api/routes/ui/assets.py | 18 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 3 +
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 112 +-
.../api_fastapi/core_api/routes/ui/gantt.py | 23 +-
.../src/airflow/api_fastapi/core_api/security.py | 6 +-
.../core_api/services/public/dag_run.py | 22 +-
.../core_api/services/public/task_instances.py | 20 +-
.../src/airflow/api_fastapi/execution_api/app.py | 11 +-
.../execution_api/routes/task_instances.py | 100 +-
.../execution_api/routes/task_state_store.py | 2 +-
.../api_fastapi/execution_api/routes/xcoms.py | 140 +-
.../airflow/api_fastapi/execution_api/security.py | 79 +-
.../api_fastapi/execution_api/versions/__init__.py | 4 +-
.../execution_api/versions/v2026_10_30.py | 4 +-
.../src/airflow/api_fastapi/logging/decorators.py | 22 +-
airflow-core/src/airflow/configuration.py | 4 +-
.../src/airflow/dag_processing/collection.py | 4 +-
.../example_dags/example_asset_state_store.py | 4 +-
.../example_dags/example_inlet_event_extra.py | 4 +-
.../example_dags/example_outlet_event_extra.py | 6 +-
.../example_dags/example_task_state_store.py | 4 +-
.../example_task_state_store_mapped.py | 4 +-
.../src/airflow/jobs/scheduler_job_runner.py | 23 +-
.../versions/0000_2_6_2_squashed_migrations.py | 6 +-
...0_replace_deadline_inline_callback_with_fkey.py | 6 +-
.../0128_3_4_0_add_asset_event_id_to_adrq.py | 6 +-
.../0142_3_4_0_unify_task_attempt_ownership.py | 484 +++++
airflow-core/src/airflow/models/__init__.py | 3 -
airflow-core/src/airflow/models/asset.py | 1 +
airflow-core/src/airflow/models/backfill.py | 43 +-
airflow-core/src/airflow/models/dagrun.py | 66 +-
airflow-core/src/airflow/models/hitl_history.py | 91 -
airflow-core/src/airflow/models/log.py | 10 +-
airflow-core/src/airflow/models/pool.py | 3 +-
.../src/airflow/models/renderedtifields.py | 306 ++-
airflow-core/src/airflow/models/revoked_token.py | 4 +-
airflow-core/src/airflow/models/taskinstance.py | 373 +++-
.../src/airflow/models/taskinstancehistory.py | 225 ---
airflow-core/src/airflow/models/trigger.py | 6 +-
airflow-core/src/airflow/models/xcom.py | 501 +++--
airflow-core/src/airflow/plugins_manager.py | 3 +-
airflow-core/src/airflow/providers_manager.py | 36 +-
.../airflow/serialization/definitions/assets.py | 3 +-
.../serialization/definitions/operatorlink.py | 23 +-
.../airflow/serialization/definitions/xcom_arg.py | 28 +-
airflow-core/src/airflow/serialization/enums.py | 9 +-
.../src/airflow/serialization/stub_arg_bindings.py | 3 -
airflow-core/src/airflow/ti_deps/dep_context.py | 10 +
.../ti_deps/deps/not_previously_skipped_dep.py | 157 +-
.../src/airflow/ti_deps/deps/prev_dagrun_dep.py | 4 +
airflow-core/src/airflow/timetables/base.py | 4 +-
airflow-core/src/airflow/typing_compat.py | 10 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 14 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 31 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 31 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 31 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 31 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 52 +
.../ui/openapi-gen/requests/services.gen.ts | 39 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 48 +
airflow-core/src/airflow/ui/package.json | 23 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 771 +++----
.../airflow/ui/public/i18n/locales/ar/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 1 -
.../airflow/ui/public/i18n/locales/ca/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 1 -
.../airflow/ui/public/i18n/locales/de/admin.json | 1 -
.../airflow/ui/public/i18n/locales/de/common.json | 7 +
.../ui/public/i18n/locales/de/components.json | 12 +
.../src/airflow/ui/public/i18n/locales/de/dag.json | 64 +-
.../airflow/ui/public/i18n/locales/de/dags.json | 7 +
.../airflow/ui/public/i18n/locales/el/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/el/dag.json | 1 -
.../airflow/ui/public/i18n/locales/en/admin.json | 2 +-
.../airflow/ui/public/i18n/locales/en/common.json | 7 +
.../src/airflow/ui/public/i18n/locales/en/dag.json | 1 -
.../airflow/ui/public/i18n/locales/en/dags.json | 6 +
.../airflow/ui/public/i18n/locales/es/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/es/dag.json | 1 -
.../airflow/ui/public/i18n/locales/fr/admin.json | 19 +-
.../airflow/ui/public/i18n/locales/fr/assets.json | 14 +-
.../airflow/ui/public/i18n/locales/fr/browse.json | 35 +
.../airflow/ui/public/i18n/locales/fr/common.json | 123 +-
.../ui/public/i18n/locales/fr/components.json | 32 +-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 74 +-
.../airflow/ui/public/i18n/locales/fr/dags.json | 35 +
.../ui/public/i18n/locales/fr/dashboard.json | 18 +-
.../airflow/ui/public/i18n/locales/he/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/he/dag.json | 1 -
.../airflow/ui/public/i18n/locales/hi/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/hi/dag.json | 1 -
.../airflow/ui/public/i18n/locales/hu/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/hu/dag.json | 1 -
.../airflow/ui/public/i18n/locales/it/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ja/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ko/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 1 -
.../airflow/ui/public/i18n/locales/nl/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/nl/dag.json | 1 -
.../airflow/ui/public/i18n/locales/pl/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 1 -
.../airflow/ui/public/i18n/locales/pt/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ru/admin.json | 1 -
.../src/airflow/ui/public/i18n/locales/ru/dag.json | 1 -
.../airflow/ui/public/i18n/locales/th/admin.json | 1 -
.../airflow/ui/public/i18n/locales/tr/admin.json | 1 -
.../ui/public/i18n/locales/zh-CN/admin.json | 1 -
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 1 -
.../ui/public/i18n/locales/zh-TW/admin.json | 1 -
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 1 -
airflow-core/src/airflow/ui/rules/i18n.js | 8 +-
airflow-core/src/airflow/ui/rules/rem.js | 11 +-
.../components/ActionAccordion/ActionAccordion.tsx | 6 +-
.../src/airflow/ui/src/components/AnsiRenderer.tsx | 6 +-
.../src/components/AssetExpression/AssetNode.tsx | 7 +-
.../ui/src/components/AssetProgressCell.tsx | 6 +-
.../ui/src/components/Assets/AssetEvents.tsx | 6 +-
.../ui/src/components/Assets/ListPopover.tsx | 46 +-
.../ui/src/components/Assets/TriggeredRuns.tsx | 6 +-
.../ClearTaskInstanceConfirmationDialog.tsx | 4 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 3 +-
.../DAGWarningsModal.test.tsx} | 26 +-
.../airflow/ui/src/components/DAGWarningsModal.tsx | 4 +
.../components/DagActions/RunBackfillForm.test.tsx | 1 +
.../ui/src/components/DagImportErrorModal.test.tsx | 50 +
.../ui/src/components/DagImportErrorModal.tsx | 25 +-
.../DataTable/DataTable.columnVisibility.test.tsx | 56 +
.../ui/src/components/DataTable/DataTable.tsx | 9 +-
.../airflow/ui/src/components/DateTimeInput.tsx | 7 +-
.../airflow/ui/src/components/DurationChart.tsx | 2 +-
.../airflow/ui/src/components/ErrorModal.test.tsx | 55 +
.../src/airflow/ui/src/components/ErrorModal.tsx | 55 +
.../ui/src/components/FilterBar/FilterBar.tsx | 6 +-
.../FilterBar/filters/DateRangeCalendar.tsx | 10 +-
.../FilterBar/filters/DateRangeInputs.tsx | 5 +-
.../airflow/ui/src/components/FilterBar/utils.ts | 6 +-
.../components/FlexibleForm/FieldMultiSelect.tsx | 9 +-
.../src/components/FlexibleForm/FieldSelector.tsx | 14 +-
.../airflow/ui/src/components/Graph/DagNode.tsx | 2 +-
.../ui/src/components/Graph/SegmentedStateBar.tsx | 8 +-
.../airflow/ui/src/components/Graph/TaskLink.tsx | 6 +-
.../ui/src/components/ImportErrorCount.test.tsx | 45 +
.../airflow/ui/src/components/ImportErrorCount.tsx | 7 +-
.../MonacoEditor/configureMonaco.test.ts | 44 +
.../src/components/MonacoEditor/configureMonaco.ts | 122 +-
.../ui/src/components/MonacoEditor/index.tsx | 12 +-
.../airflow/ui/src/components/NeedsReviewBadge.tsx | 6 +-
.../src/airflow/ui/src/components/PoolBar.test.tsx | 24 +-
.../src/airflow/ui/src/components/PoolBar.tsx | 7 +-
.../ui/src/components/ReactMarkdownBlocks.tsx | 10 +-
.../ui/src/components/RenderedJsonField.tsx | 6 +-
.../ui/src/components/RollupKeyChecklist.tsx | 51 +-
.../ui/src/components/SqlParserProvider.tsx | 6 +-
.../components/StatsCard.test.tsx} | 38 +-
.../src/airflow/ui/src/components/StatsCard.tsx | 7 +-
.../ui/src/components/TaskInstanceTooltip.test.tsx | 30 +-
.../ui/src/components/TaskInstanceTooltip.tsx | 6 +-
.../src/airflow/ui/src/components/TaskName.tsx | 9 +-
.../airflow/ui/src/components/TrendCountButton.tsx | 12 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 2 +-
.../src/airflow/ui/src/constants/localStorage.ts | 1 +
.../ui/src/hooks/navigation/useNavigation.ts | 7 +-
.../src/airflow/ui/src/hooks/useAdvancedSearch.ts | 37 +-
.../airflow/ui/src/hooks/useDagRunsLimit.test.tsx | 76 +
.../useDagRunsLimit.ts} | 44 +-
.../airflow/ui/src/hooks/useUrlOrStoredState.ts | 62 +
.../src/airflow/ui/src/hooks/useUserSettings.ts | 5 +
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 4 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 26 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 12 +-
.../Graph/hooks/useFilteredNodesAndEdges.ts | 5 +-
.../layouts/Details/Graph/useGraphFilteredNodes.ts | 6 +-
.../ui/src/layouts/Details/PanelButtons.test.tsx | 70 +
.../ui/src/layouts/Details/PanelButtons.tsx | 52 +-
.../Details/runLimitConfig.test.ts} | 27 +-
.../ui/src/layouts/Details/runLimitConfig.ts | 43 +
.../src/airflow/ui/src/mocks/handlers/dags.ts | 5 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 6 +-
.../ui/src/pages/AssetsList/DependencyPopover.tsx | 6 +-
.../src/pages/Connections/ConnectionForm.test.tsx | 121 ++
.../ui/src/pages/Connections/ConnectionForm.tsx | 14 +-
.../ui/src/pages/Connections/Connections.tsx | 6 +-
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 22 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 6 +
.../src/pages/Dag/Backfills/BackfillsFilters.tsx | 2 +
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 5 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 25 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 15 +-
.../src/airflow/ui/src/pages/Dag/Details.tsx | 12 +-
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 12 +
.../src/airflow/ui/src/pages/Dag/Header.tsx | 7 +-
.../airflow/ui/src/pages/DagBundle/BundleFiles.tsx | 7 +-
.../src/airflow/ui/src/pages/DagBundle/Header.tsx | 5 +-
.../src/pages/DagRuns/BulkDeleteDagRunsButton.tsx | 5 +-
.../src/pages/DagRuns/BulkMarkDagRunsAsButton.tsx | 5 +-
.../airflow/ui/src/pages/DagRuns/DagRuns.test.tsx | 31 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 12 +-
.../ui/src/pages/DagsList/AssetSchedule.test.tsx | 125 ++
.../ui/src/pages/DagsList/AssetSchedule.tsx | 12 +-
.../pages/DagsList/BulkPauseDrainDagsButton.tsx | 5 +-
.../src/pages/DagsList/BulkUnpauseDagsButton.tsx | 5 +-
.../airflow/ui/src/pages/DagsList/DagCard.test.tsx | 26 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 24 +-
.../src/pages/DagsList/DagRunStateCounts.test.tsx | 13 +-
.../ui/src/pages/DagsList/DagRunStateCounts.tsx | 5 +-
.../ui/src/pages/DagsList/DagsList.test.tsx | 72 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 216 +-
.../ui/src/pages/DagsList/DagsListColumns.tsx | 226 +++
.../pages/DagsList/RecentTaskStateCounts.test.tsx | 110 +
.../src/pages/DagsList/RecentTaskStateCounts.tsx | 128 ++
.../pages/DagsList/RecentTaskStateCountsColumn.tsx | 48 +
.../DagsList/RecentTaskStateCountsHeader.test.tsx | 50 +
.../DagsList/RecentTaskStateCountsHeader.tsx} | 29 +-
.../ui/src/pages/DagsList/Schedule.test.tsx | 58 +
.../src/airflow/ui/src/pages/DagsList/Schedule.tsx | 2 +-
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 3 +-
.../Dashboard/PoolSummary/PoolSummary.test.tsx | 9 +-
.../pages/Dashboard/PoolSummary/PoolSummary.tsx | 2 +-
.../src/pages/Dashboard/Stats/DagImportErrors.tsx | 4 +-
.../pages/Dashboard/Stats/DagImportErrorsModal.tsx | 3 +-
.../pages/Dashboard/Stats/PluginImportErrors.tsx | 4 +-
.../ui/src/pages/Dashboard/Stats/Stats.test.tsx | 5 +-
.../src/airflow/ui/src/pages/Deadlines/index.tsx | 3 +-
.../ui/src/pages/GroupTaskInstance/Header.tsx | 6 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 2 +-
.../src/airflow/ui/src/pages/LandingPage.tsx | 6 +-
.../ui/src/pages/MappedTaskInstance/Details.tsx | 6 +-
.../ui/src/pages/MappedTaskInstance/Header.tsx | 8 +-
.../MappedTaskInstance/MappedTaskInstance.tsx | 10 +-
.../src/airflow/ui/src/pages/Pools/PoolBarCard.tsx | 7 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 15 +-
.../src/airflow/ui/src/pages/Run/AssetEvents.tsx | 4 +-
.../src/airflow/ui/src/pages/Run/Details.tsx | 14 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 19 +-
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 2 +-
.../ui/src/pages/Settings/Settings.test.tsx | 18 +
.../src/airflow/ui/src/pages/Settings/Settings.tsx | 16 +
.../ui/src/pages/TaskInstance/AssetEvents.tsx | 2 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 14 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/logSelection.ts | 16 +-
.../src/pages/TaskInstance/Logs/useLogGroups.tsx | 14 +-
.../ui/src/pages/TaskInstance/Logs/utils.ts | 24 +-
.../src/pages/TaskInstance/TaskInstance.test.tsx | 3 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 23 +-
.../BulkDeleteTaskInstancesButton.tsx | 5 +-
.../BulkMarkTaskInstancesAsButton.tsx | 5 +-
.../src/pages/TaskInstances/TaskInstances.test.tsx | 23 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 17 +-
.../ui/src/pages/TaskStateStore/TaskStateStore.tsx | 2 +-
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 5 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 6 +-
.../airflow/ui/src/pages/XCom/XComEntry.test.tsx | 216 ++
.../src/airflow/ui/src/pages/XCom/XComEntry.tsx | 50 +-
.../ui/src/queries/useDagBundleRefetchInterval.ts | 8 +-
.../ui/src/queries/useDagRunStateCounts.tsx | 3 +-
.../src/airflow/ui/src/queries/useDags.tsx | 17 +-
.../src/airflow/ui/src/queries/useDeadlines.ts | 2 +-
.../src/airflow/ui/src/queries/useLogs.tsx | 7 +-
.../src/airflow/ui/src/queries/useParamStore.ts | 8 +-
.../src/queries/useRecentTaskStateCounts.test.tsx | 64 +
.../ui/src/queries/useRecentTaskStateCounts.tsx | 62 +
.../ui/src/queries/useRefreshOnNewDagRuns.ts | 2 +-
airflow-core/src/airflow/ui/src/queryClient.ts | 8 +-
airflow-core/src/airflow/ui/src/router.tsx | 10 +-
.../ui/src/system-components/Pagination/Item.tsx | 6 +-
.../src/system-components/Pagination/PageText.tsx | 10 +-
.../ui/src/system-components/Select/ValueText.tsx | 11 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 65 +-
.../LandingPage.tsx => utils/formatNumber.test.ts} | 25 +-
.../ImportErrorCount.tsx => utils/formatNumber.ts} | 28 +-
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
airflow-core/src/airflow/ui/src/utils/intlCache.ts | 48 +
.../src/airflow/ui/src/utils/jsonPreview.ts | 16 +-
airflow-core/src/airflow/ui/src/utils/links.ts | 21 +-
airflow-core/src/airflow/ui/src/utils/logs.ts | 8 +-
.../src/airflow/ui/src/utils/pluginAppliesTo.ts | 15 +-
airflow-core/src/airflow/ui/src/utils/query.ts | 6 +-
airflow-core/src/airflow/ui/src/utils/tab.ts | 6 +-
airflow-core/src/airflow/ui/src/vite-env.d.ts | 23 +-
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 26 +-
.../airflow/ui/tests/e2e/pages/ConnectionsPage.ts | 26 +-
.../src/airflow/ui/tests/e2e/pages/DagsPage.ts | 8 +-
.../src/airflow/ui/tests/e2e/pages/EventsPage.ts | 6 +-
.../airflow/ui/tests/e2e/specs/dag-tasks.spec.ts | 8 +-
.../src/airflow/ui/tests/e2e/utils/shared.ts | 6 +-
airflow-core/src/airflow/utils/db.py | 4 +-
airflow-core/src/airflow/utils/db_cleanup.py | 205 +-
.../src/airflow/utils/log/file_task_handler.py | 24 +-
airflow-core/src/airflow/utils/log/log_reader.py | 11 +-
.../tests/unit/always/test_providers_manager.py | 68 +-
.../tests/unit/api/common/test_delete_dag.py | 47 +-
.../tests/unit/api/common/test_trigger_dag.py | 4 +-
.../tests/unit/api_fastapi/common/db/test_dags.py | 10 +-
.../tests/unit/api_fastapi/common/test_cursors.py | 6 +-
.../unit/api_fastapi/common/test_parameters.py | 19 +-
airflow-core/tests/unit/api_fastapi/conftest.py | 2 +-
.../core_api/datamodels/test_dag_run.py | 6 +-
.../api_fastapi/core_api/datamodels/test_dags.py | 4 +-
.../core_api/routes/public/test_dag_bundles.py | 8 +-
.../core_api/routes/public/test_dag_run.py | 1 +
.../core_api/routes/public/test_dag_tags.py | 16 +-
.../core_api/routes/public/test_dags.py | 38 +-
.../core_api/routes/public/test_event_logs.py | 4 +-
.../core_api/routes/public/test_extra_links.py | 7 +-
.../core_api/routes/public/test_hitl.py | 76 +-
.../core_api/routes/public/test_import_error.py | 8 +-
.../api_fastapi/core_api/routes/public/test_job.py | 6 +-
.../core_api/routes/public/test_task_instances.py | 255 ++-
.../core_api/routes/public/test_xcom.py | 85 +-
.../api_fastapi/core_api/routes/ui/test_assets.py | 34 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 214 +-
.../core_api/routes/ui/test_dashboard.py | 20 +
.../unit/api_fastapi/execution_api/test_app.py | 18 +-
.../api_fastapi/execution_api/test_security.py | 352 +++-
.../execution_api/versions/head/test_dags.py | 4 +-
.../versions/head/test_task_instances.py | 185 +-
.../versions/head/test_task_state_store.py | 18 +
.../execution_api/versions/head/test_xcoms.py | 281 +--
.../versions/v2025_04_28/test_xcom.py | 10 +-
.../versions/v2026_10_30/test_task_instances.py | 49 +
.../unit/api_fastapi/logging/test_decorators.py | 52 +
.../lang_sdk_fixtures/go_native.json | 1680 ++++++++++++++++
.../tests/unit/dag_processing/test_dagbag.py | 9 +-
.../unit/dag_processing/test_lang_sdk_processor.py | 20 +-
.../tests/unit/executors/test_local_executor.py | 15 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 214 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 5 +-
.../test_0142_unify_task_attempt_ownership.py | 691 +++++++
airflow-core/tests/unit/models/test_asset.py | 32 +
airflow-core/tests/unit/models/test_cleartasks.py | 269 ++-
airflow-core/tests/unit/models/test_dag.py | 39 +-
airflow-core/tests/unit/models/test_dag_version.py | 4 +-
airflow-core/tests/unit/models/test_dagrun.py | 103 +-
airflow-core/tests/unit/models/test_log.py | 48 +
.../tests/unit/models/test_mappedoperator.py | 184 +-
airflow-core/tests/unit/models/test_pool.py | 19 +-
.../tests/unit/models/test_renderedtifields.py | 114 +-
.../tests/unit/models/test_revoked_token.py | 4 +-
airflow-core/tests/unit/models/test_task_data.py | 592 ++++++
.../tests/unit/models/test_taskinstance.py | 527 ++++-
airflow-core/tests/unit/models/test_trigger.py | 47 +-
airflow-core/tests/unit/models/test_xcom.py | 97 +-
.../tests/unit/partition_mappers/test_base.py | 4 +-
.../tests/unit/partition_mappers/test_chain.py | 4 +-
.../tests/unit/partition_mappers/test_identity.py | 4 +-
.../tests/unit/partition_mappers/test_product.py | 6 +-
.../tests/unit/partition_mappers/test_temporal.py | 12 +-
.../tests/unit/plugins/test_plugins_manager.py | 75 +
.../unit/serialization/test_dag_serialization.py | 4 +-
.../unit/serialization/test_dag_version_diff.py | 18 +-
.../tests/unit/serialization/test_encoders.py | 2 +-
.../deps/test_not_previously_skipped_dep.py | 336 +++-
airflow-core/tests/unit/utils/test_db_cleanup.py | 379 +++-
airflow-core/tests/unit/utils/test_log_handlers.py | 36 +-
airflow-ctl-tests/pyproject.toml | 3 +-
.../tests/airflowctl_tests/constants.py | 2 +-
airflow-ctl/README.md | 2 +-
airflow-ctl/docs/installation/prerequisites.rst | 4 +-
airflow-ctl/pyproject.toml | 6 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 2 +-
.../tests/airflow_ctl/api/test_operations.py | 10 +-
.../airflow_ctl/ctl/commands/test_dag_command.py | 2 +-
.../airflow_ctl/ctl/commands/test_task_command.py | 10 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 15 +-
airflow-e2e-tests/pyproject.toml | 3 +-
.../basic_tests/test_basic_dag_operations.py | 4 +-
.../tests/airflow_e2e_tests/conftest.py | 7 +
.../tests/airflow_e2e_tests/constants.py | 5 +-
.../e2e_test_utils/base_remote_log_search_test.py | 6 +-
.../airflow_e2e_tests/e2e_test_utils/clients.py | 11 +-
.../go_sdk_tests/test_go_sdk_concurrent_xcom.py | 4 +-
.../go_sdk_tests/test_go_sdk_dag.py | 4 +-
.../go_sdk_tests/test_go_sdk_task_state.py | 114 ++
.../go_sdk_tests/test_go_sdk_taskflow_binding.py | 4 +-
.../go_sdk_tests/test_go_sdk_variable_write.py | 4 +-
.../java_sdk_tests/test_java_sdk_dag.py | 4 +-
.../airflow_e2e_tests/openlineage_tests/harness.py | 4 +-
.../remote_log_tests/test_remote_logging.py | 4 +-
.../ts_sdk_tests/test_ts_sdk_dag.py | 4 +-
.../test_xcom_object_storage_backend.py | 4 +-
chart/pyproject.toml | 4 +-
clients/python/pyproject.toml | 6 +-
clients/python/test_python_client.py | 2 +-
constraints/README.md | 6 +-
contributing-docs/03_contributors_quick_start.rst | 40 +-
contributing-docs/05_pull_requests.rst | 2 +-
contributing-docs/07_local_virtualenv.rst | 8 +-
contributing-docs/08_static_code_checks.rst | 2 +-
.../13_airflow_dependencies_and_extras.rst | 8 +-
...agram_coordinator_execution_architecture.md5sum | 2 +-
.../diagram_coordinator_execution_architecture.py | 2 +-
.../diagram_coordinator_execution_sequence.md5sum | 2 +-
.../diagram_coordinator_execution_sequence.png | Bin 219883 -> 200865
bytes
.../diagram_coordinator_execution_sequence.py | 2 +-
.../diagram_task_sdk_execution_architecture.md5sum | 2 +-
.../diagram_task_sdk_execution_architecture.py | 2 +-
.../diagram_task_sdk_execution_sequence.md5sum | 2 +-
.../images/diagram_task_sdk_execution_sequence.py | 2 +-
contributing-docs/testing/docker_compose_tests.rst | 8 +-
contributing-docs/testing/k8s_tests.rst | 86 +-
.../testing/task_sdk_integration_tests.rst | 4 +-
contributing-docs/testing/unit_tests.rst | 14 +-
dev/README_RELEASE_AIRFLOW.md | 58 +-
dev/README_RELEASE_PROVIDERS.md | 32 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 8 +-
dev/airflow-github | 2 +-
dev/breeze/doc/01_installation.rst | 8 +-
dev/breeze/doc/03_developer_tasks.rst | 16 +-
dev/breeze/doc/04_troubleshooting.rst | 8 +-
dev/breeze/doc/05_test_commands.rst | 12 +-
dev/breeze/doc/06_managing_docker_images.rst | 8 +-
dev/breeze/doc/09_release_management_tasks.rst | 6 +-
dev/breeze/doc/14_advanced_breeze_topics.rst | 2 +-
dev/breeze/doc/ci/02_images.md | 58 +-
dev/breeze/doc/ci/03_github_variables.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 12 +-
dev/breeze/doc/ci/07_running_ci_locally.md | 4 +-
dev/breeze/doc/images/output-commands.svg | 192 +-
dev/breeze/doc/images/output_ci-image_build.svg | 4 +-
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
dev/breeze/doc/images/output_ci-image_load.svg | 4 +-
dev/breeze/doc/images/output_ci-image_load.txt | 2 +-
dev/breeze/doc/images/output_ci-image_pull.svg | 6 +-
dev/breeze/doc/images/output_ci-image_pull.txt | 2 +-
dev/breeze/doc/images/output_ci-image_save.svg | 4 +-
dev/breeze/doc/images/output_ci-image_save.txt | 2 +-
dev/breeze/doc/images/output_ci-image_verify.svg | 6 +-
dev/breeze/doc/images/output_ci-image_verify.txt | 2 +-
.../doc/images/output_k8s_build-k8s-image.svg | 4 +-
.../doc/images/output_k8s_build-k8s-image.txt | 2 +-
.../doc/images/output_k8s_configure-cluster.svg | 6 +-
.../doc/images/output_k8s_configure-cluster.txt | 2 +-
.../doc/images/output_k8s_create-cluster.svg | 6 +-
.../doc/images/output_k8s_create-cluster.txt | 2 +-
.../doc/images/output_k8s_delete-cluster.svg | 4 +-
.../doc/images/output_k8s_delete-cluster.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 6 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
.../doc/images/output_k8s_deploy-cluster.svg | 4 +-
.../doc/images/output_k8s_deploy-cluster.txt | 2 +-
dev/breeze/doc/images/output_k8s_dev.svg | 4 +-
dev/breeze/doc/images/output_k8s_dev.txt | 2 +-
dev/breeze/doc/images/output_k8s_k9s.svg | 4 +-
dev/breeze/doc/images/output_k8s_k9s.txt | 2 +-
dev/breeze/doc/images/output_k8s_logs.svg | 4 +-
dev/breeze/doc/images/output_k8s_logs.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 6 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
.../doc/images/output_k8s_setup-lang-sdk-test.svg | 4 +-
.../doc/images/output_k8s_setup-lang-sdk-test.txt | 2 +-
dev/breeze/doc/images/output_k8s_shell.svg | 4 +-
dev/breeze/doc/images/output_k8s_shell.txt | 2 +-
.../doc/images/output_k8s_smoke-test-overlay.svg | 4 +-
.../doc/images/output_k8s_smoke-test-overlay.txt | 2 +-
dev/breeze/doc/images/output_k8s_status.svg | 4 +-
dev/breeze/doc/images/output_k8s_status.txt | 2 +-
dev/breeze/doc/images/output_k8s_tests.svg | 6 +-
dev/breeze/doc/images/output_k8s_tests.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 6 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 6 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
dev/breeze/doc/images/output_prod-image_load.svg | 4 +-
dev/breeze/doc/images/output_prod-image_load.txt | 2 +-
dev/breeze/doc/images/output_prod-image_pull.svg | 6 +-
dev/breeze/doc/images/output_prod-image_pull.txt | 2 +-
dev/breeze/doc/images/output_prod-image_save.svg | 4 +-
dev/breeze/doc/images/output_prod-image_save.txt | 2 +-
dev/breeze/doc/images/output_prod-image_verify.svg | 6 +-
dev/breeze/doc/images/output_prod-image_verify.txt | 2 +-
dev/breeze/doc/images/output_registry_backfill.svg | 4 +-
dev/breeze/doc/images/output_registry_backfill.txt | 2 +-
.../doc/images/output_registry_extract-data.svg | 4 +-
.../doc/images/output_registry_extract-data.txt | 2 +-
...elease-management_constraints-version-check.svg | 4 +-
...elease-management_constraints-version-check.txt | 2 +-
...put_release-management_generate-constraints.svg | 8 +-
...put_release-management_generate-constraints.txt | 2 +-
...e-management_install-provider-distributions.svg | 4 +-
...e-management_install-provider-distributions.txt | 2 +-
...output_release-management_merge-prod-images.svg | 2 +-
...output_release-management_merge-prod-images.txt | 2 +-
...tput_release-management_release-prod-images.svg | 2 +-
...tput_release-management_release-prod-images.txt | 2 +-
...se-management_verify-provider-distributions.svg | 4 +-
...se-management_verify-provider-distributions.txt | 2 +-
dev/breeze/doc/images/output_run.svg | 4 +-
dev/breeze/doc/images/output_run.txt | 2 +-
.../output_sbom_export-dependency-information.svg | 4 +-
.../output_sbom_export-dependency-information.txt | 2 +-
dev/breeze/doc/images/output_setup_config.svg | 4 +-
dev/breeze/doc/images/output_setup_config.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 322 ++-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 278 ++-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
...utput_testing_airflow-ctl-integration-tests.svg | 4 +-
...utput_testing_airflow-ctl-integration-tests.txt | 2 +-
.../images/output_testing_airflow-ctl-tests.svg | 4 +-
.../images/output_testing_airflow-ctl-tests.txt | 2 +-
.../images/output_testing_airflow-e2e-tests.svg | 4 +-
.../images/output_testing_airflow-e2e-tests.txt | 2 +-
.../output_testing_core-integration-tests.svg | 2 +-
.../output_testing_core-integration-tests.txt | 2 +-
.../doc/images/output_testing_core-tests.svg | 2 +-
.../doc/images/output_testing_core-tests.txt | 2 +-
.../images/output_testing_docker-compose-tests.svg | 4 +-
.../images/output_testing_docker-compose-tests.txt | 2 +-
.../output_testing_providers-integration-tests.svg | 2 +-
.../output_testing_providers-integration-tests.txt | 2 +-
.../doc/images/output_testing_providers-tests.svg | 2 +-
.../doc/images/output_testing_providers-tests.txt | 2 +-
.../output_testing_python-api-client-tests.svg | 2 +-
.../output_testing_python-api-client-tests.txt | 2 +-
.../doc/images/output_testing_system-tests.svg | 2 +-
.../doc/images/output_testing_system-tests.txt | 2 +-
.../output_testing_task-sdk-integration-tests.svg | 4 +-
.../output_testing_task-sdk-integration-tests.txt | 2 +-
.../doc/images/output_testing_task-sdk-tests.svg | 2 +-
.../doc/images/output_testing_task-sdk-tests.txt | 2 +-
.../doc/images/output_testing_ui-e2e-tests.svg | 4 +-
.../doc/images/output_testing_ui-e2e-tests.txt | 2 +-
dev/breeze/pyproject.toml | 6 +-
.../airflow_breeze/commands/ci_image_commands.py | 2 +-
.../commands/minor_release_command.py | 2 +-
.../airflow_breeze/commands/registry_commands.py | 6 +-
.../airflow_breeze/commands/workflow_commands.py | 23 +-
dev/breeze/src/airflow_breeze/global_constants.py | 31 +-
.../airflow_breeze/params/common_build_params.py | 2 +-
.../airflow_breeze/utils/check_release_files.py | 14 +-
.../src/airflow_breeze/utils/gh_workflow_utils.py | 16 +
dev/breeze/src/airflow_breeze/utils/github.py | 6 +-
.../src/airflow_breeze/utils/kubernetes_utils.py | 6 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 7 +-
dev/breeze/src/airflow_breeze/utils/parallel.py | 4 +-
.../airflow_breeze/utils/provider_dependencies.py | 10 -
.../src/airflow_breeze/utils/selective_checks.py | 11 +-
.../src/airflow_breeze/utils/verification_plan.py | 5 +-
.../src/airflow_breeze/utils/workflow_status.py | 2 +-
dev/breeze/tests/test_cache.py | 2 +-
dev/breeze/tests/test_ci_image_commands.py | 4 +-
dev/breeze/tests/test_docker_command_utils.py | 2 +-
dev/breeze/tests/test_gh_workflow_utils.py | 31 +
.../tests/test_kubernetes_lang_sdk_commands.py | 4 +-
dev/breeze/tests/test_packages.py | 23 +-
.../tests/test_release_management_commands.py | 2 +-
dev/breeze/tests/test_reproduce_ci.py | 4 +-
dev/breeze/tests/test_sbom_commands.py | 6 +-
dev/breeze/tests/test_set_milestone.py | 40 +-
dev/breeze/tests/test_shell_params.py | 16 +-
dev/breeze/tests/test_workflow_commands.py | 57 +-
dev/breeze/uv.lock | 302 +--
dev/close_prs_over_open_pr_limit.py | 2 +-
dev/ide_setup/setup_idea.py | 2 +-
dev/ide_setup/setup_vscode.py | 2 +-
dev/mypy/pyproject.toml | 4 +-
dev/provider_db_inventory.py | 2 +-
dev/prune_old_dirs.py | 2 +-
dev/pyproject.toml | 3 +-
dev/refresh_images.sh | 4 +-
dev/registry/extract_connections.py | 4 +-
dev/registry/extract_metadata.py | 28 +-
dev/registry/extract_parameters.py | 50 +-
dev/registry/extract_versions.py | 100 +-
dev/registry/pyproject.toml | 6 +-
dev/registry/registry_contract_models.py | 37 +
dev/registry/registry_tools/docs_guides.py | 186 ++
dev/registry/registry_tools/uri_schemes.py | 98 +
dev/registry/tests/test_docs_guides.py | 369 ++++
dev/registry/tests/test_extract_metadata.py | 122 +-
dev/registry/tests/test_extract_parameters.py | 107 +-
dev/registry/tests/test_extract_versions.py | 251 ++-
dev/registry/tests/test_merge_registry_data.py | 2 +-
.../tests/test_registry_contract_models.py | 11 +-
dev/registry/tests/test_uri_schemes.py | 128 ++
dev/retag_docker_images.py | 2 +-
dev/sync_fork.sh | 2 +-
.../src/sphinx_exts/docs_build/package_filter.py | 5 +-
devel-common/src/tests_common/pytest_plugin.py | 20 +-
.../src/tests_common/test_utils/asserts.py | 69 +-
.../tests_common/test_utils/attempt_ownership.py | 159 ++
devel-common/src/tests_common/test_utils/db.py | 12 +-
.../src/tests_common/test_utils/mapping.py | 20 +-
.../src/tests_common/test_utils/taskinstance.py | 14 +
.../tests/unit/tests_common/test_dag_maker.py | 13 +-
docker-stack-docs/build.rst | 14 +-
docker-stack-docs/changelog.rst | 3 +
.../restricted/restricted_environments.sh | 12 +-
docker-stack-docs/entrypoint.rst | 14 +-
docker-stack-docs/pyproject.toml | 4 +-
docker-tests/pyproject.toml | 3 +-
docker-tests/tests/docker_tests/constants.py | 2 +-
docker-tests/tests/docker_tests/docker_utils.py | 4 +-
docker-tests/tests/docker_tests/test_prod_image.py | 9 +-
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 2 +-
generated/provider_metadata.json | 10 +
go-sdk/Justfile | 2 +-
go-sdk/README.md | 65 +-
go-sdk/adr/0008-native-dag-interface.md | 30 +-
go-sdk/airflow/bundle.go | 14 +-
go-sdk/airflow/conformance_test.go | 349 ++++
go-sdk/airflow/dag.go | 307 ++-
go-sdk/airflow/enums.go | 11 +-
go-sdk/airflow/export_test.go | 42 +
go-sdk/airflow/if.go | 54 +-
go-sdk/airflow/if_test.go | 91 +-
go-sdk/airflow/inputs.go | 267 ++-
go-sdk/airflow/inputs_test.go | 284 ++-
go-sdk/airflow/node.go | 172 +-
go-sdk/airflow/node_test.go | 11 +-
go-sdk/airflow/serialize.go | 744 +++++++
go-sdk/airflow/serialize_test.go | 1135 +++++++++++
go-sdk/airflow/spec.gen.go | 54 +-
go-sdk/airflow/spec.go | 10 +-
go-sdk/airflow/spec_fields.gen.go | 82 +
go-sdk/airflow/switch.go | 253 +++
go-sdk/airflow/switch_test.go | 583 ++++++
go-sdk/airflow/task_group.go | 589 ++++++
go-sdk/airflow/task_group_test.go | 1377 +++++++++++++
go-sdk/airflow/task_option.go | 12 +-
go-sdk/airflow/trigger_dag_run.go | 85 +-
go-sdk/airflow/trigger_dag_run_test.go | 86 +-
go-sdk/capabilities.yaml | 4 +-
.../cmd/airflow-go-pack/pack_integration_test.go | 3 +
go-sdk/dags/go_examples.py | 19 +-
.../bundle/concurrentxcom/concurrentxcom_test.go | 4 +
go-sdk/example/bundle/main.go | 3 +
go-sdk/example/bundle/taskstate/taskstate.go | 99 +
go-sdk/internal/bundle/task.go | 75 +-
go-sdk/internal/bundle/task_test.go | 85 +-
go-sdk/internal/genspec/authoring.go | 76 +-
go-sdk/internal/genspec/authoring_test.go | 47 +-
go-sdk/internal/genspec/fields.go | 169 ++
go-sdk/internal/genspec/fields_test.go | 126 ++
go-sdk/internal/genspec/main.go | 48 +-
go-sdk/internal/genspec/normalize.go | 14 +-
go-sdk/internal/genspec/normalize_test.go | 33 +-
go-sdk/pkg/binding/binding.go | 7 +
go-sdk/pkg/binding/binding_test.go | 20 +
go-sdk/pkg/execution/client.go | 309 ++-
go-sdk/pkg/execution/client_test.go | 640 +++++-
go-sdk/pkg/execution/frames.go | 14 +-
go-sdk/pkg/execution/integration_test.go | 387 +++-
go-sdk/pkg/execution/task_runner.go | 66 +-
go-sdk/sdk/doc.go | 8 +-
go-sdk/sdk/errors.go | 6 +
go-sdk/sdk/sdk.go | 89 +-
java-sdk/README.md | 10 +-
java-sdk/adr/0002-native-dag-interface.md | 7 +-
java-sdk/capabilities.yaml | 14 +-
.../example/nativedag/AnnotationExample.java | 17 +-
.../apache/airflow/sdk/plugin/AirflowSdkPlugin.kt | 10 +-
.../apache/airflow/sdk/plugin/PackDagSources.kt | 62 +-
.../airflow/sdk/plugin/AirflowSdkPluginTest.kt | 23 +
.../org/apache/airflow/sdk/BuilderProcessor.kt | 452 ++++-
.../kotlin/org/apache/airflow/sdk/BuilderTest.kt | 819 +++++++-
.../ci/prek/check_serialization_conformance.py | 24 +-
java-sdk/sdk/build.gradle.kts | 73 +-
java-sdk/sdk/module.md | 10 +-
.../main/kotlin/org/apache/airflow/sdk/Bundle.kt | 38 +-
.../main/kotlin/org/apache/airflow/sdk/Client.kt | 128 ++
.../main/kotlin/org/apache/airflow/sdk/DagDef.kt | 125 ++
.../src/main/kotlin/org/apache/airflow/sdk/Deps.kt | 106 +-
.../main/kotlin/org/apache/airflow/sdk/Server.kt | 6 +
.../kotlin/org/apache/airflow/sdk/TaskGroupRef.kt | 128 ++
.../org/apache/airflow/sdk/execution/Client.kt | 74 +
.../org/apache/airflow/sdk/execution/Comm.kt | 16 +
.../org/apache/airflow/sdk/execution/Frame.kt | 3 +-
.../org/apache/airflow/sdk/execution/Serde.kt | 262 ++-
.../org/apache/airflow/sdk/internal/ArgValues.kt | 24 +-
.../kotlin/org/apache/airflow/sdk/internal/Refs.kt | 98 +-
.../org/apache/airflow/sdk/internal/Registrar.kt | 23 +
.../org/apache/airflow/sdk/internal/TaskArgs.kt | 2 +-
.../org/apache/airflow/sdk/ArgTestSupport.kt | 22 +
.../kotlin/org/apache/airflow/sdk/BundleTest.kt | 87 +-
.../kotlin/org/apache/airflow/sdk/ClientTest.kt | 184 +-
.../kotlin/org/apache/airflow/sdk/TaskGroupTest.kt | 256 +++
.../airflow/sdk/conformance/SerializeJava.kt | 119 ++
.../org/apache/airflow/sdk/execution/CommTest.kt | 124 +-
.../org/apache/airflow/sdk/execution/SerdeTest.kt | 176 +-
.../org/apache/airflow/sdk/execution/TaskTest.kt | 19 +
.../apache/airflow/sdk/internal/ArgValuesTest.kt | 22 +
.../org/apache/airflow/sdk/internal/RefsTest.kt | 92 +
.../apache/airflow/sdk/internal/RegistrarTest.kt | 23 +-
.../airflow/k8sexample/K8sBundleBuilder.java | 17 +-
.../airflow/k8sexample/MixedLanguageExample.java | 5 +-
kubernetes-tests/pyproject.toml | 3 +-
.../tests/kubernetes_tests/test_base.py | 6 +-
performance/pyproject.toml | 2 +-
providers-summary-docs/installing-from-pypi.rst | 2 +-
providers-summary-docs/pyproject.toml | 4 +-
providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 10 +-
providers/airbyte/README.rst | 2 +-
providers/airbyte/pyproject.toml | 3 +-
providers/akeyless/README.rst | 2 +-
providers/akeyless/pyproject.toml | 3 +-
providers/alibaba/README.rst | 2 +-
providers/alibaba/pyproject.toml | 3 +-
providers/amazon/README.rst | 2 +-
providers/amazon/docs/bundles/index.rst | 5 +
providers/amazon/docs/changelog.rst | 6 +
providers/amazon/docs/executors/general.rst | 6 +-
.../amazon/docs/executors/lambda-executor.rst | 20 +
providers/amazon/docs/operators/duckdb.rst | 12 +
providers/amazon/docs/operators/step_functions.rst | 11 +
providers/amazon/pyproject.toml | 5 +-
.../src/airflow/providers/amazon/aws/bundles/s3.py | 6 +-
.../src/airflow/providers/amazon/aws/exceptions.py | 4 +
.../aws/executors/aws_lambda/docker/Dockerfile | 4 +
.../amazon/aws/executors/aws_lambda/docker/app.py | 7 +
.../amazon/aws/log/cloudwatch_task_handler.py | 8 +-
.../airflow/providers/amazon/aws/operators/eks.py | 2 +-
.../amazon/aws/operators/step_function.py | 5 +-
.../airflow/providers/amazon/aws/utils/__init__.py | 4 +-
.../providers/amazon/aws/utils/eks_get_token.py | 4 +-
.../airflow/providers/amazon/aws/utils/mixins.py | 4 +-
.../providers/amazon/aws/utils/task_log_fetcher.py | 6 +-
.../amazon/aws/utils/waiter_with_logging.py | 24 +-
.../amazon/aws/tests/test_lambda_executor_dlq.py | 4 +-
.../tests/unit/amazon/aws/bundles/test_s3.py | 33 +
.../aws/executors/batch/test_batch_executor.py | 17 +-
.../amazon/aws/executors/ecs/test_ecs_executor.py | 15 +-
.../utils/test_exponential_backoff_retry.py | 20 +-
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 6 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 6 +-
.../tests/unit/amazon/aws/hooks/test_sagemaker.py | 4 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 4 +-
.../tests/unit/amazon/aws/operators/test_ecs.py | 26 -
.../amazon/aws/operators/test_neptune_analytics.py | 6 -
.../amazon/aws/operators/test_step_function.py | 51 +
.../unit/amazon/aws/transfers/test_mongo_to_s3.py | 10 -
.../tests/unit/amazon/aws/triggers/test_eks.py | 2 +-
.../tests/unit/amazon/aws/triggers/test_kinesis.py | 4 +-
.../tests/unit/amazon/aws/utils/test_utils.py | 2 +-
.../amazon/aws/utils/test_waiter_with_logging.py | 135 +-
providers/anthropic/README.rst | 2 +-
providers/anthropic/pyproject.toml | 3 +-
providers/apache/arrow/README.rst | 2 +-
providers/apache/arrow/pyproject.toml | 3 +-
providers/apache/beam/README.rst | 5 +-
providers/apache/beam/docs/index.rst | 3 +-
providers/apache/beam/pyproject.toml | 6 +-
providers/apache/cassandra/README.rst | 2 +-
providers/apache/cassandra/pyproject.toml | 3 +-
providers/apache/drill/README.rst | 2 +-
providers/apache/drill/pyproject.toml | 3 +-
providers/apache/druid/README.rst | 2 +-
providers/apache/druid/pyproject.toml | 3 +-
providers/apache/flink/README.rst | 2 +-
providers/apache/flink/pyproject.toml | 3 +-
providers/apache/hdfs/README.rst | 2 +-
providers/apache/hdfs/pyproject.toml | 3 +-
providers/apache/hive/README.rst | 2 +-
providers/apache/hive/pyproject.toml | 3 +-
.../airflow/providers/apache/hive/hooks/hive.py | 3 +-
providers/apache/iceberg/README.rst | 2 +-
providers/apache/iceberg/pyproject.toml | 3 +-
providers/apache/impala/README.rst | 2 +-
providers/apache/impala/pyproject.toml | 3 +-
providers/apache/kafka/README.rst | 2 +-
providers/apache/kafka/pyproject.toml | 3 +-
.../apache/kafka/plugins/event_producer.py | 4 +-
.../tests/unit/apache/kafka/hooks/test_consume.py | 9 +-
.../tests/unit/apache/kafka/hooks/test_produce.py | 9 +-
providers/apache/kylin/README.rst | 2 +-
providers/apache/kylin/pyproject.toml | 3 +-
providers/apache/livy/README.rst | 2 +-
providers/apache/livy/pyproject.toml | 3 +-
.../airflow/providers/apache/livy/triggers/livy.py | 8 +-
.../livy/tests/unit/apache/livy/hooks/test_livy.py | 5 -
providers/apache/pig/README.rst | 2 +-
providers/apache/pig/pyproject.toml | 3 +-
providers/apache/pinot/README.rst | 2 +-
providers/apache/pinot/pyproject.toml | 3 +-
providers/apache/spark/README.rst | 2 +-
providers/apache/spark/pyproject.toml | 3 +-
providers/apache/tinkerpop/README.rst | 2 +-
providers/apache/tinkerpop/pyproject.toml | 3 +-
providers/apprise/README.rst | 2 +-
providers/apprise/pyproject.toml | 3 +-
providers/arangodb/README.rst | 2 +-
providers/arangodb/pyproject.toml | 3 +-
providers/asana/README.rst | 2 +-
providers/asana/pyproject.toml | 3 +-
providers/atlassian/jira/README.rst | 2 +-
providers/atlassian/jira/pyproject.toml | 3 +-
providers/celery/README.rst | 2 +-
providers/celery/pyproject.toml | 3 +-
providers/clickhousedb/README.rst | 2 +-
providers/clickhousedb/pyproject.toml | 3 +-
.../unit/clickhousedb/hooks/test_clickhouse.py | 3 -
providers/cloudant/README.rst | 2 +-
providers/cloudant/pyproject.toml | 3 +-
providers/cncf/kubernetes/README.rst | 2 +-
providers/cncf/kubernetes/pyproject.toml | 3 +-
.../kubernetes/executors/kubernetes_executor.py | 25 +-
.../executors/kubernetes_executor_types.py | 1 +
.../executors/kubernetes_executor_utils.py | 2 +
.../cncf/kubernetes/kubernetes_helper_functions.py | 6 +-
.../providers/cncf/kubernetes/operators/pod.py | 6 +-
.../cncf/kubernetes/operators/spark_kubernetes.py | 4 +-
.../providers/cncf/kubernetes/triggers/pod.py | 6 +-
.../executors/test_kubernetes_executor.py | 29 +
.../kubernetes/log_handlers/test_log_handlers.py | 9 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 32 +-
.../cncf/kubernetes/test_template_rendering.py | 11 +-
.../unit/cncf/kubernetes/triggers/test_pod.py | 4 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 4 +-
providers/cohere/README.rst | 2 +-
providers/cohere/pyproject.toml | 3 +-
providers/common/ai/README.rst | 2 +-
providers/common/ai/docs/approval_gates.rst | 4 +-
providers/common/ai/docs/capabilities.rst | 6 +-
providers/common/ai/docs/changelog.rst | 10 +
providers/common/ai/docs/code_mode.rst | 32 +-
providers/common/ai/docs/concepts.rst | 2 +-
.../{classifier_models.rst => decision_models.rst} | 158 +-
providers/common/ai/docs/examples.rst | 6 +-
providers/common/ai/docs/features.rst | 4 +-
providers/common/ai/docs/index.rst | 5 +-
providers/common/ai/docs/installation.rst | 12 +-
providers/common/ai/docs/model_providers.rst | 27 +-
providers/common/ai/docs/operators/agent.rst | 10 +-
providers/common/ai/docs/operators/llm_branch.rst | 18 +-
.../common/ai/docs/operators/llm_file_analysis.rst | 4 +-
.../ai/docs/operators/llm_schema_compare.rst | 4 +-
providers/common/ai/docs/operators/llm_sql.rst | 4 +-
providers/common/ai/docs/redirects.txt | 1 +
providers/common/ai/docs/retry_policies.rst | 114 +-
providers/common/ai/docs/sandbox/backends.rst | 14 +-
providers/common/ai/docs/sandbox/configuration.rst | 8 +-
providers/common/ai/docs/sandbox/index.rst | 431 ++--
providers/common/ai/docs/self_hosted_models.rst | 3 +
providers/common/ai/docs/stability.rst | 6 +-
providers/common/ai/docs/tool_approval.rst | 8 +-
providers/common/ai/docs/toolsets/datafusion.rst | 50 +
providers/common/ai/docs/toolsets/hook.rst | 57 +-
.../common/ai/docs/toolsets/object_storage.rst | 38 +
providers/common/ai/docs/toolsets/skills.rst | 38 +
providers/common/ai/docs/toolsets/sql.rst | 97 +
providers/common/ai/docs/troubleshooting.rst | 10 +-
providers/common/ai/docs/use_cases/index.rst | 3 +-
.../ai/docs/use_cases/route_pipeline_failures.rst | 25 +-
providers/common/ai/pyproject.toml | 19 +-
.../src/airflow/providers/common/ai/batch/base.py | 4 +-
.../airflow/providers/common/ai/batch/polling.py | 4 +-
.../providers/common/ai/durable/fingerprint.py | 36 +-
.../common/ai/example_dags/example_agent.py | 9 +-
.../common/ai/example_dags/example_agent_skills.py | 29 +
.../example_dags/example_aip_progress_tracker.py | 64 +-
.../ai/example_dags/example_datafusion_toolset.py | 72 +
...assifier_model.py => example_decision_model.py} | 79 +-
.../common/ai/example_dags/example_hook_toolset.py | 57 +
.../example_dags/example_langchain_tool_agent.py | 2 +-
.../common/ai/example_dags/example_llm_branch.py | 5 +-
.../ai/example_dags/example_llm_retry_policy.py | 22 +-
.../example_dags/example_object_storage_toolset.py | 35 +
.../ai/example_dags/example_sandbox_toolset.py | 12 +-
.../common/ai/example_dags/example_sql_toolset.py | 65 +
.../airflow/providers/common/ai/operators/agent.py | 78 +-
.../airflow/providers/common/ai/operators/llm.py | 25 +-
.../providers/common/ai/operators/llm_batch.py | 12 +-
.../providers/common/ai/operators/llm_branch.py | 14 +-
.../providers/common/ai/plugins/hitl_review.py | 83 +-
.../providers/common/ai/policies/decision.py | 4 +-
.../airflow/providers/common/ai/policies/retry.py | 75 +-
.../airflow/providers/common/ai/sandbox/modal.py | 80 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 4 +-
.../providers/common/ai/toolsets/object_storage.py | 4 +-
.../providers/common/ai/toolsets/sandbox.py | 3 +-
.../airflow/providers/common/ai/utils/decision.py | 12 +-
.../providers/common/ai/utils/hitl_review.py | 4 +-
.../airflow/providers/common/ai/utils/logging.py | 2 +
.../src/airflow/providers/common/ai/utils/usage.py | 7 +-
.../providers/common/ai/utils/usage_budget.py | 12 +-
.../common/ai/example_sandbox_toolset_modal.py | 4 +-
.../ai/example_sandbox_toolset_opensandbox.py | 4 +-
.../common/ai/example_sandbox_toolset_sbx.py | 4 +-
.../unit/common/ai/batch/test_output_schema.py | 4 +-
.../unit/common/ai/durable/test_fingerprint.py | 91 +-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 9 -
.../tests/unit/common/ai/operators/test_agent.py | 150 +-
.../ai/operators/test_agent_tool_approval.py | 1 -
.../ai/operators/test_llamaindex_retrieval.py | 13 -
.../unit/common/ai/operators/test_llm_branch.py | 2 +-
.../unit/common/ai/plugins/test_hitl_review.py | 71 +-
.../ai/tests/unit/common/ai/policies/test_retry.py | 118 +-
.../ai/tests/unit/common/ai/sandbox/fake_modal.py | 47 +-
.../ai/tests/unit/common/ai/sandbox/test_modal.py | 148 +-
.../tests/unit/common/ai/utils/test_hitl_review.py | 6 +-
.../ai/tests/unit/common/ai/utils/test_logging.py | 12 +-
.../unit/common/ai/utils/test_toolset_base.py | 6 +-
.../ai/tests/unit/common/ai/utils/test_usage.py | 6 +-
.../unit/common/ai/utils/test_usage_budget.py | 42 +
providers/common/compat/README.rst | 2 +-
providers/common/compat/pyproject.toml | 3 +-
.../providers/common/compat/version_compat.py | 2 +
providers/common/dataquality/pyproject.toml | 3 +-
providers/common/io/README.rst | 2 +-
providers/common/io/pyproject.toml | 3 +-
.../io/tests/unit/common/io/xcom/test_backend.py | 62 +-
providers/common/messaging/README.rst | 2 +-
providers/common/messaging/pyproject.toml | 3 +-
providers/common/sql/README.rst | 2 +-
providers/common/sql/pyproject.toml | 3 +-
providers/databricks/README.rst | 2 +-
providers/databricks/docs/operators/copy_into.rst | 81 +
providers/databricks/pyproject.toml | 3 +-
.../providers/databricks/assets/databricks.py | 37 +
.../databricks/operators/databricks_sql.py | 82 +-
.../providers/databricks/utils/openlineage.py | 2 +-
.../unit/databricks/assets/test_databricks.py | 55 +
.../databricks/operators/test_databricks_copy.py | 215 +-
.../unit/databricks/utils/test_openlineage.py | 28 +-
.../tests/unit/databricks/utils/test_retry.py | 2 +-
providers/datadog/README.rst | 2 +-
providers/datadog/pyproject.toml | 3 +-
providers/dbt/cloud/README.rst | 2 +-
providers/dbt/cloud/pyproject.toml | 3 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 1 +
.../tests/unit/dbt/cloud/operators/test_dbt.py | 36 +
providers/dingding/README.rst | 2 +-
providers/dingding/pyproject.toml | 3 +-
providers/discord/README.rst | 2 +-
providers/discord/pyproject.toml | 3 +-
.../providers/discord/notifications/embed.py | 4 +-
providers/docker/README.rst | 2 +-
providers/docker/pyproject.toml | 3 +-
providers/duckdb/README.rst | 2 +-
providers/duckdb/docs/connections/duckdb.rst | 18 +
providers/duckdb/pyproject.toml | 3 +-
providers/edge3/README.rst | 2 +-
providers/edge3/docs/install_on_windows.rst | 2 +-
providers/edge3/pyproject.toml | 4 +-
.../providers/edge3/executors/edge_executor.py | 7 +-
.../unit/edge3/executors/test_edge_executor.py | 2 +-
.../edge3/tests/unit/edge3/models/test_edge_job.py | 14 +-
.../tests/unit/edge3/models/test_edge_logs.py | 4 +-
.../tests/unit/edge3/worker_api/test_datamodels.py | 6 +-
.../unit/edge3/worker_api/test_datamodels_ui.py | 4 +-
providers/elasticsearch/README.rst | 2 +-
providers/elasticsearch/docs/logging/index.rst | 5 +
providers/elasticsearch/pyproject.toml | 3 +-
.../providers/elasticsearch/log/es_task_handler.py | 43 +-
.../providers/elasticsearch/version_compat.py | 2 +
.../elasticsearch/log/test_es_remote_log_io.py | 32 +
.../unit/elasticsearch/log/test_es_task_handler.py | 44 +-
providers/exasol/README.rst | 2 +-
providers/exasol/pyproject.toml | 3 +-
providers/fab/README.rst | 2 +-
providers/fab/pyproject.toml | 4 +-
.../fab/auth_manager/security_manager/override.py | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 165 +-
.../security_manager/test_fab_alignment.py | 4 +-
.../unit/fab/www/extensions/test_init_session.py | 2 +-
providers/facebook/README.rst | 2 +-
providers/facebook/pyproject.toml | 3 +-
providers/ftp/README.rst | 2 +-
providers/ftp/pyproject.toml | 3 +-
providers/git/README.rst | 2 +-
providers/git/pyproject.toml | 3 +-
.../git/src/airflow/providers/git/hooks/git.py | 4 +-
providers/git/tests/unit/git/hooks/test_git.py | 27 +-
providers/github/README.rst | 2 +-
providers/github/pyproject.toml | 3 +-
providers/google/README.rst | 2 +-
providers/google/pyproject.toml | 3 +-
.../providers/google/cloud/hooks/bigquery.py | 13 +-
.../providers/google/cloud/hooks/managed_kafka.py | 6 +-
.../google/cloud/log/cloud_logging_task_handler.py | 26 +-
.../providers/google/cloud/openlineage/mixins.py | 6 +-
.../providers/google/cloud/operators/workflows.py | 2 +-
.../providers/google/cloud/sensors/bigquery.py | 2 +
.../google/cloud/transfers/postgres_to_gcs.py | 14 +-
.../providers/google/cloud/transfers/s3_to_gcs.py | 4 +-
.../providers/google/cloud/triggers/bigquery.py | 34 +-
.../providers/google/cloud/triggers/dataproc.py | 3 +
.../providers/google/common/hooks/base_google.py | 2 +-
.../src/airflow/providers/google/version_compat.py | 9 +-
.../google/cloud/bigquery/example_bigquery_dts.py | 3 +-
.../cloud/bigquery/example_bigquery_sensors.py | 3 -
.../cloud/bigquery/example_bigquery_tables.py | 21 +-
.../cloud/bigquery/example_bigquery_value_check.py | 2 +-
.../resources/openlineage/bigquery_dts.json | 18 +-
.../resources/openlineage/bigquery_operations.json | 8 +-
.../resources/openlineage/bigquery_tables.json | 12 +-
.../resources/openlineage/bigquery_transfer.json | 8 +-
.../cloud/composer/example_cloud_composer.py | 4 +-
.../google/cloud/dataplex/example_dataplex_dp.py | 2 +-
.../example_cloud_storage_transfer_service_aws.py | 66 +-
.../example_cloud_storage_transfer_service_gcp.py | 57 +-
.../system/google/cloud/tasks/example_tasks.py | 15 +-
.../marketing_platform/example_campaign_manager.py | 6 +-
.../system/google/resources_cleanup/README.md | 8 +
.../commands/cmd_delete.py | 6 +-
.../handlers/__init__.py | 2 +
.../handlers/composer.py | 2 +-
.../handlers/datafusion.py | 52 +
.../tests/unit/google/cloud/hooks/test_bigquery.py | 55 +-
.../google/cloud/hooks/test_dataproc_metastore.py | 268 ---
.../unit/google/cloud/hooks/test_managed_kafka.py | 331 ---
.../google/cloud/hooks/vertex_ai/test_auto_ml.py | 70 -
.../hooks/vertex_ai/test_batch_prediction_job.py | 65 -
.../cloud/hooks/vertex_ai/test_custom_job.py | 125 --
.../google/cloud/hooks/vertex_ai/test_dataset.py | 231 ---
.../cloud/hooks/vertex_ai/test_endpoint_service.py | 172 --
.../hooks/vertex_ai/test_experiment_service.py | 87 -
.../vertex_ai/test_hyperparameter_tuning_job.py | 74 -
.../cloud/hooks/vertex_ai/test_model_service.py | 205 --
.../cloud/hooks/vertex_ai/test_pipeline_job.py | 82 -
.../hooks/vertex_ai/test_prediction_service.py | 29 -
.../unit/google/cloud/hooks/vertex_ai/test_ray.py | 122 --
.../cloud/log/test_cloud_logging_task_handler.py | 112 +-
.../unit/google/cloud/openlineage/test_mixins.py | 10 +-
.../cloud/operators/test_cloud_logging_sink.py | 42 -
.../unit/google/cloud/operators/test_cloud_run.py | 73 -
.../tests/unit/google/cloud/operators/test_gcs.py | 22 +-
.../unit/google/cloud/operators/test_workflows.py | 6 +-
.../unit/google/cloud/sensors/test_bigquery.py | 37 +
.../google/cloud/transfers/test_postgres_to_gcs.py | 63 +-
.../unit/google/cloud/triggers/test_bigquery.py | 121 ++
.../unit/google/cloud/triggers/test_dataproc.py | 63 +-
.../tests/unit/google/cloud/triggers/test_gcs.py | 4 +-
.../cloud/triggers/test_kubernetes_engine.py | 2 +-
.../google/resources_cleanup/test_cmd_delete.py | 5 +-
.../resources_cleanup/test_datafusion_handler.py | 67 +
providers/grpc/README.rst | 2 +-
providers/grpc/pyproject.toml | 3 +-
providers/hashicorp/README.rst | 2 +-
providers/hashicorp/pyproject.toml | 3 +-
providers/http/README.rst | 2 +-
providers/http/pyproject.toml | 3 +-
providers/ibm/db2/pyproject.toml | 3 +-
providers/ibm/mq/README.rst | 2 +-
providers/ibm/mq/docs/connections/ibmmq.rst | 9 +-
providers/ibm/mq/pyproject.toml | 3 +-
providers/imap/README.rst | 2 +-
providers/imap/pyproject.toml | 3 +-
providers/influxdb/README.rst | 2 +-
providers/influxdb/pyproject.toml | 3 +-
providers/informatica/README.rst | 2 +-
providers/informatica/pyproject.toml | 3 +-
providers/jdbc/README.rst | 4 +-
providers/jdbc/docs/index.rst | 2 -
providers/jdbc/pyproject.toml | 5 +-
providers/jenkins/README.rst | 2 +-
providers/jenkins/pyproject.toml | 3 +-
providers/keycloak/README.rst | 2 +-
providers/keycloak/pyproject.toml | 3 +-
providers/microsoft/azure/README.rst | 2 +-
.../microsoft/azure/docs/connections/msgraph.rst | 9 +-
providers/microsoft/azure/pyproject.toml | 3 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 4 +-
.../azure/operators/test_analysis_services.py | 8 -
.../unit/microsoft/azure/operators/test_compute.py | 9 -
.../azure/sensors/test_analysis_services.py | 8 -
.../unit/microsoft/azure/sensors/test_compute.py | 11 -
providers/microsoft/mssql/README.rst | 2 +-
providers/microsoft/mssql/pyproject.toml | 3 +-
providers/microsoft/psrp/README.rst | 2 +-
providers/microsoft/psrp/pyproject.toml | 3 +-
providers/microsoft/winrm/README.rst | 2 +-
providers/microsoft/winrm/pyproject.toml | 3 +-
providers/modal/README.rst | 2 +-
providers/modal/pyproject.toml | 3 +-
providers/mongo/README.rst | 2 +-
providers/mongo/pyproject.toml | 3 +-
providers/mysql/README.rst | 2 +-
providers/mysql/pyproject.toml | 3 +-
providers/neo4j/README.rst | 2 +-
providers/neo4j/pyproject.toml | 3 +-
providers/odbc/README.rst | 2 +-
providers/odbc/pyproject.toml | 3 +-
providers/openai/README.rst | 2 +-
providers/openai/docs/operators/openai.rst | 42 +-
providers/openai/pyproject.toml | 3 +-
.../src/airflow/providers/openai/hooks/openai.py | 35 +-
.../airflow/providers/openai/operators/openai.py | 150 +-
.../openai/tests/system/openai/example_openai.py | 14 +
.../openai/tests/unit/openai/hooks/test_openai.py | 34 +
.../tests/unit/openai/operators/test_openai.py | 307 ++-
providers/openfaas/README.rst | 2 +-
providers/openfaas/pyproject.toml | 3 +-
providers/openlineage/README.rst | 2 +-
providers/openlineage/pyproject.toml | 3 +-
.../airflow/providers/openlineage/api/datasets.py | 4 +-
.../example_openlineage_manual_lineage_dag.py | 4 +-
.../tests/unit/openlineage/api/test_datasets.py | 12 +-
.../tests/unit/openlineage/api/test_sql.py | 12 +-
.../tests/unit/openlineage/plugins/test_macros.py | 12 +-
.../tests/unit/openlineage/utils/test_utils.py | 56 +-
providers/opensearch/README.rst | 2 +-
providers/opensearch/pyproject.toml | 3 +-
.../providers/opensearch/log/os_task_handler.py | 43 +-
.../airflow/providers/opensearch/version_compat.py | 2 +
.../opensearch/log/test_os_remote_log_io.py | 32 +
.../unit/opensearch/log/test_os_task_handler.py | 48 +-
providers/opsgenie/README.rst | 2 +-
providers/opsgenie/pyproject.toml | 3 +-
.../airflow/providers/opsgenie/typing/opsgenie.py | 4 +-
providers/oracle/README.rst | 4 +-
providers/oracle/docs/index.rst | 8 +-
providers/oracle/pyproject.toml | 5 +-
providers/pagerduty/README.rst | 2 +-
providers/pagerduty/pyproject.toml | 3 +-
providers/papermill/README.rst | 2 +-
providers/papermill/pyproject.toml | 3 +-
providers/pgvector/README.rst | 2 +-
providers/pgvector/pyproject.toml | 3 +-
providers/pinecone/README.rst | 2 +-
providers/pinecone/pyproject.toml | 3 +-
providers/postgres/README.rst | 2 +-
providers/postgres/pyproject.toml | 3 +-
.../tests/unit/postgres/hooks/test_postgres.py | 4 -
providers/presto/README.rst | 2 +-
providers/presto/pyproject.toml | 3 +-
providers/qdrant/README.rst | 2 +-
providers/qdrant/pyproject.toml | 3 +-
providers/redis/README.rst | 2 +-
providers/redis/pyproject.toml | 3 +-
providers/salesforce/README.rst | 2 +-
providers/salesforce/pyproject.toml | 3 +-
.../tests/unit/salesforce/operators/test_bulk.py | 17 -
providers/samba/README.rst | 2 +-
providers/samba/pyproject.toml | 3 +-
providers/segment/README.rst | 2 +-
providers/segment/pyproject.toml | 3 +-
providers/sendgrid/README.rst | 2 +-
providers/sendgrid/pyproject.toml | 3 +-
providers/sftp/README.rst | 2 +-
providers/sftp/pyproject.toml | 3 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 44 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 92 +
.../sftp/tests/unit/sftp/sensors/test_sftp.py | 4 +-
providers/singularity/README.rst | 2 +-
providers/singularity/pyproject.toml | 3 +-
providers/slack/README.rst | 2 +-
providers/slack/pyproject.toml | 3 +-
.../src/airflow/providers/slack/hooks/slack.py | 3 +-
.../slack/transfers/sql_to_slack_webhook.py | 28 +-
.../slack/transfers/test_sql_to_slack_webhook.py | 61 +
providers/smtp/README.rst | 2 +-
providers/smtp/pyproject.toml | 3 +-
providers/snowflake/README.rst | 2 +-
.../docs/connections/index.rst} | 16 +-
.../docs/connections/pydantic_ai_snowflake.rst | 132 ++
providers/snowflake/docs/connections/snowflake.rst | 10 +-
providers/snowflake/docs/index.rst | 14 +-
.../docs/operators/snowflake_cortex_agent.rst | 19 +
providers/snowflake/provider.yaml | 40 +
providers/snowflake/pyproject.toml | 7 +-
.../providers/snowflake/get_provider_info.py | 33 +-
.../providers/snowflake/hooks/cortex_model.py | 210 ++
.../airflow/providers/snowflake/hooks/snowflake.py | 10 +
.../snowflake/hooks/snowflake_cortex_agent.py | 74 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 63 +-
.../providers/snowflake/utils/_rest_auth.py | 186 ++
.../snowflake/utils/sql_api_generate_jwt.py | 8 +-
.../unit/snowflake/hooks/test_cortex_model.py | 397 ++++
.../tests/unit/snowflake/hooks/test_snowflake.py | 30 +
.../snowflake/hooks/test_snowflake_cortex_agent.py | 219 +-
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 132 +-
.../operators/test_snowpark_containers.py | 4 +-
.../tests/unit/snowflake/utils/test__rest_auth.py | 273 +++
.../tests/unit/snowflake/utils/test_openlineage.py | 20 +-
providers/sqlite/README.rst | 2 +-
providers/sqlite/pyproject.toml | 3 +-
providers/ssh/README.rst | 2 +-
providers/ssh/pyproject.toml | 3 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 68 +-
providers/ssh/tests/unit/ssh/hooks/test_ssh.py | 106 +-
providers/standard/README.rst | 2 +-
providers/standard/pyproject.toml | 3 +-
.../standard/example_dags/example_sensors.py | 10 +-
.../standard/decorators/test_external_python.py | 2 +-
.../tests/unit/standard/decorators/test_python.py | 11 +-
.../standard/decorators/test_python_virtualenv.py | 2 +-
.../tests/unit/standard/operators/test_datetime.py | 4 +-
.../tests/unit/standard/operators/test_python.py | 4 +-
.../tests/unit/standard/operators/test_weekday.py | 8 +-
.../tests/unit/standard/utils/test_skipmixin.py | 2 +-
providers/tableau/README.rst | 2 +-
providers/tableau/pyproject.toml | 3 +-
providers/telegram/README.rst | 2 +-
providers/telegram/pyproject.toml | 3 +-
.../tests/unit/telegram/operators/test_telegram.py | 13 -
providers/teradata/README.rst | 2 +-
providers/teradata/pyproject.toml | 3 +-
.../tests/unit/teradata/operators/test_bteq.py | 4 -
providers/trino/README.rst | 2 +-
providers/trino/pyproject.toml | 3 +-
providers/vertica/README.rst | 2 +-
providers/vertica/pyproject.toml | 3 +-
providers/vespa/README.rst | 2 +-
providers/vespa/pyproject.toml | 3 +-
providers/weaviate/README.rst | 2 +-
providers/weaviate/pyproject.toml | 3 +-
providers/yandex/README.rst | 2 +-
providers/yandex/pyproject.toml | 3 +-
providers/ydb/README.rst | 2 +-
providers/ydb/pyproject.toml | 3 +-
providers/zendesk/README.rst | 2 +-
providers/zendesk/pyproject.toml | 3 +-
pyproject.toml | 9 +-
registry/.eleventy.js | 37 +
registry/AGENTS.md | 33 +
registry/README.md | 2 +-
registry/src/css/main.css | 87 +
registry/src/provider-version.njk | 34 +
scripts/ci/airflow_version_check.py | 2 +-
scripts/ci/analyze_ci_job_durations.py | 6 +-
scripts/ci/analyze_e2e_flaky_tests.py | 2 +-
scripts/ci/docker-compose/devcontainer.env | 4 +-
scripts/ci/docker-compose/devcontainer.yml | 2 +-
scripts/ci/extract_e2e_test_results.py | 2 +-
scripts/ci/lang_sdk_serialization/compare.py | 107 +-
.../ci/lang_sdk_serialization/serialize_python.py | 57 +-
scripts/ci/lang_sdk_serialization/test_dags.yaml | 167 +-
scripts/ci/notify_uv_lock_conflicts.py | 6 +-
scripts/ci/prek/boring_cyborg.py | 2 +-
scripts/ci/prek/breeze_cmd_line.py | 2 +-
scripts/ci/prek/build_kustomize_overlays.py | 2 +-
scripts/ci/prek/capture_airflowctl_help.py | 2 +-
scripts/ci/prek/check_aiobotocore_optional.py | 2 +-
.../ci/prek/check_airflow_bug_report_template.py | 2 +-
scripts/ci/prek/check_airflow_imports.py | 2 +-
scripts/ci/prek/check_airflow_imports_in_shared.py | 2 +-
.../ci/prek/check_airflow_v_imports_in_tests.py | 2 +-
.../ci/prek/check_airflowctl_command_coverage.py | 2 +-
scripts/ci/prek/check_airflowctl_help_texts.py | 2 +-
.../prek/check_base_operator_partial_arguments.py | 2 +-
scripts/ci/prek/check_cli_definition_imports.py | 2 +-
scripts/ci/prek/check_common_ai_operators_index.py | 2 +-
scripts/ci/prek/check_common_sql_dependency.py | 2 +-
scripts/ci/prek/check_conf_import_in_providers.py | 2 +-
scripts/ci/prek/check_conn_id_templated.py | 2 +-
scripts/ci/prek/check_connection_doc_labels.py | 2 +-
scripts/ci/prek/check_core_imports_in_sdk.py | 2 +-
scripts/ci/prek/check_default_configuration.py | 2 +-
scripts/ci/prek/check_deferrable_default.py | 2 +-
.../ci/prek/check_deferred_hook_configuration.py | 2 +-
scripts/ci/prek/check_dependency_lower_bounds.py | 9 +-
scripts/ci/prek/check_deprecations.py | 2 +-
scripts/ci/prek/check_distribution_gitignore.py | 2 +-
scripts/ci/prek/check_example_dag_tags.py | 2 +-
scripts/ci/prek/check_excluded_provider_markers.py | 7 +-
scripts/ci/prek/check_execution_api_versions.py | 2 +-
scripts/ci/prek/check_extra_packages_ref.py | 8 +-
scripts/ci/prek/check_first_limit.py | 2 +-
scripts/ci/prek/check_go_sdk_generated_drift.py | 11 +-
.../prek/check_go_sdk_serialization_conformance.py | 63 +
.../check_http_exception_import_from_fastapi.py | 2 +-
scripts/ci/prek/check_i18n_json.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_init_decorator_arguments.py | 2 +-
scripts/ci/prek/check_init_in_tests.py | 2 +-
scripts/ci/prek/check_integrations_list.py | 2 +-
scripts/ci/prek/check_kubeconform.py | 2 +-
scripts/ci/prek/check_lazy_logging.py | 2 +-
.../check_mapped_column_nullable_annotations.py | 2 +-
.../prek/check_metrics_synced_with_the_registry.py | 2 +-
scripts/ci/prek/check_migration_patterns.py | 2 +-
scripts/ci/prek/check_min_python_version.py | 4 +-
.../ci/prek/check_new_airflow_exception_usage.py | 2 +-
.../check_no_new_airflow_core_utils_modules.py | 2 +-
scripts/ci/prek/check_notice_files.py | 2 +-
.../ci/prek/check_openapi_exception_doc_in_sync.py | 2 +-
scripts/ci/prek/check_order_dockerfile_extras.py | 2 +-
.../check_partition_mapper_defaults_in_sync.py | 2 +-
scripts/ci/prek/check_provide_session_kwargs.py | 2 +-
.../check_provider_config_fallback_defaults.py | 2 +-
scripts/ci/prek/check_provider_docs.py | 2 +-
scripts/ci/prek/check_provider_yaml_files.py | 2 +-
.../check_providers_subpackages_all_have_init.py | 2 +-
scripts/ci/prek/check_revision_heads_map.py | 2 +-
scripts/ci/prek/check_schema_defaults.py | 2 +-
scripts/ci/prek/check_sdk_imports_in_core.py | 2 +-
scripts/ci/prek/check_security_doc_constants.py | 2 +-
.../prek/check_shared_distributions_structure.py | 9 +-
.../ci/prek/check_shared_distributions_usage.py | 9 +-
scripts/ci/prek/check_shared_mypy_hooks.py | 2 +-
.../ci/prek/check_supervisor_schemas_versions.py | 2 +-
scripts/ci/prek/check_system_tests.py | 2 +-
.../ci/prek/check_system_tests_hidden_in_index.py | 2 +-
.../check_template_context_variable_in_sync.py | 2 +-
scripts/ci/prek/check_template_fields.py | 2 +-
scripts/ci/prek/check_test_only_imports_in_src.py | 2 +-
scripts/ci/prek/check_tests_in_right_folders.py | 2 +-
scripts/ci/prek/check_ti_vs_tis_attributes.py | 77 -
scripts/ci/prek/check_trigger_serialize_init.py | 2 +-
.../check_ts_sdk_docs_package_version_in_sync.py | 2 +-
scripts/ci/prek/check_version_consistency.py | 9 +-
scripts/ci/prek/check_window_in_sync.py | 2 +-
scripts/ci/prek/check_xcom_model_columns.py | 141 ++
scripts/ci/prek/checkout_no_credentials.py | 2 +-
scripts/ci/prek/common_prek_utils.py | 10 +-
scripts/ci/prek/docstring_param_type.py | 2 +-
scripts/ci/prek/download_k8s_schemas.py | 2 +-
scripts/ci/prek/generate_airflow_diagrams.py | 2 +-
scripts/ci/prek/generate_openapi_spec.py | 2 +-
scripts/ci/prek/generate_openapi_spec_providers.py | 2 +-
.../prek/generate_supervisor_schemas_snapshot.py | 2 +-
scripts/ci/prek/generate_volumes_for_sources.py | 2 +-
scripts/ci/prek/lint_helm.py | 2 +-
scripts/ci/prek/lint_json_schema.py | 2 +-
scripts/ci/prek/migration_reference.py | 2 +-
scripts/ci/prek/migration_round_trip.py | 2 +-
scripts/ci/prek/mypy.py | 4 +-
scripts/ci/prek/mypy_folder.py | 6 +-
.../ci/prek/prevent_deprecated_sqlalchemy_usage.py | 2 +-
scripts/ci/prek/replace_bad_characters.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
...un_mypy_full_dist_local_venv_or_breeze_in_ci.py | 2 +-
scripts/ci/prek/sort_in_the_wild.py | 2 +-
scripts/ci/prek/supported_versions.py | 2 +-
scripts/ci/prek/sync_provider_readme.py | 9 +-
scripts/ci/prek/sync_uv_min_version_markers.py | 2 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 22 +-
scripts/ci/prek/update_chart_dependencies.py | 2 +-
scripts/ci/prek/update_docker_gpg_keys.py | 2 -
scripts/ci/prek/update_example_dags_paths.py | 2 +-
scripts/ci/prek/update_go_sdk_readme_matrix.py | 2 +-
scripts/ci/prek/update_java_sdk_readme_matrix.py | 2 +-
scripts/ci/prek/update_notice_year.py | 2 +-
scripts/ci/prek/update_providers_build_files.py | 2 +-
scripts/ci/prek/update_providers_dependencies.py | 8 +-
scripts/ci/prek/update_source_date_epoch.py | 2 +-
scripts/ci/prek/update_tested_versions.py | 2 +-
scripts/ci/prek/update_ts_sdk_readme_matrix.py | 2 +-
scripts/ci/prek/update_versions.py | 2 +-
scripts/ci/prek/upgrade_dependency_floors.py | 13 +-
scripts/ci/prek/upgrade_important_versions.py | 19 +-
scripts/ci/prek/validate_chart_annotations.py | 2 +-
scripts/ci/prek/validate_operators_init.py | 2 +-
scripts/ci/prek/vendor_k8s_json_schema.py | 2 +-
scripts/ci/slack_notification_state.py | 8 +-
.../testing/get_min_airflow_version_for_python.py | 2 +-
scripts/ci/testing/run_unit_tests.sh | 2 +-
scripts/ci/verify_helm_chart_package.py | 2 +-
scripts/cov/core_coverage.py | 1 -
scripts/docker/entrypoint_ci.sh | 9 +-
scripts/docker/install_os_dependencies.sh | 79 +-
scripts/docker/keys/python-3.10.asc | 109 -
scripts/in_container/bin/generate_mprocs_config.py | 2 +-
.../in_container/install_airflow_and_providers.py | 4 +-
.../install_development_dependencies.py | 2 +-
scripts/in_container/run_generate_constraints.py | 8 +-
.../in_container/update_quarantined_test_status.py | 4 +-
scripts/pyproject.toml | 3 +-
.../ci/lang_sdk_serialization/test_compare.py | 200 +-
.../test_check_go_sdk_serialization_conformance.py | 62 +
scripts/tests/ci/prek/test_supported_versions.py | 4 +-
.../tests/ci/prek/test_update_tested_versions.py | 4 +-
.../ci/prek/test_upgrade_dependency_floors.py | 4 +-
.../ci/prek/test_upgrade_important_versions.py | 5 +-
scripts/tests/ci/test_analyze_ci_job_durations.py | 12 +-
scripts/tests/ci/test_notify_uv_lock_conflicts.py | 16 +-
.../testing/test_compute_remaining_test_timeout.py | 4 +-
.../test_get_min_airflow_version_for_python.py | 6 +-
.../tests/docker/test_get_distribution_specs.py | 16 +-
.../in_container/test_run_generate_constraints.py | 10 +-
scripts/tools/check_if_limited_dependencies.py | 2 +-
scripts/tools/initialize_virtualenv.py | 6 +-
shared/configuration/pyproject.toml | 1 -
shared/dagnode/pyproject.toml | 1 -
shared/dagnode/src/airflow_shared/dagnode/node.py | 8 +-
shared/listeners/pyproject.toml | 1 -
shared/logging/pyproject.toml | 1 -
.../airflow_shared/logging/percent_formatter.py | 5 +-
shared/logging/tests/logging/test_structlog.py | 9 +-
shared/module_loading/pyproject.toml | 1 -
shared/observability/pyproject.toml | 1 -
.../src/airflow_shared/observability/__init__.py | 7 +-
shared/plugins_manager/pyproject.toml | 1 -
.../plugins_manager/plugins_manager.py | 13 +-
shared/providers_discovery/pyproject.toml | 1 -
.../providers_discovery/providers_discovery.py | 5 +
shared/secrets_backend/pyproject.toml | 1 -
shared/secrets_masker/pyproject.toml | 1 -
shared/serialization/pyproject.toml | 1 -
shared/state/pyproject.toml | 1 -
shared/template_rendering/pyproject.toml | 1 -
shared/timezones/pyproject.toml | 1 -
task-sdk-integration-tests/pyproject.toml | 3 +-
.../tests/task_sdk_tests/constants.py | 2 +-
.../tests/task_sdk_tests/jwt_plugin.py | 4 +-
.../task_sdk_tests/test_dag_run_operations.py | 6 +-
task-sdk/dev/generate_task_sdk_models.py | 6 +-
task-sdk/pyproject.toml | 7 +-
task-sdk/src/airflow/sdk/bases/operator.py | 48 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 2 +-
.../src/airflow/sdk/coordinators/_subprocess.py | 3 +-
.../sdk/coordinators/executable/coordinator.py | 2 +-
.../airflow/sdk/coordinators/java/coordinator.py | 2 +-
.../airflow/sdk/coordinators/node/coordinator.py | 2 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 2 +-
.../airflow/sdk/definitions/asset/decorators.py | 2 +-
task-sdk/src/airflow/sdk/definitions/context.py | 4 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 22 +-
task-sdk/src/airflow/sdk/definitions/variable.py | 55 +-
.../sdk/execution_time/callback_supervisor.py | 3 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 162 +-
.../src/airflow/sdk/execution_time/coordinator.py | 2 +-
.../src/airflow/sdk/execution_time/supervisor.py | 38 +-
.../src/airflow/sdk/execution_time/task_runner.py | 32 +-
task-sdk/src/airflow/sdk/importers/base.py | 3 +-
task-sdk/src/airflow/sdk/io/path.py | 3 +-
task-sdk/src/airflow/sdk/serde/__init__.py | 3 -
.../src/airflow/sdk/serde/serializers/datetime.py | 2 +-
task-sdk/tests/task_sdk/api/test_client.py | 12 +-
task-sdk/tests/task_sdk/bases/test_operator.py | 23 +-
task-sdk/tests/task_sdk/bases/test_xcom.py | 16 +
.../tests/task_sdk/coordinators/test_subprocess.py | 3 +
.../definitions/_internal/test_templater.py | 4 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 6 +-
.../tests/task_sdk/definitions/test_variables.py | 139 +-
.../execution_time/schema/test_migrator.py | 2 +-
.../tests/task_sdk/execution_time/test_context.py | 370 +++-
.../task_sdk/execution_time/test_supervisor.py | 40 +-
.../task_sdk/execution_time/test_task_runner.py | 14 +-
task-sdk/tests/task_sdk/serde/test_serializers.py | 2 +-
ts-sdk/adr/0002-native-dag-interface.md | 47 +-
.../ci/prek/check_serialization_conformance.py | 15 +-
ts-sdk/src/coordinator/client.ts | 31 +-
ts-sdk/src/coordinator/serde.ts | 80 +-
ts-sdk/src/coordinator/trigger-runner.ts | 51 +-
ts-sdk/src/index.ts | 8 +-
ts-sdk/src/sdk/client.ts | 13 -
ts-sdk/src/sdk/dag.ts | 375 ++--
ts-sdk/src/sdk/trigger-dag-run.ts | 49 +-
ts-sdk/tests/coordinator/client.test.ts | 18 +
ts-sdk/tests/coordinator/integration.test.ts | 129 +-
ts-sdk/tests/coordinator/serde.test.ts | 42 +
ts-sdk/tests/public-api.test.ts | 2 +-
ts-sdk/tests/sdk/branching.test.ts | 155 +-
ts-sdk/tests/sdk/conditional.test.ts | 216 +-
ts-sdk/tests/sdk/trigger-dag-run.test.ts | 125 +-
uv.lock | 2126 ++------------------
1521 files changed, 39314 insertions(+), 13802 deletions(-)
create mode 100644 .apache-magpie-overrides/release-vote-tally.md
rename .github/workflows/{scheduled-upgrade-check-v3-3-test.yml =>
scheduled-upgrade-check-v3-4-test.yml} (66%)
create mode 100644 airflow-core/newsfragments/74151.significant.rst
create mode 100644
airflow-core/src/airflow/migrations/versions/0142_3_4_0_unify_task_attempt_ownership.py
delete mode 100644 airflow-core/src/airflow/models/hitl_history.py
delete mode 100644 airflow-core/src/airflow/models/taskinstancehistory.py
copy airflow-core/src/airflow/ui/src/{pages/LandingPage.tsx =>
components/DAGWarningsModal.test.tsx} (63%)
create mode 100644
airflow-core/src/airflow/ui/src/components/DagImportErrorModal.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/DataTable/DataTable.columnVisibility.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/ErrorModal.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/ErrorModal.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/ImportErrorCount.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/MonacoEditor/configureMonaco.test.ts
copy airflow-core/src/airflow/ui/{tests/e2e/utils/shared.ts =>
src/components/StatsCard.test.tsx} (54%)
create mode 100644
airflow-core/src/airflow/ui/src/hooks/useDagRunsLimit.test.tsx
copy airflow-core/src/airflow/ui/src/{pages/Dag/Backfills/BackfillsFilters.tsx
=> hooks/useDagRunsLimit.ts} (50%)
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useUrlOrStoredState.ts
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/PanelButtons.test.tsx
copy airflow-core/src/airflow/ui/src/{pages/LandingPage.tsx =>
layouts/Details/runLimitConfig.test.ts} (56%)
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/runLimitConfig.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/Connections/ConnectionForm.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/AssetSchedule.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsListColumns.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCounts.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCounts.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCountsColumn.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentTaskStateCountsHeader.test.tsx
rename airflow-core/src/airflow/ui/src/{layouts/StorageLayout.tsx =>
pages/DagsList/RecentTaskStateCountsHeader.tsx} (57%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/Schedule.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/XCom/XComEntry.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useRecentTaskStateCounts.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useRecentTaskStateCounts.tsx
copy airflow-core/src/airflow/ui/src/{pages/LandingPage.tsx =>
utils/formatNumber.test.ts} (64%)
copy airflow-core/src/airflow/ui/src/{components/ImportErrorCount.tsx =>
utils/formatNumber.ts} (54%)
create mode 100644 airflow-core/src/airflow/ui/src/utils/intlCache.ts
create mode 100644
airflow-core/tests/unit/dag_processing/lang_sdk_fixtures/go_native.json
create mode 100644
airflow-core/tests/unit/migrations/test_0142_unify_task_attempt_ownership.py
create mode 100644 airflow-core/tests/unit/models/test_task_data.py
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/go_sdk_tests/test_go_sdk_task_state.py
create mode 100644 dev/registry/registry_tools/docs_guides.py
create mode 100644 dev/registry/registry_tools/uri_schemes.py
create mode 100644 dev/registry/tests/test_docs_guides.py
create mode 100644 dev/registry/tests/test_uri_schemes.py
create mode 100644
devel-common/src/tests_common/test_utils/attempt_ownership.py
create mode 100644 go-sdk/airflow/conformance_test.go
create mode 100644 go-sdk/airflow/export_test.go
create mode 100644 go-sdk/airflow/serialize.go
create mode 100644 go-sdk/airflow/serialize_test.go
create mode 100644 go-sdk/airflow/spec_fields.gen.go
create mode 100644 go-sdk/airflow/switch.go
create mode 100644 go-sdk/airflow/switch_test.go
create mode 100644 go-sdk/airflow/task_group.go
create mode 100644 go-sdk/airflow/task_group_test.go
create mode 100644 go-sdk/example/bundle/taskstate/taskstate.go
create mode 100644 go-sdk/internal/genspec/fields.go
create mode 100644 go-sdk/internal/genspec/fields_test.go
copy {ts-sdk => java-sdk}/scripts/ci/prek/check_serialization_conformance.py
(59%)
create mode 100644
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/TaskGroupRef.kt
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/TaskGroupTest.kt
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/conformance/SerializeJava.kt
copy airflow-core/src/airflow/ui/src/pages/LandingPage.tsx =>
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/internal/RegistrarTest.kt
(66%)
rename providers/common/ai/docs/{classifier_models.rst => decision_models.rst}
(52%)
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_datafusion_toolset.py
rename
providers/common/ai/src/airflow/providers/common/ai/example_dags/{example_classifier_model.py
=> example_decision_model.py} (60%)
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_hook_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_sql_toolset.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/datafusion.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_datafusion_handler.py
copy providers/{ibm/mq/docs/connections/ibmmq.rst =>
snowflake/docs/connections/index.rst} (74%)
create mode 100644
providers/snowflake/docs/connections/pydantic_ai_snowflake.rst
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/hooks/cortex_model.py
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/utils/_rest_auth.py
create mode 100644
providers/snowflake/tests/unit/snowflake/hooks/test_cortex_model.py
create mode 100644
providers/snowflake/tests/unit/snowflake/utils/test__rest_auth.py
create mode 100755 scripts/ci/prek/check_go_sdk_serialization_conformance.py
delete mode 100755 scripts/ci/prek/check_ti_vs_tis_attributes.py
create mode 100644 scripts/ci/prek/check_xcom_model_columns.py
delete mode 100644 scripts/docker/keys/python-3.10.asc
create mode 100644
scripts/tests/ci/prek/test_check_go_sdk_serialization_conformance.py