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
omit 6185d029f0f Find the Breeze container for the isolation test from its
mounts
omit f10203030da Stop logging callback processes for removed Dags as
abnormal exits
omit deb1843e525 Stop repeating Dag callbacks after an Execution API
request fails
omit f7deb176fe2 Keep Dag processor callbacks and reparses through
transient failures
omit a974227f45a Correct the Dag processor API-mode docs and Compose example
omit 5dee7fd99a2 Fix Dag processor API-mode shutdown, completion and claim
capacity
omit e3c4c9de23c Release Dag processor claims for unpublishable sources
omit 7ca68c6d4c1 Separate trusted Dag bundle catalog provisioning from
processing
omit 698a3135af5 Restore isolated Dag processor regression coverage
omit 1bd14a3d145 Keep API Dag processors recoverable through delivery
failures
omit 3070e246708 Move API work delivery state out of the Dag processor
manager
omit f2aafe76697 Allow independent priority parses to finish in either
order in recovery tests
omit 961ad1b721b Preserve requested Dag processing work during bundle
failures
omit 115447491b7 Wait for fresh inventories before running priority parses
omit 820c368c73c Preserve Dag processor work across retries and reparses
omit 0665c8cf46f Run Dag processors without metadata database access
add f01f7ef65d6 Make the Variable value non-nullable in the Execution API
(#76007)
add 335fd71f58f Stop AWS Glue job run when a deferred task is cleared
(#73702)
add abc3a20f080 Escape server and user text in airflowctl command messages
(#76265)
add 2cc7bb0c702 Fix scheduler crash loop from large Edge deadline
callbacks (#74445)
add 6ae6994206a Stop deferred AWS tasks failing on a botocore Config
object (#74843)
add ea5cd982f6b Bump the registry-package-updates group across 1 directory
with 2 updates (#76608)
add 0b9bf0cd855 Stream remote task logs from S3 instead of reading whole
objects (#73517)
add 3e076e8a64e Edge: Return 400 instead of 500 on invalid worker version
(#72925)
add 92b4e57df13 Bump oauthlib from 4.0.0 to 4.0.1 in /dev/breeze (#76569)
add 4d54940ceef Fix PgBouncer NetworkPolicy using namespace labels of
disabled triggerer KEDA (#74565)
add 81b487227dc Use airflowHome for logs mount in wait-for-migrations init
container (#75060)
add a694dc8281f Honor API server worker timeout configuration (#72859)
add 696d09de527 Add annotations to helm chart priorityclasses (#74457)
add a2d88223bc8 Fix providers release guide steps that use wrong dates or
labels (#76625)
add 2a1961ac68c Allow extra init containers for PgBouncer (#74612)
add 553c41633ed Fix Deadline Alert SmtpNotifier example in Dag docs
(#75597)
add 46321fb722f UI: Reduce duplicate Grid polling (#75979)
add e5ce464abab Fix S3 remote log test for streaming responses (#76632)
add 05d86b21c28 Post the first fork CI comment without waiting for the
next run (#76510)
add 7b8d8f15405 Inline the GPG keys into the PROD Dockerfile (#76644)
add 3776ea3fd7c Use get_github_repo to check the release candidate remote
(#76641)
add db434a8afbe Revert "Fix formatting in chart/NOTICE file (#76237)"
(#76637)
add ce124900b5d Bump the edge-ui-package-updates group across 1 directory
with 15 updates (#76615)
add 2e265688748 Bump the github-actions-updates group across 1 directory
with 6 updates (#76618)
add 9ff996841a0 Bump the typescript group across 1 directory with 4
updates (#76610)
add 66f69ec977f Bump the uv-dependency-updates group in /dev/breeze with 3
updates (#76609)
add 96e157acba9 Bump the ui-plugin-template-package-updates group across 1
directory with 7 updates (#76614)
add 6aa279481bb Bump the auth-ui-package-updates group across 1 directory
with 13 updates (#76613)
add 538d34a8b64 Bump the ts-sdk-package-updates group across 1 directory
with 6 updates (#76059)
add ea64ed6757c Bump happy-dom from 20.14.6 to 21.0.4 in
/dev/react-plugin-tools/react_plugin_template (#76098)
add 1cc29251f50 Bump happy-dom from 20.14.6 to 21.0.4 in edge plugin UI
(#76097)
add 5d744b59810 Update AGENTS.md to instruct local Kubernetes clusters
setup with breeze k8s (#76482)
add 9c3a807d76b Bump the core-ui-package-updates group across 1 directory
with 13 updates (#76619)
add 2adbce7e7b2 Explain a BASE_IMAGE without Python in hardened image
builds (#76645)
add 1cd300be4a2 i18n(Ko): add missing translations in browse.json
common.json components.json dags.json (#76506)
add fcc55294185 Document JSON connections in Google Secret Manager backend
(#76649)
add 6773d728c60 Fix tag-providers not finding a push remote without .git
suffix (#76624)
add b37cd0ddb00 Clarify Google connection secret settings and retry
default (#76622)
add 92a4e3ebea7 Fix XComArg.map() failing when the upstream XCom is a dict
(#75022)
add 1dd57153412 Add missing zh-CN UI translations (#74294)
add 37ab48778c9 Preserve explicit falsy partial() values on mapped
operators (#75679)
add 9c032199799 Fix xcom_pull() ignoring default parameter when
map_indexes not set (#64614)
add cb3568622c2 Require rich-argparse 1.4.0 for airflowctl (#76661)
add a41e1b38794 Fix Google Cloud Workflows docs links to operator and
sensor classes (#76667)
add 7c828d22fe6 Bump paramiko in
/providers/informatica/dev/informatica_simulator (#76648)
add 3bd5f761f5c Stop Task SDK client identifiers from reaching other API
endpoints (#68617)
add be08e1eda83 Correct the Bluesky URL in pyproject.toml (#76357)
add 8ad4d615e74 Bump Java SDK Jackson to 2.22.4 for high-severity
advisories (#76670)
add 79a1dd12ee5 Fix dag.test() hanging when a task reads a Variable in a
subprocess (#65587)
add 804eee944b4 Expose Dag run configuration and metadata to Go tasks
(#74674)
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 0fea1ac8feb Run Dag processors without metadata database access
add b5c1171e33f Preserve Dag processor work across retries and reparses
add 558750498c3 Wait for fresh inventories before running priority parses
add b3cfc09a5f6 Preserve requested Dag processing work during bundle
failures
add a1b93a2755e Allow independent priority parses to finish in either
order in recovery tests
add 989382b573c Move API work delivery state out of the Dag processor
manager
add 6c90ae1af86 Keep API Dag processors recoverable through delivery
failures
add 031f466837e Restore isolated Dag processor regression coverage
add 0eb9fbb19d7 Separate trusted Dag bundle catalog provisioning from
processing
add 7313eb0e6d9 Release Dag processor claims for unpublishable sources
add 1d9747ab10c Fix Dag processor API-mode shutdown, completion and claim
capacity
add ccfed168bae Correct the Dag processor API-mode docs and Compose example
add 2f819e3f334 Keep Dag processor callbacks and reparses through
transient failures
add bee8d660b01 Stop repeating Dag callbacks after an Execution API
request fails
add 11076951bd5 Stop logging callback processes for removed Dags as
abnormal exits
add d30347c5d4e Find the Breeze container for the isolation test from its
mounts
add ea388da7ab6 Deliver Dag processor work and stay live while the API is
slow
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 (6185d029f0f)
\
N -- N -- N refs/heads/dag-processor-activation (ea388da7ab6)
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 +
.../prepare-providers-documentation/SKILL.md | 5 +-
.github/CODEOWNERS | 2 +-
.github/dependabot.yml | 3 +
.github/fork-ci-gate.toml | 1 +
.github/workflows/ci-amd.yml | 4 +-
.github/workflows/ci-arm.yml | 4 +-
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/codeql-analysis.yml | 6 +-
.github/workflows/java-sdk-dependency-security.yml | 6 +-
.github/workflows/notify-uv-lock-conflicts.yml | 2 +-
.github/workflows/registry-tests.yml | 2 +-
.../scheduled-verify-release-calendar.yml | 2 +-
.pre-commit-config.yaml | 9 +-
.rat-excludes | 2 +
AGENTS.md | 3 +-
Dockerfile | 195 ++++-
Dockerfile.ci | 7 +
airflow-core/.pre-commit-config.yaml | 2 +-
.../dynamic-task-mapping.rst | 1 +
.../authoring-and-scheduling/language-sdks/go.rst | 20 +-
.../language-sdks/java.rst | 6 +-
.../language-sdks/typescript.rst | 7 +-
airflow-core/docs/core-concepts/dags.rst | 23 +-
.../docs/core-concepts/task-state-store.rst | 16 +
.../docs/security/jwt_token_authentication.rst | 14 +-
airflow-core/newsfragments/76007.significant.rst | 22 +
airflow-core/newsfragments/76453.significant.rst | 16 +
airflow-core/pyproject.toml | 2 +-
.../auth/managers/simple/ui/package.json | 26 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 622 +++++++-------
.../core_api/routes/public/connections.py | 43 +-
.../execution_api/datamodels/variable.py | 4 +-
.../api_fastapi/execution_api/in_process.py | 30 +-
.../execution_api/routes/task_instances.py | 5 +-
.../api_fastapi/execution_api/versions/__init__.py | 8 +-
.../execution_api/versions/v2027_02_28.py | 33 +-
airflow-core/src/airflow/cli/cli_config.py | 2 +-
.../airflow/cli/commands/dag_processor_command.py | 3 +-
.../src/airflow/config_templates/config.yml | 6 +-
.../src/airflow/dag_processing/api_client.py | 4 +-
.../airflow/dag_processing/api_requested_work.py | 22 +-
.../src/airflow/dag_processing/bundles/manager.py | 26 +-
airflow-core/src/airflow/dag_processing/manager.py | 44 +-
.../src/airflow/dag_processing/processor.py | 5 +-
.../src/airflow/dag_processing/requested_work.py | 9 +
.../src/airflow/jobs/dag_processor_job_runner.py | 4 +-
airflow-core/src/airflow/models/connection.py | 6 +-
airflow-core/src/airflow/models/variable.py | 10 +-
airflow-core/src/airflow/process_context.py | 53 ++
airflow-core/src/airflow/sensors/__init__.py | 1 +
.../airflow/serialization/serialized_objects.py | 4 +
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 | 44 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 743 +++++++++--------
.../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/browse.json | 1 +
.../airflow/ui/public/i18n/locales/ko/common.json | 11 +-
.../ui/public/i18n/locales/ko/components.json | 4 +
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 4 +-
.../airflow/ui/public/i18n/locales/ko/dags.json | 1 +
.../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 +
.../ui/public/i18n/locales/zh-CN/admin.json | 1 +
.../ui/public/i18n/locales/zh-CN/assets.json | 1 +
.../ui/public/i18n/locales/zh-CN/common.json | 16 +-
.../ui/public/i18n/locales/zh-CN/components.json | 16 +-
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 56 ++
.../airflow/ui/public/i18n/locales/zh-CN/dags.json | 9 +
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/DetailsLayout.test.tsx | 108 +++
.../ui/src/layouts/Details/DetailsLayout.tsx | 26 +-
.../ui/src/layouts/Details/Gantt/Gantt.test.tsx | 41 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 6 +-
.../layouts/Details/Grid/useGridPagination.test.ts | 36 +-
.../src/layouts/Details/Grid/useGridPagination.ts | 14 +-
.../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 +-
.../airflow/ui/src/queries/useGridRuns.test.tsx | 48 ++
.../src/airflow/ui/src/queries/useGridRuns.ts | 50 +-
.../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 +-
.../core_api/routes/public/test_connections.py | 35 +-
.../unit/api_fastapi/execution_api/test_app.py | 33 +
.../versions/head/test_connections.py | 34 +
.../versions/head/test_task_instances.py | 47 ++
.../execution_api/versions/head/test_variables.py | 63 ++
.../versions/v2027_02_28/test_variables.py | 65 ++
.../unit/cli/commands/test_api_server_command.py | 18 +
.../bundles/test_dag_bundle_manager.py | 213 ++++-
.../unit/dag_processing/requested_work_helpers.py | 28 +
.../tests/unit/dag_processing/test_api_client.py | 19 +
.../unit/dag_processing/test_api_requested_work.py | 53 +-
.../tests/unit/dag_processing/test_manager.py | 147 ++--
.../tests/unit/dag_processing/test_processor.py | 32 +
.../dag_processing/test_requested_work_recovery.py | 37 +-
airflow-core/tests/unit/models/test_connection.py | 21 +
.../unit/serialization/test_dag_serialization.py | 25 +
airflow-core/tests/unit/utils/test_log_handlers.py | 2 +-
airflow-ctl/pyproject.toml | 4 +-
.../src/airflowctl/ctl/commands/auth_command.py | 5 +-
.../src/airflowctl/ctl/commands/config_command.py | 3 +-
.../airflowctl/ctl/commands/connection_command.py | 5 +-
.../src/airflowctl/ctl/commands/dag_command.py | 10 +-
.../src/airflowctl/ctl/commands/task_command.py | 11 +-
airflow-ctl/src/airflowctl/ctl/utils/dag_run.py | 9 +-
.../airflow_ctl/ctl/commands/test_auth_command.py | 52 +-
.../ctl/commands/test_config_command.py | 14 +-
.../ctl/commands/test_connections_command.py | 25 +
.../airflow_ctl/ctl/commands/test_dag_command.py | 69 +-
.../airflow_ctl/ctl/commands/test_task_command.py | 48 ++
.../tests/airflow_ctl/ctl/utils/test_dag_run.py | 29 +
chart/NOTICE | 2 +-
chart/docs/using-additional-containers.rst | 11 +-
.../templates/pgbouncer/pgbouncer-deployment.yaml | 4 +
.../pgbouncer/pgbouncer-networkpolicy.yaml | 2 +-
.../priorityclasses/priority-classes.yaml | 3 +
.../templates/scheduler/scheduler-deployment.yaml | 2 +-
.../templates/triggerer/triggerer-deployment.yaml | 2 +-
chart/templates/workers/worker-deployment.yaml | 2 +-
.../airflow_aux/test_basic_helm_chart.py | 8 +-
.../helm_tests/airflow_core/test_scheduler.py | 27 +-
.../helm_tests/airflow_core/test_triggerer.py | 31 +-
chart/tests/helm_tests/airflow_core/test_worker.py | 31 +-
chart/tests/helm_tests/other/test_pgbouncer.py | 75 ++
chart/values.schema.json | 14 +
chart/values.yaml | 5 +
clients/python/CHANGELOG.md | 76 ++
clients/python/version.txt | 2 +-
contributing-docs/15_node_environment_setup.rst | 5 +-
.../31_task_execution_architecture.rst | 7 +-
.../diagram_task_sdk_execution_architecture.md5sum | 2 +-
.../diagram_task_sdk_execution_architecture.png | Bin 184731 -> 170906 bytes
.../diagram_task_sdk_execution_architecture.py | 8 +-
contributing-docs/testing/unit_tests.rst | 2 +-
dev/README_RELEASE_AIRFLOW.md | 2 +-
dev/README_RELEASE_AIRFLOWCTL.md | 2 +-
dev/README_RELEASE_HELM_CHART.md | 2 +-
dev/README_RELEASE_PROVIDERS.md | 30 +-
.../doc/ci/08_fork_ci_for_external_contributors.md | 11 +-
.../commands/release_candidate_command.py | 16 +-
.../commands/release_management_commands.py | 3 +-
.../src/airflow_breeze/utils/fork_ci_reconcile.py | 77 +-
dev/breeze/tests/test_fork_ci_reconcile.py | 104 +++
dev/breeze/tests/test_os_deps_images.py | 52 +-
dev/breeze/tests/test_release_candidate_command.py | 22 +
.../tests/test_release_management_commands.py | 37 +-
dev/breeze/tests/test_selective_checks.py | 1 -
dev/breeze/uv.lock | 50 +-
dev/mypy/pyproject.toml | 2 +-
.../react_plugin_template/package.json | 16 +-
.../react_plugin_template/pnpm-lock.yaml | 422 +++++-----
dev/skill-evals/last-eval-hash.txt | 2 +-
docker-stack-docs/build-arg-ref.rst | 3 +
docs/spelling_wordlist.txt | 1 +
go-sdk/DEVELOPMENT.md | 7 +-
go-sdk/adr/0008-native-dag-interface.md | 2 +-
go-sdk/airflow/context.go | 2 +-
go-sdk/airflow/dag.go | 1 +
go-sdk/airflow/enums.go | 34 +-
go-sdk/airflow/enums_test.go | 14 +
go-sdk/airflow/serialize.go | 15 +
go-sdk/airflow/serialize_test.go | 30 +
go-sdk/airflow/serve_test.go | 89 ++
go-sdk/example/bundle/main.go | 3 +
go-sdk/pkg/execution/client.go | 20 +-
go-sdk/pkg/execution/genmodels/models.gen.go | 64 +-
go-sdk/pkg/execution/integration_test.go | 11 +
go-sdk/pkg/execution/task_runner.go | 60 ++
go-sdk/pkg/execution/task_runner_test.go | 89 ++
go-sdk/schema/supervisor-schema.json | 33 +-
go-sdk/sdk/context.go | 18 +-
java-sdk/DEVELOPMENT.md | 2 +-
java-sdk/gradle/verification-metadata.xml | 64 +-
java-sdk/sdk/build.gradle.kts | 57 +-
java-sdk/sdk/schema/schema.json | 853 +++++++++++++------
.../src/airflow/providers/amazon/aws/exceptions.py | 4 +
.../providers/amazon/aws/hooks/sagemaker.py | 38 +-
.../providers/amazon/aws/log/s3_task_handler.py | 86 +-
.../airflow/providers/amazon/aws/operators/glue.py | 51 +-
.../providers/amazon/aws/operators/sagemaker.py | 36 +-
.../airflow/providers/amazon/aws/triggers/glue.py | 30 +-
.../providers/amazon/aws/triggers/sagemaker.py | 31 +-
.../airflow/providers/amazon/aws/utils/mixins.py | 26 +-
.../tests/unit/amazon/aws/hooks/test_sagemaker.py | 36 +
.../unit/amazon/aws/log/test_s3_task_handler.py | 84 ++
.../tests/unit/amazon/aws/operators/test_glue.py | 141 +++-
.../aws/operators/test_sagemaker_processing.py | 124 +++
.../aws/operators/test_sagemaker_training.py | 14 +-
.../tests/unit/amazon/aws/triggers/test_glue.py | 41 +
.../unit/amazon/aws/triggers/test_sagemaker.py | 19 +-
.../tests/unit/amazon/aws/utils/test_mixins.py | 62 +-
.../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 +-
.../providers/apache/spark/hooks/spark_connect.py | 2 +-
.../unit/apache/spark/hooks/test_spark_connect.py | 2 +-
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 +-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 308 ++++---
.../unit/cncf/kubernetes/operators/test_pod.py | 42 +
.../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/docs/observability.rst | 15 +-
providers/common/ai/docs/stability.rst | 5 +-
.../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 +
.../providers/common/ai/utils/file_analysis.py | 13 +-
.../providers/common/ai/utils/sql_validation.py | 27 +-
.../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 | 31 +
.../providers/databricks/get_provider_info.py | 5 +
.../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/toolsets}/__init__.py | 0
.../unit/databricks/toolsets/test_unity_mcp.py | 902 +++++++++++++++++++++
providers/edge3/docs/migrations-ref.rst | 4 +-
.../versions/0008_5_2_0_widen_edge_job_command.py | 41 +-
.../edge3/src/airflow/providers/edge3/models/db.py | 1 +
.../src/airflow/providers/edge3/models/edge_job.py | 3 +-
.../providers/edge3/plugins/www/package.json | 32 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 898 ++++++++++----------
.../providers/edge3/worker_api/routes/worker.py | 33 +-
.../unit/edge3/executors/test_edge_executor.py | 13 +
.../unit/edge3/worker_api/routes/test_worker.py | 68 +-
providers/google/docs/connections/gcp.rst | 8 +-
.../google/docs/operators/cloud/workflows.rst | 20 +-
.../google-cloud-secret-manager-backend.rst | 23 +-
.../google/cloud/transfers/gcs_to_bigquery.py | 1 +
.../google/cloud/utils/field_validator.py | 8 +-
.../google/cloud/transfers/test_gcs_to_bigquery.py | 29 +
.../google/cloud/utils/test_field_validator.py | 42 +
.../dev/informatica_simulator/requirements.txt | 2 +-
providers/standard/docs/changelog.rst | 12 +-
.../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 | 4 +-
registry/pnpm-lock.yaml | 76 +-
scripts/ci/prek/inline_scripts_in_docker.py | 12 +
scripts/ci/prek/sync_java_sdk_supervisor_schema.py | 95 ++-
scripts/ci/prek/ts_compile_lint_ui.py | 4 +-
scripts/docker/install_os_dependencies.sh | 7 +
.../prek/test_sync_java_sdk_supervisor_schema.py | 157 ++++
.../src/airflow_shared/module_loading/__init__.py | 4 +-
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/api/client.py | 69 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 4 +-
.../airflow/sdk/coordinators/java/coordinator.py | 26 +-
task-sdk/src/airflow/sdk/definitions/xcom_arg.py | 5 +-
task-sdk/src/airflow/sdk/exceptions.py | 11 +
task-sdk/src/airflow/sdk/execution_time/comms.py | 2 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 28 +-
.../airflow/sdk/execution_time/schema/schema.json | 33 +-
.../sdk/execution_time/schema/versions/__init__.py | 7 +-
.../execution_time/schema/versions/v2027_02_28.py | 29 +-
.../sdk/execution_time/secrets/execution_api.py | 4 +-
.../src/airflow/sdk/execution_time/supervisor.py | 52 +-
.../src/airflow/sdk/execution_time/task_runner.py | 64 +-
task-sdk/tests/task_sdk/api/test_client.py | 114 +++
.../task_sdk/coordinators/java/test_coordinator.py | 10 +-
.../tests/task_sdk/definitions/test_variables.py | 39 +-
.../tests/task_sdk/definitions/test_xcom_arg.py | 22 +
.../execution_time/schema/test_migrator.py | 65 +-
.../task_sdk/execution_time/test_supervisor.py | 166 ++++
.../task_sdk/execution_time/test_task_runner.py | 201 ++++-
ts-sdk/pnpm-lock.yaml | 283 +++----
ts-sdk/schema/supervisor-schema.json | 33 +-
ts-sdk/src/coordinator/client.ts | 8 +-
ts-sdk/src/coordinator/runtime.ts | 1 +
ts-sdk/src/generated/supervisor.ts | 6 +-
ts-sdk/src/sdk/client.ts | 2 +-
ts-sdk/src/sdk/task.ts | 16 +-
ts-sdk/tests/coordinator/client.test.ts | 17 +-
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 | 25 +-
334 files changed, 11639 insertions(+), 3339 deletions(-)
create mode 100644 airflow-core/newsfragments/76007.significant.rst
create mode 100644 airflow-core/newsfragments/76453.significant.rst
create mode 100644 airflow-core/src/airflow/process_context.py
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/DetailsLayout.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/NavTabs.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/queries/useGridRuns.test.tsx
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2027_02_28/test_variables.py
create mode 100644 go-sdk/pkg/execution/task_runner_test.go
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
copy
airflow-core/src/airflow/migrations/versions/0090_3_2_0_add_length_dag_bundle_team_bundle_name.py
=>
providers/edge3/src/airflow/providers/edge3/migrations/versions/0008_5_2_0_widen_edge_job_command.py
(59%)
create mode 100644
scripts/tests/ci/prek/test_sync_java_sdk_supervisor_schema.py