This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch
jason/lang-sdk-e2e/01-coordinator-dag-bundle-name
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit bc31a7a4970 Reject empty subprocess coordinator artifact roots
omit 002e75919aa Reject concurrent subprocess coordinator execution
consistently
omit ec7447aa0c8 Make task bundle access dependencies explicit
omit ef75e1e84f0 Preserve custom subprocess coordinator compatibility
omit db652eb3b8e Read the Dag bundle configuration through a single entry
point
omit 5beb821edf1 Resolve coordinator Dag bundles without importing the task
runner
omit 869d197fc8b Make JavaCoordinator main_class optional in co-located mode
omit 7203ab14efa Harden subprocess coordinator artifact bundle resolution
omit fb3929e9ffd Document dag_bundle_name option for language-SDK
coordinators
omit a5b1c8731f8 Add dag_bundle_name option to subprocess coordinators
add 22ebb0943f7 [main] Upgrade important CI environment (#73629)
add 3107af07cd1 Use POSIX-compliant tail to extract token line in EKS
command (#73690)
add 23c6e77067f Fix provider.yaml doc URL check with several suspended
providers (#73782)
add f2fae8c737a Fix flaky test_trigger_log in triggerer job tests (#72919)
add a55f0a1af04 Add GitSync sidecar upgrade warning to Helm chart docs
(#73814)
add 5bc738efafe Add tests for the Google Cloud Tasks links (#72846)
add ebe3bddae79 Keep README stable Airflow version pins in sync with
releases (#73786)
add 46823e47aee Correct the meaning of _arg_bindings in the serialization
schema (#73644)
add f49bce025a8 Optimize UI and Playwright dependency caching (#73183)
add acaa1cba930 Republish repaired prek caches and keep unrelated host
caches (#73182)
add dff97f0908a Added Louisa AI to the list of companies using Apache
Airflow (#73665)
add 28e7c89c363 fix k8s download_schemas_for_version for hpa (#73821)
add 23bcbe6c99a Regenerate provider requirement tables in breeze ci
upgrade (#73802)
add 2827a13dc4f Check ui-field-behaviour drift between hooks and
provider.yaml (#73801)
add 30d0d7bac4a Adjust warnings, import errors, and Dag source models for
sdk/importers (#72474)
add f242c8e0513 Skip CI duration alerts when the newest run is stale
(#73831)
add 3634bc89d04 Discover a bundle's Dag definitions through the importer
registry (#73728)
add 7eac9ac7c1b Add connections and agent-security entries to the
common.ai sidebar (#73837)
add 58af2f521bb Close the ssh askpass helper in GitHook before ssh
executes it (#73427)
add b86fa49a15d Optimize CI disk cleanup (#73184)
add 5fbe8dbb433 Clarify DateTimeSensorAsync changelog entry (#73833)
add 873bd644b51 Let a person approve an agent's tool calls before they run
(#73586)
add 66607ac5483 AIP-82: Add KinesisMessageQueueProvider (#73509)
add b357ae24709 Bump the auth-ui-package-updates group across 1 directory
with 8 updates (#73740)
add 455d9581367 UI: Complete Polish translations and unify slot/deferred
wording (#72623)
add 5428b3b995b Secrets backends order updated (#70681)
add 232255e7fa7 Go SDK: add airflow.Dag and dag.Task, the native Dag
constructors (#73767)
add 68693340f67 Add dag_bundle_name option to subprocess coordinators
add b87d2907a24 Document dag_bundle_name option for language-SDK
coordinators
add da37c21686b Harden subprocess coordinator artifact bundle resolution
add 5fa4098e409 Make JavaCoordinator main_class optional in co-located mode
add ed24a7cdcdf Resolve coordinator Dag bundles without importing the task
runner
add 14d5448c276 Read the Dag bundle configuration through a single entry
point
add a59132f973f Preserve custom subprocess coordinator compatibility
add ce617c8474b Make task bundle access dependencies explicit
add 0aec44e8889 Reject concurrent subprocess coordinator execution
consistently
add a481344223b Reject empty subprocess coordinator artifact roots
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 (bc31a7a4970)
\
N -- N -- N
refs/heads/jason/lang-sdk-e2e/01-coordinator-dag-bundle-name (a481344223b)
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/actions/install-prek/action.yml | 159 +-
.github/workflows/basic-tests.yml | 41 +-
.github/workflows/ui-e2e-tests.yml | 21 +-
.pre-commit-config.yaml | 4 +-
Dockerfile | 2 +-
Dockerfile.ci | 4 +-
INTHEWILD.md | 1 +
.../0007-taskflow-across-language-boundary.md | 3 +
.../adr/lang-sdk/0008-control-flow-constructs.md | 2 +-
.../0009-provider-operators-as-generated-dsl.md | 4 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/migrations-ref.rst | 6 +-
.../security/secrets/secrets-backend/index.rst | 23 +-
airflow-core/newsfragments/70681.significant.rst | 7 +
airflow-core/pyproject.toml | 4 +-
airflow-core/src/airflow/api/common/delete_dag.py | 7 +-
.../auth/managers/simple/ui/package.json | 16 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 356 +-
.../api_fastapi/core_api/datamodels/dag_sources.py | 1 +
.../api_fastapi/core_api/datamodels/dag_warning.py | 4 +-
.../core_api/datamodels/import_error.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 98 +
.../core_api/openapi/v2-rest-api-generated.yaml | 25 +-
.../core_api/routes/public/dag_sources.py | 1 +
.../core_api/routes/public/dag_warning.py | 6 +-
.../core_api/routes/public/import_error.py | 2 +
.../api_fastapi/core_api/routes/ui/config.py | 45 +-
.../src/airflow/config_templates/config.yml | 34 +
airflow-core/src/airflow/configuration.py | 7 +-
.../src/airflow/dag_processing/collection.py | 2 +
..._3_4_0_add_source_reference_to_import_error.py} | 24 +-
...g.py => 0140_3_4_0_add_language_to_dag_code.py} | 26 +-
airflow-core/src/airflow/models/dagcode.py | 3 +
airflow-core/src/airflow/models/dagwarning.py | 31 +-
airflow-core/src/airflow/models/errors.py | 12 +-
airflow-core/src/airflow/secrets/__init__.py | 4 +-
airflow-core/src/airflow/secrets/base_secrets.py | 5 +-
airflow-core/src/airflow/serialization/schema.json | 2 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 10 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 16 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 16 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 16 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 16 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 36 +-
.../ui/openapi-gen/requests/services.gen.ts | 26 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 37 +-
.../airflow/ui/public/i18n/locales/en/admin.json | 2 +
.../airflow/ui/public/i18n/locales/pl/admin.json | 30 +-
.../airflow/ui/public/i18n/locales/pl/assets.json | 21 +-
.../airflow/ui/public/i18n/locales/pl/browse.json | 38 +
.../airflow/ui/public/i18n/locales/pl/common.json | 103 +-
.../ui/public/i18n/locales/pl/components.json | 29 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 13 +-
.../airflow/ui/public/i18n/locales/pl/dags.json | 30 +-
.../ui/public/i18n/locales/pl/dashboard.json | 6 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 2 +-
.../src/airflow/ui/src/components/StatsCard.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 10 +-
.../BackendsOrderCard.tsx} | 33 +-
.../ui/src/pages/Variables/BackendsOrderModal.tsx | 64 +
.../airflow/ui/src/pages/Variables/Variables.tsx | 2 +
airflow-core/src/airflow/utils/db.py | 2 +-
.../tests/unit/always/test_project_structure.py | 1 -
airflow-core/tests/unit/always/test_secrets.py | 121 +
.../tests/unit/api/common/test_delete_dag.py | 49 +
.../core_api/routes/public/test_dag_sources.py | 4 +
.../core_api/routes/public/test_dag_warning.py | 19 +
.../core_api/routes/public/test_import_error.py | 76 +-
.../api_fastapi/core_api/routes/ui/test_config.py | 62 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 22 +-
airflow-core/tests/unit/models/test_dagcode.py | 8 +
airflow-core/tests/unit/models/test_dagwarning.py | 38 +-
airflow-core/tests/unit/models/test_errors.py | 86 +
airflow-ctl-tests/pyproject.toml | 4 +-
airflow-ctl/pyproject.toml | 4 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 12 +-
.../tests/airflow_ctl/api/test_operations.py | 1 +
airflow-e2e-tests/pyproject.toml | 6 +-
chart/docs/manage-dag-files.rst | 4 +
chart/pyproject.toml | 4 +-
clients/python/pyproject.toml | 4 +-
dev/README_RELEASE_AIRFLOW.md | 6 +-
dev/breeze/doc/08_ci_tasks.rst | 4 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/pyproject.toml | 10 +-
.../src/airflow_breeze/commands/ci_commands.py | 9 +
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 6 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../templates/pyproject_TEMPLATE.toml.jinja2 | 2 +-
dev/breeze/tests/test_ci_upgrade.py | 16 +-
dev/breeze/uv.lock | 160 +-
dev/mypy/pyproject.toml | 4 +-
dev/pyproject.toml | 4 +-
dev/registry/pyproject.toml | 4 +-
devel-common/pyproject.toml | 4 +-
docker-stack-docs/pyproject.toml | 4 +-
docker-tests/pyproject.toml | 4 +-
go-sdk/adr/0008-native-dag-interface.md | 18 +-
go-sdk/airflow/bundle.go | 37 +-
go-sdk/airflow/bundle_test.go | 44 +-
go-sdk/airflow/dag.go | 234 +
go-sdk/airflow/dag_test.go | 461 ++
go-sdk/airflow/serve.go | 2 +-
go-sdk/{pkg/logging/attrs.go => airflow/spec.go} | 17 +-
go-sdk/airflow/task_handler.go | 23 +-
.../foreignitem/main.go => task_option.go} | 25 +-
.../{foreignitem => foreigntaskoption}/main.go | 14 +-
kubernetes-tests/pyproject.toml | 4 +-
.../test_kubernetes_pod_operator.py | 2 +-
performance/pyproject.toml | 2 +-
providers-summary-docs/pyproject.toml | 4 +-
providers/airbyte/pyproject.toml | 2 +-
providers/akeyless/pyproject.toml | 2 +-
providers/alibaba/pyproject.toml | 2 +-
providers/amazon/README.rst | 4 +-
providers/amazon/docs/index.rst | 4 +-
providers/amazon/docs/message-queues/index.rst | 55 +
providers/amazon/provider.yaml | 1 +
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/aws/hooks/eks.py | 6 +-
.../amazon/aws/queues/{sqs.py => kinesis.py} | 32 +-
.../airflow/providers/amazon/get_provider_info.py | 5 +-
.../amazon/aws/example_kinesis_message_queue.py | 98 +
.../amazon/tests/unit/amazon/aws/hooks/test_eks.py | 40 +-
.../tests/unit/amazon/aws/queues/test_kinesis.py | 185 +
providers/anthropic/pyproject.toml | 2 +-
providers/apache/arrow/pyproject.toml | 2 +-
providers/apache/beam/pyproject.toml | 2 +-
providers/apache/cassandra/pyproject.toml | 2 +-
providers/apache/drill/pyproject.toml | 2 +-
providers/apache/druid/pyproject.toml | 2 +-
providers/apache/flink/pyproject.toml | 2 +-
providers/apache/hdfs/pyproject.toml | 2 +-
providers/apache/hive/pyproject.toml | 2 +-
providers/apache/iceberg/pyproject.toml | 2 +-
providers/apache/impala/pyproject.toml | 2 +-
providers/apache/kafka/pyproject.toml | 2 +-
providers/apache/kylin/pyproject.toml | 2 +-
providers/apache/livy/pyproject.toml | 2 +-
providers/apache/pig/pyproject.toml | 2 +-
providers/apache/pinot/pyproject.toml | 2 +-
providers/apache/spark/pyproject.toml | 2 +-
providers/apache/tinkerpop/pyproject.toml | 2 +-
providers/apprise/pyproject.toml | 2 +-
providers/arangodb/pyproject.toml | 2 +-
providers/asana/pyproject.toml | 2 +-
providers/atlassian/jira/pyproject.toml | 2 +-
providers/celery/pyproject.toml | 2 +-
providers/clickhousedb/pyproject.toml | 2 +-
providers/cloudant/pyproject.toml | 2 +-
providers/cncf/kubernetes/pyproject.toml | 2 +-
.../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/cohere/pyproject.toml | 2 +-
providers/common/ai/docs/agent_security.rst | 22 +-
providers/common/ai/docs/connections/index.rst | 62 +
providers/common/ai/docs/examples.rst | 3 +
providers/common/ai/docs/features.rst | 9 +-
providers/common/ai/docs/index.rst | 4 +-
providers/common/ai/docs/observability.rst | 4 +-
providers/common/ai/docs/operations.rst | 1 -
providers/common/ai/docs/operators/agent.rst | 4 +-
providers/common/ai/docs/operators/index.rst | 4 +-
providers/common/ai/docs/tool_approval.rst | 144 +
providers/common/ai/pyproject.toml | 4 +-
.../ai/example_dags/example_agent_tool_approval.py | 58 +
.../src/airflow/providers/common/ai/exceptions.py | 32 +-
.../airflow/providers/common/ai/mixins/approval.py | 30 +
.../airflow/providers/common/ai/operators/agent.py | 334 +-
.../airflow/providers/common/ai/operators/llm.py | 24 +-
.../providers/common/ai/toolsets/logging.py | 6 +
.../tests/unit/common/ai/operators/test_agent.py | 6 +-
.../ai/operators/test_agent_tool_approval.py | 556 +++
.../tests/unit/common/ai/toolsets/test_logging.py | 18 +
providers/common/compat/pyproject.toml | 2 +-
providers/common/dataquality/pyproject.toml | 2 +-
providers/common/io/pyproject.toml | 2 +-
providers/common/messaging/pyproject.toml | 2 +-
providers/common/sql/pyproject.toml | 2 +-
providers/databricks/docs/index.rst | 2 +-
providers/databricks/pyproject.toml | 4 +-
providers/datadog/pyproject.toml | 2 +-
providers/dbt/cloud/pyproject.toml | 2 +-
providers/dingding/pyproject.toml | 2 +-
providers/discord/pyproject.toml | 2 +-
providers/docker/pyproject.toml | 2 +-
providers/duckdb/pyproject.toml | 2 +-
providers/edge3/pyproject.toml | 4 +-
providers/elasticsearch/pyproject.toml | 2 +-
providers/exasol/pyproject.toml | 2 +-
providers/fab/pyproject.toml | 4 +-
providers/facebook/pyproject.toml | 2 +-
providers/ftp/pyproject.toml | 2 +-
providers/git/pyproject.toml | 2 +-
.../git/src/airflow/providers/git/hooks/git.py | 31 +-
providers/git/tests/unit/git/hooks/test_git.py | 19 +
providers/github/pyproject.toml | 2 +-
providers/google/README.rst | 80 +-
providers/google/docs/index.rst | 80 +-
providers/google/pyproject.toml | 82 +-
.../unit/google/cloud/links/test_cloud_tasks.py | 155 +
providers/grpc/pyproject.toml | 2 +-
providers/hashicorp/docs/index.rst | 2 +-
providers/hashicorp/pyproject.toml | 4 +-
providers/http/pyproject.toml | 2 +-
providers/ibm/db2/pyproject.toml | 2 +-
providers/ibm/mq/pyproject.toml | 2 +-
providers/imap/pyproject.toml | 2 +-
providers/influxdb/pyproject.toml | 2 +-
providers/informatica/pyproject.toml | 2 +-
providers/jdbc/pyproject.toml | 2 +-
providers/jenkins/pyproject.toml | 2 +-
providers/keycloak/pyproject.toml | 2 +-
providers/microsoft/azure/README.rst | 30 +-
providers/microsoft/azure/docs/index.rst | 30 +-
providers/microsoft/azure/pyproject.toml | 34 +-
providers/microsoft/mssql/pyproject.toml | 2 +-
providers/microsoft/psrp/pyproject.toml | 2 +-
providers/microsoft/winrm/pyproject.toml | 2 +-
providers/mongo/pyproject.toml | 2 +-
providers/mysql/pyproject.toml | 2 +-
providers/neo4j/pyproject.toml | 2 +-
providers/odbc/pyproject.toml | 2 +-
providers/openai/pyproject.toml | 2 +-
providers/openfaas/pyproject.toml | 2 +-
providers/openlineage/pyproject.toml | 2 +-
providers/opensearch/pyproject.toml | 2 +-
providers/opsgenie/pyproject.toml | 2 +-
providers/oracle/pyproject.toml | 2 +-
providers/pagerduty/pyproject.toml | 2 +-
providers/papermill/pyproject.toml | 2 +-
providers/pgvector/pyproject.toml | 2 +-
providers/pinecone/pyproject.toml | 2 +-
providers/postgres/pyproject.toml | 2 +-
providers/presto/pyproject.toml | 2 +-
providers/qdrant/pyproject.toml | 2 +-
providers/redis/pyproject.toml | 2 +-
providers/salesforce/pyproject.toml | 2 +-
providers/samba/pyproject.toml | 2 +-
providers/segment/pyproject.toml | 2 +-
providers/sendgrid/pyproject.toml | 2 +-
providers/sftp/pyproject.toml | 2 +-
providers/singularity/pyproject.toml | 2 +-
providers/slack/pyproject.toml | 2 +-
providers/smtp/pyproject.toml | 2 +-
providers/snowflake/pyproject.toml | 2 +-
providers/sqlite/pyproject.toml | 2 +-
providers/ssh/pyproject.toml | 2 +-
providers/standard/docs/changelog.rst | 2 +-
providers/standard/pyproject.toml | 2 +-
providers/tableau/pyproject.toml | 2 +-
providers/telegram/pyproject.toml | 2 +-
providers/teradata/pyproject.toml | 2 +-
providers/trino/pyproject.toml | 2 +-
providers/vertica/pyproject.toml | 2 +-
providers/vespa/pyproject.toml | 2 +-
providers/weaviate/pyproject.toml | 2 +-
providers/yandex/pyproject.toml | 2 +-
providers/ydb/pyproject.toml | 2 +-
providers/zendesk/pyproject.toml | 2 +-
pyproject.toml | 7 +-
scripts/ci/analyze_ci_job_durations.py | 24 +-
scripts/ci/prek/check_extra_packages_ref.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_provider_conn_fields.py | 123 +-
scripts/ci/prek/download_k8s_schemas.py | 7 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/supported_versions.py | 34 +
scripts/ci/prek_cache_markers.py | 60 +
.../in_container/provider_suspension.py | 40 +-
.../in_container/run_provider_yaml_files_check.py | 89 +-
scripts/pyproject.toml | 4 +-
.../test_check_ui_field_behaviour_matches_hook.py | 130 +
scripts/tests/ci/prek/test_supported_versions.py | 71 +
scripts/tests/ci/test_analyze_ci_job_durations.py | 46 +
scripts/tests/ci/test_prek_cache_optimizations.py | 439 ++
.../tests/in_container/test_provider_suspension.py | 64 +
.../_shared => scripts/tests/tools}/__init__.py | 0
scripts/tests/tools/test_free_up_disk_space.py | 98 +
scripts/tools/free_up_disk_space.sh | 25 +-
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 4 +-
.../configuration/secrets_backends.py | 88 +
shared/dagnode/pyproject.toml | 4 +-
shared/listeners/pyproject.toml | 4 +-
shared/logging/pyproject.toml | 4 +-
shared/module_loading/pyproject.toml | 4 +-
shared/observability/pyproject.toml | 4 +-
shared/plugins_manager/pyproject.toml | 4 +-
shared/providers_discovery/pyproject.toml | 4 +-
shared/secrets_backend/pyproject.toml | 4 +-
shared/secrets_masker/pyproject.toml | 4 +-
shared/serialization/pyproject.toml | 4 +-
shared/state/pyproject.toml | 4 +-
shared/template_rendering/pyproject.toml | 4 +-
shared/timezones/pyproject.toml | 4 +-
task-sdk-integration-tests/pyproject.toml | 4 +-
task-sdk/pyproject.toml | 4 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
task-sdk/src/airflow/sdk/configuration.py | 10 +-
.../airflow/sdk/execution_time/secrets/__init__.py | 9 +-
.../src/airflow/sdk/execution_time/supervisor.py | 3 +-
task-sdk/src/airflow/sdk/importers/base.py | 109 +-
.../src/airflow/sdk/importers/python_importer.py | 10 +-
.../tests/task_sdk/execution_time/test_context.py | 13 +-
.../tests/task_sdk/execution_time/test_secrets.py | 3 +-
task-sdk/tests/task_sdk/importers/test_registry.py | 139 +
ts-sdk/schema/dag-schema.json | 2 +-
uv.lock | 4742 ++++++++++----------
313 files changed, 8798 insertions(+), 3415 deletions(-)
create mode 100644 airflow-core/newsfragments/70681.significant.rst
copy
airflow-core/src/airflow/migrations/versions/{0132_3_4_0_add_team_name_to_log.py
=> 0139_3_4_0_add_source_reference_to_import_error.py} (63%)
copy
airflow-core/src/airflow/migrations/versions/{0132_3_4_0_add_team_name_to_log.py
=> 0140_3_4_0_add_language_to_dag_code.py} (63%)
copy
airflow-core/src/airflow/ui/src/pages/{Asset/AssetStateStore/AddAssetStateStoreButton.tsx
=> Variables/BackendsOrderCard.tsx} (58%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Variables/BackendsOrderModal.tsx
create mode 100644 airflow-core/tests/unit/models/test_errors.py
create mode 100644 go-sdk/airflow/dag.go
create mode 100644 go-sdk/airflow/dag_test.go
copy go-sdk/{pkg/logging/attrs.go => airflow/spec.go} (68%)
copy go-sdk/airflow/{testdata/foreignitem/main.go => task_option.go} (58%)
copy go-sdk/airflow/testdata/{foreignitem => foreigntaskoption}/main.go (68%)
copy providers/amazon/src/airflow/providers/amazon/aws/queues/{sqs.py =>
kinesis.py} (63%)
create mode 100644
providers/amazon/tests/system/amazon/aws/example_kinesis_message_queue.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/queues/test_kinesis.py
create mode 100644 providers/common/ai/docs/connections/index.rst
create mode 100644 providers/common/ai/docs/tool_approval.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_agent_tool_approval.py
create mode 100644
providers/common/ai/tests/unit/common/ai/operators/test_agent_tool_approval.py
create mode 100644
providers/google/tests/unit/google/cloud/links/test_cloud_tasks.py
create mode 100644 scripts/ci/prek_cache_markers.py
copy dev/breeze/src/airflow_breeze/utils/click_utils.py =>
scripts/in_container/provider_suspension.py (50%)
create mode 100644
scripts/tests/ci/prek/test_check_ui_field_behaviour_matches_hook.py
create mode 100644 scripts/tests/ci/prek/test_supported_versions.py
create mode 100644 scripts/tests/ci/test_prek_cache_optimizations.py
create mode 100644 scripts/tests/in_container/test_provider_suspension.py
copy {airflow-core/src/airflow/_shared => scripts/tests/tools}/__init__.py
(100%)
create mode 100644 scripts/tests/tools/test_free_up_disk_space.py
create mode 100644
shared/configuration/src/airflow_shared/configuration/secrets_backends.py