This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a change to branch v3-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit b420c565ca5 Update default branches for 3-4
add a44fd6d1f31 Allow explicit runs to drain a paused Dag (#73763)
add 40832901c59 Improve LocalExecutor bookkeeping: correctly add tasks to
the `running` list (#74142)
add 5487c080bea Add Azure Blob Storage support to the DataFusion object
storage layer (#73374)
add b191cc4767b Fail instead of silently falling behind when a Lang-SDK
vendored Dag schema drifts from airflow-core (#74091)
add e0202f40c78 Let a Dag importer find the coordinator that parses its
files (#74042)
add 94a677e8f87 Keep callback triggers assigned to healthy triggerers
(#72848)
add 4e1f2aca67f Keep the Dag trigger button one-click when a run has
config (#74039)
add bfe84598a52 Fix destination path validation in GCS-to-SFTP transfers
(#74186)
add 8239997bf20 Scope UI next_run_assets endpoint to assets the caller may
read (#72862)
add 7df6f0e69cc Parse native Lang-SDK Dags in the Dag processor with their
runtime (#74035)
add cffc14d173b Parse native Lang-SDK Dags in a Dag bag (#74043)
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 508267cda9b Fix Snowflake UTC usage in TestSnowflakeRestTokenProvider
(#74393)
add 2a62e03fc03 Add missing Taiwanese Mandarin UI translations (#74223)
add a2cf3289367 Go SDK: answer the Dag-parsing request from Serve (#74391)
add 7f653e67153 Fix UI lint erros failing static checks (#74402)
add 4cab3cf055c [AIP-94] Mark dags clear as migrated to airflowctl (#74384)
add 634d6bd7242 Enforce execution_timeout from the task supervisor side
(#73806)
add 9af3db03639 Keep get_dag_details and get_pools database queries off
the API server event loop (#74247)
add 104a8691b93 Add a test that a mapped task group skip decision stays
within its Dag run (#74390)
add ef495f35a30 Add `max_retries` to `AgentSkillsToolset` (#74381)
add 9f241d42332 Add toolset overview and MCP tool filtering example to
`common.ai` docs (#74378)
add 4ef67b4e0c6 Tell the model a pinned hook argument is fixed for every
allowed method (#74380)
add 73a4ffa3a53 Avoid a full asset table scan per request in simple auth
manager (#72934)
add 96582adf66f Respect run on latest version when clearing a running Dag
run (#71425)
add ccd96d21597 Regenerate the stale TS SDK supervisor types (#74412)
add 11cbf4da098 Allow a custom Kubernetes client factory for
KubernetesExecutor (#73014)
add 57183056ca7 Fix AsyncToSync error in Databricks deferrable operators
on Airflow 3.0 (#74406)
add 0b4039e250c Upgrade UI major dependencies: msw, vitest, react-table
and mermaid (#74369)
add 8b115c0be65 Verify SSH host keys by default in SSH and SFTP hooks
(#73419)
add 77e0906dc31 Scope plugin views on any entity field, not a fixed
criteria set (#74278)
add 4da2ad1e2b3 Document HTTP statuses that route helpers raise (#74027)
add 05dec276c72 Let the task endpoint describe a task at a given Dag
version (#74365)
add 19d20a091dc UI: Add 'Mark as Skipped' option to Task Instance actions
(#72425)
add d38e9ceb749 Fix date range filter inputs committing on every keystroke
(#74011)
add 37032a47d49 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#74418)
add 37dad4c1df2 Fix codespell failure on main in DateRangeFilter test
(#74430)
add fe4481cc8e5 Fix Databricks async connection test on Airflow before 3.1
(#74427)
add 8043c703de1 Java SDK: Group a native Dag's tasks with task groups
(#74230)
add 1921597eeff Go SDK: embed each native Dag's source file in the bundle
(#74342)
add 01b977568e2 Java SDK: Serialize native Dags to DagSerialization v3
(#71190)
add 46d3c59dfec Parse native Go Dags and show each Dag's own source
(#74341)
add ddb905f0ee0 Fix airflowctl dags get-tags crashing whenever a Dag has
tags (#73743)
add 9c9346c8065 Reconnect SMTP hooks after leaving a context manager
(#74416)
add 08205150190 i18n(ko): Align particles after Dag with the agreed
pronunciation (#73799)
add 22afa85809d Remove most accordions from forms (#74422)
add 950fc37bf6c Fix Data Fusion polling after transient 404 responses
(#74237)
add 9068fba9cb7 Fix remote processor injection happening before dictConfig
runs in configure_logging (#66633)
new 9cb69142c39 Update default branches for 3-4
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 (b420c565ca5)
\
N -- N -- N refs/heads/v3-4-test (9cb69142c39)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.agents/skills/airflow-translations/locales/ko.md | 18 +
.../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 | 92 +-
.readthedocs.yml | 2 +-
Dockerfile | 79 +-
Dockerfile.ci | 88 +-
INSTALL | 6 +-
INTHEWILD.md | 1 +
README.md | 2 +-
airflow-core/.pre-commit-config.yaml | 10 -
.../0007-taskflow-across-language-boundary.md | 5 +
.../adr/lang-sdk/0008-control-flow-constructs.md | 10 +-
.../adr/lang-sdk/0010-native-dag-processing.md | 118 +-
.../0015-per-dag-source-in-bundle-artifact.md | 13 +-
.../docs/administration-and-deployment/plugins.rst | 172 +-
.../authoring-and-scheduling/language-sdks/go.rst | 170 +-
.../language-sdks/java.rst | 307 ++-
.../language-sdks/typescript.rst | 204 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/backfill.rst | 7 +-
airflow-core/docs/core-concepts/dags.rst | 13 +
airflow-core/docs/core-concepts/debug.rst | 2 +-
airflow-core/docs/core-concepts/multi-team.rst | 69 +-
airflow-core/docs/core-concepts/tasks.rst | 55 +-
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/66633.bugfix.rst | 1 +
airflow-core/newsfragments/69148.feature.rst | 1 -
airflow-core/newsfragments/72407.significant.rst | 10 +-
airflow-core/newsfragments/73806.improvement.rst | 1 +
airflow-core/newsfragments/74151.significant.rst | 17 +
airflow-core/newsfragments/74278.feature.rst | 1 +
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/simple_auth_manager.py | 30 +
.../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/backfills.py | 8 +
.../api_fastapi/core_api/datamodels/dag_run.py | 7 +
.../api_fastapi/core_api/datamodels/dags.py | 14 +-
.../api_fastapi/core_api/datamodels/plugins.py | 31 +-
.../api_fastapi/core_api/datamodels/pools.py | 6 +-
.../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 | 137 ++
.../core_api/openapi/v2-rest-api-generated.yaml | 126 +-
.../api_fastapi/core_api/routes/public/assets.py | 13 +-
.../core_api/routes/public/backfills.py | 17 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 11 +
.../core_api/routes/public/dag_stats.py | 3 +-
.../api_fastapi/core_api/routes/public/dags.py | 8 +-
.../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 +-
.../api_fastapi/core_api/routes/public/pools.py | 2 +-
.../core_api/routes/public/task_instances.py | 117 +-
.../core_api/routes/public/task_state_store.py | 6 +-
.../api_fastapi/core_api/routes/public/tasks.py | 29 +-
.../api_fastapi/core_api/routes/public/xcom.py | 166 +-
.../api_fastapi/core_api/routes/ui/assets.py | 19 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 3 +
.../api_fastapi/core_api/routes/ui/calendar.py | 4 +-
.../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 +-
.../api_fastapi/execution_api/routes/hitl.py | 6 +-
.../execution_api/routes/task_instances.py | 112 +-
.../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 +-
.../src/airflow/cli/commands/dag_command.py | 10 +-
.../src/airflow/cli/commands/task_command.py | 5 +-
.../src/airflow/config_templates/config.yml | 18 +-
airflow-core/src/airflow/configuration.py | 4 +-
.../src/airflow/dag_processing/collection.py | 8 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 163 +-
.../src/airflow/dag_processing/importer_routing.py | 52 +
.../airflow/dag_processing/lang_sdk_processor.py | 593 ++++++
airflow-core/src/airflow/dag_processing/manager.py | 48 +-
.../src/airflow/dag_processing/processor.py | 73 +-
.../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/executors/local_executor.py | 75 +-
.../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 | 46 +-
airflow-core/src/airflow/models/dag.py | 16 +
airflow-core/src/airflow/models/dagrun.py | 70 +-
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 | 480 +++--
.../src/airflow/models/taskinstancehistory.py | 225 ---
airflow-core/src/airflow/models/trigger.py | 7 +-
airflow-core/src/airflow/models/xcom.py | 501 +++--
airflow-core/src/airflow/plugins_manager.py | 219 +-
airflow-core/src/airflow/providers_manager.py | 36 +-
.../airflow/serialization/definitions/assets.py | 3 +-
.../src/airflow/serialization/definitions/dag.py | 2 +
.../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 | 19 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 41 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 41 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 41 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 41 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 178 +-
.../ui/openapi-gen/requests/services.gen.ts | 49 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 89 +-
airflow-core/src/airflow/ui/package.json | 33 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 1354 ++++++-------
.../airflow/ui/public/i18n/locales/ar/admin.json | 1 -
.../ui/public/i18n/locales/ar/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 1 -
.../airflow/ui/public/i18n/locales/ca/admin.json | 1 -
.../ui/public/i18n/locales/ca/components.json | 5 +-
.../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 | 17 +-
.../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 -
.../ui/public/i18n/locales/el/components.json | 5 +-
.../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 +
.../ui/public/i18n/locales/en/components.json | 16 +-
.../src/airflow/ui/public/i18n/locales/en/dag.json | 1 -
.../airflow/ui/public/i18n/locales/en/dags.json | 7 +
.../airflow/ui/public/i18n/locales/es/admin.json | 1 -
.../ui/public/i18n/locales/es/components.json | 5 +-
.../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 | 33 +-
.../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 -
.../ui/public/i18n/locales/he/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/he/dag.json | 1 -
.../airflow/ui/public/i18n/locales/hi/admin.json | 1 -
.../ui/public/i18n/locales/hi/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/hi/dag.json | 1 -
.../airflow/ui/public/i18n/locales/hu/admin.json | 1 -
.../ui/public/i18n/locales/hu/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/hu/dag.json | 1 -
.../airflow/ui/public/i18n/locales/it/admin.json | 1 -
.../ui/public/i18n/locales/it/components.json | 5 +-
.../airflow/ui/public/i18n/locales/ja/admin.json | 1 -
.../ui/public/i18n/locales/ja/components.json | 5 +-
.../airflow/ui/public/i18n/locales/ko/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ko/assets.json | 4 +-
.../ui/public/i18n/locales/ko/components.json | 9 +-
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 3 +-
.../airflow/ui/public/i18n/locales/ko/dags.json | 4 +-
.../airflow/ui/public/i18n/locales/nl/admin.json | 1 -
.../ui/public/i18n/locales/nl/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/nl/dag.json | 1 -
.../airflow/ui/public/i18n/locales/pl/admin.json | 1 -
.../ui/public/i18n/locales/pl/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 1 -
.../airflow/ui/public/i18n/locales/pt/admin.json | 1 -
.../ui/public/i18n/locales/pt/components.json | 5 +-
.../airflow/ui/public/i18n/locales/ru/admin.json | 1 -
.../ui/public/i18n/locales/ru/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/ru/dag.json | 1 -
.../airflow/ui/public/i18n/locales/th/admin.json | 1 -
.../ui/public/i18n/locales/th/components.json | 5 +-
.../airflow/ui/public/i18n/locales/tr/admin.json | 1 -
.../ui/public/i18n/locales/tr/components.json | 5 +-
.../ui/public/i18n/locales/zh-CN/admin.json | 1 -
.../ui/public/i18n/locales/zh-CN/components.json | 5 +-
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 1 -
.../ui/public/i18n/locales/zh-TW/admin.json | 2 +-
.../ui/public/i18n/locales/zh-TW/assets.json | 1 +
.../ui/public/i18n/locales/zh-TW/browse.json | 30 +
.../ui/public/i18n/locales/zh-TW/common.json | 38 +-
.../ui/public/i18n/locales/zh-TW/components.json | 18 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 69 +-
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 13 +-
.../ui/public/i18n/locales/zh-TW/dashboard.json | 17 +-
airflow-core/src/airflow/ui/rules/i18n.js | 8 +-
airflow-core/src/airflow/ui/rules/rem.js | 11 +-
.../components/ActionAccordion/ActionAccordion.tsx | 144 +-
.../ui/src/components/ActionAccordion/columns.tsx | 9 +-
.../src/airflow/ui/src/components/AnsiRenderer.tsx | 6 +-
.../src/components/AssetExpression/AssetNode.tsx | 7 +-
.../ui/src/components/AssetProgressCell.tsx | 6 +-
.../ui/src/components/Assets/AssetEvent.test.tsx | 2 +-
.../ui/src/components/Assets/AssetEvents.tsx | 6 +-
.../ui/src/components/Assets/ListPopover.tsx | 46 +-
.../src/components/Assets/TriggeredRuns.test.tsx | 2 +-
.../ui/src/components/Assets/TriggeredRuns.tsx | 6 +-
.../src/components/Banner/BackfillBanner.test.tsx | 2 +-
.../src/components/Banner/DrainingBanner.test.tsx | 2 +-
.../ClearTaskInstanceConfirmationDialog.tsx | 4 +-
.../TaskInstance/ClearTaskInstanceDialog.test.tsx | 4 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 3 +-
.../src/airflow/ui/src/components/ConfigForm.tsx | 71 +-
.../DAGWarningsModal.test.tsx} | 26 +-
.../airflow/ui/src/components/DAGWarningsModal.tsx | 4 +
.../DagActions/PartitionPreviewTable.tsx | 3 +-
.../components/DagActions/RunBackfillForm.test.tsx | 99 +-
.../src/components/DagActions/RunBackfillForm.tsx | 35 +-
.../components/DagActions/inlineMessage.test.tsx | 2 +-
.../src/components/DagDeactivatedBanner.test.tsx | 2 +-
.../ui/src/components/DagImportErrorModal.test.tsx | 50 +
.../ui/src/components/DagImportErrorModal.tsx | 25 +-
.../ui/src/components/DataTable/CardList.tsx | 14 +-
.../DataTable/DataTable.columnVisibility.test.tsx | 57 +
.../DataTable/DataTable.stateChange.test.tsx | 101 +
.../ui/src/components/DataTable/DataTable.test.tsx | 40 +-
.../ui/src/components/DataTable/DataTable.tsx | 82 +-
.../src/components/DataTable/FilterMenuButton.tsx | 12 +-
.../ui/src/components/DataTable/TableList.test.tsx | 11 +-
.../ui/src/components/DataTable/TableList.tsx | 18 +-
.../DataTable/features.ts} | 27 +-
.../ui/src/components/DataTable/skeleton.tsx | 3 +-
.../airflow/ui/src/components/DataTable/types.ts | 18 +-
.../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.test.tsx | 2 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 6 +-
.../src/components/FilterBar/filters/DateInput.tsx | 10 +-
.../FilterBar/filters/DateRangeCalendar.tsx | 10 +-
.../FilterBar/filters/DateRangeFilter.test.tsx | 164 +-
.../FilterBar/filters/DateRangeFilter.tsx | 4 +
.../FilterBar/filters/DateRangeInputs.tsx | 13 +-
.../airflow/ui/src/components/FilterBar/utils.ts | 6 +-
.../components/FlexibleForm/FieldMultiSelect.tsx | 9 +-
.../components/FlexibleForm/FieldObject.test.tsx | 2 +-
.../src/components/FlexibleForm/FieldSelector.tsx | 14 +-
.../src/components/FlexibleForm/FlexibleForm.tsx | 163 +-
.../airflow/ui/src/components/Graph/DagNode.tsx | 2 +-
.../ui/src/components/Graph/SegmentedStateBar.tsx | 8 +-
.../ui/src/components/Graph/TaskLink.test.tsx | 2 +-
.../airflow/ui/src/components/Graph/TaskLink.tsx | 6 +-
.../ImportErrorCount.test.tsx} | 38 +-
.../airflow/ui/src/components/ImportErrorCount.tsx | 7 +-
.../airflow/ui/src/components/JsonEditor.test.tsx | 2 +-
.../TaskInstance/MarkTaskInstanceAsButton.tsx | 17 +-
.../TaskInstance/MarkTaskInstanceAsDialog.test.tsx | 71 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 26 +-
.../MarkAs/utils.test.ts} | 44 +-
.../src/airflow/ui/src/components/MarkAs/utils.ts | 12 +-
.../ui/src/components/MarkdownModal.test.tsx | 2 +-
.../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 +-
.../airflow/ui/src/components/NotePreview.test.tsx | 2 +-
.../src/airflow/ui/src/components/PoolBar.test.tsx | 26 +-
.../src/airflow/ui/src/components/PoolBar.tsx | 7 +-
.../ui/src/components/PresetFiltersMenu.test.tsx | 2 +-
.../ui/src/components/ReactMarkdownBlocks.tsx | 10 +-
.../ui/src/components/RenderedJsonField.test.tsx | 2 +-
.../ui/src/components/RenderedJsonField.tsx | 6 +-
.../ui/src/components/RollupKeyChecklist.tsx | 51 +-
.../ui/src/components/SqlParserProvider.tsx | 6 +-
.../StatsCard.test.tsx} | 25 +-
.../src/airflow/ui/src/components/StatsCard.tsx | 7 +-
.../ui/src/components/TaskInstanceTooltip.test.tsx | 32 +-
.../ui/src/components/TaskInstanceTooltip.tsx | 6 +-
.../src/airflow/ui/src/components/TaskName.tsx | 9 +-
.../airflow/ui/src/components/TeamName.test.tsx | 2 +-
.../airflow/ui/src/components/TogglePause.test.tsx | 2 +-
.../airflow/ui/src/components/TrendCountButton.tsx | 12 +-
.../TriggerDag/PausedDagOptions.test.tsx | 250 +++
.../src/components/TriggerDag/PausedDagOptions.tsx | 123 ++
.../TriggerDag/TriggerDAGAdvancedOptions.tsx | 12 +-
.../TriggerDag/TriggerDAGButton.test.tsx | 104 +-
.../src/components/TriggerDag/TriggerDAGButton.tsx | 171 +-
.../components/TriggerDag/TriggerDAGForm.test.tsx | 94 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 32 +-
.../components/TriggerDag/TriggerDAGModal.test.tsx | 238 +++
.../src/components/TriggerDag/TriggerDAGModal.tsx | 21 +-
.../airflow/ui/src/components/TriggerDag/types.ts | 3 +
.../src/components/VersionCompareSelect.test.tsx | 2 +-
.../ui/src/components/renderStructuredLog.test.tsx | 2 +-
.../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 | 35 +-
.../airflow/ui/src/hooks/useDagRunsLimit.test.tsx | 76 +
.../useDagRunsLimit.ts} | 44 +-
.../src/airflow/ui/src/hooks/useDateRangeFilter.ts | 117 +-
.../ui/src/hooks/usePluginAppliesToContext.test.ts | 12 +
.../ui/src/hooks/usePluginAppliesToContext.ts | 12 +-
.../airflow/ui/src/hooks/usePluginTabs.test.tsx | 10 +-
.../airflow/ui/src/hooks/useUrlOrStoredState.ts | 62 +
.../src/airflow/ui/src/hooks/useUserSettings.ts | 5 +
.../ui/src/layouts/Details/DagBreadcrumb.test.tsx | 2 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 4 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 27 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 12 +-
.../Graph/hooks/useFilteredNodesAndEdges.ts | 5 +-
.../layouts/Details/Graph/useGraphFilteredNodes.ts | 6 +-
.../ui/src/layouts/Details/Grid/Grid.test.tsx | 2 +-
.../src/layouts/Details/Grid/GridButton.test.tsx | 2 +-
.../ui/src/layouts/Details/Grid/GridTI.test.tsx | 2 +-
.../ui/src/layouts/Details/PanelButtons.test.tsx | 70 +
.../ui/src/layouts/Details/PanelButtons.tsx | 52 +-
.../Details/runLimitConfig.test.ts} | 26 +-
.../ui/src/layouts/Details/runLimitConfig.ts | 43 +
.../airflow/ui/src/layouts/Nav/DocsButton.test.tsx | 2 +-
.../ui/src/layouts/Nav/LanguageSelector.test.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/Nav.test.tsx | 2 +-
.../airflow/ui/src/layouts/Nav/NavButton.test.tsx | 2 +-
.../ui/src/layouts/Nav/PluginMenus.test.tsx | 2 +-
.../ui/src/layouts/Nav/UserSettingsButton.test.tsx | 2 +-
.../src/airflow/ui/src/mocks/handlers/dags.ts | 5 +-
.../Asset/AssetStateStore/AssetStateStore.tsx | 6 +-
.../src/pages/Asset/CreateAssetEventModal.test.tsx | 163 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 20 +-
.../src/airflow/ui/src/pages/Asset/Header.test.tsx | 2 +-
.../ui/src/pages/AssetsList/AssetsList.test.tsx | 4 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 9 +-
.../pages/AssetsList/DependencyPopover.test.tsx | 2 +-
.../ui/src/pages/AssetsList/DependencyPopover.tsx | 6 +-
.../src/airflow/ui/src/pages/Configs/Configs.tsx | 3 +-
.../src/pages/Connections/ConnectionForm.test.tsx | 115 ++
.../ui/src/pages/Connections/ConnectionForm.tsx | 94 +-
.../pages/Connections/ConnectionStandardFields.tsx | 2 +-
.../ui/src/pages/Connections/Connections.tsx | 11 +-
.../pages/Connections/NothingFoundInfo.test.tsx | 2 +-
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 25 +-
.../ui/src/pages/Dag/Backfills/Backfills.test.tsx | 2 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 9 +-
.../Dag/Backfills/BackfillsDateFilter.test.tsx | 2 +-
.../src/pages/Dag/Backfills/BackfillsFilters.tsx | 2 +
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 5 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 25 +-
.../ui/src/pages/Dag/Code/FileLocation.test.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 15 +-
.../airflow/ui/src/pages/Dag/DagHeader.test.tsx | 4 +-
.../ui/src/pages/Dag/DeadlineAlertsBadge.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/Details.tsx | 12 +-
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 14 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 7 +-
.../ui/src/pages/Dag/Overview/Overview.test.tsx | 4 +-
.../src/airflow/ui/src/pages/Dag/Tasks/Tasks.tsx | 3 +-
.../pages/Dag/Versions/VersionDiff.i18n.test.tsx | 2 +-
.../ui/src/pages/Dag/Versions/VersionDiff.test.tsx | 2 +-
.../ui/src/pages/Dag/Versions/Versions.test.tsx | 2 +-
.../airflow/ui/src/pages/DagBundle/BundleFiles.tsx | 10 +-
.../src/airflow/ui/src/pages/DagBundle/Header.tsx | 5 +-
.../ui/src/pages/DagBundles/DagBundles.test.tsx | 4 +-
.../airflow/ui/src/pages/DagBundles/DagBundles.tsx | 3 +-
.../src/pages/DagRuns/BulkDeleteDagRunsButton.tsx | 8 +-
.../src/pages/DagRuns/BulkMarkDagRunsAsButton.tsx | 5 +-
.../airflow/ui/src/pages/DagRuns/DagRuns.test.tsx | 33 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 20 +-
.../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 +-
.../ui/src/pages/DagsList/DagCardActions.tsx | 1 -
.../DagsList/DagFolderTree/DagFolderTree.test.tsx | 2 +-
.../src/pages/DagsList/DagRunStateCounts.test.tsx | 13 +-
.../ui/src/pages/DagsList/DagRunStateCounts.tsx | 5 +-
.../DagsList/DagsFilters/DagsFilters.test.tsx | 2 +-
.../ui/src/pages/DagsList/DagsList.test.tsx | 76 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 217 +-
.../ui/src/pages/DagsList/DagsListColumns.tsx | 227 +++
.../src/pages/DagsList/PartitionScheduleModal.tsx | 3 +-
.../pages/DagsList/RecentTaskStateCounts.test.tsx | 110 +
.../src/pages/DagsList/RecentTaskStateCounts.tsx | 128 ++
.../pages/DagsList/RecentTaskStateCountsColumn.tsx | 50 +
.../DagsList/RecentTaskStateCountsHeader.test.tsx} | 39 +-
.../DagsList/RecentTaskStateCountsHeader.tsx} | 29 +-
.../DagsList/Schedule.test.tsx} | 47 +-
.../src/airflow/ui/src/pages/DagsList/Schedule.tsx | 2 +-
.../ui/src/pages/Dashboard/AlertContent.test.tsx | 2 +-
.../ui/src/pages/Dashboard/Dashboard.test.tsx | 2 +-
.../ui/src/pages/Dashboard/Health/Health.test.tsx | 2 +-
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 3 +-
.../Dashboard/PoolSummary/PoolSummary.test.tsx | 11 +-
.../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 | 7 +-
.../src/airflow/ui/src/pages/Deadlines/index.tsx | 9 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 3 +-
.../ui/src/pages/GroupTaskInstance/Header.tsx | 6 +-
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 1 -
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 5 +-
airflow-core/src/airflow/ui/src/pages/Jobs.tsx | 8 +-
.../src/airflow/ui/src/pages/LandingPage.test.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/Providers.tsx | 3 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 2 +-
.../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.test.tsx | 2 +-
.../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/Task/Overview/Overview.test.tsx | 4 +-
.../ui/src/pages/TaskInstance/AssetEvents.tsx | 2 +-
.../ui/src/pages/TaskInstance/DefaultTab.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/Details.test.tsx | 2 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 14 +-
.../ui/src/pages/TaskInstance/ExtraLinks.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 2 +-
.../ui/src/pages/TaskInstance/Header.test.tsx | 2 +-
.../TaskInstance/Logs/LogSearchInput.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 2 +-
.../pages/TaskInstance/Logs/LogsSelection.test.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 +-
.../pages/TaskInstance/RenderedTemplates.test.tsx | 2 +-
.../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 | 20 +-
.../ui/src/pages/TaskStateStore/TaskStateStore.tsx | 5 +-
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 5 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 13 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 3 +-
.../airflow/ui/src/pages/XCom/XComEntry.test.tsx | 216 ++
.../src/airflow/ui/src/pages/XCom/XComEntry.tsx | 50 +-
.../ui/src/queries/useCreateBackfill.test.tsx | 99 +
.../airflow/ui/src/queries/useCreateBackfill.ts | 39 +-
.../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/ui/src/queries/useTogglePause.test.tsx | 2 +-
.../src/airflow/ui/src/queries/useTrigger.test.tsx | 98 +
.../src/airflow/ui/src/queries/useTrigger.ts | 31 +-
airflow-core/src/airflow/ui/src/queryClient.ts | 8 +-
airflow-core/src/airflow/ui/src/router.tsx | 10 +-
.../ui/src/system-components/Menu/MenuTrigger.tsx | 2 +-
.../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 +-
.../airflow/ui/src/utils/pluginAppliesTo.test.ts | 303 ++-
.../src/airflow/ui/src/utils/pluginAppliesTo.ts | 203 +-
airflow-core/src/airflow/ui/src/utils/query.ts | 6 +-
.../renderMermaid.test.ts} | 26 +-
.../src/airflow/ui/src/utils/renderMermaid.ts | 10 +-
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/ui/testsSetup.ts | 2 +-
airflow-core/src/airflow/utils/cli.py | 48 +-
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 +-
.../managers/simple/test_simple_auth_manager.py | 74 +
.../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 | 43 +-
.../core_api/datamodels/test_dag_run.py | 6 +-
.../api_fastapi/core_api/datamodels/test_dags.py | 4 +-
.../core_api/routes/public/test_assets.py | 56 +-
.../core_api/routes/public/test_backfills.py | 72 +-
.../core_api/routes/public/test_dag_bundles.py | 8 +-
.../core_api/routes/public/test_dag_run.py | 76 +-
.../core_api/routes/public/test_dag_tags.py | 16 +-
.../core_api/routes/public/test_dags.py | 45 +-
.../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_plugins.py | 30 +-
.../core_api/routes/public/test_pools.py | 8 +
.../core_api/routes/public/test_task_instances.py | 255 ++-
.../core_api/routes/public/test_tasks.py | 35 +
.../core_api/routes/public/test_xcom.py | 85 +-
.../api_fastapi/core_api/routes/ui/test_assets.py | 119 +-
.../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 +
.../unit/cli/commands/test_command_deprecations.py | 1 +
.../tests/unit/cli/commands/test_dag_command.py | 3 +
.../unit/cli/commands/test_plugins_command.py | 4 +-
.../tests/unit/cli/commands/test_task_command.py | 26 +
.../tests/unit/dag_processing/fake_lang_sdk.py | 144 ++
.../lang_sdk_fixtures/go_native.json | 1680 ++++++++++++++++
.../lang_sdk_fixtures/java_native.json | 151 ++
.../lang_sdk_fixtures/ts_conformance.json | 661 ++++++
.../tests/unit/dag_processing/test_collection.py | 2 +-
.../tests/unit/dag_processing/test_dagbag.py | 330 ++-
.../unit/dag_processing/test_importer_routing.py | 63 +
.../unit/dag_processing/test_lang_sdk_processor.py | 874 ++++++++
.../tests/unit/dag_processing/test_manager.py | 243 ++-
.../tests/unit/dag_processing/test_processor.py | 74 +-
.../tests/unit/executors/test_local_executor.py | 462 ++++-
.../executors/test_local_executor_check_workers.py | 5 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 223 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 6 +-
.../test_0142_unify_task_attempt_ownership.py | 691 +++++++
airflow-core/tests/unit/models/test_asset.py | 32 +
airflow-core/tests/unit/models/test_backfill.py | 133 +-
airflow-core/tests/unit/models/test_cleartasks.py | 501 ++++-
airflow-core/tests/unit/models/test_dag.py | 79 +-
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 | 92 +-
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 +-
airflow-core/tests/unit/plugins/test_plugin.py | 4 +-
.../tests/unit/plugins/test_plugins_manager.py | 295 ++-
.../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 | 358 +++-
airflow-core/tests/unit/utils/test_cli_util.py | 79 +
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 +-
.../airflowctl_tests/test_airflowctl_commands.py | 1 +
airflow-ctl/README.md | 2 +-
airflow-ctl/docs/installation/prerequisites.rst | 4 +-
airflow-ctl/pyproject.toml | 6 +-
.../src/airflowctl/api/datamodels/generated.py | 45 +-
airflow-ctl/src/airflowctl/api/operations.py | 7 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 14 +-
.../tests/airflow_ctl/api/test_operations.py | 64 +-
.../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 | 111 +-
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 | 18 +-
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 | 25 +-
.../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_selective_checks.py | 88 +-
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/known_airflow_exceptions.txt | 2 +-
generated/known_sdk_imports_in_core.txt | 2 +
generated/provider_metadata.json | 10 +
go-sdk/Justfile | 2 +-
go-sdk/README.md | 79 +-
go-sdk/adr/0008-native-dag-interface.md | 30 +-
go-sdk/airflow/bundle.go | 114 +-
go-sdk/airflow/bundle_test.go | 68 +
go-sdk/airflow/conformance_test.go | 349 ++++
go-sdk/airflow/dag.go | 318 ++-
.../bundle/doc.go => airflow/dag_factory_test.go} | 12 +-
go-sdk/airflow/dag_source_test.go | 65 +
go-sdk/airflow/enums.go | 11 +-
.../bundle/doc.go => airflow/export_test.go} | 30 +-
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/serve.go | 13 +-
go-sdk/airflow/serve_test.go | 102 +-
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 +-
go-sdk/cmd/airflow-go-pack/inspect.go | 59 +-
go-sdk/cmd/airflow-go-pack/inspect_test.go | 89 +-
go-sdk/cmd/airflow-go-pack/main.go | 9 +-
go-sdk/cmd/airflow-go-pack/pack.go | 123 +-
.../cmd/airflow-go-pack/pack_integration_test.go | 22 +-
go-sdk/cmd/airflow-go-pack/pack_test.go | 102 +-
go-sdk/cmd/airflow-go-pack/sources.go | 256 +++
go-sdk/cmd/airflow-go-pack/sources_test.go | 430 ++++
.../airflow-go-pack/testdata/handlersonly/main.go} | 24 +-
.../testdata/multidag/factory/factory.go} | 17 +-
.../airflow-go-pack/testdata/multidag/main.go} | 37 +-
.../testdata/multidag/reports/reports.go} | 17 +-
go-sdk/dags/go_examples.py | 19 +-
go-sdk/example/bundle/Justfile | 4 +-
.../bundle/concurrentxcom/concurrentxcom_test.go | 4 +
go-sdk/example/bundle/main.go | 3 +
go-sdk/example/bundle/taskstate/taskstate.go | 99 +
go-sdk/internal/airflowmetadata/airflowmetadata.go | 3 +
go-sdk/internal/bundle/doc.go | 9 +-
go-sdk/internal/bundle/task.go | 94 +-
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/dag_parse.go | 79 +
go-sdk/pkg/execution/dag_parse_test.go | 202 ++
go-sdk/pkg/execution/frames.go | 14 +-
.../pkg/execution/genmodels/discriminators.gen.go | 4 +
go-sdk/pkg/execution/genmodels/models.gen.go | 18 +-
go-sdk/pkg/execution/integration_test.go | 452 ++++-
go-sdk/pkg/execution/metadata.go | 5 +
go-sdk/pkg/execution/metadata_test.go | 36 +
go-sdk/pkg/execution/server.go | 22 +-
go-sdk/pkg/execution/task_runner.go | 66 +-
go-sdk/schema/supervisor-schema.json | 21 +
go-sdk/sdk/doc.go | 8 +-
go-sdk/sdk/errors.go | 6 +
go-sdk/sdk/sdk.go | 89 +-
java-sdk/README.md | 30 +-
java-sdk/adr/0002-native-dag-interface.md | 7 +-
java-sdk/capabilities.yaml | 22 +-
.../airflow/example/ExampleBundleBuilder.java | 3 +
.../example/nativedag/AnnotationExample.java | 80 +
.../org/apache/airflow/sdk/BuilderProcessor.kt | 553 ++++-
.../kotlin/org/apache/airflow/sdk/BuilderTest.kt | 1300 +++++++++++-
.../ci/prek/check_serialization_conformance.py | 33 +-
java-sdk/sdk/build.gradle.kts | 113 +-
java-sdk/sdk/module.md | 24 +-
.../src/main/kotlin/org/apache/airflow/sdk/Arg.kt | 22 +-
.../main/kotlin/org/apache/airflow/sdk/Bundle.kt | 72 +-
.../main/kotlin/org/apache/airflow/sdk/Client.kt | 128 ++
.../main/kotlin/org/apache/airflow/sdk/DagDef.kt | 150 +-
.../src/main/kotlin/org/apache/airflow/sdk/Deps.kt | 116 +-
.../main/kotlin/org/apache/airflow/sdk/Endpoint.kt | 14 +-
.../main/kotlin/org/apache/airflow/sdk/Server.kt | 11 +
.../kotlin/org/apache/airflow/sdk/TaskGroupRef.kt | 111 +
.../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 | 490 +++++
.../org/apache/airflow/sdk/internal/ArgValues.kt | 24 +-
.../kotlin/org/apache/airflow/sdk/internal/Ids.kt | 14 +-
.../kotlin/org/apache/airflow/sdk/internal/Refs.kt | 181 ++
.../org/apache/airflow/sdk/internal/Registrar.kt | 23 +
.../org/apache/airflow/sdk/internal/TaskArgs.kt | 2 +-
.../org/apache/airflow/sdk/ArgTestSupport.kt | 27 +-
.../kotlin/org/apache/airflow/sdk/ArgValuesTest.kt | 11 +
.../kotlin/org/apache/airflow/sdk/BundleTest.kt | 118 +-
.../kotlin/org/apache/airflow/sdk/ClientTest.kt | 184 +-
.../kotlin/org/apache/airflow/sdk/InputTaskTest.kt | 6 +-
.../kotlin/org/apache/airflow/sdk/ServerTest.kt | 63 +
.../kotlin/org/apache/airflow/sdk/TaskGroupTest.kt | 286 +++
.../airflow/sdk/conformance/SerializeJava.kt | 140 ++
.../org/apache/airflow/sdk/execution/CommTest.kt | 124 +-
.../org/apache/airflow/sdk/execution/SerdeTest.kt | 428 ++++
.../org/apache/airflow/sdk/execution/TaskTest.kt | 19 +
.../apache/airflow/sdk/internal/ArgValuesTest.kt | 27 +-
.../org/apache/airflow/sdk/internal/RefsTest.kt | 206 ++
.../apache/airflow/sdk/internal/RegistrarTest.kt | 23 +-
.../apache/airflow/k8sexample/CombinedExample.java | 15 +-
.../airflow/k8sexample/K8sBundleBuilder.java | 17 +-
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 -
.../unit/amazon/aws/transfers/test_s3_to_sftp.py | 12 +
.../unit/amazon/aws/transfers/test_sftp_to_s3.py | 12 +
.../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/provider.yaml | 24 +
providers/cncf/kubernetes/pyproject.toml | 3 +-
.../kubernetes/executors/kubernetes_executor.py | 44 +-
.../executors/kubernetes_executor_types.py | 1 +
.../executors/kubernetes_executor_utils.py | 19 +-
.../providers/cncf/kubernetes/get_provider_info.py | 14 +
.../providers/cncf/kubernetes/kube_client.py | 43 +
.../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 | 204 +-
.../kubernetes/log_handlers/test_log_handlers.py | 9 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 32 +-
.../tests/unit/cncf/kubernetes/test_kube_client.py | 96 +-
.../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 | 6 +-
providers/common/ai/docs/operators/llm_sql.rst | 6 +-
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 | 78 +-
providers/common/ai/docs/toolsets/hook.rst | 48 +-
providers/common/ai/docs/toolsets/index.rst | 211 +-
providers/common/ai/docs/toolsets/logging.rst | 9 +-
providers/common/ai/docs/toolsets/mcp.rst | 45 +-
.../common/ai/docs/toolsets/object_storage.rst | 42 +-
providers/common/ai/docs/toolsets/skills.rst | 60 +-
providers/common/ai/docs/toolsets/sql.rst | 104 +-
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 | 31 +
.../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 +-
.../common/ai/example_dags/example_mcp.py | 35 +-
.../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/hook.py | 28 +-
.../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/toolsets/skills.py | 15 +-
.../airflow/providers/common/ai/utils/decision.py | 12 +-
.../providers/common/ai/utils/hitl_review.py | 4 +-
.../airflow/providers/common/ai/utils/logging.py | 2 +
.../providers/common/ai/utils/tool_definition.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 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 109 +-
.../tests/unit/common/ai/toolsets/test_skills.py | 47 +-
.../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/docs/operators.rst | 60 +-
providers/common/sql/pyproject.toml | 3 +-
.../sql/src/airflow/providers/common/sql/config.py | 3 +
.../providers/common/sql/datafusion/engine.py | 185 ++
.../sql/datafusion/object_storage_provider.py | 36 +-
.../common/sql/example_dags/example_analytics.py | 13 +
.../unit/common/sql/datafusion/test_engine.py | 447 ++++
.../sql/datafusion/test_object_storage_provider.py | 48 +
.../sql/tests/unit/common/sql/test_config.py | 1 +
providers/databricks/README.rst | 2 +-
providers/databricks/docs/operators/copy_into.rst | 81 +
providers/databricks/pyproject.toml | 5 +-
.../providers/databricks/assets/databricks.py | 37 +
.../providers/databricks/hooks/databricks_base.py | 8 +
.../databricks/operators/databricks_sql.py | 82 +-
.../providers/databricks/utils/openlineage.py | 2 +-
.../unit/databricks/assets/test_databricks.py | 55 +
.../tests/unit/databricks/hooks/test_databricks.py | 27 +
.../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 +-
.../providers/3rd-party-licenses/LICENSES-ui.txt | 2 +-
.../fab/auth_manager/security_manager/override.py | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 6 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 195 +-
.../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/datafusion.py | 7 +-
.../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 +
.../providers/google/cloud/sensors/datafusion.py | 11 +-
.../google/cloud/transfers/gcs_to_sftp.py | 29 +-
.../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 +-
.../unit/google/cloud/hooks/test_datafusion.py | 38 +
.../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 +
.../unit/google/cloud/sensors/test_datafusion.py | 35 +-
.../google/cloud/transfers/test_gcs_to_sftp.py | 50 +-
.../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/docs/changelog.rst | 16 +
providers/sftp/docs/connections/sftp.rst | 2 +-
providers/sftp/pyproject.toml | 5 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 80 +-
.../src/airflow/providers/sftp/operators/sftp.py | 1 +
.../src/airflow/providers/sftp/triggers/sftp.py | 22 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 297 ++-
.../sftp/tests/unit/sftp/operators/test_sftp.py | 31 +-
.../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 +-
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 10 +-
providers/smtp/tests/unit/smtp/hooks/test_smtp.py | 42 +
.../tests/unit/smtp/notifications/test_smtp.py | 27 +
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/docs/changelog.rst | 15 +
providers/ssh/docs/connections/ssh.rst | 2 +-
providers/ssh/pyproject.toml | 3 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 139 +-
providers/ssh/tests/unit/ssh/hooks/test_ssh.py | 173 +-
.../ssh/tests/unit/ssh/hooks/test_ssh_async.py | 64 +
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 +-
.../unit/standard/sensors/test_external_task.py | 2 +-
.../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 | 203 +-
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_go_sdk_schemas.py | 21 +-
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 +
.../test_check_openapi_exception_doc_in_sync.py | 114 +-
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 | 25 +-
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/docs/airflow-metadata.schema.json | 49 +-
task-sdk/docs/executable-bundle-spec.rst | 105 +-
task-sdk/pyproject.toml | 7 +-
task-sdk/src/airflow/sdk/bases/operator.py | 48 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 2 +-
.../airflow/sdk/coordinators/_bundle_metadata.py | 16 +
.../src/airflow/sdk/coordinators/_dag_importer.py | 166 ++
.../src/airflow/sdk/coordinators/_subprocess.py | 288 ++-
.../sdk/coordinators/executable/_bundle_reader.py | 195 ++
.../sdk/coordinators/executable/_dag_importer.py | 105 +
.../sdk/coordinators/executable/coordinator.py | 158 +-
.../airflow/sdk/coordinators/java/_dag_importer.py | 122 ++
.../airflow/sdk/coordinators/java/_jar_manifest.py | 71 +
.../airflow/sdk/coordinators/java/coordinator.py | 165 +-
.../sdk/coordinators/node/_bundle_reader.py | 29 +-
.../airflow/sdk/coordinators/node/_dag_importer.py | 72 +
.../airflow/sdk/coordinators/node/coordinator.py | 29 +-
.../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/comms.py | 8 +
task-sdk/src/airflow/sdk/execution_time/context.py | 162 +-
.../src/airflow/sdk/execution_time/coordinator.py | 190 +-
.../airflow/sdk/execution_time/schema/schema.json | 21 +
.../src/airflow/sdk/execution_time/supervisor.py | 178 +-
.../src/airflow/sdk/execution_time/task_runner.py | 66 +-
task-sdk/src/airflow/sdk/importers/base.py | 63 +-
.../src/airflow/sdk/importers/python_importer.py | 4 +-
task-sdk/src/airflow/sdk/importers/zip_importer.py | 4 +-
task-sdk/src/airflow/sdk/io/path.py | 3 +-
task-sdk/src/airflow/sdk/log.py | 15 +-
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 +
.../coordinators/executable/_bundle_test_utils.py | 98 +
.../coordinators/executable/test_bundle_reader.py | 217 ++
.../coordinators/executable/test_coordinator.py | 248 ++-
.../coordinators/executable/test_dag_importer.py | 283 +++
.../task_sdk/coordinators/java/_jar_test_utils.py | 53 +
.../task_sdk/coordinators/java/test_coordinator.py | 314 ++-
.../coordinators/java/test_dag_importer.py | 308 +++
.../coordinators/java/test_jar_manifest.py | 94 +
.../coordinators/node/_bundle_test_utils.py | 5 +
.../coordinators/node/test_bundle_reader.py | 10 +-
.../task_sdk/coordinators/node/test_coordinator.py | 114 +-
.../coordinators/node/test_dag_importer.py | 275 +++
.../task_sdk/coordinators/test_dag_importer.py | 214 ++
.../tests/task_sdk/coordinators/test_subprocess.py | 505 ++++-
.../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_coordinator.py | 327 ++-
.../task_sdk/execution_time/test_supervisor.py | 450 ++++-
.../task_sdk/execution_time/test_task_runner.py | 156 +-
task-sdk/tests/task_sdk/importers/test_registry.py | 138 ++
task-sdk/tests/task_sdk/serde/test_serializers.py | 2 +-
task-sdk/tests/task_sdk/test_log.py | 89 +
ts-sdk/adr/0002-native-dag-interface.md | 75 +
.../ci/prek/check_serialization_conformance.py | 15 +-
ts-sdk/src/coordinator/client.ts | 69 +
ts-sdk/src/coordinator/protocol.ts | 9 +
ts-sdk/src/coordinator/runtime.ts | 22 +-
ts-sdk/src/coordinator/serde.ts | 59 +-
ts-sdk/src/coordinator/trigger-runner.ts | 232 +++
ts-sdk/src/generated/supervisor.ts | 104 +-
ts-sdk/src/index.ts | 6 +
ts-sdk/src/sdk/bundle.ts | 12 +
ts-sdk/src/sdk/dag.ts | 339 +++-
ts-sdk/src/sdk/trigger-dag-run.ts | 192 ++
ts-sdk/tests/coordinator/client.test.ts | 18 +
ts-sdk/tests/coordinator/integration.test.ts | 344 ++++
ts-sdk/tests/coordinator/serde.test.ts | 42 +
ts-sdk/tests/sdk/branching.test.ts | 242 +++
ts-sdk/tests/sdk/conditional.test.ts | 308 +++
ts-sdk/tests/sdk/dag.test.ts | 4 +-
ts-sdk/tests/sdk/trigger-dag-run.test.ts | 308 +++
uv.lock | 2126 ++------------------
1844 files changed, 62754 insertions(+), 15903 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/66633.bugfix.rst
delete mode 100644 airflow-core/newsfragments/69148.feature.rst
create mode 100644 airflow-core/newsfragments/73806.improvement.rst
create mode 100644 airflow-core/newsfragments/74151.significant.rst
create mode 100644 airflow-core/newsfragments/74278.feature.rst
create mode 100644 airflow-core/src/airflow/dag_processing/importer_routing.py
create mode 100644
airflow-core/src/airflow/dag_processing/lang_sdk_processor.py
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/DataTable/DataTable.stateChange.test.tsx
copy airflow-core/src/airflow/ui/src/{pages/LandingPage.tsx =>
components/DataTable/features.ts} (62%)
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
copy airflow-core/src/airflow/ui/src/{pages/Dag/Code/FileLocation.test.tsx =>
components/ImportErrorCount.test.tsx} (52%)
copy airflow-core/src/airflow/ui/src/{pages/Dag/Code/FileLocation.test.tsx =>
components/MarkAs/utils.test.ts} (53%)
create mode 100644
airflow-core/src/airflow/ui/src/components/MonacoEditor/configureMonaco.test.ts
copy
airflow-core/src/airflow/ui/src/{pages/Connections/NothingFoundInfo.test.tsx =>
components/StatsCard.test.tsx} (61%)
create mode 100644
airflow-core/src/airflow/ui/src/components/TriggerDag/PausedDagOptions.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/TriggerDag/PausedDagOptions.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/TriggerDag/TriggerDAGModal.test.tsx
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/Connections/NothingFoundInfo.test.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
copy airflow-core/src/airflow/ui/src/{layouts/Details/Grid/GridButton.test.tsx
=> pages/DagsList/RecentTaskStateCountsHeader.test.tsx} (52%)
rename airflow-core/src/airflow/ui/src/{layouts/StorageLayout.tsx =>
pages/DagsList/RecentTaskStateCountsHeader.tsx} (57%)
copy airflow-core/src/airflow/ui/src/{layouts/Details/Grid/GridButton.test.tsx
=> pages/DagsList/Schedule.test.tsx} (52%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/XCom/XComEntry.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useCreateBackfill.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
create mode 100644 airflow-core/src/airflow/ui/src/queries/useTrigger.test.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
copy
airflow-core/src/airflow/ui/src/{pages/Connections/NothingFoundInfo.test.tsx =>
utils/renderMermaid.test.ts} (54%)
create mode 100644 airflow-core/tests/unit/dag_processing/fake_lang_sdk.py
create mode 100644
airflow-core/tests/unit/dag_processing/lang_sdk_fixtures/go_native.json
create mode 100644
airflow-core/tests/unit/dag_processing/lang_sdk_fixtures/java_native.json
create mode 100644
airflow-core/tests/unit/dag_processing/lang_sdk_fixtures/ts_conformance.json
create mode 100644
airflow-core/tests/unit/dag_processing/test_importer_routing.py
create mode 100644
airflow-core/tests/unit/dag_processing/test_lang_sdk_processor.py
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
copy go-sdk/{internal/bundle/doc.go => airflow/dag_factory_test.go} (75%)
create mode 100644 go-sdk/airflow/dag_source_test.go
copy go-sdk/{internal/bundle/doc.go => airflow/export_test.go} (51%)
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/cmd/airflow-go-pack/sources.go
create mode 100644 go-sdk/cmd/airflow-go-pack/sources_test.go
copy go-sdk/{internal/bundle/doc.go =>
cmd/airflow-go-pack/testdata/handlersonly/main.go} (65%)
copy go-sdk/{internal/bundle/doc.go =>
cmd/airflow-go-pack/testdata/multidag/factory/factory.go} (74%)
copy go-sdk/{internal/bundle/doc.go =>
cmd/airflow-go-pack/testdata/multidag/main.go} (50%)
copy go-sdk/{internal/bundle/doc.go =>
cmd/airflow-go-pack/testdata/multidag/reports/reports.go} (73%)
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
create mode 100644 go-sdk/pkg/execution/dag_parse.go
create mode 100644 go-sdk/pkg/execution/dag_parse_test.go
create mode 100644
java-sdk/example/src/java/org/apache/airflow/example/nativedag/AnnotationExample.java
copy {ts-sdk => java-sdk}/scripts/ci/prek/check_serialization_conformance.py
(57%)
copy airflow-core/src/airflow/ui/src/components/MarkAs/utils.ts =>
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/Endpoint.kt (69%)
create mode 100644
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/TaskGroupRef.kt
create mode 100644
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/execution/Serde.kt
copy airflow-core/src/airflow/ui/src/components/MarkAs/utils.ts =>
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/internal/Ids.kt (70%)
create mode 100644
java-sdk/sdk/src/main/kotlin/org/apache/airflow/sdk/internal/Refs.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
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/execution/SerdeTest.kt
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/internal/RefsTest.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
create mode 100644 task-sdk/src/airflow/sdk/coordinators/_dag_importer.py
create mode 100644
task-sdk/src/airflow/sdk/coordinators/executable/_bundle_reader.py
create mode 100644
task-sdk/src/airflow/sdk/coordinators/executable/_dag_importer.py
create mode 100644 task-sdk/src/airflow/sdk/coordinators/java/_dag_importer.py
create mode 100644 task-sdk/src/airflow/sdk/coordinators/java/_jar_manifest.py
create mode 100644 task-sdk/src/airflow/sdk/coordinators/node/_dag_importer.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/executable/_bundle_test_utils.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/executable/test_bundle_reader.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/executable/test_dag_importer.py
create mode 100644 task-sdk/tests/task_sdk/coordinators/java/_jar_test_utils.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/java/test_dag_importer.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/java/test_jar_manifest.py
create mode 100644
task-sdk/tests/task_sdk/coordinators/node/test_dag_importer.py
create mode 100644 task-sdk/tests/task_sdk/coordinators/test_dag_importer.py
create mode 100644 task-sdk/tests/task_sdk/test_log.py
create mode 100644 ts-sdk/src/coordinator/trigger-runner.ts
create mode 100644 ts-sdk/src/sdk/trigger-dag-run.ts
create mode 100644 ts-sdk/tests/sdk/branching.test.ts
create mode 100644 ts-sdk/tests/sdk/conditional.test.ts
create mode 100644 ts-sdk/tests/sdk/trigger-dag-run.test.ts