This is an automated email from the ASF dual-hosted git repository.
ephraimbuddy pushed a change to branch dag-processor-activation
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard ea388da7ab6 Deliver Dag processor work and stay live while the API is
slow
discard d30347c5d4e Find the Breeze container for the isolation test from its
mounts
discard 11076951bd5 Stop logging callback processes for removed Dags as
abnormal exits
discard bee8d660b01 Stop repeating Dag callbacks after an Execution API
request fails
discard 2f819e3f334 Keep Dag processor callbacks and reparses through
transient failures
discard ccfed168bae Correct the Dag processor API-mode docs and Compose example
discard 1d9747ab10c Fix Dag processor API-mode shutdown, completion and claim
capacity
discard 7313eb0e6d9 Release Dag processor claims for unpublishable sources
discard 0eb9fbb19d7 Separate trusted Dag bundle catalog provisioning from
processing
discard 031f466837e Restore isolated Dag processor regression coverage
discard 6c90ae1af86 Keep API Dag processors recoverable through delivery
failures
discard 989382b573c Move API work delivery state out of the Dag processor
manager
discard a1b93a2755e Allow independent priority parses to finish in either
order in recovery tests
discard b3cfc09a5f6 Preserve requested Dag processing work during bundle
failures
discard 558750498c3 Wait for fresh inventories before running priority parses
discard b5c1171e33f Preserve Dag processor work across retries and reparses
discard 0fea1ac8feb Run Dag processors without metadata database access
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 6b31eaa7f38 UI: Load the ELK graph layout engine only when a graph is
drawn (#75986)
add 0c6be7cad0f Close German Translation Gaps 2026-11-09 (#76781)
add aac29ec1bbb Split the Common AI sandbox backends page into one page
per backend (#76853)
add 0d2b5559004 Skip provider tests that cannot import a changed file
(#76686)
add 6d0ad1ee1af Run the always-on CI jobs only when their inputs change
(#76690)
add 402d7a58ad2 Skip provider compatibility tests for changes hidden from
them (#76722)
add 27e807b5f1e Add Execution API endpoint for callback terminal state
(#75253)
add ffac35fc92b Add a task switcher to the Dag breadcrumb (#76850)
add 89c89fdb3f1 Simplify attribute assertions in Connection URI tests
(#76876)
add 975edc02c50 Use uvicorn-worker package for the gunicorn API server
worker (#76856)
add 6b68dacdab3 Correct sbx swap guidance in Common AI sandbox docs
(#76879)
add 4d1bc90d0d4 Add Hugging Face Provider (#76317)
add 53134ff6a69 Go SDK: Return XCom and task state store integers as int64
(#75700)
add 7083a552c4d Run Dag processors without metadata database access
add 7ce894b3575 Preserve Dag processor work across retries and reparses
add c3242f5431b Wait for fresh inventories before running priority parses
add b0660437086 Preserve requested Dag processing work during bundle
failures
add 1ad7ed5ac31 Allow independent priority parses to finish in either
order in recovery tests
add 776e74b6c38 Move API work delivery state out of the Dag processor
manager
add d0407bd50aa Keep API Dag processors recoverable through delivery
failures
add a48f137b3eb Restore isolated Dag processor regression coverage
add 4fbc485920f Separate trusted Dag bundle catalog provisioning from
processing
add 44d1dc46df3 Release Dag processor claims for unpublishable sources
add 8a59734490d Fix Dag processor API-mode shutdown, completion and claim
capacity
add a7a952ed8c6 Correct the Dag processor API-mode docs and Compose example
add e1554387f98 Keep Dag processor callbacks and reparses through
transient failures
add 601db38a993 Stop repeating Dag callbacks after an Execution API
request fails
add 7fb5dd3b5d2 Stop logging callback processes for removed Dags as
abnormal exits
add 4b243928692 Find the Breeze container for the isolation test from its
mounts
add 46727313829 Deliver Dag processor work and stay live while the API is
slow
add 6907ed44e72 Preserve API-mode Dag processor work across interrupted
requests
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 (ea388da7ab6)
\
N -- N -- N refs/heads/dag-processor-activation (6907ed44e72)
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:
.asf.yaml | 16 +
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 1 +
.github/boring-cyborg.yml | 3 +
.github/fork-ci-gate.toml | 3 +-
.github/workflows/airflow-e2e-tests.yml | 4 +-
.github/workflows/basic-tests.yml | 19 +-
.github/workflows/ci-amd.yml | 42 +-
.github/workflows/ci-arm.yml | 42 +-
.github/workflows/ci-image-checks.yml | 5 +
.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/test-providers.yml | 6 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.pre-commit-config.yaml | 4 +-
Dockerfile | 8 +-
Dockerfile.ci | 10 +-
.../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 +
.../authoring-and-scheduling/language-sdks/go.rst | 13 +-
airflow-core/docs/extra-packages-ref.rst | 2 +
airflow-core/docs/howto/usage-cli.rst | 2 +-
.../security/dag-processor-api/docker-compose.yaml | 1 +
.../docs/security/jwt_token_authentication.rst | 53 +-
airflow-core/docs/security/security_model.rst | 6 +-
airflow-core/pyproject.toml | 1 +
.../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 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 2 +-
.../execution_api/datamodels/callback.py | 19 +-
.../api_fastapi/execution_api/routes/callbacks.py | 58 +-
.../api_fastapi/execution_api/versions/__init__.py | 2 +
.../execution_api/versions/v2027_02_28.py | 10 +
.../src/airflow/api_fastapi/gunicorn_app.py | 2 +-
airflow-core/src/airflow/cli/cli_config.py | 14 +-
.../src/airflow/cli/commands/api_server_command.py | 4 +-
.../airflow/cli/commands/dag_processor_command.py | 24 +-
.../src/airflow/config_templates/config.yml | 32 +-
.../airflow/dag_processing/api_requested_work.py | 17 +-
airflow-core/src/airflow/dag_processing/manager.py | 101 +-
.../src/airflow/dag_processing/processor.py | 44 +-
.../src/airflow/dag_processing/requested_work.py | 6 +-
airflow-core/src/airflow/jobs/job.py | 26 +-
.../src/airflow/jobs/scheduler_job_runner.py | 53 +-
airflow-core/src/airflow/ui/package.json | 20 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 615 ++--
.../airflow/ui/public/i18n/locales/de/browse.json | 1 +
.../airflow/ui/public/i18n/locales/de/common.json | 2 +
.../airflow/ui/public/i18n/locales/en/common.json | 1 +
.../ui/src/components/Breadcrumb/CrumbSwitcher.tsx | 7 +-
.../ui/src/components/Graph/useGraphLayout.ts | 45 +-
.../ui/src/layouts/Details/DagBreadcrumb.test.tsx | 213 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 22 +
.../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 +-
.../airflow/ui/src/layouts/Details/SearchTasks.tsx | 190 ++
...agSwitcherButton.tsx => TaskSwitcherButton.tsx} | 44 +-
airflow-core/src/airflow/utils/db_cleanup.py | 93 +-
.../dag_processing/test_api_isolation.py | 1 +
airflow-core/tests/unit/always/test_connection.py | 14 +-
.../tests/unit/always/test_providers_manager.py | 32 +
.../tests/unit/api/common/test_airflow_health.py | 80 +-
.../execution_api/test_dag_processor_client.py | 1 +
.../execution_api/versions/head/test_callbacks.py | 188 ++
.../{v2026_10_30 => v2027_02_28}/test_callbacks.py | 14 +-
.../unit/api_fastapi/test_lazy_response_fields.py | 338 ++
.../unit/cli/commands/test_api_server_command.py | 19 +
.../cli/commands/test_dag_processor_command.py | 93 +-
.../unit/cli/commands/test_gunicorn_monitor.py | 2 +-
.../tests/unit/dag_processing/test_api_client.py | 11 +-
.../tests/unit/dag_processing/test_manager.py | 165 +-
.../test_priority_inventory_sequence.py | 85 +-
.../tests/unit/dag_processing/test_processor.py | 159 +-
.../dag_processing/test_requested_work_recovery.py | 216 +-
airflow-core/tests/unit/jobs/test_base_job.py | 29 +
.../unit/jobs/test_dag_processor_job_runner.py | 8 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 137 +-
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 +
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 | 74 +-
dev/breeze/doc/ci/05_workflows.md | 14 +-
.../doc/ci/08_fork_ci_for_external_contributors.md | 117 +-
dev/breeze/doc/images/output_build-docs.svg | 12 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
...tput_release-management_add-back-references.svg | 12 +-
...tput_release-management_add-back-references.txt | 2 +-
...elease-management_classify-provider-changes.svg | 4 +-
...elease-management_classify-provider-changes.txt | 2 +-
...management_generate-issue-content-providers.svg | 4 +-
...management_generate-issue-content-providers.txt | 2 +-
...ease-management_generate-providers-metadata.svg | 12 +-
...ease-management_generate-providers-metadata.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 4 +-
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 4 +-
...e-management_prepare-provider-documentation.txt | 2 +-
.../output_release-management_publish-docs.svg | 12 +-
.../output_release-management_publish-docs.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 14 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
.../images/output_workflow-run_publish-docs.svg | 12 +-
.../images/output_workflow-run_publish-docs.txt | 2 +-
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 | 8 +-
.../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/import_graph.py | 308 ++
.../src/airflow_breeze/utils/selective_checks.py | 169 +-
.../src/airflow_breeze/utils/verification_plan.py | 24 +-
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 +-
dev/breeze/tests/test_import_graph.py | 122 +
.../tests/test_release_management_commands.py | 46 +
dev/breeze/tests/test_selective_checks.py | 376 ++-
dev/breeze/tests/test_verification_plan.py | 31 +-
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/pkg/execution/client.go | 8 +-
go-sdk/pkg/execution/client_test.go | 20 +-
.../pkg/execution/genmodels/discriminators.gen.go | 4 +
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 | 168 +-
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 | 128 +-
go-sdk/pkg/execution/messages_test.go | 218 +-
go-sdk/pkg/execution/task_runner.go | 79 +-
go-sdk/pkg/execution/task_runner_test.go | 89 -
go-sdk/pkg/execution/trigger_runner.go | 11 +-
go-sdk/schema/supervisor-schema.json | 13 +
go-sdk/sdk/context.go | 5 +-
java-sdk/adr/0003-task-loop-authoring-interface.md | 327 ++
.../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 +-
.../tests/unit/amazon/aws/hooks/test_duckdb.py | 44 +-
.../tests/unit/apache/hive/plugins/test_hive.py | 21 +-
.../celery/executors/celery_executor_utils.py | 10 +
.../unit/celery/executors/test_celery_executor.py | 42 +
.../cncf/kubernetes/utils/xcom_sidecar.py | 2 +-
.../system/cncf/kubernetes/example_kubernetes.py | 2 +-
.../cncf/kubernetes/example_kubernetes_async.py | 2 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 6 +-
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/redirects.txt | 1 +
providers/common/ai/docs/sandbox/backends.rst | 827 -----
providers/common/ai/docs/sandbox/backends/boat.rst | 151 +
.../common/ai/docs/sandbox/backends/custom.rst | 95 +
.../common/ai/docs/sandbox/backends/index.rst | 82 +
providers/common/ai/docs/sandbox/backends/islo.rst | 107 +
.../common/ai/docs/sandbox/backends/modal.rst | 183 +
.../ai/docs/sandbox/backends/opensandbox.rst | 93 +
.../common/ai/docs/sandbox/backends/openshell.rst | 206 ++
providers/common/ai/docs/sandbox/backends/sbx.rst | 71 +
providers/common/ai/docs/sandbox/configuration.rst | 2 +-
providers/common/ai/docs/sandbox/index.rst | 6 +-
providers/common/ai/docs/self_hosted_models.rst | 103 +
providers/common/ai/docs/toolsets/index.rst | 2 +-
.../ai/docs/use_cases/explain_revenue_anomaly.rst | 8 +-
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 +-
.../airflow/providers/common/ai/toolsets/hook.py | 22 +-
.../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 +
.../src/airflow/providers/databricks/exceptions.py | 5 +-
.../providers/databricks/hooks/databricks_base.py | 6 +-
.../providers/databricks/operators/databricks.py | 38 +-
.../tests/unit/databricks/hooks/test_databricks.py | 25 +
.../unit/databricks/operators/test_databricks.py | 73 +-
.../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 +-
.../marketing_platform/hooks/display_video.py | 4 +-
providers/hashicorp/docs/index.rst | 2 +-
providers/hashicorp/pyproject.toml | 2 +-
{airflow-core => providers/huggingface}/.gitignore | 0
{chart => providers/huggingface}/LICENSE | 0
NOTICE => providers/huggingface/NOTICE | 0
providers/{opsgenie => huggingface}/README.rst | 22 +-
providers/huggingface/docs/artifacts.rst | 63 +
.../dataquality => huggingface}/docs/changelog.rst | 2 +-
.../huggingface/docs/commits.rst | 8 +-
providers/{hashicorp => huggingface}/docs/conf.py | 2 +-
.../huggingface/docs/connections/huggingface.rst | 43 +
.../huggingface/docs/connections/index.rst | 8 +
providers/huggingface/docs/index.rst | 164 +
.../docs/installing-providers-from-sources.rst | 0
.../docs/integration-logos/HuggingFace.png | Bin 0 -> 12072 bytes
providers/huggingface/docs/operators/datasets.rst | 217 ++
providers/huggingface/docs/security.rst | 52 +
providers/huggingface/provider.yaml | 60 +
.../{singularity => huggingface}/pyproject.toml | 23 +-
.../huggingface/src/airflow}/__init__.py | 0
.../huggingface/src/airflow/providers}/__init__.py | 0
.../src/airflow/providers/huggingface}/__init__.py | 4 +-
.../providers/huggingface/assets}/__init__.py | 0
.../providers/huggingface/assets/huggingface.py | 53 +
.../providers/huggingface/get_provider_info.py | 70 +
.../providers/huggingface/hooks}/__init__.py | 0
.../providers/huggingface/hooks/huggingface.py | 156 +
.../providers/huggingface/operators}/__init__.py | 0
.../providers/huggingface/operators/datasets.py | 782 +++++
.../{airbyte => huggingface}/tests/conftest.py | 0
.../huggingface/tests/system}/__init__.py | 0
.../tests/system/huggingface}/__init__.py | 0
.../tests/system/huggingface/example_read_only.py | 69 +
.../tests/system/huggingface/example_write.py | 250 ++
.../huggingface/tests/unit}/__init__.py | 0
.../tests/unit/huggingface}/__init__.py | 0
.../tests/unit/huggingface/assets}/__init__.py | 0
.../unit/huggingface/assets/test_huggingface.py | 66 +
.../tests/unit/huggingface/hooks}/__init__.py | 0
.../unit/huggingface/hooks/test_huggingface.py | 174 +
.../tests/unit/huggingface/operators}/__init__.py | 0
.../unit/huggingface/operators/test_datasets.py | 768 +++++
.../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 | 4 +-
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 2 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
pyproject.toml | 12 +-
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/docker-compose/remove-sources.yml | 1 +
scripts/ci/docker-compose/tests-sources.yml | 1 +
scripts/ci/install_breeze.sh | 2 +-
scripts/tools/setup_breeze | 2 +-
.../secrets_masker/secrets_masker.py | 22 +
.../tests/secrets_masker/test_secrets_masker.py | 29 +
task-sdk/src/airflow/sdk/api/client.py | 7 +
.../src/airflow/sdk/api/datamodels/_generated.py | 23 +-
.../sdk/execution_time/callback_supervisor.py | 26 +-
.../airflow/sdk/execution_time/schema/schema.json | 13 +
.../execution_time/schema/versions/v2027_02_28.py | 2 +
task-sdk/tests/task_sdk/api/test_client.py | 34 +
.../execution_time/test_callback_supervisor.py | 88 +-
ts-sdk/adr/0003-task-loop-authoring-interface.md | 214 ++
ts-sdk/schema/supervisor-schema.json | 13 +
ts-sdk/src/generated/supervisor.ts | 330 +-
uv.lock | 3505 +++++++++++---------
319 files changed, 18892 insertions(+), 6905 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
copy providers/amazon/src/airflow/providers/amazon/aws/utils/sagemaker.py =>
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/callback.py (67%)
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/SearchTasks.tsx
copy airflow-core/src/airflow/ui/src/layouts/Details/{DagSwitcherButton.tsx =>
TaskSwitcherButton.tsx} (53%)
copy airflow-core/tests/unit/api_fastapi/execution_api/versions/{v2026_10_30
=> v2027_02_28}/test_callbacks.py (75%)
create mode 100644
airflow-core/tests/unit/api_fastapi/test_lazy_response_fields.py
create mode 100644 dev/breeze/src/airflow_breeze/utils/import_graph.py
create mode 100644 dev/breeze/tests/test_import_graph.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
delete mode 100644 go-sdk/pkg/execution/task_runner_test.go
create mode 100644 java-sdk/adr/0003-task-loop-authoring-interface.md
create mode 100644 providers/amazon/docs/connections/duckdb_aws.rst
delete mode 100644 providers/common/ai/docs/sandbox/backends.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/boat.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/custom.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/index.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/islo.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/modal.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/opensandbox.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/openshell.rst
create mode 100644 providers/common/ai/docs/sandbox/backends/sbx.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 {airflow-core => providers/huggingface}/.gitignore (100%)
copy {chart => providers/huggingface}/LICENSE (100%)
copy NOTICE => providers/huggingface/NOTICE (100%)
copy providers/{opsgenie => huggingface}/README.rst (77%)
create mode 100644 providers/huggingface/docs/artifacts.rst
copy providers/{common/dataquality => huggingface}/docs/changelog.rst (96%)
copy airflow-core/docs/release_notes.rst =>
providers/huggingface/docs/commits.rst (86%)
copy providers/{hashicorp => huggingface}/docs/conf.py (98%)
create mode 100644 providers/huggingface/docs/connections/huggingface.rst
copy scripts/ci/license-templates/LICENSE.rst =>
providers/huggingface/docs/connections/index.rst (87%)
create mode 100644 providers/huggingface/docs/index.rst
copy providers/{airbyte =>
huggingface}/docs/installing-providers-from-sources.rst (100%)
create mode 100644 providers/huggingface/docs/integration-logos/HuggingFace.png
create mode 100644 providers/huggingface/docs/operators/datasets.rst
create mode 100644 providers/huggingface/docs/security.rst
create mode 100644 providers/huggingface/provider.yaml
copy providers/{singularity => huggingface}/pyproject.toml (88%)
copy {airflow-core/tests/integration =>
providers/huggingface/src/airflow}/__init__.py (100%)
copy {airflow-core/tests/integration =>
providers/huggingface/src/airflow/providers}/__init__.py (100%)
copy providers/{modal/src/airflow/providers/modal =>
huggingface/src/airflow/providers/huggingface}/__init__.py (92%)
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/src/airflow/providers/huggingface/assets}/__init__.py
(100%)
create mode 100644
providers/huggingface/src/airflow/providers/huggingface/assets/huggingface.py
create mode 100644
providers/huggingface/src/airflow/providers/huggingface/get_provider_info.py
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/src/airflow/providers/huggingface/hooks}/__init__.py
(100%)
create mode 100644
providers/huggingface/src/airflow/providers/huggingface/hooks/huggingface.py
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/src/airflow/providers/huggingface/operators}/__init__.py
(100%)
create mode 100644
providers/huggingface/src/airflow/providers/huggingface/operators/datasets.py
copy providers/{airbyte => huggingface}/tests/conftest.py (100%)
copy {airflow-core/tests/integration =>
providers/huggingface/tests/system}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/tests/system/huggingface}/__init__.py (100%)
create mode 100644
providers/huggingface/tests/system/huggingface/example_read_only.py
create mode 100644
providers/huggingface/tests/system/huggingface/example_write.py
copy {airflow-core/tests/integration =>
providers/huggingface/tests/unit}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/tests/unit/huggingface}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/tests/unit/huggingface/assets}/__init__.py (100%)
create mode 100644
providers/huggingface/tests/unit/huggingface/assets/test_huggingface.py
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/tests/unit/huggingface/hooks}/__init__.py (100%)
create mode 100644
providers/huggingface/tests/unit/huggingface/hooks/test_huggingface.py
copy {airflow-core/src/airflow/_shared =>
providers/huggingface/tests/unit/huggingface/operators}/__init__.py (100%)
create mode 100644
providers/huggingface/tests/unit/huggingface/operators/test_datasets.py
create mode 100644 ts-sdk/adr/0003-task-loop-authoring-interface.md