This is an automated email from the ASF dual-hosted git repository.
kaxil pushed a change to branch openai-agents-unanswered-approval
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 4f97ec40179 Name the approval error so mypy does not read a deleted
variable
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 e429795ce4b Fix the last loop iteration index in the task loops docs
(#76831)
add 5667fb5044b Skip the Go SDK rule constants test outside the Airflow
repository (#76888)
add 5a9e21ac1b4 Skip upstream-only push workflows when a fork syncs main
(#76695)
add b9a3082904d Make SDK release verification steps work on macOS and with
backports (#76897)
add 48ccf8119b5 Fix unexpected stdout output in async S3Hook decorator
(#76855)
add 5e2e1417f22 Count replayed tool errors against the retry limit in
OpenAI Agents durable runs (#76790)
add 3a1216ed036 Merge main into openai-agents-unanswered-approval
add 86fb0fab12f Note the approval failure in the common.ai changelog
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/automatic-backport.yml | 1 +
.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 | 4 +-
.github/workflows/java-sdk-release-verify.yml | 4 +-
.github/workflows/k8s-tests.yml | 4 +-
.github/workflows/milestone-tag-assistant.yml | 1 +
.github/workflows/notify-uv-lock-conflicts.yml | 1 +
.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 +-
.github/workflows/update-constraints-on-push.yml | 5 +-
.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 +-
.../docs/authoring-and-scheduling/loops.rst | 2 +-
airflow-core/docs/extra-packages-ref.rst | 2 +
airflow-core/docs/howto/usage-cli.rst | 2 +-
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 | 2 +-
.../src/airflow/cli/commands/api_server_command.py | 4 +-
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 +-
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/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 +
.../unit/cli/commands/test_gunicorn_monitor.py | 2 +-
airflow-core/tests/unit/jobs/test_base_job.py | 29 +
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/airflow/enums_test.go | 14 +-
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 | 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/sdk/context.go | 5 +-
java-sdk/DEVELOPMENT.md | 15 +-
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 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 1 -
.../tests/unit/amazon/aws/hooks/test_duckdb.py | 44 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 13 +
.../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 +
providers/common/ai/docs/changelog.rst | 8 +
.../common/ai/docs/connections/pydantic_ai.rst | 5 +-
.../common/ai/docs/frameworks/openai_agents.rst | 18 +-
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/durable/openai_agents.py | 26 +-
.../providers/common/ai/get_provider_info.py | 5 +-
.../airflow/providers/common/ai/hooks/ollama.py | 98 +
.../providers/common/ai/hooks/pydantic_ai.py | 106 +-
.../providers/common/ai/tools/_from_toolset.py | 145 +-
.../providers/common/ai/tools/openai_agents.py | 51 +-
.../airflow/providers/common/ai/toolsets/hook.py | 22 +-
.../unit/common/ai/durable/test_openai_agents.py | 326 +-
.../ai/tests/unit/common/ai/hooks/test_ollama.py | 139 +
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 204 +-
.../unit/common/ai/tools/test__from_toolset.py | 54 +-
.../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 +-
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 ++
uv.lock | 3505 +++++++++++---------
311 files changed, 18467 insertions(+), 6537 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