This is an automated email from the ASF dual-hosted git repository.
ephraimbuddy pushed a change to branch dag-processor-source-consistency
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 9bc77b1f662 Describe the git provider's refresh-error probe accurately
discard 9170d76ac5d Stop repeated bundle drains and keep cleanup overrides
working
discard 0bd18f5b169 Keep Dag parsing and metrics healthy during bundle outages
discard 1f2332be9ac Revise Dag bundle refresh compatibility guidance
discard d299f5ee105 Clarify bundle refresh compatibility and simplify its
regression test
discard 97c1d4bed76 Keep Git bundles importable on Airflow 3.4
discard bda0ed0fdba Keep Dag parsing responsive during bundle refresh failures
discard 4f98ef56570 Make the bundle refresh regression test independent of
uptime
discard 3a6f378d2cf Avoid parsing stalls while a bundle refresh waits for
imports
discard 7b60a8b86a5 Keep Dag parsing results aligned with refreshed bundle
sources
add 750617c3867 Fix entry-point plugins reported as duplicates on
RHEL/Fedora venvs (#74531)
add f14247a5938 Add a general debugging guide to the troubleshooting doc
(#71457)
add ebe49645e34 Move XCom filter param models into execution API
datamodels (#76536)
add 437f6be3cec Run the durable OpenAI Agents tests in the agent framework
CI job (#76500)
add 7625b59a85e Key LLM batch and durable Strands state on the task loop
iteration (#76201)
add d46d97fa8d5 Note the unparseable-output case in OpenAIResponseOperator
XCom docs (#74519)
add b7ceab0372b Support Workload Identity Federation in Snowflake REST API
authentication (#75810)
add f82542a453a Name the caller's own MCP client and durable setup in
Common AI errors (#76495)
add 8e922e329ab Refactor isinstance dispatching with polymorphism (#74634)
add e3c21b77c97 Update French (fr) UI translations to 100% coverage
(#76460)
add dcbf21690e8 Pass AssetStateStoreAccessors into response_check_path
Callable in HttpEventTrigger (#72287)
add 6cf8ed6c63a UI: Translate the Spanish strings added since the last
pass (#76466)
add b5ab0a15174 UI: Defer React plugin compatibility runtime (#75083)
add b0581660e45 Support fail_on_reject on every LLM approval operator
(#74493)
add 24464f6d728 Keep Dag and deadline list serialization off the API
server event loop (#76525)
add 020259387b9 Support multimodal prompts with enable_hitl_review in
AgentOperator (#74389)
add c4eaf4b8399 Prepare providers release 2026-11-03 (#76490)
add 3eacdb97dfd Sanitize error message in DatabricksExecutionTrigger
(#70385)
add 8529c41db15 Add environment_variables to MWAA Serverless create/update
workflow operators (#76496)
add c8d8df3353d Add `@task.modal` to run Python functions on Modal without
Airflow in the image (#76502)
add bca1e144da1 Add raphaelauv to fork-ci-gate (#76538)
add 71a19df58c5 Write container logs to the task log in deferrable
AzureContainerInstancesOperator (#76330)
add 6bacb63888f Complete Dutch translations (2026-10-05) (#74286)
add 77762c256df Add `partition_key` to the `DagRun Finished` log line
(#76557)
add 1f4bc05aa0a Allow Human-in-the-loop tasks to be answered while still
running (#75413)
add c7fcba0106a Stop holding openai below 3 in Airflow's CI image and
constraints (#76503)
add 322c178e05b Fix duplicated asset events when name_prefix_pattern
matches all (#74816)
add 1fe65f5f13a Keep parallel tool results replayable across retries in
OpenAI Agents durable runs (#76015)
add 3204b6ebebb Fix enum names and non-ISO dates in airflowctl dags output
(#76354)
add cc1dfb94296 Remove deprecated project_id from BigQueryGetDataOperator
(#76115)
add 57be3ff441d Keep Dag parsing results aligned with refreshed bundle
sources
add f15d358847a Avoid parsing stalls while a bundle refresh waits for
imports
add b14c938945f Make the bundle refresh regression test independent of
uptime
add 120dd5c728b Keep Dag parsing responsive during bundle refresh failures
add 2485e4ebc66 Keep Git bundles importable on Airflow 3.4
add 0ae0d380721 Clarify bundle refresh compatibility and simplify its
regression test
add abe254a9828 Revise Dag bundle refresh compatibility guidance
add 62870a2972e Keep Dag parsing and metrics healthy during bundle outages
add a0c3b301e94 Stop repeated bundle drains and keep cleanup overrides
working
add 57427115ce0 Describe the git provider's refresh-error probe accurately
add 4552a6bc204 Clarify refresh retry timing and note the bundle parsing
pause
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 (9bc77b1f662)
\
N -- N -- N refs/heads/dag-processor-source-consistency
(4552a6bc204)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/fork-ci-gate.toml | 1 +
.github/workflows/agent-framework-tests.yml | 2 +-
Dockerfile.ci | 17 +-
.../administration-and-deployment/dag-bundles.rst | 7 +-
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/docs/troubleshooting.rst | 129 ++++++
airflow-core/newsfragments/74789.significant.rst | 12 +
.../airflow/api_fastapi/common/parameters/misc.py | 10 +-
.../api_fastapi/core_api/datamodels/dags.py | 4 +-
.../api_fastapi/core_api/datamodels/ui/deadline.py | 2 +-
.../api_fastapi/core_api/routes/public/assets.py | 2 +-
.../api_fastapi/core_api/routes/public/dags.py | 7 +-
.../api_fastapi/core_api/routes/public/hitl.py | 6 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 9 +-
.../api_fastapi/core_api/routes/ui/deadlines.py | 2 +-
.../api_fastapi/execution_api/datamodels/xcom.py | 19 +
.../api_fastapi/execution_api/routes/hitl.py | 16 +-
.../api_fastapi/execution_api/routes/xcoms.py | 22 +-
.../api_fastapi/execution_api/versions/__init__.py | 4 +-
.../execution_api/versions/v2025_08_10.py | 2 +-
.../execution_api/versions/v2026_10_30.py | 12 +
.../versions/v2026_10_30_xcom_params.py | 35 --
.../src/airflow/jobs/triggerer_job_runner.py | 23 +-
...54_3_5_0_add_idempotency_key_to_hitl_detail.py} | 28 +-
airflow-core/src/airflow/models/dagrun.py | 4 +-
airflow-core/src/airflow/models/hitl.py | 43 ++
.../airflow/ui/public/i18n/locales/es/browse.json | 1 +
.../airflow/ui/public/i18n/locales/es/common.json | 8 +-
.../ui/public/i18n/locales/es/components.json | 4 +
.../src/airflow/ui/public/i18n/locales/es/dag.json | 4 +-
.../airflow/ui/public/i18n/locales/es/dags.json | 1 +
.../airflow/ui/public/i18n/locales/fr/admin.json | 3 +
.../airflow/ui/public/i18n/locales/fr/browse.json | 2 +
.../airflow/ui/public/i18n/locales/fr/common.json | 34 +-
.../ui/public/i18n/locales/fr/components.json | 13 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 68 ++-
.../airflow/ui/public/i18n/locales/fr/dags.json | 14 +-
.../ui/public/i18n/locales/fr/dashboard.json | 1 +
.../airflow/ui/public/i18n/locales/fr/hitl.json | 1 +
.../airflow/ui/public/i18n/locales/nl/admin.json | 26 +-
.../airflow/ui/public/i18n/locales/nl/assets.json | 18 +-
.../airflow/ui/public/i18n/locales/nl/browse.json | 34 ++
.../airflow/ui/public/i18n/locales/nl/common.json | 227 +++++++++-
.../ui/public/i18n/locales/nl/components.json | 57 ++-
.../src/airflow/ui/public/i18n/locales/nl/dag.json | 139 +++++-
.../airflow/ui/public/i18n/locales/nl/dags.json | 60 ++-
.../ui/public/i18n/locales/nl/dashboard.json | 24 +-
.../airflow/ui/public/i18n/locales/nl/hitl.json | 1 +
.../ui/src/components/NeedsReviewButton.tsx | 3 +-
.../airflow/ui/src/hooks/useRequiredActionTabs.ts | 6 +-
airflow-core/src/airflow/ui/src/main.tsx | 19 +-
.../HITLTaskInstances/HITLTaskInstances.test.tsx | 11 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 4 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 25 +-
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 14 +-
airflow-core/src/airflow/ui/src/utils/hitl.test.ts | 48 +-
airflow-core/src/airflow/ui/src/utils/hitl.ts | 12 +-
.../src/utils/registerPluginDependencies.test.ts | 59 +++
.../utils/registerPluginDependencies.ts} | 39 +-
airflow-core/src/airflow/utils/db.py | 2 +-
.../core_api/routes/public/test_assets.py | 2 +
.../core_api/routes/public/test_dags.py | 18 +
.../core_api/routes/public/test_hitl.py | 46 ++
.../api_fastapi/core_api/routes/ui/test_dags.py | 30 ++
.../core_api/routes/ui/test_deadlines.py | 12 +
.../execution_api/versions/head/test_hitl.py | 45 ++
.../tests/unit/dag_processing/test_processor.py | 1 +
airflow-core/tests/unit/models/test_dagrun.py | 33 ++
.../src/airflowctl/ctl/commands/dag_command.py | 5 +-
.../airflow_ctl/ctl/commands/test_dag_command.py | 27 +-
contributing-docs/12_provider_distributions.rst | 6 +-
.../13_airflow_dependencies_and_extras.rst | 5 +
.../src/airflow_breeze/utils/verification_plan.py | 5 +
docs/spelling_wordlist.txt | 2 +
generated/known_sdk_imports_in_core.txt | 2 +-
.../pkg/execution/genmodels/discriminators.gen.go | 4 +
go-sdk/pkg/execution/genmodels/models.gen.go | 83 ++--
go-sdk/schema/supervisor-schema.json | 72 +++
providers/.last_release_date.txt | 2 +-
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 12 +
providers/alibaba/docs/index.rst | 6 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
providers/amazon/README.rst | 10 +-
providers/amazon/docs/changelog.rst | 55 +++
providers/amazon/docs/index.rst | 8 +-
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 8 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/operators/mwaa_serverless.py | 21 +
.../amazon/aws/operators/test_mwaa_serverless.py | 52 +++
providers/apache/arrow/README.rst | 6 +-
providers/apache/arrow/docs/changelog.rst | 19 +
providers/apache/arrow/docs/index.rst | 6 +-
providers/apache/arrow/provider.yaml | 3 +-
providers/apache/arrow/pyproject.toml | 6 +-
.../src/airflow/providers/apache/arrow/__init__.py | 2 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 13 +
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
providers/apache/kafka/README.rst | 6 +-
providers/apache/kafka/docs/changelog.rst | 12 +
providers/apache/kafka/docs/index.rst | 6 +-
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 6 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 17 +
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 34 ++
providers/cncf/kubernetes/docs/index.rst | 6 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
providers/common/ai/docs/approval_gates.rst | 12 +-
providers/common/ai/docs/durable_execution.rst | 2 +-
providers/common/ai/docs/frameworks/anthropic.rst | 4 +-
.../common/ai/docs/frameworks/claude_agent_sdk.rst | 4 +-
providers/common/ai/docs/frameworks/index.rst | 28 +-
.../common/ai/docs/frameworks/openai_agents.rst | 7 +-
providers/common/ai/docs/frameworks/strands.rst | 7 +-
providers/common/ai/docs/hooks/llamaindex.rst | 6 +
providers/common/ai/docs/operators/agent.rst | 7 +-
providers/common/ai/docs/operators/llm.rst | 8 +-
providers/common/ai/docs/operators/llm_batch.rst | 5 +-
providers/common/ai/docs/operators/llm_branch.rst | 4 +-
providers/common/ai/docs/stability.rst | 6 +-
providers/common/ai/docs/troubleshooting.rst | 2 +-
providers/common/ai/provider.yaml | 7 +-
providers/common/ai/pyproject.toml | 10 +-
.../src/airflow/providers/common/ai/batch/state.py | 43 +-
.../providers/common/ai/decorators/agent.py | 7 -
.../airflow/providers/common/ai/durable/journal.py | 70 ++-
.../providers/common/ai/durable/openai_agents.py | 64 ++-
.../airflow/providers/common/ai/durable/storage.py | 3 +-
.../airflow/providers/common/ai/durable/strands.py | 20 +-
.../src/airflow/providers/common/ai/exceptions.py | 10 +
.../providers/common/ai/get_provider_info.py | 2 +-
.../providers/common/ai/mixins/hitl_review.py | 15 +-
.../airflow/providers/common/ai/operators/agent.py | 8 -
.../airflow/providers/common/ai/operators/llm.py | 46 +-
.../providers/common/ai/operators/llm_batch.py | 8 +-
.../providers/common/ai/operators/llm_branch.py | 29 +-
.../common/ai/operators/llm_file_analysis.py | 3 +-
.../common/ai/operators/llm_schema_compare.py | 3 +-
.../providers/common/ai/operators/llm_sql.py | 7 +-
.../airflow/providers/common/ai/tools/__init__.py | 28 +-
.../src/airflow/providers/common/ai/tools/adk.py | 8 +-
.../airflow/providers/common/ai/tools/anthropic.py | 14 +-
.../providers/common/ai/tools/claude_agent_sdk.py | 9 +-
.../providers/common/ai/tools/openai_agents.py | 9 +-
.../airflow/providers/common/ai/tools/strands.py | 6 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 14 +-
.../providers/common/ai/utils/validation.py | 24 -
.../ai/tests/unit/common/ai/batch/test_state.py | 52 +++
.../tests/unit/common/ai/decorators/test_agent.py | 16 +-
.../tests/unit/common/ai/durable/test_journal.py | 76 ++++
.../unit/common/ai/durable/test_openai_agents.py | 486 ++++++++++++++++++++-
.../tests/unit/common/ai/durable/test_storage.py | 9 +-
.../tests/unit/common/ai/durable/test_strands.py | 18 +
.../tests/unit/common/ai/hooks/test_llamaindex.py | 11 +
.../unit/common/ai/mixins/test_hitl_review.py | 39 +-
.../tests/unit/common/ai/operators/test_agent.py | 30 +-
.../ai/operators/test_llamaindex_embedding.py | 8 +-
.../ai/operators/test_llamaindex_retrieval.py | 11 +-
.../ai/tests/unit/common/ai/operators/test_llm.py | 87 ++++
.../unit/common/ai/operators/test_llm_batch.py | 28 +-
.../unit/common/ai/operators/test_llm_branch.py | 9 +-
.../ai/tests/unit/common/ai/tools/test_adk.py | 6 +
.../tests/unit/common/ai/tools/test_anthropic.py | 13 +-
.../unit/common/ai/tools/test_claude_agent_sdk.py | 10 +
.../unit/common/ai/tools/test_openai_agents.py | 6 +
.../ai/tests/unit/common/ai/tools/test_strands.py | 6 +
.../ai/tests/unit/common/ai/tools/test_tools.py | 43 +-
.../ai/tests/unit/common/ai/toolsets/test_mcp.py | 8 +-
.../tests/unit/common/ai/utils/test_validation.py | 32 +-
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 17 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
providers/common/io/README.rst | 6 +-
providers/common/io/docs/changelog.rst | 12 +
providers/common/io/docs/index.rst | 6 +-
providers/common/io/provider.yaml | 3 +-
providers/common/io/pyproject.toml | 6 +-
.../io/src/airflow/providers/common/io/__init__.py | 2 +-
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 24 +
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
providers/databricks/README.rst | 8 +-
providers/databricks/docs/changelog.rst | 15 +
providers/databricks/docs/index.rst | 8 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 8 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/utils/databricks.py | 20 +-
.../tests/unit/databricks/utils/test_databricks.py | 76 ++++
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 13 +
providers/dbt/cloud/docs/index.rst | 6 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 6 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 19 +
providers/edge3/docs/index.rst | 6 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 6 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
providers/exasol/README.rst | 6 +-
providers/exasol/docs/changelog.rst | 12 +
providers/exasol/docs/index.rst | 6 +-
providers/exasol/provider.yaml | 3 +-
providers/exasol/pyproject.toml | 6 +-
.../src/airflow/providers/exasol/__init__.py | 2 +-
providers/fab/README.rst | 6 +-
providers/fab/docs/changelog.rst | 52 ++-
providers/fab/docs/index.rst | 6 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 6 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
providers/ftp/README.rst | 6 +-
providers/ftp/docs/changelog.rst | 12 +
providers/ftp/docs/index.rst | 6 +-
providers/ftp/provider.yaml | 3 +-
providers/ftp/pyproject.toml | 6 +-
.../ftp/src/airflow/providers/ftp/__init__.py | 2 +-
providers/google/README.rst | 15 +-
providers/google/docs/changelog.rst | 68 +++
providers/google/docs/index.rst | 15 +-
providers/google/docs/operators/cloud/bigquery.rst | 4 -
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 26 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/operators/bigquery.py | 20 -
providers/http/README.rst | 6 +-
providers/http/docs/changelog.rst | 13 +
providers/http/docs/index.rst | 6 +-
providers/http/docs/triggers.rst | 65 +--
providers/http/provider.yaml | 3 +-
providers/http/pyproject.toml | 6 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
.../src/airflow/providers/http/triggers/http.py | 14 +-
.../http/tests/unit/http/triggers/test_http.py | 79 ++++
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 20 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
providers/microsoft/azure/README.rst | 6 +-
providers/microsoft/azure/docs/changelog.rst | 18 +
providers/microsoft/azure/docs/index.rst | 6 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 6 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../azure/operators/container_instances.py | 26 +-
.../azure/operators/test_container_instances.py | 143 ++++++
providers/microsoft/mssql/README.rst | 6 +-
providers/microsoft/mssql/docs/changelog.rst | 12 +
providers/microsoft/mssql/docs/index.rst | 6 +-
providers/microsoft/mssql/provider.yaml | 3 +-
providers/microsoft/mssql/pyproject.toml | 6 +-
.../airflow/providers/microsoft/mssql/__init__.py | 2 +-
providers/modal/docs/index.rst | 13 +-
providers/modal/docs/task_decorator.rst | 179 ++++++++
providers/modal/docs/usage.rst | 13 +-
providers/modal/provider.yaml | 12 +-
providers/modal/pyproject.toml | 2 +-
.../providers/modal/decorators}/__init__.py | 0
.../airflow/providers/modal/decorators/modal.py | 308 +++++++++++++
.../src/airflow/providers/modal/exceptions.py | 9 +
.../airflow/providers/modal/get_provider_info.py | 8 +-
.../src/airflow/providers/modal/hooks/modal.py | 80 +++-
.../airflow/providers/modal/triggers}/__init__.py | 0
.../src/airflow/providers/modal/triggers/modal.py | 100 +++++
.../src/airflow/providers/modal/utils}/__init__.py | 0
.../providers/modal/utils/python_sandbox.py | 156 +++++++
.../modal/tests/system}/__init__.py | 0
.../modal/tests/system/modal}/__init__.py | 0
.../modal/tests/system/modal/example_modal_task.py | 80 ++++
.../modal/tests/unit/modal/decorators}/__init__.py | 0
.../tests/unit/modal/decorators/test_modal.py | 428 ++++++++++++++++++
.../modal/tests/unit/modal/hooks/test_modal.py | 152 +++++++
providers/modal/tests/unit/modal/local_sandbox.py | 132 ++++++
.../modal/tests/unit/modal/test_exceptions.py | 4 +-
.../modal/tests/unit/modal/triggers}/__init__.py | 0
.../modal/tests/unit/modal/triggers/test_modal.py | 171 ++++++++
.../modal/tests/unit/modal/utils}/__init__.py | 0
.../tests/unit/modal/utils/test_python_sandbox.py | 163 +++++++
providers/mysql/README.rst | 6 +-
providers/mysql/docs/changelog.rst | 12 +
providers/mysql/docs/index.rst | 6 +-
providers/mysql/provider.yaml | 3 +-
providers/mysql/pyproject.toml | 6 +-
.../mysql/src/airflow/providers/mysql/__init__.py | 2 +-
providers/openai/docs/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/openai/operators/openai.py | 4 +-
.../tests/unit/openai/operators/test_openai.py | 29 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 17 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 6 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
providers/presto/README.rst | 6 +-
providers/presto/docs/changelog.rst | 12 +
providers/presto/docs/index.rst | 6 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 6 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/sendgrid/README.rst | 6 +-
providers/sendgrid/docs/changelog.rst | 12 +
providers/sendgrid/docs/index.rst | 6 +-
providers/sendgrid/provider.yaml | 3 +-
providers/sendgrid/pyproject.toml | 6 +-
.../src/airflow/providers/sendgrid/__init__.py | 2 +-
providers/smtp/README.rst | 6 +-
providers/smtp/docs/changelog.rst | 12 +
providers/smtp/docs/index.rst | 6 +-
providers/smtp/provider.yaml | 3 +-
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
providers/snowflake/README.rst | 14 +-
providers/snowflake/docs/changelog.rst | 23 +
.../docs/connections/pydantic_ai_snowflake.rst | 7 +-
providers/snowflake/docs/connections/snowflake.rst | 27 ++
providers/snowflake/docs/index.rst | 14 +-
.../snowflake/docs/operators/cortex_agent.rst | 7 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 8 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
.../providers/snowflake/hooks/cortex_agent.py | 11 +-
.../airflow/providers/snowflake/hooks/sql_api.py | 5 +-
.../providers/snowflake/utils/_rest_auth.py | 213 ++++++++-
.../unit/snowflake/hooks/test_cortex_agent.py | 23 +-
.../tests/unit/snowflake/hooks/test_sql_api.py | 24 +-
.../tests/unit/snowflake/utils/test__rest_auth.py | 422 +++++++++++++++++-
providers/ssh/README.rst | 6 +-
providers/ssh/docs/changelog.rst | 12 +
providers/ssh/docs/index.rst | 6 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 27 ++
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 13 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
providers/trino/README.rst | 6 +-
providers/trino/docs/changelog.rst | 12 +
providers/trino/docs/index.rst | 6 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 6 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
providers/yandex/README.rst | 6 +-
providers/yandex/docs/changelog.rst | 12 +
providers/yandex/docs/index.rst | 6 +-
providers/yandex/provider.yaml | 3 +-
providers/yandex/pyproject.toml | 6 +-
.../src/airflow/providers/yandex/__init__.py | 2 +-
pyproject.toml | 35 +-
scripts/docker/entrypoint_ci.sh | 20 +-
scripts/in_container/run_agent_framework_tests.sh | 65 +--
.../src/airflow_shared/module_loading/__init__.py | 23 +-
.../tests/module_loading/test_entry_points.py | 83 +++-
task-sdk/src/airflow/sdk/api/client.py | 3 +
task-sdk/src/airflow/sdk/execution_time/comms.py | 13 +
.../airflow/sdk/execution_time/request_handlers.py | 10 +
.../airflow/sdk/execution_time/schema/schema.json | 72 +++
.../execution_time/schema/versions/v2027_02_28.py | 9 +-
.../src/airflow/sdk/execution_time/supervisor.py | 4 +
.../airflow/sdk/importers/yaml_importer/builder.py | 158 ++-----
.../airflow/sdk/importers/yaml_importer/models.py | 159 ++++++-
task-sdk/tests/task_sdk/api/test_client.py | 21 +
.../task_sdk/execution_time/test_supervisor.py | 40 +-
.../importers/yaml_importer/test_parser.py | 13 +
ts-sdk/schema/supervisor-schema.json | 72 +++
ts-sdk/src/generated/supervisor.ts | 177 ++++----
uv.lock | 368 +++++++---------
401 files changed, 7880 insertions(+), 1585 deletions(-)
create mode 100644 airflow-core/newsfragments/74789.significant.rst
delete mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2026_10_30_xcom_params.py
copy
airflow-core/src/airflow/migrations/versions/{0141_3_4_0_add_timetable_asset_gated_to_dagmodel.py
=> 0154_3_5_0_add_idempotency_key_to_hitl_detail.py} (61%)
create mode 100644
airflow-core/src/airflow/ui/src/utils/registerPluginDependencies.test.ts
copy airflow-core/src/airflow/ui/{rules/jsonc.js =>
src/utils/registerPluginDependencies.ts} (51%)
create mode 100644 providers/modal/docs/task_decorator.rst
copy {airflow-core/src/airflow/_shared =>
providers/modal/src/airflow/providers/modal/decorators}/__init__.py (100%)
create mode 100644
providers/modal/src/airflow/providers/modal/decorators/modal.py
copy {airflow-core/src/airflow/_shared =>
providers/modal/src/airflow/providers/modal/triggers}/__init__.py (100%)
create mode 100644
providers/modal/src/airflow/providers/modal/triggers/modal.py
copy {airflow-core/src/airflow/_shared =>
providers/modal/src/airflow/providers/modal/utils}/__init__.py (100%)
create mode 100644
providers/modal/src/airflow/providers/modal/utils/python_sandbox.py
copy {airflow-core/tests/integration =>
providers/modal/tests/system}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/modal/tests/system/modal}/__init__.py (100%)
create mode 100644 providers/modal/tests/system/modal/example_modal_task.py
copy {airflow-core/src/airflow/_shared =>
providers/modal/tests/unit/modal/decorators}/__init__.py (100%)
create mode 100644 providers/modal/tests/unit/modal/decorators/test_modal.py
create mode 100644 providers/modal/tests/unit/modal/local_sandbox.py
copy {airflow-core/src/airflow/_shared =>
providers/modal/tests/unit/modal/triggers}/__init__.py (100%)
create mode 100644 providers/modal/tests/unit/modal/triggers/test_modal.py
copy {airflow-core/src/airflow/_shared =>
providers/modal/tests/unit/modal/utils}/__init__.py (100%)
create mode 100644
providers/modal/tests/unit/modal/utils/test_python_sandbox.py