This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a change to branch ci/import-graph-narrowing
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard efa69061920 Skip provider tests that cannot import a changed file
omit f60de29f7a9 Stop generating constraints for PRs that do not use them
add 8f2f9f34f10 i18n(ko): Add missing dag and dashboard translations (Nov
7) (#76675)
add 43657c8b504 i18n(ko): add missing translaction in common.json (Nov 7)
(#76674)
add 69e21655071 i18n(ko): translate backfill status/running and array
validation labels (#76678)
add 66a9df22abc Add new Translation Owner in Ko (#76673)
add 54f9083f753 Load consumed asset events of a run in bulk when a task
starts (#76513)
add ecdfb67f2b3 TS SDK: Expose the Dag run conf on the task context
(#75563)
add 0e7068d9c2c Add yuseok89 to fork-ci-gate (#76677)
add 8930bc3db2d Document supported `databricks_retry_args` usage for
deferrable Databricks operators (#68017)
add de147260bee Unexclude Cassandra on Python 3.14 (#74696)
add 09a06a5f572 Move the Dag list folder toggle next to the filters
(#76691)
add 5aadb5571ae Add a Databricks toolset for Unity Gateway MCP Services
(#74198)
add 84a2037827b Keep CSV quoting in LLMFileAnalysisOperator sample rows
(#76389)
add 9491792d270 Fail fast on permanent Anthropic batch poll errors (#70177)
add 72502d61652 Keep SQL deep scan on for custom read-only allowed_types
(#76688)
add 5925de6d01e Fail fast when an init container image cannot be pulled
(#76393)
add 665e91fc7d0 Go SDK: Reject a task priority weight outside the int32
range (#76284)
add 7fc063d5964 Reduce SSL setup overhead in async Kubernetes triggers
(#73399)
add 47d0c64c9cd Fix GcpBodyFieldValidator warning on valid
version-specific fields (#74930)
add d021d1e5352 Decrement dag_processing.processes when a parse finishes
(#76651)
add a12bf56a328 Honor cancel_on_kill in deferred GCS to BigQuery loads
(#74358)
add 2e541862b7f Task success should be agnostic of clear_on_success
cleanup failure (#76021)
add bfe56db36f1 Add on_kill support to SageMakerProcessingOperator (#76413)
add e7ca5f1c2d3 Don't retry Java tasks if classpath can't be built (#76707)
add 4726281b5ec Keep common.ai tripwires and module_loading types working
after dependency upgrades (#76715)
add b4501418ddb Vendor the Java SDK supervisor schema from this repository
(#75942)
add 921b4b3c0f3 Update python client version/changelog for 3.4.0 release
(#76727)
add 7e176c79bc7 Fix Dag bundle sync losing updates when a bundle reads a
connection (#76188)
add fba7573923b UI: Complete and fix Polish translations (#76428)
add ce5104d35d1 Fix SparkConnectHook unsupported-path error message
(#74847)
add 13a5ac09f97 Fix Databricks retry parameter names in deferrable-mode
docs (#76744)
add 525f1e4dabb Complete Spanish translations for parsed bundle files
(#76647)
add 8a119894a17 Document Italian translation conventions (#75727)
add 6c364f7e29b Raise errors from all statements of multi-statement SQL in
VerticaHook (#75967)
add 1327f828e6d Revert "Remove deprecated TimeDeltaSensorAsync (#76131)"
(#76732)
add 97240872160 Replace Prettier with oxfmt (#76472)
add 22a339029e0 Fix ExternalTaskSensor link pointing to the wrong external
Dag run (#74528)
add a0b0c4dd6f8 Reuse stored credentials only when testing an unchanged
connection (#76453)
add b26e77632dd Collapse detail tabs that do not fit into a More menu
(#76742)
add df93716a6bc Say in the AI Model tab which values are kept in external
storage (#76747)
add b7c89dec8d7 Fix Grid horizontal scrolling (#76083)
add d26160dbf39 Parse HookToolset :param descriptions by indentation
(#76701)
add e13f0d7add5 Update providers metadata 2026-11-09 (#76780)
add 4744db9eca9 Warn when AwsDuckDBHook ignores the AWS connection's
credentials (#76639)
add a139b9d8c66 Add missing unit tests for the apache.hive macros plugin
(#72447)
add 89b92c3221f Return 0 instead of None from FTPHook.get_size for empty
files (#76665)
add 73fae2472c7 Apply Default Security Context to OTel Collector Container
(#74268)
add ce8bc76baa9 Fix FTP test connection passing without contacting the
server (#76355)
add 8ee310e38cb Add a connection page for the DuckDB on AWS connection
(#76634)
add dfe9cc6ef3c Add Ollama model readiness check to PydanticAIHook (#75369)
add c8e7deb10a5 Add an ADR for how mapped tasks works across language SDKs
(#76297)
add 9ecd53d3a90 Fix Celery workers rejecting deadline callbacks on Airflow
3.2 (#75438)
add 382e487e5d9 Prepare amazon provider RC2 for 2026-11-10 (#76789)
add d23f21fa312 Always build airflow core and task sdk docs together in CI
(#76443)
add da7dab32a84 Stop API responses from resolving their items on the event
loop (#76537)
add 8f7f1c803a8 Bump the core-ui-package-updates group across 1 directory
with 10 updates (#76770)
add 3a3fc3ef1e4 Bump the uv-dependency-updates group in /dev/breeze with 3
updates (#76768)
add c540289ad94 Bump the github-actions-updates group with 5 updates
(#76767)
add 99c838f6968 Bump the edge-ui-package-updates group across 1 directory
with 4 updates (#76763)
add 32876923113 Bump the ui-plugin-template-package-updates group across 1
directory with 2 updates (#76760)
add 8ca83d897f2 Bump the auth-ui-package-updates group across 1 directory
with 3 updates (#76758)
add 546405f2407 Bump @11ty/eleventy (#76756)
add 175d0278691 Decode Go SDK date-times from the supervisor in UTC
(#75737)
add dd44cc0ea56 Add an ADR for task loops across language SDKs (#76364)
add a8031341e0e Resubmit lost Databricks runs instead of failing every
retry (#76718)
add bbe3eac9a9c Fix flaky OpenLineage manual state e2e test on airflow 3+
(#76796)
add 762495647a9 Add task loop authoring ADRs for the TypeScript, Java and
Go SDKs (#76365)
add 76a27275c7a [main] Upgrade important CI environment (#76334)
add 6a8bc716a39 Add meel-ayush to fork CI pilot and exempt pilot users
from PR cap (#76782)
add eeab7a877df Redact Connection extra fields that providers declare as
secrets (#73797)
add 367d619c756 Build published slim images with constraints without
providers (#76798)
add 5cdfa8571b0 Use Python 3.14 as the default Python of the 3.5.0 images
(#76800)
add 15adc8a492a Add Durable Execution to the registry header navigation
(#76775)
add 2b59699b0fe Rework fork CI draft and label rules into one state table
(#76681)
add 057f0099281 Make db clean --skip-archive delete rows directly (#74113)
add 8699a93e659 Bound job loading for component health checks (#76751)
add e1150d774f8 Stop generating constraints for PRs that do not use them
(#76685)
add 601ba47fe08 Skip provider tests that cannot import a changed file
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 (efa69061920)
\
N -- N -- N refs/heads/ci/import-graph-narrowing (601ba47fe08)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.agents/skills/airflow-translations/locales/it.md | 28 +
.asf.yaml | 16 +
.github/CODEOWNERS | 2 +-
.github/dependabot.yml | 3 +
.github/fork-ci-gate.toml | 4 +-
.github/workflows/airflow-e2e-tests.yml | 4 +-
.github/workflows/basic-tests.yml | 4 +-
.github/workflows/ci-amd.yml | 8 +-
.github/workflows/ci-arm.yml | 8 +-
.github/workflows/codeql-analysis.yml | 8 +-
.../java-sdk-dependabot-verification-metadata.yml | 2 +-
.github/workflows/java-sdk-dependency-security.yml | 2 +-
.github/workflows/java-sdk-release-verify.yml | 4 +-
.github/workflows/k8s-tests.yml | 4 +-
.github/workflows/registry-backfill.yml | 2 +-
.github/workflows/registry-build.yml | 2 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.pre-commit-config.yaml | 13 +-
.rat-excludes | 2 +
Dockerfile | 8 +-
Dockerfile.ci | 10 +-
airflow-core/.pre-commit-config.yaml | 2 +-
.../0007-taskflow-across-language-boundary.md | 4 +
.../lang-sdk/0016-mapped-tasks-across-lang-sdks.md | 584 ++++
.../lang-sdk/0017-task-loops-across-lang-sdks.md | 252 ++
airflow-core/adr/lang-sdk/README.md | 2 +
.../language-sdks/java.rst | 6 +-
.../language-sdks/typescript.rst | 7 +-
.../docs/core-concepts/task-state-store.rst | 16 +
airflow-core/docs/howto/usage-cli.rst | 2 +-
airflow-core/newsfragments/76453.significant.rst | 16 +
.../src/airflow/api/common/airflow_health.py | 34 +-
.../auth/managers/simple/ui/package.json | 6 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1483 ++++----
.../airflow/api_fastapi/common/parameters/misc.py | 30 +-
.../api_fastapi/core_api/datamodels/dag_run.py | 3 +-
.../core_api/routes/public/connections.py | 43 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 2 +-
.../execution_api/routes/task_instances.py | 5 +-
airflow-core/src/airflow/cli/cli_config.py | 2 +-
.../src/airflow/dag_processing/bundles/manager.py | 26 +-
airflow-core/src/airflow/dag_processing/manager.py | 13 +
airflow-core/src/airflow/jobs/job.py | 26 +-
airflow-core/src/airflow/sensors/__init__.py | 1 +
airflow-core/src/airflow/ui/.oxfmtrc.json | 51 +
airflow-core/src/airflow/ui/.prettierignore | 9 -
airflow-core/src/airflow/ui/.prettierrc | 23 -
airflow-core/src/airflow/ui/eslint.config.js | 2 -
airflow-core/src/airflow/ui/package.json | 30 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 940 ++++--
.../airflow/ui/public/i18n/locales/en/common.json | 1 +
.../airflow/ui/public/i18n/locales/es/browse.json | 7 +-
.../airflow/ui/public/i18n/locales/it}/README.md | 18 +-
.../airflow/ui/public/i18n/locales/ko/common.json | 10 +-
.../ui/public/i18n/locales/ko/components.json | 3 +
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 4 +-
.../ui/public/i18n/locales/ko/dashboard.json | 1 +
.../airflow/ui/public/i18n/locales/pl/admin.json | 8 +-
.../airflow/ui/public/i18n/locales/pl/assets.json | 12 +-
.../airflow/ui/public/i18n/locales/pl/browse.json | 4 +-
.../airflow/ui/public/i18n/locales/pl/common.json | 61 +-
.../ui/public/i18n/locales/pl/components.json | 71 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 96 +-
.../airflow/ui/public/i18n/locales/pl/dags.json | 50 +-
.../ui/public/i18n/locales/pl/dashboard.json | 21 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 1 +
airflow-core/src/airflow/ui/rules/perfectionist.js | 8 +-
airflow-core/src/airflow/ui/rules/prettier.js | 38 -
.../ui/src/components/FilterBar/FilterBar.test.tsx | 45 +
.../ui/src/components/FilterBar/FilterBar.tsx | 12 +-
.../airflow/ui/src/components/FilterBar/types.ts | 13 +-
.../ui/src/components/TaskInstanceTooltip.tsx | 4 +-
.../ui/src/layouts/Details/Grid/Grid.test.tsx | 72 +
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 79 +-
.../layouts/Details/Grid/GridPaginationButtons.tsx | 127 +-
.../ui/src/layouts/Details/Grid/constants.ts | 11 +
.../Details/Grid/useGridScrollRestore.test.ts | 617 +++-
.../layouts/Details/Grid/useGridScrollRestore.ts | 183 +-
.../airflow/ui/src/layouts/Details/Grid/utils.ts | 5 +-
.../ui/src/layouts/Details/NavTabs.test.tsx | 207 ++
.../src/airflow/ui/src/layouts/Details/NavTabs.tsx | 182 +-
.../src/pages/Asset/CreateAssetEventModal.test.tsx | 6 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 6 +-
.../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 15 +-
.../ui/src/pages/DagsList/DagsList.test.tsx | 33 +
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 66 +-
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 3 +-
.../ui/src/queries/useCreateBackfill.test.tsx | 3 +-
.../src/airflow/ui/src/queries/useTrigger.test.tsx | 3 +-
.../ui/src/utils/useFiltersHandler.test.tsx | 21 +
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 6 +-
.../airflow/ui/tests/e2e/specs/task-tries.spec.ts | 4 +-
airflow-core/src/airflow/utils/db_cleanup.py | 93 +-
.../tests/unit/always/test_providers_manager.py | 32 +
.../tests/unit/api/common/test_airflow_health.py | 80 +-
.../core_api/routes/public/test_connections.py | 35 +-
.../versions/head/test_task_instances.py | 47 +
.../unit/api_fastapi/test_lazy_response_fields.py | 338 ++
.../bundles/test_dag_bundle_manager.py | 213 +-
.../tests/unit/dag_processing/test_manager.py | 41 +
airflow-core/tests/unit/jobs/test_base_job.py | 29 +
airflow-core/tests/unit/utils/test_db_cleanup.py | 348 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 2 +-
airflow-e2e-tests/pyproject.toml | 2 +-
chart/README.md | 1 +
.../otel-collector/otel-collector-deployment.yaml | 5 +-
.../otel_collector/test_otel_collector.py | 21 +
.../helm_tests/security/test_security_context.py | 16 +-
chart/values.schema.json | 2 +-
chart/values.yaml | 2 +
clients/python/CHANGELOG.md | 76 +
clients/python/version.txt | 2 +-
contributing-docs/15_node_environment_setup.rst | 5 +-
contributing-docs/18_contribution_workflow.rst | 5 +-
contributing-docs/25_maintainer_pr_triage.md | 14 +-
contributing-docs/32_open_pull_request_limit.rst | 11 +-
dev/breeze/doc/ci/02_images.md | 6 +-
dev/breeze/doc/ci/04_selective_checks.md | 4 +-
.../doc/ci/08_fork_ci_for_external_contributors.md | 117 +-
dev/breeze/pyproject.toml | 2 +-
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 9 +-
.../files/hardened_os_deps_image_digests.json | 15 +-
.../files/hardened_python_image_digests.json | 16 +-
dev/breeze/src/airflow_breeze/global_constants.py | 6 +-
.../src/airflow_breeze/utils/fork_ci_gate.py | 2 +-
.../src/airflow_breeze/utils/fork_ci_messages.py | 28 +-
.../src/airflow_breeze/utils/fork_ci_reconcile.py | 110 +-
.../src/airflow_breeze/utils/selective_checks.py | 12 +-
dev/breeze/tests/test_fork_ci_gate.py | 2 +-
dev/breeze/tests/test_fork_ci_messages.py | 17 +
dev/breeze/tests/test_fork_ci_reconcile.py | 143 +-
.../tests/test_release_management_commands.py | 46 +
dev/breeze/tests/test_selective_checks.py | 22 +-
dev/breeze/tests/test_verification_plan.py | 2 +-
dev/breeze/tests/test_verify_commands.py | 2 +-
dev/breeze/uv.lock | 140 +-
.../react_plugin_template/package.json | 4 +-
.../react_plugin_template/pnpm-lock.yaml | 1441 ++++----
docker-stack-docs/README.md | 8 +-
docker-stack-docs/build-arg-ref.rst | 2 +-
docker-stack-docs/build.rst | 4 +-
docker-stack-docs/changelog.rst | 7 +
.../customizing/add-build-essential-custom.sh | 2 +-
.../docker-examples/customizing/custom-sources.sh | 2 +-
.../customizing/pypi-dev-runtime-deps.sh | 2 +-
.../customizing/pypi-extras-and-deps.sh | 2 +-
.../customizing/pypi-selected-version.sh | 2 +-
.../restricted/restricted_environments.sh | 2 +-
docker-stack-docs/index.rst | 8 +-
docs/spelling_wordlist.txt | 1 +
generated/provider_metadata.json | 554 +--
go-sdk/adr/0009-task-loop-authoring-interface.md | 245 ++
go-sdk/airflow/dag.go | 1 +
go-sdk/airflow/enums.go | 5 +-
go-sdk/airflow/serialize.go | 15 +
go-sdk/airflow/serialize_test.go | 30 +
go-sdk/pkg/execution/client.go | 8 +-
go-sdk/pkg/execution/client_test.go | 20 +-
go-sdk/pkg/execution/genmodels/gen.go | 5 +-
go-sdk/pkg/execution/genmodels/gen/main.go | 225 +-
go-sdk/pkg/execution/genmodels/gen/main_test.go | 169 +
go-sdk/pkg/execution/genmodels/models.gen.go | 102 +-
go-sdk/pkg/execution/genmodels/time.go | 84 +
go-sdk/pkg/execution/genmodels/time_test.go | 236 ++
go-sdk/pkg/execution/integration_test.go | 11 +-
go-sdk/pkg/execution/messages.go | 12 -
go-sdk/pkg/execution/messages_test.go | 33 +-
go-sdk/pkg/execution/task_runner.go | 24 +-
go-sdk/pkg/execution/trigger_runner.go | 11 +-
go-sdk/sdk/context.go | 5 +-
java-sdk/DEVELOPMENT.md | 2 +-
java-sdk/adr/0003-task-loop-authoring-interface.md | 327 ++
java-sdk/sdk/build.gradle.kts | 49 +-
java-sdk/sdk/schema/schema.json | 853 +++--
.../test_kubernetes_pod_operator.py | 2 +-
providers/.last_release_date.txt | 2 +-
providers/.pre-commit-config.yaml | 2 +-
providers/amazon/README.rst | 4 +-
providers/amazon/docs/changelog.rst | 9 +-
providers/amazon/docs/connections/duckdb_aws.rst | 104 +
providers/amazon/docs/index.rst | 4 +-
providers/amazon/docs/operators/duckdb.rst | 37 +-
providers/amazon/provider.yaml | 2 +-
providers/amazon/pyproject.toml | 4 +-
.../airflow/providers/amazon/aws/hooks/duckdb.py | 48 +-
.../providers/amazon/aws/hooks/sagemaker.py | 38 +-
.../providers/amazon/aws/operators/sagemaker.py | 36 +-
.../providers/amazon/aws/triggers/sagemaker.py | 31 +-
.../tests/unit/amazon/aws/hooks/test_duckdb.py | 44 +-
.../tests/unit/amazon/aws/hooks/test_sagemaker.py | 36 +
.../aws/operators/test_sagemaker_processing.py | 124 +
.../aws/operators/test_sagemaker_training.py | 14 +-
.../unit/amazon/aws/triggers/test_sagemaker.py | 19 +-
.../airflow/providers/anthropic/hooks/anthropic.py | 21 +-
.../airflow/providers/anthropic/triggers/batch.py | 7 +-
.../tests/unit/anthropic/hooks/test_anthropic.py | 46 +-
.../tests/unit/anthropic/triggers/test_batch.py | 28 +
providers/apache/cassandra/README.rst | 3 +-
providers/apache/cassandra/docs/changelog.rst | 6 +
providers/apache/cassandra/docs/index.rst | 1 +
providers/apache/cassandra/provider.yaml | 3 -
providers/apache/cassandra/pyproject.toml | 4 +-
.../tests/unit/apache/hive/plugins/test_hive.py | 21 +-
.../providers/apache/spark/hooks/spark_connect.py | 2 +-
.../unit/apache/spark/hooks/test_spark_connect.py | 2 +-
.../celery/executors/celery_executor_utils.py | 10 +
.../unit/celery/executors/test_celery_executor.py | 42 +
providers/cncf/kubernetes/docs/changelog.rst | 7 +
.../providers/cncf/kubernetes/hooks/kubernetes.py | 52 +-
.../providers/cncf/kubernetes/operators/pod.py | 5 +-
.../providers/cncf/kubernetes/triggers/job.py | 5 +
.../providers/cncf/kubernetes/triggers/pod.py | 80 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 41 +-
.../cncf/kubernetes/utils/xcom_sidecar.py | 2 +-
.../system/cncf/kubernetes/example_kubernetes.py | 2 +-
.../cncf/kubernetes/example_kubernetes_async.py | 2 +-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 308 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 48 +-
.../unit/cncf/kubernetes/triggers/test_job.py | 8 +
.../unit/cncf/kubernetes/triggers/test_pod.py | 43 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 133 +-
providers/common/ai/README.rst | 1 +
.../common/ai/docs/connections/pydantic_ai.rst | 5 +-
providers/common/ai/docs/index.rst | 1 +
providers/common/ai/docs/observability.rst | 15 +-
providers/common/ai/docs/self_hosted_models.rst | 103 +
providers/common/ai/docs/stability.rst | 5 +-
providers/common/ai/provider.yaml | 1 +
providers/common/ai/pyproject.toml | 1 +
.../providers/common/ai/durable/fingerprint.py | 8 +-
.../providers/common/ai/get_provider_info.py | 5 +-
.../airflow/providers/common/ai/hooks/ollama.py | 98 +
.../providers/common/ai/hooks/pydantic_ai.py | 106 +-
.../ai/plugins/www/src/components/ModelPanel.tsx | 30 +-
.../ai/plugins/www/src/hooks/useModelInfo.ts | 14 +-
.../common/ai/plugins/www/src/model-api.ts | 35 +-
.../common/ai/plugins/www/tests/model-api.test.ts | 22 +
.../common/ai/plugins/www/tests/model.test.mjs | 39 +
.../airflow/providers/common/ai/toolsets/hook.py | 22 +-
.../providers/common/ai/utils/file_analysis.py | 13 +-
.../providers/common/ai/utils/sql_validation.py | 27 +-
.../ai/tests/unit/common/ai/hooks/test_ollama.py | 139 +
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 204 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 69 +
.../unit/common/ai/utils/test_file_analysis.py | 28 +
.../unit/common/ai/utils/test_sql_validation.py | 60 +-
providers/databricks/docs/index.rst | 5 +-
providers/databricks/docs/operators/run_now.rst | 43 +-
providers/databricks/docs/operators/submit_run.rst | 43 +-
.../s3 => databricks/docs/toolsets}/index.rst | 9 +-
providers/databricks/docs/toolsets/unity_mcp.rst | 126 +
providers/databricks/provider.yaml | 8 +
providers/databricks/pyproject.toml | 10 +-
.../src/airflow/providers/databricks/exceptions.py | 36 +-
.../providers/databricks/get_provider_info.py | 5 +
.../providers/databricks/hooks/databricks_base.py | 6 +-
.../providers/databricks/operators/databricks.py | 38 +-
.../providers/databricks/toolsets}/__init__.py | 0
.../providers/databricks/toolsets/unity_mcp.py | 629 ++++
.../airflow/providers/databricks/version_compat.py | 2 +
.../databricks/example_databricks_unity_mcp.py | 69 +
.../tests/unit/databricks/hooks/test_databricks.py | 25 +
.../unit/databricks/operators/test_databricks.py | 73 +-
.../tests/unit/databricks/toolsets}/__init__.py | 0
.../unit/databricks/toolsets/test_unity_mcp.py | 902 +++++
.../providers/edge3/plugins/www/package.json | 8 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 1546 +++++----
.../ftp/src/airflow/providers/ftp/hooks/ftp.py | 10 +-
providers/ftp/tests/unit/ftp/hooks/test_ftp.py | 37 +-
providers/google/README.rst | 28 +-
providers/google/docs/index.rst | 28 +-
providers/google/pyproject.toml | 28 +-
.../google/cloud/transfers/gcs_to_bigquery.py | 1 +
.../google/cloud/utils/field_validator.py | 8 +-
.../marketing_platform/hooks/display_video.py | 4 +-
.../google/cloud/transfers/test_gcs_to_bigquery.py | 29 +
.../google/cloud/utils/test_field_validator.py | 42 +
providers/hashicorp/docs/index.rst | 2 +-
providers/hashicorp/pyproject.toml | 2 +-
.../tests/unit/openai/operators/test_openai.py | 20 +-
.../tests/system/openlineage/manual_state.py | 10 +
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 16 +-
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 2 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../providers/standard/sensors/external_task.py | 53 +-
.../providers/standard/sensors/time_delta.py | 23 +
.../unit/standard/sensors/test_external_task.py | 281 +-
.../tests/unit/standard/sensors/test_time_delta.py | 47 +-
.../src/airflow/providers/vertica/hooks/vertica.py | 81 +-
.../tests/unit/vertica/hooks/test_vertica.py | 122 +-
.../tests/unit/vertica/hooks/test_vertica_sql.py | 19 +-
pyproject.toml | 6 +-
registry/package.json | 2 +-
registry/pnpm-lock.yaml | 94 +-
registry/src/_includes/base.njk | 2 +
registry/src/css/main.css | 41 +-
registry/src/durable.njk | 4 +-
registry/src/explore.njk | 2 +-
registry/src/stats.njk | 2 +-
scripts/ci/docker-compose/integration-redis.yml | 2 +-
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/prek/sync_java_sdk_supervisor_schema.py | 95 +-
scripts/ci/prek/ts_compile_lint_ui.py | 4 +-
.../prek/test_sync_java_sdk_supervisor_schema.py | 157 +
scripts/tools/setup_breeze | 2 +-
.../src/airflow_shared/module_loading/__init__.py | 4 +-
.../secrets_masker/secrets_masker.py | 22 +
.../tests/secrets_masker/test_secrets_masker.py | 29 +
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
.../airflow/sdk/coordinators/java/coordinator.py | 26 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 11 -
.../src/airflow/sdk/execution_time/task_runner.py | 54 +-
.../task_sdk/coordinators/java/test_coordinator.py | 10 +-
.../task_sdk/execution_time/test_task_runner.py | 144 +-
ts-sdk/adr/0003-task-loop-authoring-interface.md | 214 ++
ts-sdk/src/coordinator/runtime.ts | 1 +
ts-sdk/src/sdk/task.ts | 16 +-
ts-sdk/tests/coordinator/client.test.ts | 1 +
ts-sdk/tests/coordinator/integration.test.ts | 30 +
ts-sdk/tests/public-api.test.ts | 5 +-
ts-sdk/tests/sdk/task-scope.test.ts | 1 +
uv.lock | 3523 +++++++++++---------
327 files changed, 17514 insertions(+), 6564 deletions(-)
create mode 100644
airflow-core/adr/lang-sdk/0016-mapped-tasks-across-lang-sdks.md
create mode 100644
airflow-core/adr/lang-sdk/0017-task-loops-across-lang-sdks.md
create mode 100644 airflow-core/newsfragments/76453.significant.rst
create mode 100644 airflow-core/src/airflow/ui/.oxfmtrc.json
delete mode 100644 airflow-core/src/airflow/ui/.prettierignore
delete mode 100644 airflow-core/src/airflow/ui/.prettierrc
copy {chart/dockerfiles =>
airflow-core/src/airflow/ui/public/i18n/locales/it}/README.md (51%)
delete mode 100644 airflow-core/src/airflow/ui/rules/prettier.js
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/NavTabs.test.tsx
create mode 100644
airflow-core/tests/unit/api_fastapi/test_lazy_response_fields.py
create mode 100644 go-sdk/adr/0009-task-loop-authoring-interface.md
create mode 100644 go-sdk/pkg/execution/genmodels/gen/main_test.go
create mode 100644 go-sdk/pkg/execution/genmodels/time.go
create mode 100644 go-sdk/pkg/execution/genmodels/time_test.go
create mode 100644 java-sdk/adr/0003-task-loop-authoring-interface.md
create mode 100644 providers/amazon/docs/connections/duckdb_aws.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/hooks/ollama.py
create mode 100644
providers/common/ai/tests/unit/common/ai/hooks/test_ollama.py
copy providers/{amazon/docs/operators/s3 =>
databricks/docs/toolsets}/index.rst (76%)
create mode 100644 providers/databricks/docs/toolsets/unity_mcp.rst
copy {airflow-core/src/airflow/api/common =>
providers/databricks/src/airflow/providers/databricks/toolsets}/__init__.py
(100%)
create mode 100644
providers/databricks/src/airflow/providers/databricks/toolsets/unity_mcp.py
create mode 100644
providers/databricks/tests/system/databricks/example_databricks_unity_mcp.py
copy {airflow-core/src/airflow/_shared =>
providers/databricks/tests/unit/databricks/toolsets}/__init__.py (100%)
create mode 100644
providers/databricks/tests/unit/databricks/toolsets/test_unity_mcp.py
create mode 100644
scripts/tests/ci/prek/test_sync_java_sdk_supervisor_schema.py
create mode 100644 ts-sdk/adr/0003-task-loop-authoring-interface.md