This is an automated email from the ASF dual-hosted git repository.
kaxil pushed a change to branch aip99-doc-loader
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 28b0f13e22a Addressed PR feedback
omit 5e1c8abea8e Add DocumentLoaderOperator to common.ai provider
add ec32cca6547 Fix DAG run trigger to surface errors instead of
swallowing them (#64130)
add cc8f0232759 Update providers metadata 2026-05-11 (#66725)
add 162b199b804 Google: Use Kubernetes models in GKE link tests (#66683)
add dcfa2715632 fix(scheduler): catch StaleDataError in verify_integrity
to prevent scheduler crash (#64503)
add 15d297af194 Bump urllib3 from 2.6.3 to 2.7.0 in /dev/breeze (#66723)
add 7ce44e903cd Revert "Apply AIR201-style replacements (#65197)" (#66712)
add ff53593e698 Document Dataproc limitations in Sovereign Cloud from
Google (#66706)
add a9764afd3fc Docs: add doc_md and task docstrings to measurement
correction example Dags (#66707)
add 84420e02156 Add binding for workers.kubernetes & condition workers SA
(#66730)
add 3c127881959 Add doc_md to branch and short-circuit examples (#66691)
add 502c8b91feb Prek: Prefer gh auth over GitHub token env (#66692)
add b13129fcd20 Fix Alibaba OSS provider: configurable endpoint and task
handler log … (#66479)
add 3ccf468a2ad fix: handle PermissionError in init_log_folder for mounted
filesystems (#63878)
add 74abe586d7f Zendesk: support API & OAuth tokens; unhide extra in
Connection UI (#64591)
add 10494a30b69 Add self-diagnosis guide for Dag version inflation in FAQ
(#66697)
add fc40cfb1dbe Fix TaskFlow context docs example (#66698)
add ef695fa9217 Update health endpoint in security docs (#66701)
add 6d831a85180 Add Chakra UI license to airflow-core (#66703)
add 0cc1b92bd72 Adds async support to SageMakerNotebookJobTrigger (#65571)
add 3db657080f6 Bump urllib3 from 2.6.3 to 2.7.0 (#66719)
add e2486701a1f Restrict owner-link and extra-link href to safe schemes
(http, https, mailto, relative) (#66741)
add 0cf92e38614 Add Auster Nutrição Animal to INTHEWILD.md (#66709)
add 354391bbccc Check sensitive key names before applying recursion-depth
cutoff in secrets masker (#65912)
add a3a2b740c18 Support all bq load job and ext table config options in
GCSToBigQueryOperator (#64505)
add c60edf762aa Skip S3 folder-marker keys in S3ToGCSOperator (#65724)
add 57141585e86 Add BigQuery routine operators and existence sensor
(#65499)
add 60b571b452d Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#66742)
add 0f606e0f1da Add aliases for rebranded Google services (#66344)
add 13ee1f1cfb0 Add `S3VectorsQueryVectorsOperator` (#66724)
add d75c079f0a9 Add `S3TablesPutTableBucketPolicyOperator` (#66720)
add bfec6cfaa16 Add Cloud SQL Auth Proxy IAM authentication (#66510)
add d8865dd4249 Fix log server path extraction to use removeprefix (#66749)
add 944e1311416 Migrate BigQueryInsertJobTrigger to on_kill() for
user-initiated kills (#66704)
add 6425fb72203 Improve error message when publish-docs ref is a branch
not a tag (#66250)
add 07bf075b94f Update provider release doc to direct to security issues
board (#66769)
add 4b1995d5d62 Fix system test bugs: bedrock_guardrail, glue_catalog,
s3_vectors (#66758)
add 25bdaf417b4 [main] Upgrade important CI environment (#66700)
add 0528893ac0e UI: Add hover feedback to Checkbox (#66714)
add 2064a76d46c Fix Edit Connection dialog missing lazyMount causing JSON
editor infinite loading (#65969)
add bd2c948498a Fix ConnectionForm crashing when connection has invalid
extra JSON (#66593)
add 4510a0f630b Install airflowctl into airflow core (#64943)
add 1b1c637a0d1 Re-defer task when Kubernetes pod is not completed (#66705)
add 8900f8b2caa Fix CloudSecretManagerBackend regression with explicit
project_id (#61654)
add ffa426b64d7 airflowctl: make required CLI params positional, keep
optional as --flag (#66768)
add 2956c98ecb6 feat(metrics): wrap executor.heartbeat() in a timer to
localize loop slowdowns (#66808)
add f8baa0a8a05 fix(metrics/otel): bracket IPv6 host literals in exporter
endpoint URL (#66813)
add 19d6c5a0007 Emit dagrun.first_task_start_delay separate from
scheduling_delay (#66807)
add 0dd171f09aa Implement fetchmany support for ElasticsearchSQLCursor
using an internal row buffer. (#66658)
add 562d62e9355 add 'teams sync' cli command (#66418)
add 09ea5bf9b10 Add `MwaaServerlessUpdateWorkflowOperator` (#66833)
add 07873fbc47c UI: Handle Dags state filter overflow on mobile (#66812)
add 692728371f8 Fix dag processor callback cleanup for versioned bundle
files (#66484)
add 43cd2b8c092 UI: Use link styling for Dag tags (#66750)
add c533ba1a6d8 Validate dag run conf in backfill dry-run (#66196)
add 089b2e2c289 UI: Preserve Grid limit and filters when redirecting after
manual Dag trigger (#66717)
add 5b9efa7ae3a UI: Fix relative React plugin bundle URLs in dev mode
(#66618)
add 25ef835185c UI: Preserve proxied URL on login redirect (#66690)
add 4f9174e554f UI: Change queued Dag runs color to grey in Calendar
(#66623)
add 79a7a418178 Pin pyjwt>=2.11.0 in FAB provider and stabilise JWT tests
under PyJWT 2.12 (#66840)
add a2c97daac1f Align Dag capitalization in EventsFilters comments (#66879)
add e94cc4dd96e Task SDK: Add Variable.keys() to list variable keys by
prefix (#66022)
add c0fba188de4 Close German Translation Gaps 2026-05-12 (#66829)
add ba8a36d7e7d feat: add callback support to aws batch executor (#62984)
add da89a6cc4f5 Bump terser-webpack-plugin (#66834)
add 77ee105c602 Fix misleading pod scheduling log message ("Waiting until"
→ "Waiting up to") (#66164)
add 671dd4cb293 Fix external DB manager upgrades with existing tables
(#66674)
add d711e88dc63 Add persist_xcom option to BigQueryInsertJobOperator
(#66760)
add 1bfa1f35760 Add BigQueryStreamingBufferEmptySensor for DML on
streaming tables (#66652)
add ddbe0429f09 Fix provider DB upgrades with existing tables (#66883)
add 82b3c924dce Fix memory leak in LocalExecutor caused by unreleased file
descriptor locks (#65121)
add 41e16d5b0a3 fix(k8s-executor): add latency + status metrics around pod
API calls (#66806)
add bda472db1be Fix deferrable KPO trigger_reentry crash when pod is GC'd
before re-entry (#66716)
add 120dbed3462 Add `host_key_policy` option to `ComputeEngineSSHHook`
(#66746)
add 7e22395c530 Add session param to BaseStateBackend interface to fix
custom backends (#66708)
add 50fa403ed61 Add e2e test suite for Airflow event-driven DAGs with
Apache Kafka (#64833)
add 0cf6462459e AIP-103: Adding periodic task state garbage collection and
retention support (#66463)
add a641d83da9c Improve Post-Task logs to show exception in failure
(#66735)
add 8a76a8926e0 [main] CI: Upgrade important CI environment (#66843)
add 7d615cff9e9 AIP-103: Implement clear_on_success config to wipe task
state on success (#66586)
add 1455f326031 feat: Add standardized SQL check representation for
listeners (#66849)
add 8e51e6867ad Add support for influx3 (#58929)
add e29b44f0a40 Show expected duration based on historical avg in DAG Run
details (#65722)
add a1470a949bc Neutralize path separator in IMAP (#66951)
add 9b1d58aedb2 Allow using fresh interpreter besides fork() in Edge
Worker (#65943)
add c5041604dc2 Allow pasting full datetime strings into date picker
inputs (#66251)
add f575da4a80d Fix KafkaError.name() called as property instead of method
in create_topic (#65734)
add 90051561e72 fix serialize_template_field handling callable value in
dict (#63871)
add 25b96669630 Add MwaaServerlessDeleteWorkflowOperator (#66891)
add beea114b0f1 added parent info injection to EMR operator (#66816)
add 2fe52abc2c0 AGENTS.md: Require batching for bulk DELETE/UPDATE in
scheduler (#66908)
add 28e82d24c97 Enforce supervisor schema class name matches its `type`
literal (#66899)
add d74039c0751 fix `BigQueryStreamingBufferEmptySensor.poke()` always
raise `NotFound` (#66962)
add 767b72b5652 Fix no-op equality checks in Vertex AI trigger tests
(#66894)
add 4d5649349ff Add PAT connection to snowflake in SnowflakeHook (#66953)
add 01be07a4571 Mark Dags stale when their bundle is removed from config
(#66948)
add f9119133f66 Fix TableauOperator tasks.run AttributeError (#66682)
add 2e886a4dac7 cache connections in OpenLineage SQL hook lineage (#64843)
add 32ac8ad5132 Extend DEFAULT_SENSITIVE_FIELDS with common credential
field names (#66673)
add 171f6130247 Fix s3_tables system test: use CDK-provided ACCOUNT_ID for
bucket policy (#66972)
add 332fb1e2673 Bump axios in UI packages to patched release (#66770)
add 0c4c1f81ac6 [main] Upgrade important CI environment (#66980)
add f50036846eb Add function naming convention to AGENTS.md (action verbs,
not nouns) (#66997)
add 775b7e4cfdb Serialize poll_interval and impersonation_chain on
DataFusionStartPipelineTrigger (#66968)
add b723f314155 Fix GenericTransfer docs reference (#66996)
add df00cd6dba2 Fix CreateWorkflowOperator if_exists=skip ARN construction
(#66974)
add 4f47c3aa86b Adapt GCP CloudSQL trigger to run in private cloud (#66917)
add 508d7fd4d3a (system tests): Move BigQuery streaming-buffer system test
to manual-only (#67009)
add a0367309846 Add `S3TablesDeleteTableBucketPolicyOperator` (#66957)
add dd010a09ea2 Enable ruff PLE1205 to catch logging calls with too many
arguments (#66978)
add ff37123e5cc fix elasticsearch and opensearch providers changelog.rst
(#67007)
add 73eac24b4e6 Bump the auth-ui-package-updates group across 1 directory
with 12 updates (#67001)
add d9b560cd2df Helm Chart Documentation Update (#66970)
add 45db47f0e25 Bugfix/make edge resilient against log errors (#66995)
add ea60a4d6844 docs(security): document supported deployment platforms
(#66931)
add c72b6613fd3 Bump flask-appbuilder to 5.2.1 and mirror new auth event
hooks (#66841)
add ff140cd0b4a Support inline ignore marker for check_core_imports_in_sdk
hook (#65358)
add 2ed6805b0b6 Enable ruff B015 to catch silent no-op comparisons in
tests (#66977)
add b3387b8cef6 Bump the github-actions-updates group with 3 updates
(#67003)
add 42a85ee1ac9 UI: Add custom RouterLink component (#66945)
add d5cc8ac7e05 docs: fix grammar issues in contributing-docs/README.rst
(#67024)
add 66ecac66d1f fix: connection dialog state handling in BasePage to avoid
flaky tests (#67026)
add 724ac5ffec0 Close Catalan gap in main (#67010)
add bc8ef9a4b5c Refactor deferrable execution in DbtCloudRunJobOperator to
align with PR #64051 patterns. Simplify trigger polling/control flow and
propagate execution_timeout via defer. Add tests for best-effort cancellation
semantics in execute_complete and on_kill. (#66449)
add 40fcb034ada Add Bundle documentation for Amazon S3 and Google GCS
providers (#66993)
add 4e82672b4da Replace deprecated typer-slim with typer in devel-common
(#67034)
add 89389e092c4 Bump the edge-ui-package-updates group across 1 directory
with 15 updates (#67002)
add bb75d2a0803 Fix hardcoded OS path in K8s provider (#67040)
add 3a27d600f93 Prevent splitting by OS path separator (#67038)
add 74ec32ff950 Enable ruff B008 (function-call-in-default-argument) and
fix violations (#66979)
add 49958a5000a Add static check ensuring trigger `__init__()` and
`serialize()` stay in sync (#66960)
add c2246efe07d Isolate openlineage extractor test from hook lineage
collector pollution (#67057)
add d4e22155cb0 Fix flaky FileTrigger/FileDeleteTrigger tests by awaiting
the task (#66825)
add 59362117698 Preserve Databricks deferrable trigger caller across
triggerer restarts (#66965)
add 8248e048fdd Render Jinja templates in CloudBatchSubmitJobOperator job
field (#67021)
add c692e85e34c Fix CloudRunExecuteJobOperator deferrable mode silently
passing on cancel (#67050)
add 246c19f113f k8s tests: wait for push task in executor before killing
scheduler (#67067)
add 8ee29ce9e4f providers/mongo: ping mongod before yielding from
mongodb_container fixture (#67066)
add 977935d14b4 airflow-ctl-tests: wait for Dag run terminal state before
xcom commands (#67065)
add 4dff3767564 Include endpoint_prefix in LivyTrigger serialization
(#66966)
add 740c6880e1c Preserve BigQueryIntervalCheckTrigger params after
triggerer restart (#67053)
add 09545ece029 Fix broken download URLs and variable names in airflow-ctl
docs (#67046)
add d728644f535 Handle commas in provider Project-URL metadata (#67064)
add ce1de567e6b Fix airflow-ctl connections import schema handling (#67063)
add 4cf176e6a4f Add Git Sparse Checkout to Git Dag Bundle (#67047)
add cf709d929a0 Remove global variables in airflow.settings (#67070)
add bca6a659724 Updates our docker commands to use breeze prefix (#66368)
add 45161ae7da0 Remove resolved triggers from KNOWN_VIOLATIONS allowlist
(#67069)
add da03584282c Warn against world-accessible Kerberos ccache default in
docs (#66557)
add 1193e5e29d3 Fix scheduler MySQL task instance index hint (#66785)
add fe13eeb25ac Keep Named*Logger.name working across structlog releases
(#66875)
add ac39596bd53 fix(scheduler): ignore stale executor success after defer
reschedule (#66431)
add 75e481c08f7 Fix hardcoded OS path in edge provider (#67039)
add 6594a2f0f45 Add OpenLineage support to AthenaSQLHook (#66844)
add c5408b446c4 Translations: add missing Polish translations for new UI
keys (#66822)
add 80f1ab4d5a0 Tighten deserialization allowlist regex to require
full-string match (#66499)
add 76eb2a09002 Fix max_active_runs lost during DAG serialisation when
value equals schema default (#65310)
add 6b0ccd38417 Register custom deadline references via plugins, matching
timetable pattern (#66737)
add 1621508b108 Revert "Remove global variables in airflow.settings
(#67070)" (#67099)
add 1a019979335 Add UI support to render multi-type params (#66278)
add 37667f11aa3 Improve DB performance of datetime range filters filters
in API queries (#66696)
add a255eebdc03 Adopt apache/airflow-steward framework (pr-management
skills via snapshot) (#66677)
add 91806fd139b Fix N+1 query pattern in bulk pool delete endpoint (#66222)
add 73a6641631d UI: Filter task instances by rendered map index (#66008)
add b2273b55fa3 Make Pool model session parameter keyword-only (#66967)
add aab741737f0 docs(plugins_manager): fix misleading typo (#67101)
add 4ceb0db321e Redact rendered template fields while still structured to
preserve nested-key masking on truncation (#65906)
add 059ceef1230 Move Task Identity line into Pre Execution block in logs
(#67036)
add c0911ae7571 Add `LLMRetryPolicy` to common-ai provider (#65451)
add 69c0d7cc0c7 Fix: Repair action missing job parameters in
`DatabricksRunNowOperator` (#67055)
add 16bb3f15960 fix: Handle `None` Task ID state when matching states in
`ExternalTaskSensor` (#66881)
add c8a6c55cac8 fix: migrate existing deadline rows in migration 0080
upgrade and downgrade (#66016)
add 9b62858d368 Add Helm Chart Development Guide (#66659)
add 322557ac46e Comment to not edit RELEASE_NOTES.rst manually in PRs for
airflowctl (#67128)
add b465693c80e [main] CI: Upgrade important CI environment (#67093)
add 3d73cceafae Docs: Make common.compat.sdk re-exports clickable (#67083)
add e61640e2a1b Aggregate CI-image dependency groups so providers can
register non-default extras with a one-line change (#67130)
add 6431cd1e329 Upgrade main chart to 2.0.0 (#67131)
add 41a6436a1dd Update apache-steward framework snapshot + slim
author-primary triage overrides (#67149)
add 008cbe90e2a AIP-103: Adding ability for per task state key retention
from operators (#66699)
add 20124635877 AGENTS.md: golden rule — when a fix is imminent, open the
PR, not an issue (#67100)
add 4498582dd1e Apply per-DAG audit log permission to event log detail
endpoint (#67112)
add 5a0ff83231d Fix error messages in `PythonVirtualenvOperator` when
Azure Key Vault secret backend is configured (#67157)
add 9bb5ff3535a Fix ValueError when supervisor force-closes stuck sockets
after timeout (#67115)
add fdbb9b01a4f fix: pin compatible-with at the transport layer to keep ES
8 servers working (#66065)
add c8f592d0b2d Implement execution_timeout semantics for
AirbyteTriggerSyncOperator in deferrable mode (#64051)
add 1a95a43bab3 CI: Mount providers directory for breeze k8s dev (#67152)
add aa8542f69ad Default-deny auth at the API and UI router level (#66505)
add ef87426904c Surface remote-log upload failures via structured warnings
(#66571)
add 1e5d79945ad Don't crash supervisor IPC loop on transient network
errors (#66572)
add 2b8c80568b5 Refuse secrets-backend fallback on Execution-API authz
deny (#66575)
add 9cd75dcab83 OTel integration: align test_export_legacy_metric_names
timeout with siblings (#67170)
add 58cd0e05d2e Use a distinct redact message for import errors with no
registered Dag (#66923)
add 16ebf0bbc7f Introduce BaseTaskInstanceDTO and duplicate it across core
and task-sdk (#67174)
add 2723f66d6ed Make CORS allow_credentials configurable (#66503)
add 448f8462919 Harden _collect_teams_to_check / requires_access_backfill
against malformed bodies (#66504)
add 7e91517ffd0 Fail closed when supervisor IPC fails on a non-success
terminal state (#66573)
add d63b5e9c24e fix(keycloak): attach default role policies (#67031)
add ea15bd287aa Bump stylelint (#67148)
add 0a324ba86a8 Add `BedrockCreateEvaluationJobOperator` (#66722)
add 2747837b057 Upgrade icons, spacing, and default component themes
(#66569)
add 3a861426cae UI: Use local Monaco editor module instead of CDN (#66647)
add f9faf65e340 Regenerate Edge worker OpenAPI spec after #67093 env
upgrade (#67188)
add 173c2a1806d Recover stuck TIs when direct terminal-state API call
fails (#66574)
add 41df5a980c8 Add BundleVersion dataclass and version_data persistence
to DagVersion (#66491)
add f5fd3bc4c8f Add eslint-no-duplicate-imports (#67201)
add b81e335fcc4 [helm chart] Go Template Error: Cannot Compare Slice to
nil using eq (#64032)
add b28681f154f Apply requires_access_event_log to GET /eventLogs list
endpoint (#67185)
add 954b3035cc8 Prepare providers release 2026-05-19 (#67137)
add dcdd124431a Add ``Langchain`` hook to ``common-ai`` provider (#67192)
add f986c79ae0c Add DocumentLoaderOperator to common.ai provider
add ed80b298c29 Addressed PR feedback
add 8f3aee40f0e Refactor DocumentLoaderOperator: streams, encoding, JSON
shape, skip rules
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 (28b0f13e22a)
\
N -- N -- N refs/heads/aip99-doc-loader (8f3aee40f0e)
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:
.apache-steward-overrides/README.md | 35 +
.apache-steward-overrides/pr-management-config.md | 77 +
.../pr-management-triage-ci-check-map.md | 79 +
.../pr-management-triage-comment-templates.md | 220 ++
.apache-steward-overrides/user.md | 59 +
.apache-steward.lock | 6 +
.claude/skills/maintainer-review | 1 -
.claude/skills/pr-stats | 1 -
.claude/skills/pr-triage | 1 -
.claude/skills/setup-steward | 1 +
.github/skills/airflow-translations/locales/de.md | 1 +
.github/skills/maintainer-review/SKILL.md | 525 ----
.github/skills/maintainer-review/adversarial.md | 208 --
.github/skills/maintainer-review/criteria.md | 172 --
.github/skills/maintainer-review/posting.md | 394 ---
.github/skills/maintainer-review/prerequisites.md | 198 --
.github/skills/maintainer-review/review-flow.md | 687 -----
.github/skills/maintainer-review/selectors.md | 591 ----
.github/skills/pr-stats/SKILL.md | 248 --
.github/skills/pr-stats/aggregate.md | 290 --
.github/skills/pr-stats/classify.md | 180 --
.github/skills/pr-stats/fetch.md | 353 ---
.github/skills/pr-stats/render.md | 488 ---
.github/skills/pr-triage/SKILL.md | 457 ---
.github/skills/pr-triage/actions.md | 514 ----
.github/skills/pr-triage/classify-and-act.md | 360 ---
.github/skills/pr-triage/comment-templates.md | 488 ---
.github/skills/pr-triage/fetch-and-batch.md | 446 ---
.github/skills/pr-triage/interaction-loop.md | 374 ---
.github/skills/pr-triage/prerequisites.md | 169 --
.github/skills/pr-triage/rationale.md | 388 ---
.github/skills/pr-triage/stale-sweeps.md | 222 --
.github/skills/pr-triage/workflow-approval.md | 332 ---
.github/skills/setup-steward/SKILL.md | 362 +++
.github/skills/setup-steward/adopt.md | 900 ++++++
.github/skills/setup-steward/conventions.md | 131 +
.github/skills/setup-steward/overrides.md | 139 +
.github/skills/setup-steward/unadopt.md | 345 +++
.github/skills/setup-steward/upgrade.md | 532 ++++
.github/skills/setup-steward/verify.md | 344 +++
.github/skills/setup-steward/worktree-init.md | 208 ++
.github/workflows/additional-prod-image-tests.yml | 16 +
.github/workflows/airflow-e2e-tests.yml | 4 +-
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/ci-amd.yml | 2 +
.github/workflows/ci-arm.yml | 2 +
.github/workflows/ci-image-checks.yml | 2 +-
.github/workflows/codeql-analysis.yml | 6 +-
.github/workflows/publish-docs-to-s3.yml | 2 +-
.github/workflows/registry-backfill.yml | 6 +-
.github/workflows/registry-build.yml | 4 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.gitignore | 27 +-
.pre-commit-config.yaml | 17 +-
AGENTS.md | 45 +
Dockerfile | 14 +-
Dockerfile.ci | 14 +-
INTHEWILD.md | 1 +
README.md | 34 +
airflow-core/.pre-commit-config.yaml | 2 +-
.../3rd-party-licenses/LICENSE-chakra-ui.txt | 20 +
.../3rd-party-licenses/LICENSE-monaco-editor.txt | 21 +
airflow-core/LICENSE | 2 +
airflow-core/NOTICE | 8 +
.../docs/administration-and-deployment/plugins.rst | 7 +
airflow-core/docs/core-concepts/params.rst | 36 +
airflow-core/docs/faq.rst | 21 +
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/docs/operators-and-hooks-ref.rst | 2 +-
airflow-core/docs/security/api.rst | 5 +
airflow-core/docs/security/kerberos.rst | 10 +
airflow-core/docs/security/security_model.rst | 25 +-
airflow-core/newsfragments/63878.bugfix.rst | 1 +
airflow-core/newsfragments/64503.bugfix.rst | 1 +
airflow-core/newsfragments/66499.significant.rst | 14 +
airflow-core/newsfragments/66737.significant.rst | 1 +
airflow-core/newsfragments/66807.feature.rst | 1 +
airflow-core/pyproject.toml | 6 +-
.../auth/managers/simple/ui/package.json | 24 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 811 +++--
.../src/airflow/api_fastapi/common/parameters.py | 146 +-
.../src/airflow/api_fastapi/core_api/app.py | 3 +-
.../api_fastapi/core_api/datamodels/ui/dag_runs.py | 17 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 86 +
.../core_api/openapi/v2-rest-api-generated.yaml | 90 +
.../api_fastapi/core_api/routes/public/__init__.py | 9 +-
.../core_api/routes/public/backfills.py | 1 +
.../api_fastapi/core_api/routes/public/dag_run.py | 25 +-
.../core_api/routes/public/event_logs.py | 7 +-
.../core_api/routes/public/import_error.py | 18 +-
.../core_api/routes/public/task_instances.py | 10 +
.../api_fastapi/core_api/routes/ui/__init__.py | 9 +-
.../api_fastapi/core_api/routes/ui/dag_runs.py | 63 +
.../src/airflow/api_fastapi/core_api/security.py | 70 +-
.../api_fastapi/core_api/services/public/pools.py | 16 +-
.../core_api/services/public/task_instances.py | 39 +
.../api_fastapi/core_api/services/ui/dag_run.py | 59 +
.../src/airflow/api_fastapi/execution_api/app.py | 4 +-
.../execution_api/datamodels/task_state.py | 3 +
.../execution_api/datamodels/variable.py | 7 +
.../execution_api/routes/asset_state.py | 16 +-
.../execution_api/routes/task_instances.py | 32 +-
.../api_fastapi/execution_api/routes/task_state.py | 8 +-
.../api_fastapi/execution_api/routes/variables.py | 55 +-
.../api_fastapi/execution_api/versions/__init__.py | 2 +
.../execution_api/versions/v2026_06_30.py | 16 +-
airflow-core/src/airflow/cli/cli_config.py | 26 +
.../src/airflow/cli/commands/dag_command.py | 6 +-
.../airflow/cli/commands/state_store_command.py | 49 +
.../src/airflow/cli/commands/team_command.py | 28 +
.../src/airflow/config_templates/config.yml | 47 +-
.../src/airflow/dag_processing/bundles/base.py | 57 +-
.../src/airflow/dag_processing/collection.py | 4 +
airflow-core/src/airflow/dag_processing/dagbag.py | 4 +-
airflow-core/src/airflow/dag_processing/manager.py | 99 +-
.../src/airflow/dag_processing/processor.py | 8 +
.../example_dags/example_params_ui_tutorial.py | 40 +
airflow-core/src/airflow/exceptions.py | 4 +
.../src/airflow/executors/base_executor.py | 4 +-
.../src/airflow/executors/workloads/task.py | 17 +-
.../src/airflow/jobs/scheduler_job_runner.py | 56 +-
.../src/airflow/jobs/triggerer_job_runner.py | 7 +
.../0080_3_1_0_modify_deadline_callback_schema.py | 195 +-
...0_replace_deadline_inline_callback_with_fkey.py | 31 +-
..._3_3_0_add_task_state_and_asset_state_tables.py | 7 +-
... 0115_3_3_0_add_version_data_to_dag_version.py} | 35 +-
airflow-core/src/airflow/models/backfill.py | 3 +-
airflow-core/src/airflow/models/connection.py | 4 +
airflow-core/src/airflow/models/dag_version.py | 6 +
airflow-core/src/airflow/models/dagrun.py | 12 +-
airflow-core/src/airflow/models/pool.py | 5 +-
airflow-core/src/airflow/models/serialized_dag.py | 4 +
airflow-core/src/airflow/models/task_state.py | 21 +-
airflow-core/src/airflow/models/taskinstance.py | 9 +
airflow-core/src/airflow/models/variable.py | 4 +
airflow-core/src/airflow/plugins_manager.py | 13 +
.../airflow/serialization/definitions/deadline.py | 4 +-
.../src/airflow/serialization/definitions/param.py | 3 +-
airflow-core/src/airflow/serialization/helpers.py | 151 +-
airflow-core/src/airflow/serialization/schema.json | 10 +-
airflow-core/src/airflow/state/metastore.py | 157 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 19 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 33 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 33 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 33 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 33 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 59 +
.../ui/openapi-gen/requests/services.gen.ts | 38 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 65 +
airflow-core/src/airflow/ui/package.json | 3 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 83 +-
.../airflow/ui/public/i18n/locales/ar/common.json | 5 +
.../airflow/ui/public/i18n/locales/ca/common.json | 13 +
.../ui/public/i18n/locales/ca/components.json | 5 +-
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 51 +
.../airflow/ui/public/i18n/locales/ca/dags.json | 5 +
.../airflow/ui/public/i18n/locales/de/common.json | 13 +
.../ui/public/i18n/locales/de/components.json | 6 +-
.../src/airflow/ui/public/i18n/locales/de/dag.json | 43 +
.../airflow/ui/public/i18n/locales/de/dags.json | 5 +
.../airflow/ui/public/i18n/locales/el/common.json | 5 +
.../airflow/ui/public/i18n/locales/en/common.json | 6 +
.../airflow/ui/public/i18n/locales/es/common.json | 5 +
.../airflow/ui/public/i18n/locales/fr/common.json | 5 +
.../airflow/ui/public/i18n/locales/he/common.json | 5 +
.../airflow/ui/public/i18n/locales/hi/common.json | 5 +
.../airflow/ui/public/i18n/locales/hu/common.json | 5 +
.../airflow/ui/public/i18n/locales/it/common.json | 5 +
.../airflow/ui/public/i18n/locales/ja/common.json | 5 +
.../airflow/ui/public/i18n/locales/ko/common.json | 5 +
.../airflow/ui/public/i18n/locales/nl/common.json | 5 +
.../airflow/ui/public/i18n/locales/pl/common.json | 15 +
.../ui/public/i18n/locales/pl/components.json | 4 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 49 +
.../airflow/ui/public/i18n/locales/pl/dags.json | 5 +
.../airflow/ui/public/i18n/locales/pt/common.json | 5 +
.../airflow/ui/public/i18n/locales/ru/common.json | 5 +
.../airflow/ui/public/i18n/locales/th/common.json | 5 +
.../airflow/ui/public/i18n/locales/tr/common.json | 5 +
.../ui/public/i18n/locales/zh-CN/common.json | 5 +
.../ui/public/i18n/locales/zh-TW/common.json | 5 +
airflow-core/src/airflow/ui/rules/core.js | 18 +
.../ui/src/components/AdvancedSearchToggle.tsx | 5 +-
.../src/components/AssetExpression/AssetNode.tsx | 11 +-
.../ui/src/components/AssetProgressCell.tsx | 2 +-
.../ui/src/components/Assets/AssetEvents.tsx | 13 +-
.../ui/src/components/Assets/TriggeredRuns.tsx | 19 +-
.../ui/src/components/AttrSelectFilterMulti.tsx | 6 +-
.../ui/src/components/Clear/Run/ClearRunButton.tsx | 24 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 3 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 3 +-
.../Clear/TaskInstance/ClearTaskInstanceButton.tsx | 43 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 3 +-
.../ui/src/components/ConfirmationModal.tsx | 1 -
.../airflow/ui/src/components/DAGWarningsModal.tsx | 8 +-
.../src/components/DagActions/DeleteDagButton.tsx | 22 +-
.../components/DagActions/FavoriteDagButton.tsx | 25 +-
.../src/components/DagActions/ParseDagButton.tsx | 18 +-
.../src/components/DagActions/RunBackfillForm.tsx | 19 +-
.../ui/src/components/DataTable/DataTable.tsx | 8 +-
.../src/components/DataTable/FilterMenuButton.tsx | 12 +-
.../src/components/DataTable/useTableUrlState.ts | 3 +-
.../ui/src/components/DateTimeInput.test.tsx | 129 +
.../airflow/ui/src/components/DateTimeInput.tsx | 55 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 20 +-
.../ui/src/components/EditableMarkdownButton.tsx | 13 +-
.../ui/src/components/ExpandCollapseButtons.tsx | 14 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 2 +-
.../src/components/FilterBar/filters/DateInput.tsx | 4 +-
.../ui/src/components/FlexibleForm/FieldBool.tsx | 1 -
.../FlexibleForm/FieldMultiType.test.tsx | 263 ++
.../src/components/FlexibleForm/FieldMultiType.tsx | 118 +
.../src/components/FlexibleForm/FieldSelector.tsx | 13 +
.../ui/src/components/Graph/DownloadButton.tsx | 9 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 2 -
.../airflow/ui/src/components/GraphTaskFilters.tsx | 20 +-
.../src/airflow/ui/src/components/JsonEditor.tsx | 2 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 2 -
.../src/components/MarkAs/Run/MarkRunAsButton.tsx | 38 +-
.../src/components/MarkAs/Run/MarkRunAsDialog.tsx | 3 +-
.../MarkAs/TaskGroup/MarkTaskGroupAsButton.tsx | 40 +-
.../MarkAs/TaskGroup/MarkTaskGroupAsDialog.tsx | 3 +-
.../TaskInstance/MarkTaskInstanceAsButton.tsx | 39 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 3 +-
.../src/components/MonacoEditor/configureMonaco.ts | 71 +
.../{ui/ResetButton.tsx => MonacoEditor/index.tsx} | 42 +-
.../Menu.tsx => MonacoEditor/useMonacoReady.ts} | 27 +-
.../ui/src/components/QuickFilterButton.tsx | 1 -
.../airflow/ui/src/components/ReactMarkdown.tsx | 2 +-
.../ui/src/components/RenderedJsonField.tsx | 2 +-
.../src/airflow/ui/src/components/RunTypeIcon.tsx | 3 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 3 +-
.../src/components/SearchDags/SearchDagsButton.tsx | 8 +-
.../airflow/ui/src/components/TaskTrySelect.tsx | 2 -
.../src/airflow/ui/src/components/TogglePause.tsx | 2 -
.../src/components/TriggerDag/TriggerDAGButton.tsx | 11 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 9 +-
.../src/components/TriggerDag/TriggerDAGModal.tsx | 2 +-
.../ui/src/components/ui/ButtonGroupToggle.tsx | 6 +-
.../src/airflow/ui/src/components/ui/Checkbox.tsx | 4 +-
.../src/airflow/ui/src/components/ui/Clipboard.tsx | 8 +-
.../{Pagination/NextTrigger.tsx => IconButton.tsx} | 32 +-
.../airflow/ui/src/components/ui/LazyClipboard.tsx | 3 +-
.../src/airflow/ui/src/components/ui/Menu/Menu.tsx | 4 +
.../components/ui/Menu/{Menu.tsx => MenuRoot.tsx} | 26 +-
.../ui/Menu/{Menu.tsx => MenuTrigger.tsx} | 31 +-
.../src/components/ui/Pagination/NextTrigger.tsx | 3 +-
.../src/components/ui/Pagination/PrevTrigger.tsx | 3 +-
.../airflow/ui/src/components/ui/ResetButton.tsx | 2 +-
.../ui/{Menu/Menu.tsx => RouterLink.tsx} | 16 +-
.../ui/src/components/ui/SegmentedControl.tsx | 1 -
.../src/airflow/ui/src/components/ui/index.ts | 2 +
.../src/airflow/ui/src/constants/filterConfigs.tsx | 7 +
.../src/airflow/ui/src/constants/searchParams.ts | 1 +
.../ui/src/layouts/Details/DetailsLayout.tsx | 95 +-
.../layouts/Details/Grid/GridPaginationButtons.tsx | 11 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 11 +-
.../ui/src/layouts/Details/TaskStreamFilter.tsx | 28 +-
.../airflow/ui/src/layouts/Nav/LanguageModal.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/PluginMenus.tsx | 2 +-
.../airflow/ui/src/layouts/Nav/TimezoneModal.tsx | 2 +-
.../ui/src/layouts/Nav/TokenGenerationModal.tsx | 2 +-
airflow-core/src/airflow/ui/src/main.tsx | 7 +-
.../src/airflow/ui/src/mocks/handlers/log.ts | 14 +-
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 3 +-
.../ui/src/pages/Asset/AssetPanelButtons.tsx | 15 +-
.../ui/src/pages/Asset/CreateAssetEvent.tsx | 19 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 9 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 11 +-
.../ui/src/pages/AssetsList/DependencyPopover.tsx | 13 +-
.../src/pages/Connections/AddConnectionButton.tsx | 8 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 7 +-
.../ui/src/pages/Connections/Connections.tsx | 2 -
.../pages/Connections/DeleteConnectionButton.tsx | 26 +-
.../pages/Connections/DeleteConnectionsButton.tsx | 3 +-
.../src/pages/Connections/EditConnectionButton.tsx | 22 +-
.../src/pages/Connections/TestConnectionButton.tsx | 30 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 11 +-
.../src/pages/Dag/Calendar/calendarUtils.test.ts | 186 ++
.../ui/src/pages/Dag/Calendar/calendarUtils.ts | 37 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 5 +-
.../ui/src/pages/Dag/Code/CodeDiffViewer.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/DagNotFound.tsx | 2 -
.../src/airflow/ui/src/pages/Dag/Header.tsx | 24 +-
.../src/pages/Dag/Overview/AllDeadlinesModal.tsx | 2 +-
.../ui/src/pages/Dag/Overview/DeadlineRow.tsx | 16 +-
.../ui/src/pages/Dag/Overview/FailedLogs.tsx | 1 -
.../ui/src/pages/Dag/Overview/TaskLogPreview.tsx | 14 +-
.../Dag/Tasks/TaskFilters/AttrSelectFilter.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/Tasks/Tasks.tsx | 12 +-
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 29 +-
.../ui/src/pages/DagsList/AssetSchedule.tsx | 17 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 39 +-
.../airflow/ui/src/pages/DagsList/DagOwners.tsx | 12 +-
.../src/airflow/ui/src/pages/DagsList/DagTags.tsx | 2 +-
.../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 6 +-
.../pages/DagsList/DagsFilters/FavoriteFilter.tsx | 32 +-
.../DagsList/DagsFilters/RequiredActionFilter.tsx | 2 -
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 42 +-
.../src/pages/DagsList/PartitionScheduleModal.tsx | 2 +-
.../pages/Dashboard/FavoriteDags/FavoriteDags.tsx | 4 +-
.../pages/Dashboard/PoolSummary/PoolSummary.tsx | 10 +-
.../pages/Dashboard/Stats/DAGImportErrorsModal.tsx | 2 +-
.../Dashboard/Stats/PluginImportErrorsModal.tsx | 2 +-
.../src/airflow/ui/src/pages/DeleteRunButton.tsx | 22 +-
airflow-core/src/airflow/ui/src/pages/Error.tsx | 2 -
.../airflow/ui/src/pages/Events/EventsFilters.tsx | 2 +-
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 1 -
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 44 +-
airflow-core/src/airflow/ui/src/pages/Jobs.tsx | 3 +-
.../airflow/ui/src/pages/Pools/AddPoolButton.tsx | 8 +-
.../ui/src/pages/Pools/DeletePoolButton.tsx | 18 +-
.../airflow/ui/src/pages/Pools/EditPoolButton.tsx | 20 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 8 +-
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 2 +-
.../airflow/ui/src/pages/Run/DeadlineStatus.tsx | 2 +-
.../src/airflow/ui/src/pages/Run/Details.tsx | 29 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 16 +-
.../ui/src/pages/TaskInstance/ExtraLinks.tsx | 13 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 3 +-
.../src/pages/TaskInstance/Logs/LogSearchInput.tsx | 6 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 19 +-
.../src/pages/TaskInstance/Logs/ScrollToButton.tsx | 35 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 31 +-
.../ui/src/pages/TaskInstance/Logs/utils.test.ts | 7 +-
.../ui/src/pages/TaskInstance/Logs/utils.ts | 6 +-
.../TaskInstances/BulkClearTaskInstancesButton.tsx | 5 +-
.../BulkDeleteTaskInstancesButton.tsx | 4 +-
.../BulkMarkTaskInstancesAsButton.tsx | 21 +-
.../TaskInstances/DeleteTaskInstanceButton.tsx | 26 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 48 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 2 +
.../src/pages/Variables/DeleteVariablesButton.tsx | 3 +-
.../src/pages/Variables/ImportVariablesButton.tsx | 4 +-
.../ui/src/pages/Variables/ImportVariablesForm.tsx | 2 +-
.../Variables/ManageVariable/AddVariableButton.tsx | 8 +-
.../ManageVariable/DeleteVariableButton.tsx | 26 +-
.../ManageVariable/EditVariableButton.tsx | 21 +-
.../Variables/ManageVariable/VariableForm.tsx | 6 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 2 -
.../airflow/ui/src/pages/XCom/AddXComButton.tsx | 2 +-
.../airflow/ui/src/pages/XCom/DeleteXComButton.tsx | 14 +-
.../airflow/ui/src/pages/XCom/EditXComButton.tsx | 5 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 50 +-
.../src/airflow/ui/src/queries/useDeleteDag.ts | 3 +-
.../src/airflow/ui/src/queries/useLogs.tsx | 31 +-
.../src/airflow/ui/src/queries/useTrigger.ts | 22 +-
airflow-core/src/airflow/ui/src/theme.ts | 42 +-
airflow-core/src/airflow/ui/src/utils/TrimText.tsx | 2 +-
.../src/airflow/ui/src/utils/links.test.ts | 88 +-
airflow-core/src/airflow/ui/src/utils/links.ts | 56 +
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 1 +
.../src/airflow/ui/tests/e2e/pages/BasePage.ts | 12 +-
.../src/airflow/ui/tests/e2e/pages/DagCodePage.ts | 2 +-
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/db_manager.py | 42 +-
.../src/airflow/utils/log/file_task_handler.py | 6 +-
airflow-core/src/airflow/utils/retries.py | 5 +-
.../src/airflow/utils/serve_logs/log_server.py | 2 +-
airflow-core/tests/integration/otel/test_otel.py | 2 +
.../tests/unit/api_fastapi/auth/test_tokens.py | 28 +-
.../unit/api_fastapi/common/test_parameters.py | 62 +
.../core_api/routes/public/test_auth.py | 8 +-
.../core_api/routes/public/test_backfills.py | 33 +
.../core_api/routes/public/test_dag_run.py | 25 +-
.../core_api/routes/public/test_event_logs.py | 36 +
.../core_api/routes/public/test_import_error.py | 43 +-
.../core_api/routes/public/test_pools.py | 36 +
.../core_api/routes/public/test_task_instances.py | 193 +-
.../tests/unit/api_fastapi/core_api/test_app.py | 50 +
.../unit/api_fastapi/core_api/test_security.py | 216 ++
.../versions/head/test_task_instances.py | 83 +
.../execution_api/versions/head/test_task_state.py | 30 +
.../execution_api/versions/head/test_variables.py | 64 +
.../versions/v2026_06_30}/__init__.py | 0
.../versions/v2026_06_30/test_variables.py} | 34 +-
.../unit/cli/commands/test_api_server_command.py | 2 +-
.../unit/cli/commands/test_state_store_command.py | 65 +
.../tests/unit/cli/commands/test_team_command.py | 41 +
.../tests/unit/dag_processing/bundles/test_base.py | 29 +
.../tests/unit/dag_processing/test_collection.py | 19 +
.../tests/unit/dag_processing/test_manager.py | 287 ++
.../tests/unit/dag_processing/test_processor.py | 1 +
.../tests/unit/dags/test_dag_decorator_version.py | 63 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 110 +-
.../tests/unit/listeners/asset_listener.py | 7 +-
.../unit/listeners/dag_import_error_listener.py | 4 +-
.../test_0080_deadline_callback_migration.py | 268 ++
.../test_0094_deadline_callback_migration.py | 178 ++
airflow-core/tests/unit/models/test_backfill.py | 24 +
airflow-core/tests/unit/models/test_dag.py | 2 +-
airflow-core/tests/unit/models/test_dag_version.py | 38 +
airflow-core/tests/unit/models/test_dagrun.py | 104 +
.../tests/unit/models/test_mappedoperator.py | 4 +-
.../tests/unit/models/test_renderedtifields.py | 4 +-
.../unit/serialization/test_dag_serialization.py | 136 +-
.../test_deadline_reference_registry.py | 100 +
.../tests/unit/serialization/test_helpers.py | 630 ++++
airflow-core/tests/unit/state/test_metastore.py | 163 +-
airflow-core/tests/unit/utils/test_db_manager.py | 50 +-
airflow-core/tests/unit/utils/test_retries.py | 29 +-
airflow-core/tests/unit/utils/test_serve_logs.py | 13 +
airflow-ctl-tests/pyproject.toml | 2 +-
.../tests/airflowctl_tests/conftest.py | 77 +-
.../airflowctl_tests/test_airflowctl_commands.py | 60 +-
.../test_config_sensitive_masking.py | 4 +-
airflow-ctl/RELEASE_NOTES.rst | 13 +
.../docs/installation/installing-from-sources.rst | 16 +-
airflow-ctl/pyproject.toml | 2 +-
airflow-ctl/src/airflowctl/api/operations.py | 13 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 75 +-
.../airflowctl/ctl/commands/connection_command.py | 1 +
.../tests/airflow_ctl/api/test_operations.py | 112 +
.../ctl/commands/test_connections_command.py | 35 +
.../tests/airflow_ctl/ctl/test_cli_config.py | 148 +-
airflow-e2e-tests/docker/kafka.yml | 56 +
.../docker}/kafka/update_run.sh | 0
airflow-e2e-tests/pyproject.toml | 2 +-
.../basic_tests/test_airflowctl_imports.py | 49 +-
.../tests/airflow_e2e_tests/conftest.py | 107 +-
.../tests/airflow_e2e_tests/constants.py | 15 +
.../airflow_e2e_tests/dags/example_event_driven.py | 177 ++
.../airflow_e2e_tests/e2e_test_utils/clients.py | 30 +
.../event_driven_tests}/__init__.py | 0
.../event_driven_tests/test_event_driven.py | 229 ++
chart/Chart.yaml | 2 +-
chart/docs/conf.py | 9 +
chart/docs/customizing-labels.rst | 3 +-
chart/docs/customizing-workers.rst | 28 +-
chart/docs/extending-the-chart.rst | 36 +-
chart/docs/index.rst | 23 +-
chart/docs/parameters-ref.rst | 40 +-
chart/docs/production-guide.rst | 11 +-
chart/docs/quick-start.rst | 9 +-
chart/docs/setting-resources-for-containers.rst | 55 +-
chart/docs/upgrading-to-airflow-3.rst | 30 +-
chart/newsfragments/66970.significant.rst | 1 +
chart/pyproject.toml | 2 +-
chart/templates/_helpers.yaml | 2 +-
chart/templates/rbac/job-launcher-rolebinding.yaml | 7 +-
chart/templates/rbac/pod-launcher-rolebinding.yaml | 7 +-
.../security-context-constraint-rolebinding.yaml | 7 +-
.../airflow_aux/test_job_launcher_role.py | 101 +
.../airflow_aux/test_pod_launcher_role.py | 101 +
.../airflow_aux/test_pod_template_file.py | 2 +-
.../helm_tests/airflow_core/test_worker_sets.py | 16 +
.../helm_tests/security/test_scc_rolebinding.py | 97 +
clients/python/pyproject.toml | 2 +-
contributing-docs/12_provider_distributions.rst | 43 +
contributing-docs/15_node_environment_setup.rst | 54 +
contributing-docs/25_maintainer_pr_triage.md | 53 +-
.../28_example_dag_review_checklist.rst | 17 +
contributing-docs/29_helm_chart_development.rst | 227 ++
contributing-docs/README.rst | 16 +-
dev/README_RELEASE_PROVIDERS.md | 2 +-
dev/breeze/doc/ci/02_images.md | 2 +-
dev/breeze/doc/images/output-commands.svg | 158 +-
dev/breeze/doc/images/output_k8s.svg | 2 +-
dev/breeze/doc/images/output_k8s.txt | 2 +-
dev/breeze/doc/images/output_k8s_dev.svg | 4 +-
dev/breeze/doc/images/output_k8s_dev.txt | 2 +-
dev/breeze/doc/images/output_run.svg | 38 +-
dev/breeze/doc/images/output_run.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 286 +-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 238 +-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
.../images/output_testing_airflow-e2e-tests.svg | 2 +-
.../images/output_testing_airflow-e2e-tests.txt | 2 +-
.../airflow_breeze/commands/developer_commands.py | 6 +-
.../airflow_breeze/commands/kubernetes_commands.py | 16 +-
.../commands/release_management_commands.py | 14 +-
.../src/airflow_breeze/commands/setup_commands.py | 2 +-
.../airflow_breeze/commands/testing_commands.py | 15 +-
.../airflow_breeze/commands/workflow_commands.py | 24 +-
dev/breeze/src/airflow_breeze/global_constants.py | 20 +-
.../src/airflow_breeze/params/shell_params.py | 2 +-
.../prepare_providers/provider_documentation.py | 2 +-
.../utils/constraints_version_check.py | 12 +-
.../airflow_breeze/utils/docker_command_utils.py | 3 +-
.../src/airflow_breeze/utils/functools_cache.py | 4 +-
.../src/airflow_breeze/utils/selective_checks.py | 14 +
dev/breeze/tests/test_docker_command_utils.py | 24 +-
dev/breeze/tests/test_workflow_commands.py | 101 +
dev/breeze/uv.lock | 324 +-
dev/mypy/pyproject.toml | 2 +-
dev/pyproject.toml | 2 +-
dev/registry/extract_parameters.py | 2 +-
dev/registry/pyproject.toml | 2 +-
devel-common/pyproject.toml | 4 +-
.../shared/template-examples/taskflow-kwargs.rst | 10 +-
.../src/docs/shared/template-examples/taskflow.rst | 10 +-
devel-common/src/docs/utils/conf_constants.py | 1 +
.../src/sphinx_exts/common_compat_alias.py | 124 +
devel-common/src/tests_common/pytest_plugin.py | 11 +-
docker-stack-docs/pyproject.toml | 2 +-
docker-tests/pyproject.toml | 2 +-
.../test_docker_compose_quick_start.py | 4 +-
docs/spelling_wordlist.txt | 1 +
generated/provider_metadata.json | 68 +
kubernetes-tests/pyproject.toml | 2 +-
.../tests/kubernetes_tests/test_base.py | 26 +
.../tests/kubernetes_tests/test_other_executors.py | 23 +-
providers-summary-docs/pyproject.toml | 2 +-
providers/.last_release_date.txt | 2 +-
providers/.pre-commit-config.yaml | 7 +
providers/airbyte/README.rst | 6 +-
providers/airbyte/docs/changelog.rst | 11 +
providers/airbyte/docs/index.rst | 6 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 6 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
.../airflow/providers/airbyte/operators/airbyte.py | 51 +-
.../airflow/providers/airbyte/triggers/airbyte.py | 89 +-
.../tests/unit/airbyte/operators/test_airbyte.py | 108 +-
.../tests/unit/airbyte/triggers/test_airbyte.py | 163 +-
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 13 +
providers/alibaba/docs/index.rst | 6 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
.../airflow/providers/alibaba/cloud/hooks/oss.py | 3 +-
.../alibaba/cloud/log/oss_task_handler.py | 4 +-
.../tests/unit/alibaba/cloud/hooks/test_oss.py | 26 +
.../alibaba/cloud/log/test_oss_task_handler.py | 21 +
providers/amazon/README.rst | 6 +-
providers/{git => amazon}/docs/bundles/index.rst | 31 +-
providers/amazon/docs/changelog.rst | 49 +
providers/amazon/docs/index.rst | 7 +-
providers/amazon/docs/operators/bedrock.rst | 15 +
.../amazon/docs/operators/mwaa_serverless.rst | 28 +
providers/amazon/docs/operators/s3_tables.rst | 29 +
providers/amazon/docs/operators/s3_vectors.rst | 15 +
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/executors/batch/batch_executor.py | 128 +-
.../providers/amazon/aws/executors/batch/utils.py | 33 +-
.../providers/amazon/aws/hooks/athena_sql.py | 31 +
.../amazon/aws/hooks/sagemaker_unified_studio.py | 100 +-
.../providers/amazon/aws/operators/bedrock.py | 56 +
.../airflow/providers/amazon/aws/operators/emr.py | 30 +-
.../amazon/aws/operators/mwaa_serverless.py | 107 +-
.../amazon/aws/operators/redshift_data.py | 5 +-
.../providers/amazon/aws/operators/s3_tables.py | 65 +
.../providers/amazon/aws/operators/s3_vectors.py | 69 +
.../airflow/providers/amazon/aws/sensors/ssm.py | 6 +-
.../aws/triggers/sagemaker_unified_studio.py | 94 +-
.../providers/amazon/aws/utils/task_log_fetcher.py | 4 +-
.../amazon/aws/example_bedrock_evaluation.py | 142 +
.../system/amazon/aws/example_bedrock_guardrail.py | 6 +
.../system/amazon/aws/example_dms_serverless.py | 9 +-
.../system/amazon/aws/example_glue_catalog.py | 1 +
.../tests/system/amazon/aws/example_http_to_s3.py | 2 +-
.../system/amazon/aws/example_mwaa_serverless.py | 47 +-
.../tests/system/amazon/aws/example_s3_tables.py | 26 +-
.../tests/system/amazon/aws/example_s3_vectors.py | 14 +-
.../aws/executors/batch/test_batch_executor.py | 121 +-
.../unit/amazon/aws/executors/batch/test_utils.py | 20 +-
.../tests/unit/amazon/aws/hooks/test_athena_sql.py | 93 +
.../aws/hooks/test_sagemaker_unified_studio.py | 12 +-
.../unit/amazon/aws/operators/test_bedrock.py | 73 +-
.../amazon/aws/operators/test_emr_containers.py | 228 ++
.../amazon/aws/operators/test_emr_serverless.py | 10 +-
.../amazon/aws/operators/test_mwaa_serverless.py | 146 +-
.../unit/amazon/aws/operators/test_s3_tables.py | 49 +
.../unit/amazon/aws/operators/test_s3_vectors.py | 47 +
.../aws/operators/test_sagemaker_processing.py | 2 +-
.../aws/operators/test_sagemaker_transform.py | 2 +-
.../test_sagemaker_unified_studio_trigger.py | 105 +
.../amazon/aws/utils/test_waiter_with_logging.py | 2 +-
.../system/apache/beam/example_go_dataflow.py | 5 +-
.../system/apache/beam/example_python_dataflow.py | 5 +-
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 17 +
providers/apache/hdfs/docs/index.rst | 6 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 15 +
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
providers/apache/kafka/README.rst | 6 +-
providers/apache/kafka/docs/changelog.rst | 21 +
providers/apache/kafka/docs/index.rst | 6 +-
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 6 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
.../airflow/providers/apache/kafka/hooks/client.py | 2 +-
.../tests/unit/apache/kafka/hooks/test_client.py | 11 +-
providers/apache/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 14 +
providers/apache/livy/docs/index.rst | 6 +-
providers/apache/livy/provider.yaml | 3 +-
providers/apache/livy/pyproject.toml | 6 +-
.../src/airflow/providers/apache/livy/__init__.py | 2 +-
.../airflow/providers/apache/livy/triggers/livy.py | 2 +
.../tests/unit/apache/livy/triggers/test_livy.py | 13 +
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 13 +
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
providers/celery/README.rst | 8 +-
providers/celery/docs/changelog.rst | 24 +
providers/celery/docs/index.rst | 8 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 8 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
.../providers/celery/executors/celery_executor.py | 4 +-
providers/cncf/kubernetes/README.rst | 8 +-
providers/cncf/kubernetes/docs/changelog.rst | 52 +-
providers/cncf/kubernetes/docs/index.rst | 8 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 8 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../cncf/kubernetes/cli/kubernetes_command.py | 10 +-
.../executors/kubernetes_executor_utils.py | 58 +-
.../providers/cncf/kubernetes/operators/pod.py | 91 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 2 +-
.../executors/test_kubernetes_executor.py | 51 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 295 +-
.../unit/cncf/kubernetes/triggers/test_pod.py | 2 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 4 +-
providers/common/ai/README.rst | 6 +-
providers/common/ai/docs/changelog.rst | 17 +
providers/common/ai/docs/hooks/index.rst | 51 +
providers/common/ai/docs/hooks/langchain.rst | 174 ++
providers/common/ai/docs/index.rst | 9 +-
.../common/ai/docs/operators/document_loader.rst | 234 +-
providers/common/ai/docs/retry_policies.rst | 170 ++
providers/common/ai/provider.yaml | 42 +-
providers/common/ai/pyproject.toml | 14 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../ai/example_dags/example_document_loader.py | 125 +
.../ai/example_dags/example_langchain_hook.py | 131 +
.../example_dags/example_langchain_tool_agent.py | 542 ++++
.../ai/example_dags/example_llm_retry_policy.py | 72 +
.../providers/common/ai/get_provider_info.py | 35 +
.../airflow/providers/common/ai/hooks/langchain.py | 173 ++
.../common/ai/operators/document_loader.py | 199 +-
.../providers/common/ai/policies}/__init__.py | 0
.../airflow/providers/common/ai/policies/retry.py | 183 ++
.../tests/unit/common/ai/hooks/test_langchain.py | 270 ++
.../common/ai/operators/test_document_loader.py | 197 +-
.../ai/tests/unit/common/ai/policies}/__init__.py | 0
.../ai/tests/unit/common/ai/policies/test_retry.py | 197 ++
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 13 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
.../providers/common/compat/version_compat.py | 2 +
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 8 +
providers/common/sql/docs/index.rst | 8 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../airflow/providers/common/sql/operators/sql.py | 475 ++-
.../tests/unit/common/sql/operators/test_sql.py | 1263 ++++++++
providers/databricks/README.rst | 6 +-
providers/databricks/docs/changelog.rst | 21 +
providers/databricks/docs/index.rst | 6 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/operators/databricks.py | 4 +
.../providers/databricks/triggers/databricks.py | 7 +
.../unit/databricks/operators/test_databricks.py | 42 +
.../unit/databricks/triggers/test_databricks.py | 24 +
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 16 +
providers/dbt/cloud/docs/index.rst | 6 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 6 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 38 +-
.../airflow/providers/dbt/cloud/triggers/dbt.py | 72 +-
.../tests/unit/dbt/cloud/operators/test_dbt.py | 133 +-
.../tests/unit/dbt/cloud/triggers/test_dbt.py | 282 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 13 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
providers/edge3/README.rst | 8 +-
providers/edge3/docs/changelog.rst | 27 +
providers/edge3/docs/index.rst | 8 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 10 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../src/airflow/providers/edge3/cli/dataclasses.py | 28 +-
.../src/airflow/providers/edge3/cli/worker.py | 214 +-
.../edge3/src/airflow/providers/edge3/models/db.py | 63 +
.../providers/edge3/plugins/www/package.json | 30 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 906 +++---
.../edge3/worker_api/v2-edge-generated.yaml | 4 +-
.../edge3/tests/unit/edge3/cli/test_worker.py | 419 ++-
providers/edge3/tests/unit/edge3/models/test_db.py | 45 +
.../unit/edge3/worker_api/routes/test_logs.py | 5 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 53 +-
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/docs/logging/index.rst | 42 +
providers/elasticsearch/provider.yaml | 17 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../src/airflow/providers/elasticsearch/_compat.py | 119 +
.../providers/elasticsearch/get_provider_info.py | 7 +
.../providers/elasticsearch/hooks/elasticsearch.py | 65 +-
.../providers/elasticsearch/log/es_task_handler.py | 5 +-
.../unit/elasticsearch/hooks/test_elasticsearch.py | 92 +-
.../tests/unit/elasticsearch/test__compat.py | 240 ++
providers/fab/README.rst | 9 +-
providers/fab/docs/changelog.rst | 29 +
providers/fab/docs/index.rst | 9 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 16 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/models/db.py | 50 +-
.../fab/auth_manager/security_manager/override.py | 37 +
.../fab/src/airflow/providers/fab/www/package.json | 6 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 203 +-
.../unit/fab/auth_manager/api_fastapi/conftest.py | 4 +-
.../tests/unit/fab/auth_manager/models/test_db.py | 41 +-
.../security_manager/test_fab_alignment.py | 2 +-
providers/ftp/README.rst | 6 +-
providers/ftp/docs/changelog.rst | 18 +
providers/ftp/docs/index.rst | 6 +-
providers/ftp/provider.yaml | 3 +-
providers/ftp/pyproject.toml | 6 +-
.../ftp/src/airflow/providers/ftp/__init__.py | 2 +-
providers/git/README.rst | 6 +-
providers/git/docs/bundles/index.rst | 7 +-
providers/git/docs/changelog.rst | 12 +
providers/git/docs/index.rst | 8 +-
providers/git/provider.yaml | 3 +-
providers/git/pyproject.toml | 8 +-
.../git/src/airflow/providers/git/__init__.py | 2 +-
.../git/src/airflow/providers/git/bundles/git.py | 32 +-
providers/git/tests/unit/git/bundles/test_git.py | 146 +-
providers/google/README.rst | 6 +-
providers/{git => google}/docs/bundles/index.rst | 31 +-
providers/google/docs/changelog.rst | 53 +
providers/google/docs/connections/gcp_looker.rst | 32 +-
providers/google/docs/connections/gcp_sql.rst | 73 +-
providers/google/docs/index.rst | 7 +-
.../docs/integration-logos/Google-Data-Proc.png | Bin 24546 -> 0 bytes
providers/google/docs/operators/cloud/bigquery.rst | 30 +
.../docs/operators/cloud/bigquery_routines.rst | 164 +
providers/google/docs/operators/cloud/dataplex.rst | 204 +-
providers/google/docs/operators/cloud/dataproc.rst | 166 +-
providers/google/docs/operators/cloud/looker.rst | 24 +-
providers/google/provider.yaml | 40 +-
providers/google/pyproject.toml | 6 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/hooks/bigquery.py | 257 +-
.../providers/google/cloud/hooks/cloud_sql.py | 61 +-
.../providers/google/cloud/hooks/compute_ssh.py | 56 +-
.../providers/google/cloud/hooks/vertex_ai/ray.py | 4 +-
.../providers/google/cloud/operators/bigquery.py | 499 +++-
.../google/cloud/operators/cloud_batch.py | 7 +-
.../providers/google/cloud/operators/cloud_sql.py | 1 +
.../providers/google/cloud/operators/compute.py | 4 +-
.../google/cloud/operators/knowledge_catalog.py | 112 +
.../providers/google/cloud/operators/looker.py | 7 +-
.../google/cloud/operators/managed_spark.py | 56 +
.../google/cloud/operators/vertex_ai/ray.py | 4 +-
.../google/cloud/secrets/secret_manager.py | 7 +
.../providers/google/cloud/sensors/bigquery.py | 171 ++
.../google/cloud/transfers/gcs_to_bigquery.py | 43 +-
.../providers/google/cloud/transfers/s3_to_gcs.py | 34 +-
.../providers/google/cloud/triggers/bigquery.py | 228 +-
.../providers/google/cloud/triggers/cloud_run.py | 43 +-
.../providers/google/cloud/triggers/cloud_sql.py | 19 +-
.../providers/google/cloud/triggers/datafusion.py | 2 +
.../google/cloud/utils/credentials_provider.py | 5 +-
.../airflow/providers/google/get_provider_info.py | 51 +-
.../airflow/providers/google/suite/hooks/drive.py | 2 +-
providers/google/tests/deprecations_ignore.yml | 1 +
.../cloud/bigquery/example_bigquery_routines.py | 219 ++
.../example_bigquery_streaming_buffer_sensor.py | 199 ++
.../cloud_sql/example_cloud_sql_query_proxy_iam.py | 204 ++
.../example_dlp_deidentify_content.py | 3 +-
.../google/cloud/dataflow/example_dataflow_go.py | 9 +-
.../example_dataflow_native_python_async.py | 12 +-
.../example_dataflow_sensors_deferrable.py | 12 +-
.../google/cloud/dataplex/example_dataplex.py | 4 +-
.../cloud/dataplex/example_dataplex_catalog.py | 2 +-
.../google/cloud/dataplex/example_dataplex_dp.py | 4 +-
.../google/cloud/dataplex/example_dataplex_dq.py | 4 +-
.../cloud/dataproc/example_dataproc_batch.py | 7 +-
.../dataproc/example_dataproc_batch_deferrable.py | 2 +-
.../dataproc/example_dataproc_batch_persistent.py | 4 +-
...proc_cluster_create_existing_stopped_cluster.py | 6 +-
.../example_dataproc_cluster_deferrable.py | 2 +-
.../dataproc/example_dataproc_cluster_diagnose.py | 2 +-
.../dataproc/example_dataproc_cluster_generator.py | 4 +-
.../example_dataproc_cluster_start_stop.py | 6 +-
.../dataproc/example_dataproc_cluster_update.py | 2 +-
.../cloud/dataproc/example_dataproc_flink.py | 2 +-
.../google/cloud/dataproc/example_dataproc_gke.py | 4 +-
.../cloud/dataproc/example_dataproc_hadoop.py | 2 +-
.../google/cloud/dataproc/example_dataproc_hive.py | 2 +-
.../google/cloud/dataproc/example_dataproc_pig.py | 2 +-
.../cloud/dataproc/example_dataproc_presto.py | 2 +-
.../cloud/dataproc/example_dataproc_pyspark.py | 2 +-
.../cloud/dataproc/example_dataproc_spark.py | 2 +-
.../cloud/dataproc/example_dataproc_spark_async.py | 2 +-
.../dataproc/example_dataproc_spark_deferrable.py | 2 +-
.../cloud/dataproc/example_dataproc_spark_sql.py | 2 +-
.../cloud/dataproc/example_dataproc_sparkr.py | 2 +-
.../example_dataproc_start_from_trigger.py | 2 +-
.../cloud/dataproc/example_dataproc_trino.py | 2 +-
.../cloud/dataproc/example_dataproc_workflow.py | 4 +-
.../example_dataproc_workflow_deferrable.py | 4 +-
...ple_dataproc_metastore_hive_partition_sensor.py | 4 +-
.../cloud/datastore/example_datastore_commit.py | 10 +-
.../google/cloud/gcs/example_gcs_to_gdrive.py | 2 +-
.../google/cloud/gcs/example_gdrive_to_gcs.py | 2 +-
.../system/google/cloud/looker/example_looker.py | 4 +-
.../example_cloud_storage_transfer_service_aws.py | 33 +-
.../example_cloud_storage_transfer_service_gcp.py | 20 +-
.../cloud/transfers/example_gdrive_to_local.py | 2 +-
.../example_vertex_ai_batch_prediction_job.py | 4 +-
.../cloud/vertex_ai/example_vertex_ai_endpoint.py | 2 +-
.../vertex_ai/example_vertex_ai_feature_store.py | 5 +-
.../vertex_ai/example_vertex_ai_model_service.py | 4 +-
.../example_video_intelligence.py | 7 +-
.../cloud/vision/example_vision_annotate_image.py | 3 +-
.../cloud/vision/example_vision_autogenerated.py | 17 +-
.../system/google/suite/example_local_to_drive.py | 2 +-
.../tests/unit/google/cloud/hooks/test_bigquery.py | 180 +-
.../unit/google/cloud/hooks/test_cloud_sql.py | 192 ++
.../unit/google/cloud/hooks/test_compute_ssh.py | 37 +
.../unit/google/cloud/hooks/vertex_ai/test_ray.py | 17 +
.../unit/google/cloud/operators/test_bigquery.py | 211 ++
.../google/cloud/operators/test_cloud_batch.py | 57 +-
.../unit/google/cloud/operators/test_cloud_run.py | 26 +
.../unit/google/cloud/operators/test_dataproc.py | 1 +
.../cloud/operators/test_knowledge_catalog.py | 171 ++
.../cloud/operators/test_kubernetes_engine.py | 33 +-
.../unit/google/cloud/operators/test_looker.py | 9 +-
.../google/cloud/operators/test_managed_spark.py | 48 +-
.../google/cloud/operators/vertex_ai/test_ray.py | 99 +
.../google/cloud/secrets/test_secret_manager.py | 20 +
.../unit/google/cloud/sensors/test_bigquery.py | 153 +
.../google/cloud/transfers/test_gcs_to_bigquery.py | 259 +-
.../unit/google/cloud/transfers/test_s3_to_gcs.py | 157 +
.../unit/google/cloud/transfers/test_sql_to_gcs.py | 29 +-
.../unit/google/cloud/triggers/test_bigquery.py | 320 +-
.../unit/google/cloud/triggers/test_cloud_run.py | 68 +
.../unit/google/cloud/triggers/test_cloud_sql.py | 64 +-
.../unit/google/cloud/triggers/test_datafusion.py | 18 +
.../cloud/triggers/test_kubernetes_engine.py | 2 +-
.../unit/google/cloud/triggers/test_vertex_ai.py | 8 +-
.../cloud/utils/test_credentials_provider.py | 9 +
providers/imap/README.rst | 6 +-
providers/imap/docs/changelog.rst | 14 +
providers/imap/docs/index.rst | 6 +-
providers/imap/provider.yaml | 3 +-
providers/imap/pyproject.toml | 6 +-
.../imap/src/airflow/providers/imap/__init__.py | 2 +-
.../imap/src/airflow/providers/imap/hooks/imap.py | 6 +-
providers/influxdb/README.rst | 7 +-
providers/influxdb/docs/changelog.rst | 13 +
providers/influxdb/docs/connections/influxdb3.rst | 51 +
providers/influxdb/docs/index.rst | 10 +-
providers/influxdb/docs/operators/index.rst | 15 +
providers/influxdb/provider.yaml | 44 +-
providers/influxdb/pyproject.toml | 7 +-
.../src/airflow/providers/influxdb/__init__.py | 2 +-
.../providers/influxdb/get_provider_info.py | 42 +-
.../airflow/providers/influxdb/hooks/influxdb3.py | 247 ++
.../providers/influxdb/operators/influxdb3.py | 72 +
.../tests/system/influxdb/example_influxdb3.py | 82 +
.../tests/unit/influxdb/hooks/test_influxdb3.py | 123 +
.../unit/influxdb/operators/test_influxdb3.py | 59 +
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 18 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../keycloak/auth_manager/cli/commands.py | 61 +
.../keycloak/auth_manager/cli/test_commands.py | 108 +-
providers/microsoft/azure/README.rst | 8 +-
providers/microsoft/azure/docs/changelog.rst | 18 +
providers/microsoft/azure/docs/index.rst | 6 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 6 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/secrets/key_vault.py | 10 +
.../unit/microsoft/azure/secrets/test_key_vault.py | 10 +
providers/microsoft/mssql/README.rst | 40 +-
providers/microsoft/mssql/docs/changelog.rst | 14 +
providers/microsoft/mssql/docs/index.rst | 6 +-
providers/microsoft/mssql/provider.yaml | 3 +-
providers/microsoft/mssql/pyproject.toml | 6 +-
.../airflow/providers/microsoft/mssql/__init__.py | 2 +-
providers/mongo/README.rst | 6 +-
providers/mongo/docs/changelog.rst | 15 +
providers/mongo/docs/index.rst | 6 +-
providers/mongo/provider.yaml | 3 +-
providers/mongo/pyproject.toml | 6 +-
.../mongo/src/airflow/providers/mongo/__init__.py | 2 +-
providers/mongo/tests/conftest.py | 29 +-
providers/mysql/README.rst | 6 +-
providers/mysql/docs/changelog.rst | 16 +
providers/mysql/docs/index.rst | 6 +-
providers/mysql/provider.yaml | 3 +-
providers/mysql/pyproject.toml | 6 +-
.../mysql/src/airflow/providers/mysql/__init__.py | 2 +-
providers/openlineage/README.rst | 10 +-
providers/openlineage/docs/changelog.rst | 18 +
providers/openlineage/docs/index.rst | 12 +-
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 12 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../providers/openlineage/extractors/manager.py | 20 +-
.../providers/openlineage/plugins/listener.py | 17 +-
.../src/airflow/providers/openlineage/sqlparser.py | 27 +-
.../openlineage/utils/sql_hook_lineage.py | 62 +-
.../tests/system/openlineage/operator.py | 4 +-
.../tests/unit/openlineage/extractors/test_base.py | 23 +-
.../tests/unit/openlineage/test_sqlparser.py | 67 +
.../openlineage/utils/test_sql_hook_lineage.py | 73 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 35 +-
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
providers/oracle/README.rst | 6 +-
providers/oracle/docs/changelog.rst | 13 +
providers/oracle/docs/index.rst | 6 +-
providers/oracle/provider.yaml | 3 +-
providers/oracle/pyproject.toml | 6 +-
.../src/airflow/providers/oracle/__init__.py | 2 +-
providers/pinecone/README.rst | 6 +-
providers/pinecone/docs/changelog.rst | 14 +
providers/pinecone/docs/index.rst | 6 +-
providers/pinecone/provider.yaml | 3 +-
providers/pinecone/pyproject.toml | 6 +-
.../src/airflow/providers/pinecone/__init__.py | 2 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 13 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 6 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
providers/presto/README.rst | 6 +-
providers/presto/docs/changelog.rst | 13 +
providers/presto/docs/index.rst | 6 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 6 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/sftp/README.rst | 6 +-
providers/sftp/docs/changelog.rst | 21 +
providers/sftp/docs/index.rst | 6 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 6 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
providers/smtp/README.rst | 6 +-
providers/smtp/docs/changelog.rst | 15 +
providers/smtp/docs/index.rst | 6 +-
providers/smtp/provider.yaml | 3 +-
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
providers/snowflake/README.rst | 6 +-
providers/snowflake/docs/changelog.rst | 26 +
providers/snowflake/docs/connections/snowflake.rst | 27 +-
providers/snowflake/docs/index.rst | 6 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 6 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
providers/ssh/README.rst | 6 +-
providers/ssh/docs/changelog.rst | 14 +
providers/ssh/docs/index.rst | 6 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 25 +
providers/standard/docs/index.rst | 6 +-
providers/standard/docs/operators/python.rst | 2 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../example_branch_day_of_week_operator.py | 6 +-
.../example_measurement_correction_decorator.py | 77 +-
.../example_measurement_correction_operator.py | 63 +-
.../example_dags/example_short_circuit_operator.py | 9 +-
.../airflow/providers/standard/operators/python.py | 2 +-
.../providers/standard/utils/sensor_helper.py | 7 +-
.../tests/unit/standard/triggers/test_file.py | 16 +-
.../unit/standard/utils/test_sensor_helper.py | 33 +
providers/tableau/README.rst | 6 +-
providers/tableau/docs/changelog.rst | 13 +
providers/tableau/docs/index.rst | 6 +-
providers/tableau/provider.yaml | 3 +-
providers/tableau/pyproject.toml | 6 +-
.../src/airflow/providers/tableau/__init__.py | 2 +-
.../airflow/providers/tableau/operators/tableau.py | 15 +-
.../tests/unit/tableau/operators/test_tableau.py | 86 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 13 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
providers/trino/README.rst | 6 +-
providers/trino/docs/changelog.rst | 13 +
providers/trino/docs/index.rst | 6 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 6 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
providers/vertica/README.rst | 6 +-
providers/vertica/docs/changelog.rst | 12 +
providers/vertica/docs/index.rst | 6 +-
providers/vertica/provider.yaml | 3 +-
providers/vertica/pyproject.toml | 6 +-
.../src/airflow/providers/vertica/__init__.py | 2 +-
providers/weaviate/README.rst | 6 +-
providers/weaviate/docs/changelog.rst | 13 +
providers/weaviate/docs/index.rst | 6 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 6 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
.../airflow/providers/weaviate/hooks/weaviate.py | 6 +-
providers/zendesk/README.rst | 6 +-
providers/zendesk/docs/changelog.rst | 13 +
providers/zendesk/docs/index.rst | 6 +-
providers/zendesk/provider.yaml | 29 +-
providers/zendesk/pyproject.toml | 6 +-
.../src/airflow/providers/zendesk/__init__.py | 2 +-
.../airflow/providers/zendesk/get_provider_info.py | 25 +-
.../src/airflow/providers/zendesk/hooks/zendesk.py | 182 +-
.../tests/unit/zendesk/hooks/test_zendesk.py | 164 +-
pyproject.toml | 33 +-
scripts/ci/prek/check_core_imports_in_sdk.py | 62 +-
scripts/ci/prek/check_sdk_imports.py | 88 -
scripts/ci/prek/check_sdk_imports_in_core.py | 64 +
scripts/ci/prek/check_task_instance_dto_sync.py | 125 +
scripts/ci/prek/check_trigger_serialize_init.py | 264 ++
scripts/ci/prek/common_prek_utils.py | 173 +-
scripts/ci/prek/download_k8s_schemas.py | 19 +-
scripts/ci/prek/known_airflow_exceptions.txt | 5 +-
.../docker/install_airflow_when_building_images.sh | 12 +-
scripts/in_container/run_schema_defaults_check.py | 11 +-
scripts/pyproject.toml | 2 +-
.../ci/prek/test_check_core_imports_in_sdk.py | 220 ++
...mports.py => test_check_sdk_imports_in_core.py} | 42 +-
scripts/tests/ci/prek/test_common_prek_utils.py | 90 +
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 2 +-
.../src/airflow_shared/configuration/parser.py | 4 +-
shared/dagnode/pyproject.toml | 2 +-
shared/listeners/pyproject.toml | 2 +-
shared/logging/pyproject.toml | 2 +-
.../src/airflow_shared/logging/structlog.py | 50 +-
shared/logging/tests/logging/test_structlog.py | 32 +-
shared/module_loading/pyproject.toml | 2 +-
shared/observability/pyproject.toml | 2 +-
.../src/airflow_shared/observability/common.py | 17 +-
.../observability/metrics/datadog_logger.py | 8 +-
.../observability/metrics/metrics_template.yaml | 53 +
.../observability/metrics/otel_logger.py | 4 +-
.../observability/metrics/statsd_logger.py | 8 +-
.../observability/metrics/test_otel_logger.py | 36 +-
shared/plugins_manager/pyproject.toml | 2 +-
.../plugins_manager/plugins_manager.py | 5 +-
shared/providers_discovery/pyproject.toml | 2 +-
.../providers_discovery/providers_discovery.py | 4 +-
.../test_providers_discovery.py | 36 +-
shared/secrets_backend/pyproject.toml | 2 +-
shared/secrets_masker/pyproject.toml | 2 +-
.../secrets_masker/secrets_masker.py | 25 +-
.../tests/secrets_masker/test_secrets_masker.py | 55 +
shared/serialization/pyproject.toml | 2 +-
shared/state/pyproject.toml | 2 +-
shared/state/src/airflow_shared/state/__init__.py | 86 +-
shared/template_rendering/pyproject.toml | 2 +-
shared/timezones/pyproject.toml | 2 +-
task-sdk-integration-tests/pyproject.toml | 2 +-
.../tests/task_sdk_tests/conftest.py | 1 +
task-sdk/docs/api.rst | 4 +
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 3 +
task-sdk/src/airflow/sdk/api/client.py | 42 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 15 +-
task-sdk/src/airflow/sdk/bases/sensor.py | 4 +-
.../airflow/sdk/definitions/operator_resources.py | 16 +-
task-sdk/src/airflow/sdk/definitions/variable.py | 25 +
task-sdk/src/airflow/sdk/exceptions.py | 18 +-
.../sdk/execution_time/callback_supervisor.py | 6 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 20 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 78 +-
.../airflow/sdk/execution_time/request_handlers.py | 13 +
.../sdk/execution_time/secrets/execution_api.py | 71 +-
.../src/airflow/sdk/execution_time/supervisor.py | 142 +-
.../src/airflow/sdk/execution_time/task_runner.py | 180 +-
.../sdk/execution_time/workloads/__init__.py | 15 +-
.../airflow/sdk/execution_time/workloads/task.py | 53 +
task-sdk/src/airflow/sdk/log.py | 26 +-
task-sdk/src/airflow/sdk/plugins_manager.py | 2 +-
task-sdk/src/airflow/sdk/serde/__init__.py | 4 +-
task-sdk/tests/task_sdk/api/test_client.py | 69 +-
task-sdk/tests/task_sdk/bases/test_sensor.py | 14 +
.../definitions/test_operator_resources.py | 38 +
.../tests/task_sdk/definitions/test_taskgroup.py | 4 +-
.../tests/task_sdk/definitions/test_variables.py | 105 +-
.../execution_time/test_callback_supervisor.py | 11 +
.../tests/task_sdk/execution_time/test_context.py | 59 +-
.../tests/task_sdk/execution_time/test_secrets.py | 162 +-
.../task_sdk/execution_time/test_supervisor.py | 233 +-
.../test_supervisor_schemas_name_type_sync.py | 78 +
.../task_sdk/execution_time/test_task_runner.py | 246 +-
task-sdk/tests/task_sdk/serde/test_serde.py | 20 +-
task-sdk/tests/task_sdk/test_log.py | 120 +
uv.lock | 3131 ++++++++++++--------
1130 files changed, 37432 insertions(+), 15481 deletions(-)
create mode 100644 .apache-steward-overrides/README.md
create mode 100644 .apache-steward-overrides/pr-management-config.md
create mode 100644
.apache-steward-overrides/pr-management-triage-ci-check-map.md
create mode 100644
.apache-steward-overrides/pr-management-triage-comment-templates.md
create mode 100644 .apache-steward-overrides/user.md
create mode 100644 .apache-steward.lock
delete mode 120000 .claude/skills/maintainer-review
delete mode 120000 .claude/skills/pr-stats
delete mode 120000 .claude/skills/pr-triage
create mode 120000 .claude/skills/setup-steward
delete mode 100644 .github/skills/maintainer-review/SKILL.md
delete mode 100644 .github/skills/maintainer-review/adversarial.md
delete mode 100644 .github/skills/maintainer-review/criteria.md
delete mode 100644 .github/skills/maintainer-review/posting.md
delete mode 100644 .github/skills/maintainer-review/prerequisites.md
delete mode 100644 .github/skills/maintainer-review/review-flow.md
delete mode 100644 .github/skills/maintainer-review/selectors.md
delete mode 100644 .github/skills/pr-stats/SKILL.md
delete mode 100644 .github/skills/pr-stats/aggregate.md
delete mode 100644 .github/skills/pr-stats/classify.md
delete mode 100644 .github/skills/pr-stats/fetch.md
delete mode 100644 .github/skills/pr-stats/render.md
delete mode 100644 .github/skills/pr-triage/SKILL.md
delete mode 100644 .github/skills/pr-triage/actions.md
delete mode 100644 .github/skills/pr-triage/classify-and-act.md
delete mode 100644 .github/skills/pr-triage/comment-templates.md
delete mode 100644 .github/skills/pr-triage/fetch-and-batch.md
delete mode 100644 .github/skills/pr-triage/interaction-loop.md
delete mode 100644 .github/skills/pr-triage/prerequisites.md
delete mode 100644 .github/skills/pr-triage/rationale.md
delete mode 100644 .github/skills/pr-triage/stale-sweeps.md
delete mode 100644 .github/skills/pr-triage/workflow-approval.md
create mode 100644 .github/skills/setup-steward/SKILL.md
create mode 100644 .github/skills/setup-steward/adopt.md
create mode 100644 .github/skills/setup-steward/conventions.md
create mode 100644 .github/skills/setup-steward/overrides.md
create mode 100644 .github/skills/setup-steward/unadopt.md
create mode 100644 .github/skills/setup-steward/upgrade.md
create mode 100644 .github/skills/setup-steward/verify.md
create mode 100644 .github/skills/setup-steward/worktree-init.md
create mode 100644 airflow-core/3rd-party-licenses/LICENSE-chakra-ui.txt
create mode 100644 airflow-core/3rd-party-licenses/LICENSE-monaco-editor.txt
create mode 100644 airflow-core/newsfragments/63878.bugfix.rst
create mode 100644 airflow-core/newsfragments/64503.bugfix.rst
create mode 100644 airflow-core/newsfragments/66499.significant.rst
create mode 100644 airflow-core/newsfragments/66737.significant.rst
create mode 100644 airflow-core/newsfragments/66807.feature.rst
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/routes/ui/dag_runs.py
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/services/ui/dag_run.py
copy dev/breeze/src/airflow_breeze/utils/functools_cache.py =>
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2026_06_30.py (72%)
create mode 100644 airflow-core/src/airflow/cli/commands/state_store_command.py
copy
airflow-core/src/airflow/migrations/versions/{0080_3_1_0_modify_deadline_callback_schema.py
=> 0115_3_3_0_add_version_data_to_dag_version.py} (50%)
create mode 100644
airflow-core/src/airflow/ui/src/components/DateTimeInput.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldMultiType.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldMultiType.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/MonacoEditor/configureMonaco.ts
copy airflow-core/src/airflow/ui/src/components/{ui/ResetButton.tsx =>
MonacoEditor/index.tsx} (52%)
copy airflow-core/src/airflow/ui/src/components/{ui/Menu/Menu.tsx =>
MonacoEditor/useMonacoReady.ts} (63%)
copy airflow-core/src/airflow/ui/src/components/ui/{Pagination/NextTrigger.tsx
=> IconButton.tsx} (55%)
copy airflow-core/src/airflow/ui/src/components/ui/Menu/{Menu.tsx =>
MenuRoot.tsx} (55%)
copy airflow-core/src/airflow/ui/src/components/ui/Menu/{Menu.tsx =>
MenuTrigger.tsx} (52%)
copy airflow-core/src/airflow/ui/src/components/ui/{Menu/Menu.tsx =>
RouterLink.tsx} (63%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/calendarUtils.test.ts
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/execution_api/versions/v2026_06_30}/__init__.py (100%)
copy airflow-core/tests/unit/{listeners/asset_listener.py =>
api_fastapi/execution_api/versions/v2026_06_30/test_variables.py} (65%)
create mode 100644
airflow-core/tests/unit/cli/commands/test_state_store_command.py
create mode 100644 airflow-core/tests/unit/dags/test_dag_decorator_version.py
create mode 100644
airflow-core/tests/unit/migrations/test_0080_deadline_callback_migration.py
create mode 100644
airflow-core/tests/unit/migrations/test_0094_deadline_callback_migration.py
create mode 100644
airflow-core/tests/unit/serialization/test_deadline_reference_registry.py
create mode 100644 airflow-e2e-tests/docker/kafka.yml
copy {scripts/ci/docker-compose =>
airflow-e2e-tests/docker}/kafka/update_run.sh (100%)
copy airflow-core/tests/unit/listeners/asset_listener.py =>
airflow-e2e-tests/tests/airflow_e2e_tests/basic_tests/test_airflowctl_imports.py
(62%)
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/dags/example_event_driven.py
copy {airflow-core/src/airflow/_shared =>
airflow-e2e-tests/tests/airflow_e2e_tests/event_driven_tests}/__init__.py (100%)
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/event_driven_tests/test_event_driven.py
create mode 100644 chart/newsfragments/66970.significant.rst
create mode 100644 contributing-docs/29_helm_chart_development.rst
create mode 100644 dev/breeze/tests/test_workflow_commands.py
create mode 100644 devel-common/src/sphinx_exts/common_compat_alias.py
copy providers/{git => amazon}/docs/bundles/index.rst (61%)
create mode 100644
providers/amazon/tests/system/amazon/aws/example_bedrock_evaluation.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/triggers/test_sagemaker_unified_studio_trigger.py
create mode 100644 providers/common/ai/docs/hooks/index.rst
create mode 100644 providers/common/ai/docs/hooks/langchain.rst
create mode 100644 providers/common/ai/docs/retry_policies.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_document_loader.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_langchain_hook.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_langchain_tool_agent.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llm_retry_policy.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/hooks/langchain.py
copy {airflow-core/src/airflow/_shared =>
providers/common/ai/src/airflow/providers/common/ai/policies}/__init__.py (100%)
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/policies/retry.py
create mode 100644
providers/common/ai/tests/unit/common/ai/hooks/test_langchain.py
copy {airflow-core/src/airflow/_shared =>
providers/common/ai/tests/unit/common/ai/policies}/__init__.py (100%)
create mode 100644
providers/common/ai/tests/unit/common/ai/policies/test_retry.py
create mode 100644
providers/elasticsearch/src/airflow/providers/elasticsearch/_compat.py
create mode 100644
providers/elasticsearch/tests/unit/elasticsearch/test__compat.py
copy providers/{git => google}/docs/bundles/index.rst (60%)
delete mode 100644 providers/google/docs/integration-logos/Google-Data-Proc.png
create mode 100644 providers/google/docs/operators/cloud/bigquery_routines.rst
create mode 100644
providers/google/src/airflow/providers/google/cloud/operators/knowledge_catalog.py
create mode 100644
providers/google/src/airflow/providers/google/cloud/operators/managed_spark.py
create mode 100644
providers/google/tests/system/google/cloud/bigquery/example_bigquery_routines.py
create mode 100644
providers/google/tests/system/google/cloud/bigquery/example_bigquery_streaming_buffer_sensor.py
create mode 100644
providers/google/tests/system/google/cloud/cloud_sql/example_cloud_sql_query_proxy_iam.py
create mode 100644
providers/google/tests/unit/google/cloud/operators/test_knowledge_catalog.py
copy airflow-core/tests/unit/listeners/asset_listener.py =>
providers/google/tests/unit/google/cloud/operators/test_managed_spark.py (52%)
create mode 100644
providers/google/tests/unit/google/cloud/operators/vertex_ai/test_ray.py
create mode 100644 providers/influxdb/docs/connections/influxdb3.rst
create mode 100644
providers/influxdb/src/airflow/providers/influxdb/hooks/influxdb3.py
create mode 100644
providers/influxdb/src/airflow/providers/influxdb/operators/influxdb3.py
create mode 100644
providers/influxdb/tests/system/influxdb/example_influxdb3.py
create mode 100644
providers/influxdb/tests/unit/influxdb/hooks/test_influxdb3.py
create mode 100644
providers/influxdb/tests/unit/influxdb/operators/test_influxdb3.py
delete mode 100755 scripts/ci/prek/check_sdk_imports.py
create mode 100755 scripts/ci/prek/check_sdk_imports_in_core.py
create mode 100755 scripts/ci/prek/check_task_instance_dto_sync.py
create mode 100755 scripts/ci/prek/check_trigger_serialize_init.py
create mode 100644 scripts/tests/ci/prek/test_check_core_imports_in_sdk.py
rename scripts/tests/ci/prek/{test_check_sdk_imports.py =>
test_check_sdk_imports_in_core.py} (74%)
copy
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/task_state.py =>
task-sdk/src/airflow/sdk/execution_time/workloads/__init__.py (74%)
create mode 100644 task-sdk/src/airflow/sdk/execution_time/workloads/task.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/test_supervisor_schemas_name_type_sync.py
create mode 100644 task-sdk/tests/task_sdk/test_log.py