This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/npm_and_yarn/registry/registry-package-updates-8f70f83203
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 3e04fa2f677 Bump @11ty/eleventy
add 38c50f5b54e Explicitly initialize Task SDK Stats in API server
lifespan (hardening; backport fix for 3.2.x) (#68078)
add 79fa1654d8f made await_pod_start to run before
await_init_containers_completion (#68450)
add 56699a8aa88 Add team name in asset graph view (#68457)
add 8ecd4b8bb4b Bump the auth-ui-package-updates group across 1 directory
with 5 updates (#68465)
add 44d9bfa77b0 Remove `workers` section deprecation & simplify Workers
Sets template logic (#66671)
add b64b28f92e3 Bump the github-actions-updates group across 1 directory
with 4 updates (#68470)
add 6b01a04c2f5 docs: Explain the agent tool boundary in common.ai
security docs (#68404)
add 1c40bfb27ec Access AgentRunResult.usage as a property in common.ai
logging (#68405)
add e36fab0095c Create documentation for `allow_consumer_teams` parameter
in asset access control (#66821)
add 2d1aaab9ec0 Use pre-commit hook to keep Java versions in sync (#68448)
add ab2851bc745 Return a 422 when the database rejects an API payload
(#66888)
add f0684b04ccc Revert "Explicitly initialize Task SDK Stats in API server
lifespan (hardenin…" (#68481)
add 31e1d87e129 Split e2e test-helpers.ts into domain-scoped modules
(#66387)
add b7f03406b06 Move JDK installation to image-build time (#68485)
add 0823e7ad189 Fix flaky SimpleAuthManager login tests under parallel
runs (#68498)
add e5bf1e30c1b fix(test_wasb.py): SAS token tests failing with
azure-storage-blob 12.30.0 (#68490)
add 1caab087e5c Complete missing Arabic translations (#68425)
add d5a8294de66 Add regression test for KPO awaiting pod start before
init-container logs (#68503)
add b935b90c5b4 Remove redundant tests from airflow-core (#68513)
add d08a365fe6a Update hungarian translations (#68385)
add fce62f6aae8 Add missing Polish (pl) UI translations (#68410)
add 4f2b0b3faab Magpie: sync setup bootstrap docs + pin triage feedback
channel (#68420)
add 247551da1d0 Add CI duration trend monitor to warn on slow main builds
(#68368)
add 8e4b7500e55 Explicitly initialize Stats in API server lifespan (#68514)
add ec3f008f0b1 Return dag-specified results in dag run wait API (#64577)
add 9101aa66754 Stop exposing trigger kwargs in the REST API response
(#67868)
add be617e7350c Don't auto-add Java SDK Javadoc to provider-list doc
publishes (#68237)
add bfecc03a274 Use paths to fix baseUrl deprecation warning in tsconfig
which helps in using typescript 7 preview. (#68320)
add 74a52cf5d3d Rename task_store/asset_store to
task_state_store/asset_state_store (#68438)
add 10136e51e4a Bump the edge-ui-package-updates group across 1 directory
with 14 updates (#68469)
add c6cb72c208c Make pod patching logic explicitly reflect when a pod is
retained (#68507)
add 9be3dc1860d Document and test xcom_pull run_id usage for triggered DAG
runs (#63030)
add cb7c347d81f Skip FK-referenced dag_version rows during db clean
(#68339)
add 4dc98451ba8 fix: handle unmapped task deadlock when upstream tasks are
removed (#62034)
add 06d4b1ea7d6 Emit dag_processing.last_run.seconds_ago as a tagged
metric (#62487)
add 49ef2f890b8 Avoid N+1 queries when bulk deleting variables (#68508)
add bede83ae390 Fix UI instance name title on non-Dag pages (#68288)
add 9ce71fd2270 Add additional task instance attributes to task instance's
details section (#68378)
add 1a6bfd8753c Unify Dag Code tab toolbar with Logs toolbar style (#68449)
add b9fc11c8ea4 Cleaning up some task_state and asset_state references in
core airflow (#68428)
add 3baec70f90f Renaming old name: task_state to task_store across spark
provider (#68430)
add cad58b72218 Update task_state/asset_state occurences in config.yml
(#68553)
add 05f00d654ae Cleaning up asset_state references in task sdk (#68429)
add 452fed808f6 Block retry_policy argument for StubOperator (#68551)
add 2cc74161a92 Make `example_task_state_store` use minimal context
(#68556)
add 28006a524c0 Add crash recovery ability to SparkSubmitOperator against
Kubernetes (#68067)
add 0e729051dc0 Make task and asset store row size limits configurable
(#68133)
add 2217dbc7d73 Backfill partitioned Dags by partition-date range (#67537)
add 1dc71d8b9b5 fix: fix missing rename in test_spark_submit (#68565)
add 91cce6484ce Escape URL for DagOperations lookup in task sdk client
(#68129)
add 14ab6a03ca7 Add Deadline in Dashboard Page (#68038)
add e09ad45c785 Refresh bundle version in place when DAG serialization is
unchanged (#68336)
add 774b5b50e96 Determine latest Dag version by version_number, not
created_at (#68389)
add 6783f4f7483 Fix airflow partitions clear date range for non-UTC
partitioned timetables (#68460)
add dc9abd4c028 Document apache-airflow-mypy package in core docs (#68561)
add 61f87adf525 feat: fill Taiwanese Mandarin translation gap (#68563)
add 92f1aa3edf4 Reload serialized Dag when a version is updated in place
(#68558)
add 88a1b329a0e Validate partition keys are non-empty and within column
length (#68443)
add 362cc1637a3 Fix Dag run partition key filter breaking on composite
keys with | (#68459)
add 6efd2185859 Fix `DataprocCreateBatchOperator` stuck in deferred state
for a long time (#67638)
add 6f5172b7703 Informatica provider: Add SQL auto-lineage and selective
lineage control (#66612)
add 3576a71ef15 Bump eslint-plugin-unicorn (#68467)
add 2cc26a96ba2 Bump UI dependencies to remove dependabot alarms in core,
esbuild (#68516)
add beb5956ec2d Go-SDK: support UP_FOR_RETRY in coordinator mode with e2e
coverage (#68554)
add 0ce2db5c13d Bump aiohttp in
/providers/informatica/dev/informatica_simulator (#68571)
add bdebdbd80c0 Fix typos/format test in Fundamentals docs (#68524)
add 30958e59c81 Bump requests in
/providers/informatica/dev/informatica_simulator (#68572)
add 8445434051c Defer `InProcessExecutionAPI` import (#68569)
add 69637835c52 Tighten test-scope guidance: test only what the PR changes
(#68502)
add f2ccc97b128 Add producer-side ack channel to shared-stream triggers
(#67523)
add d0ced937ac0 Factor out a shared base for the database error handlers
(#68512)
add a5684bf8d03 Check destination team permission when using bulk APIs
with connections, variables and pools (#68573)
add ecc04df016e Bump prettier (#68576)
add 24304609b59 Bump vite in /dev/react-plugin-tools/react_plugin_template
(#68581)
add b4ae8743ab1 Bump vite (#68580)
add d0201c51596 Bump vite from 8.0.8 to 8.0.16 in
/airflow-core/src/airflow/ui (#68579)
add eee0b99826e Fix `LlamaIndexEmbeddingOperator` returning `vector=None`
for every chunk (#68491)
add 033aeb1a7c1 Upload task logs even when final state update fails
(#67935)
add 07a7a5297d6 Java-SDK: support UP_FOR_RETRY in coordinator mode with
e2e coverage (#68555)
add 19163e949a2 Add team_name tag to executor metrics for multi-team
deployments (#68593)
add 34e8803c9ba docs: readme 2.11 deprecate (#68559)
add 41f20d5f6c5 Remote logging fix (#68370)
add c9861d6750d Cap fastapi <0.137 and fix execution API health empty-path
route (#68578)
add 2c15b448095 UI: Complete Hindi (hi) translation coverage (#68574)
add ec850dfd627 Improve HITL form UX (#68397)
add c921eaaacbd Collapse unreleased Execution API versions under
2026-06-30 (#68611)
add 92a2b0d7249 Some more notes for Java SDK publishing (#68440)
add 376cecdb9f2 Add ServiceNow to INTHEWILD.md (#68409)
add b35ecd59e18 Add configurable UPSERT update fields to PostgresHook
(#67045)
add 18506de1629 Feat note modal (#68362)
add c03460ed9dd common.ai: Park approval reviews in awaiting_input on
Airflow 3.3+ (#68489)
add b193ced28a7 Enforce SQLToolset allowed_tables on queries, not just
discovery (#68487)
add 5b84fc006af Bump aiohttp in
/providers/informatica/dev/informatica_simulator (#68607)
add 98ea29a1e9f Upload log with `put_object` in `s3_task_handler` (#68619)
add aa9f6a0d0d2 Add conventional commit (#68631)
add b637e193b6f Document commit and PR title and body conventions in
AGENTS.md (#68632)
add 1b6e47afa54 Fix task scheduling when multi_team is enabled (#68634)
add 89e9f41dd83 Fix sensitive data leak in SparkSubmitOperator truncated
templates (#68624)
add 250fbb22be1 Add notification UX for HITL actions (#68346)
add f6bd8b48d29 Add team_name tag to scheduler metrics for multi-team
deployments (#68594)
add 86a75201759 Fix task runner failure on duplicate TI success update
conflict (#63355)
add 826999928ae Add agent guidance to comment sparingly (#68640)
add 58480dd8386 Fix common.ai example DAGs failing to parse without the
sql extra (#68497)
add b191f539330 Add team_name tag to deadline metrics for multi-team
deployments (#68589)
add 9d92c221454 Warn release managers to verify
prepare-providers-documentation output (#68641)
add a42fdb94ea3 Sync uv.lock and provider-deps checksum for #66612 (#68620)
add 7e9bdb245e0 Remove dead AIP-44 trigger-over-BaseSerialization path
(DAT.BASE_TRIGGER) (#68528)
add 5129c1f0d0e Fix flaky shared-stream overflow test that times out in CI
(#68651)
add 853d84ed950 Fix contributing-docs broken links (#68655)
add f3037c173f6 Document that the Google OpenID auth backend matches users
by their (mutable) email (#68391)
add 0385bae7055 Validate destination paths derived from GCS object names
(#67667)
add 58ba6620616 Fix misleading comment and pin reprocess behaviour for
partitioned backfill (#68618)
add c006c184df6 Forward Google Cloud Run container logs to Airflow log via
verbose flag (#67140)
add 28ca0b66260 Harden S3 sync target paths (#67847)
add 2963064c06f Derive partition_date for composite keys with one temporal
dimension (#68442)
add 48d0ad5f89f Add tests for links/base and links/bigquery in Google
provider (#68066)
add bb859bde5a4 Add opensearch to default PROD image extras (#68659)
add c5bbd4b087a Instruct agents to reduce direct AirflowException usage
(#68656)
add 272904f4c03 prepare-providers-doc skill: batch classification to cut
sub-agents (#68653)
add 844a892cb99 Bump `clickhouse-connect>=1.3.0` (#68400)
add 9140ce5aee1 Percent-encode API client path params for keys with
slashes (#68667)
add bf590ccd179 UI E2E: Clarify HITL e2e helper parameter name and error
message (#68646)
add 3d0fb9f8993 docs: add wait policy examples to asset partition example
(#68658)
add bd9270d5441 Fix bulk create+overwrite silently resetting unset fields
on pools and connections (#68645)
add 6b41214e395 Enforce pool team ownership in scheduling loop (#68649)
add 674544c8918 Add openlineage system tests for missing use cases (#68664)
add b6bf6a83b51 UI: Fix misleading Calendar Total Runs coloring behavior
(#67595)
add fa273d83075 Fix triggerer crash when trigger subclass does not call
`super().__init__()` (#68636)
add cf2d0475312 Bump eslint (#68681)
add 88b89283722 Add 'classify-provider-changes' breeze command for
deterministic change classification (#68215)
add 2746dcb1a24 Fix mypy errors for task_instance access in provider
triggers (#68685)
add 57593bb1881 Add code mode (Monty sandbox) to common.ai AgentOperator
(#68407)
add db26df7d165 fix: Verify durable cached agent steps match the request
before replay (#68372)
add db9fa4289fe Populate partition_date when manually triggering
partitioned Dags (#68458)
add d9b363c630e UI: Fix inconsistent padding between Dag Runs and Task
Instances list views (#68689)
add 8050e7c7297 Fix the gap of Taiwanese Mandarin translation (#68668)
add 7cc1d693b7e Add team_name tag to remaining multi-team metrics (#68601)
add 0508dea89db Fix Databricks operators with templated json payloads
(#68519)
add 9928bb3292e Use async versions of CertificateCredential and
ClientSecretCredential in KiotaRequestAdapterHook (#68375)
add 4d5046d78ce Adding example dag for task state store with mapped tasks
(#68670)
add 50271018585 Fixed "AttributeError: 'NoneType' object has no attribute
'close'" for SmtpHook (#62409)
add 71532401a01 Small operator improvements in openlineage system tests
(#68677)
add c59f4cd8bb7 Fix TaskSDK swallowing errors when Variable.set() or
Variable.delete() fails (#68542)
add 91ba4a23a89 Fix fab deserialize user session leak (#68100)
add 59fc9e284dd Skip asset-change registration for tasks with no outlets
(#68687)
add aa0609f0867 Add team_name tag to dag processor metrics for multi-team
deployments (#68599)
add 8b46c346ed8 Add team_name tag to asset metrics for multi-team
deployments (#68367)
add d7d84b46d81 Indent dag-run span TODO comment continuation lines
(#68643)
add be44ad1ac6c Make head sampling possible in airflow (#68591)
add 9c4908019a3 Add Ray constraints for Python 3.14 in Google provider
(#68710)
add 531bfab9dee Add `message_history` to `AgentOperator` for multi-turn
agent sessions (#68648)
add b237fd02d25 Update multi-team docs for the 3.3 release (#68728)
add 583e54fc65f Add segment fan-out example to asset partition example Dag
(#68722)
add 0236c5775db Prepare provider documentation 2026-06-16 (#68642)
add ddb63a4a1a1 Resolve common.ai '# use next version' pin to
common-compat 1.15.0 (#68740)
add 7e7e4a95e0c Add update-providers-next-version step to provider docs
skill (#68739)
add d74fbff4e32 Apply `rerun_with_latest_version` to TriggerDagRunOperator
reruns (#67273)
add d445240be7d Fix `RecursionError` in `common.compat` hook lineage
`add_extra polyfill` (#68735)
add 6f623854097 Fix flaky AwsTaskLogFetcher tests caused by global
Event.is_set mock (#68746)
add 3fc2f02fa8b Fix GlueJobHook failing to update a Glue job that has tags
(#68711)
add bb5d903fa8a Rename misleading last_automated_run param to
reference_run (#68714)
add 832ecf89a36 Document breaking-change changelog notes in provider docs
skill (#68738)
add 969a0c56e4a Bump @11ty/eleventy
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 (3e04fa2f677)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/registry/registry-package-updates-8f70f83203
(969a0c56e4a)
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/magpie-setup/adopt.md | 49 +
.agents/skills/magpie-setup/unadopt.md | 12 +-
.agents/skills/magpie-setup/upgrade.md | 10 +
.agents/skills/magpie-setup/verify.md | 31 +
.../prepare-providers-documentation/SKILL.md | 244 +-
.apache-magpie-overrides/pr-management-config.md | 7 +
.github/instructions/code-review.instructions.md | 6 +-
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 8 +-
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/airflow-e2e-tests.yml | 2 +-
.github/workflows/asf-allowlist-check.yml | 2 +-
.github/workflows/backport-cli.yml | 2 +-
.github/workflows/basic-tests.yml | 22 +-
.github/workflows/ci-amd.yml | 23 +-
.github/workflows/ci-arm.yml | 23 +-
...ky-tests-report.yml => ci-duration-monitor.yml} | 29 +-
.github/workflows/ci-image-build.yml | 2 +-
.github/workflows/ci-image-checks.yml | 12 +-
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/codeql-analysis.yml | 13 +-
.github/workflows/e2e-flaky-tests-report.yml | 2 +-
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/generate-constraints.yml | 2 +-
.github/workflows/helm-tests.yml | 4 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/k8s-tests.yml | 2 +-
.github/workflows/milestone-tag-assistant.yml | 2 +-
.github/workflows/notify-uv-lock-conflicts.yml | 2 +-
.github/workflows/prod-image-build.yml | 4 +-
.github/workflows/publish-docs-to-s3.yml | 26 +-
.github/workflows/push-image-cache.yml | 4 +-
.github/workflows/registry-backfill.yml | 8 +-
.github/workflows/registry-build.yml | 4 +-
.github/workflows/registry-tests.yml | 4 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 4 +-
.github/workflows/run-unit-tests.yml | 2 +-
.../scheduled-verify-release-calendar.yml | 2 +-
.github/workflows/test-providers.yml | 4 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.../update-constraints-on-push-stable.yml | 8 +-
.github/workflows/update-constraints-on-push.yml | 8 +-
.github/workflows/upgrade-check.yml | 2 +-
.pre-commit-config.yaml | 14 +
AGENTS.md | 16 +-
Dockerfile | 22 +-
Dockerfile.ci | 25 +-
INTHEWILD.md | 1 +
README.md | 2 +-
.../docs/administration-and-deployment/index.rst | 4 +-
....rst => task-and-asset-state-store-cleanup.rst} | 20 +-
...et-store.rst => task-and-asset-state-store.rst} | 36 +-
.../docs/authoring-and-scheduling/assets.rst | 18 +-
.../authoring-and-scheduling/event-scheduling.rst | 296 ++-
airflow-core/docs/best-practices.rst | 10 +
.../{asset-store.rst => asset-state-store.rst} | 70 +-
airflow-core/docs/core-concepts/backfill.rst | 26 +-
airflow-core/docs/core-concepts/index.rst | 8 +-
airflow-core/docs/core-concepts/multi-team.rst | 360 ++-
.../docs/core-concepts/resumable-tasks.rst | 10 +-
...et-store.rst => task-and-asset-state-store.rst} | 26 +-
.../{task-store.rst => task-state-store.rst} | 80 +-
airflow-core/docs/core-concepts/xcoms.rst | 10 +
airflow-core/docs/howto/index.rst | 1 +
airflow-core/docs/howto/static-type-checking.rst | 75 +
airflow-core/docs/migrations-ref.rst | 2 +-
airflow-core/docs/tutorial/fundamentals.rst | 10 +-
airflow-core/newsfragments/62487.significant.rst | 1 +
airflow-core/newsfragments/67523.feature.rst | 1 +
airflow-core/newsfragments/67868.bugfix.rst | 1 +
airflow-core/pyproject.toml | 6 +-
airflow-core/src/airflow/api/common/trigger_dag.py | 3 +
airflow-core/src/airflow/api_fastapi/app.py | 24 +
.../auth/managers/simple/ui/package.json | 15 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 601 ++---
.../src/airflow/api_fastapi/common/dagbag.py | 25 +
.../src/airflow/api_fastapi/common/exceptions.py | 110 +-
.../src/airflow/api_fastapi/common/parameters.py | 41 +-
.../{asset_store.py => asset_state_store.py} | 35 +-
.../api_fastapi/core_api/datamodels/dag_run.py | 4 +
.../{task_store.py => task_state_store.py} | 37 +-
.../api_fastapi/core_api/datamodels/trigger.py | 22 +-
.../api_fastapi/core_api/datamodels/ui/common.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 27 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 383 +--
.../api_fastapi/core_api/routes/public/__init__.py | 8 +-
.../{asset_store.py => asset_state_store.py} | 112 +-
.../core_api/routes/public/backfills.py | 2 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 25 +-
.../core_api/routes/public/task_instances.py | 2 +-
.../public/{task_store.py => task_state_store.py} | 122 +-
.../src/airflow/api_fastapi/core_api/security.py | 55 +-
.../api_fastapi/core_api/services/public/common.py | 26 -
.../core_api/services/public/connections.py | 7 +-
.../core_api/services/public/dag_run.py | 34 +-
.../api_fastapi/core_api/services/public/pools.py | 9 +-
.../core_api/services/public/task_instances.py | 8 +-
.../core_api/services/public/variables.py | 19 +-
.../core_api/services/ui/dependencies.py | 21 +
.../{asset_store.py => asset_state_store.py} | 8 +-
.../{task_store.py => task_state_store.py} | 8 +-
.../api_fastapi/execution_api/routes/__init__.py | 16 +-
.../{asset_store.py => asset_state_store.py} | 80 +-
.../api_fastapi/execution_api/routes/dag_runs.py | 12 +-
.../api_fastapi/execution_api/routes/health.py | 4 +-
.../execution_api/routes/task_instances.py | 84 +-
.../routes/{task_store.py => task_state_store.py} | 36 +-
.../api_fastapi/execution_api/versions/__init__.py | 15 +-
.../execution_api/versions/v2026_06_16.py | 80 -
.../execution_api/versions/v2026_06_30.py | 65 +-
airflow-core/src/airflow/assets/manager.py | 10 +-
airflow-core/src/airflow/cli/cli_config.py | 28 +-
.../src/airflow/cli/commands/backfill_command.py | 2 +-
.../src/airflow/cli/commands/partition_command.py | 24 +-
.../airflow/cli/commands/state_store_command.py | 12 +-
.../src/airflow/config_templates/config.yml | 36 +-
.../src/airflow/dag_processing/collection.py | 4 +-
airflow-core/src/airflow/dag_processing/manager.py | 129 +-
.../src/airflow/dag_processing/processor.py | 16 +-
.../example_dags/example_asset_partition.py | 128 +-
...asset_store.py => example_asset_state_store.py} | 22 +-
...e_task_store.py => example_task_state_store.py} | 33 +-
.../example_task_state_store_mapped.py | 59 +
airflow-core/src/airflow/exceptions.py | 9 +
.../src/airflow/executors/base_executor.py | 7 +-
.../src/airflow/jobs/scheduler_job_runner.py | 112 +-
.../src/airflow/jobs/triggerer_job_runner.py | 84 +-
...sk_state_store_and_asset_state_store_tables.py} | 36 +-
airflow-core/src/airflow/models/__init__.py | 4 +-
.../{asset_store.py => asset_state_store.py} | 8 +-
airflow-core/src/airflow/models/backfill.py | 49 +-
airflow-core/src/airflow/models/callback.py | 12 +-
airflow-core/src/airflow/models/dag.py | 16 +-
airflow-core/src/airflow/models/dag_version.py | 9 +-
airflow-core/src/airflow/models/dagbag.py | 83 +-
airflow-core/src/airflow/models/dagrun.py | 38 +-
airflow-core/src/airflow/models/deadline.py | 23 +-
airflow-core/src/airflow/models/serialized_dag.py | 105 +-
.../models/{task_store.py => task_state_store.py} | 14 +-
airflow-core/src/airflow/models/taskinstance.py | 10 +-
.../src/airflow/partition_mappers/product.py | 31 +-
.../src/airflow/serialization/definitions/dag.py | 79 +-
airflow-core/src/airflow/serialization/enums.py | 1 -
.../airflow/serialization/serialized_objects.py | 17 +-
airflow-core/src/airflow/state/metastore.py | 240 +-
.../src/airflow/ti_deps/deps/trigger_rule_dep.py | 23 +-
airflow-core/src/airflow/timetables/base.py | 60 +-
airflow-core/src/airflow/timetables/simple.py | 42 +
airflow-core/src/airflow/timetables/trigger.py | 80 +-
airflow-core/src/airflow/triggers/base.py | 76 +-
airflow-core/src/airflow/triggers/shared_stream.py | 999 +++++++-
.../src/airflow/ui/openapi-gen/queries/common.ts | 56 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 134 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 134 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 208 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 134 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 99 +-
.../ui/openapi-gen/requests/services.gen.ts | 198 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 229 +-
airflow-core/src/airflow/ui/package.json | 6 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 534 +---
.../airflow/ui/public/i18n/locales/ar/admin.json | 21 +-
.../airflow/ui/public/i18n/locales/ar/assets.json | 21 +-
.../airflow/ui/public/i18n/locales/ar/browse.json | 22 +
.../airflow/ui/public/i18n/locales/ar/common.json | 90 +-
.../ui/public/i18n/locales/ar/components.json | 14 +-
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 111 +-
.../airflow/ui/public/i18n/locales/ar/dags.json | 5 +
.../ui/public/i18n/locales/ar/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/ca/assets.json | 5 +-
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 4 +-
.../airflow/ui/public/i18n/locales/en/assets.json | 20 +-
.../airflow/ui/public/i18n/locales/en/common.json | 12 +-
.../src/airflow/ui/public/i18n/locales/en/dag.json | 24 +-
.../ui/public/i18n/locales/en/dashboard.json | 12 +
.../airflow/ui/public/i18n/locales/en/hitl.json | 14 +
.../airflow/ui/public/i18n/locales/hi/admin.json | 3 +-
.../airflow/ui/public/i18n/locales/hi/assets.json | 17 +
.../airflow/ui/public/i18n/locales/hi/browse.json | 18 +
.../airflow/ui/public/i18n/locales/hi/common.json | 85 +-
.../ui/public/i18n/locales/hi/components.json | 9 +-
.../src/airflow/ui/public/i18n/locales/hi/dag.json | 85 +-
.../airflow/ui/public/i18n/locales/hi/dags.json | 5 +
.../ui/public/i18n/locales/hi/dashboard.json | 14 +
.../airflow/ui/public/i18n/locales/hu/admin.json | 9 +-
.../airflow/ui/public/i18n/locales/hu/assets.json | 15 +-
.../airflow/ui/public/i18n/locales/hu/browse.json | 18 +
.../airflow/ui/public/i18n/locales/hu/common.json | 63 +-
.../ui/public/i18n/locales/hu/components.json | 15 +-
.../src/airflow/ui/public/i18n/locales/hu/dag.json | 85 +-
.../airflow/ui/public/i18n/locales/hu/dags.json | 5 +
.../ui/public/i18n/locales/hu/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/hu/tasks.json | 2 +-
.../airflow/ui/public/i18n/locales/pl/assets.json | 14 +
.../airflow/ui/public/i18n/locales/pl/browse.json | 20 +
.../airflow/ui/public/i18n/locales/pl/common.json | 20 +-
.../ui/public/i18n/locales/pl/components.json | 3 +
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 22 +
.../ui/public/i18n/locales/pl/dashboard.json | 2 +
.../ui/public/i18n/locales/zh-CN/assets.json | 5 +-
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 4 +-
.../ui/public/i18n/locales/zh-TW/assets.json | 5 +-
.../ui/public/i18n/locales/zh-TW/common.json | 18 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 8 +-
.../ui/public/i18n/locales/zh-TW/dashboard.json | 12 +
.../airflow/ui/public/i18n/locales/zh-TW/hitl.json | 14 +
.../ui/src/components/EditableMarkdownArea.tsx | 85 -
.../ui/src/components/EditableMarkdownButton.tsx | 60 +-
.../src/components/FlexibleForm/FlexibleForm.tsx | 74 +
.../airflow/ui/src/components/Graph/DagNode.tsx | 16 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 13 +
.../ui/src/components/Graph/elkGraphUtils.ts | 2 +
.../ui/src/components/Graph/reactflowUtils.ts | 1 +
.../HITLReview/HITLReviewDetail.tsx} | 46 +-
.../HITLReview/HITLReviewDetailSummary.tsx | 74 +
.../src/components/HITLReview/HITLReviewDrawer.tsx | 65 +
.../src/components/HITLReview/HITLReviewList.tsx | 115 +
.../HITLReview/HITLReviewListSection.tsx | 57 +
.../components/HITLReview/HITLReviewModal.test.tsx | 109 +
.../src/components/HITLReview/HITLReviewModal.tsx | 155 ++
.../useHITLReviewModalRouteSync.test.tsx | 78 +
.../HITLReview/useHITLReviewModalRouteSync.ts | 58 +
.../HITLReview/useHITLReviewModalSelection.test.ts | 72 +
.../HITLReview/useHITLReviewModalSelection.ts | 54 +
.../src/airflow/ui/src/components/HeaderCard.tsx | 8 +-
.../ui/src/components/MarkdownModal.test.tsx | 131 +
.../airflow/ui/src/components/MarkdownModal.tsx | 181 ++
.../airflow/ui/src/components/NeedsReviewBadge.tsx | 42 +-
.../ui/src/components/NeedsReviewButton.tsx | 143 +-
.../index.ts => components/NoteIcon.tsx} | 7 +-
.../airflow/ui/src/components/NotePreview.test.tsx | 98 +
.../src/airflow/ui/src/components/NotePreview.tsx | 104 +
.../airflow/ui/src/components/ReactMarkdown.tsx | 34 +-
.../airflow/ui/src/components/ui/LazyClipboard.tsx | 5 +-
.../ui/src/components/ui/ResizableWrapper.tsx | 10 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 2 +-
.../src/airflow/ui/src/layouts/BaseLayout.test.tsx | 111 +
.../src/airflow/ui/src/layouts/BaseLayout.tsx | 39 +-
.../src/airflow/ui/src/layouts/StorageLayout.tsx | 2 +-
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 6 +-
.../AddAssetStateStoreButton.tsx} | 8 +-
.../AssetStateStore.tsx} | 42 +-
.../AssetStateStoreModal.tsx} | 23 +-
.../ClearAllAssetStateStoreButton.tsx} | 29 +-
.../DeleteAssetStateStoreButton.tsx} | 23 +-
.../EditAssetStateStoreButton.tsx} | 14 +-
.../Asset/{AssetStore => AssetStateStore}/index.ts | 2 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 10 +-
.../ui/src/pages/Dag/Calendar/CalendarLegend.tsx | 109 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 1 +
.../src/pages/Dag/Calendar/calendarUtils.test.ts | 134 +-
.../ui/src/pages/Dag/Calendar/calendarUtils.ts | 164 +-
.../src/airflow/ui/src/pages/Dag/Calendar/types.ts | 4 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 79 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 13 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 2 +
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 2 -
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 2 +
.../RunNoteButton.tsx} | 34 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 10 +-
.../DagsList/DagsFilters/RequiredActionFilter.tsx | 5 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 4 +-
.../airflow/ui/src/pages/Dashboard/Dashboard.tsx | 24 +-
.../Dashboard/Deadlines/DashboardDeadlines.tsx | 114 +
.../src/pages/Dashboard/Deadlines/DeadlineItem.tsx | 53 +
.../pages/Dashboard/Deadlines/DeadlineSection.tsx | 85 +
.../AssetStore => Dashboard/Deadlines}/index.ts | 2 +-
.../HistoricalMetrics/HistoricalMetrics.tsx | 19 +-
.../airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 4 +-
.../src/pages/Dashboard/useDashboardDeadlines.ts | 69 +
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 23 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 81 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 45 +-
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 10 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 63 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 52 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 8 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 2 +-
.../TaskInstanceNoteButton.tsx} | 34 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 2 +
.../pages/TaskInstances/TaskInstancesFilter.tsx | 14 +-
.../AddTaskStateStoreButton.tsx} | 8 +-
.../ClearAllTaskStateStoreButton.tsx} | 27 +-
.../DeleteTaskStateStoreButton.tsx} | 23 +-
.../EditTaskStateStoreButton.tsx} | 8 +-
.../TaskStateStore.tsx} | 36 +-
.../TaskStateStoreModal.tsx} | 31 +-
.../pages/{TaskStore => TaskStateStore}/index.ts | 2 +-
.../useDagRunNote.ts} | 35 +-
.../src/airflow/ui/src/queries/useNoteEditor.ts | 48 +
.../airflow/ui/src/queries/useTaskInstanceNote.ts | 52 +
.../airflow/ui/src/queries/useUpdateHITLDetail.ts | 13 +-
airflow-core/src/airflow/ui/src/queryClient.ts | 6 +
airflow-core/src/airflow/ui/src/router.tsx | 18 +-
.../index.ts => utils/documentTitleContext.ts} | 5 +-
airflow-core/src/airflow/ui/src/utils/hitl.ts | 6 +-
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
.../src/airflow/ui/src/utils/useDocumentTitle.ts | 19 +-
...cumentTitle.ts => useDocumentTitleProvider.tsx} | 24 +-
.../e2e/components/HITLReviewDrawer.ts} | 14 +-
.../e2e/components/HITLReviewModal.ts} | 14 +-
.../airflow/ui/tests/e2e/fixtures/asset-data.ts | 2 +-
.../ui/tests/e2e/fixtures/audit-log-data.ts | 2 +-
.../airflow/ui/tests/e2e/fixtures/calendar-data.ts | 4 +-
.../airflow/ui/tests/e2e/fixtures/dag-runs-data.ts | 4 +-
.../ui/tests/e2e/fixtures/dashboard-data.ts | 2 +-
.../src/airflow/ui/tests/e2e/fixtures/data.ts | 30 +-
.../src/airflow/ui/tests/e2e/fixtures/pom.ts | 10 +
.../ui/tests/e2e/fixtures/task-instances-data.ts | 8 +-
.../src/airflow/ui/tests/e2e/fixtures/xcom-data.ts | 4 +-
.../src/airflow/ui/tests/e2e/global-setup.ts | 2 +-
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 2 +-
.../airflow/ui/tests/e2e/pages/ConnectionsPage.ts | 2 +-
.../airflow/ui/tests/e2e/pages/DagDetailPage.ts | 48 +
.../src/airflow/ui/tests/e2e/pages/DagRunPage.ts | 48 +
.../src/airflow/ui/tests/e2e/pages/DagsPage.ts | 21 +
.../src/airflow/ui/tests/e2e/pages/HomePage.ts | 5 +
.../ui/tests/e2e/pages/RequiredActionsPage.ts | 31 +-
.../airflow/ui/tests/e2e/specs/backfill.spec.ts | 4 +-
.../airflow/ui/tests/e2e/specs/connections.spec.ts | 2 +-
.../airflow/ui/tests/e2e/specs/dag-detail.spec.ts | 43 +
.../src/airflow/ui/tests/e2e/specs/dag-run.spec.ts | 43 +
.../airflow/ui/tests/e2e/specs/dags-list.spec.ts | 44 +-
.../ui/tests/e2e/specs/home-dashboard.spec.ts | 15 +
.../src/airflow/ui/tests/e2e/specs/pools.spec.ts | 2 +-
.../ui/tests/e2e/specs/requiredAction.spec.ts | 14 +-
.../airflow/ui/tests/e2e/specs/variable.spec.ts | 3 +-
.../airflow/ui/tests/e2e/utils/api/backfills.ts | 188 ++
.../src/airflow/ui/tests/e2e/utils/api/dag-runs.ts | 345 +++
.../src/airflow/ui/tests/e2e/utils/api/hitl.ts | 216 ++
.../airflow/ui/tests/e2e/utils/api/variables.ts | 66 +
.../e2e/utils/shared.ts} | 34 +-
.../src/airflow/ui/tests/e2e/utils/test-helpers.ts | 802 ------
.../src/airflow/ui/tests/e2e/utils/ui/waits.ts | 64 +
airflow-core/src/airflow/ui/tsconfig.app.json | 5 +-
airflow-core/src/airflow/utils/db_cleanup.py | 52 +-
airflow-core/src/airflow/utils/email.py | 4 +-
.../tests/unit/always/test_project_structure.py | 2 -
.../tests/unit/api/common/test_trigger_dag.py | 68 +
.../api_fastapi/auth/managers/simple/conftest.py | 16 +
.../unit/api_fastapi/common/test_exceptions.py | 110 +-
.../unit/api_fastapi/common/test_parameters.py | 42 +
.../core_api/datamodels/test_trigger.py | 56 +
...st_asset_store.py => test_asset_state_store.py} | 92 +-
.../core_api/routes/public/test_backfills.py | 128 +
.../core_api/routes/public/test_connections.py | 34 +
.../core_api/routes/public/test_dag_run.py | 238 +-
.../core_api/routes/public/test_pools.py | 65 +
.../core_api/routes/public/test_task_instances.py | 26 +-
...test_task_store.py => test_task_state_store.py} | 128 +-
.../core_api/routes/public/test_variables.py | 26 +
.../core_api/routes/ui/test_dependencies.py | 86 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 13 +-
.../core_api/routes/ui/test_structure.py | 22 +
.../unit/api_fastapi/core_api/test_security.py | 99 +
.../api_fastapi/execution_api/routes}/__init__.py | 0
.../execution_api/routes/test_health_routes.py | 38 +
...st_asset_store.py => test_asset_state_store.py} | 40 +-
.../execution_api/versions/head/test_dag_runs.py | 58 +-
.../versions/head/test_task_instances.py | 217 +-
...test_task_store.py => test_task_state_store.py} | 44 +-
.../versions/v2026_06_30/test_connection_tests.py | 2 +-
.../versions/v2026_06_30/test_variables.py | 2 +-
airflow-core/tests/unit/api_fastapi/test_app.py | 44 +
airflow-core/tests/unit/assets/test_manager.py | 57 +-
.../unit/cli/commands/test_backfill_command.py | 26 +
.../unit/cli/commands/test_kerberos_command.py | 10 -
.../unit/cli/commands/test_partition_command.py | 227 +-
.../unit/cli/commands/test_state_store_command.py | 14 +-
.../tests/unit/dag_processing/test_manager.py | 312 ++-
.../tests/unit/dag_processing/test_processor.py | 105 +-
.../tests/unit/executors/test_base_executor.py | 57 +-
airflow-core/tests/unit/jobs/test_base_job.py | 10 -
airflow-core/tests/unit/jobs/test_scheduler_job.py | 266 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 333 ++-
.../tests/unit/logging/test_logging_config.py | 8 -
...st_asset_store.py => test_asset_state_store.py} | 46 +-
airflow-core/tests/unit/models/test_backfill.py | 555 +++-
airflow-core/tests/unit/models/test_callback.py | 45 +
airflow-core/tests/unit/models/test_dag.py | 83 +-
airflow-core/tests/unit/models/test_dag_version.py | 61 +-
airflow-core/tests/unit/models/test_dagbag.py | 162 +-
airflow-core/tests/unit/models/test_dagrun.py | 198 +-
airflow-core/tests/unit/models/test_deadline.py | 120 +
.../tests/unit/models/test_serialized_dag.py | 106 +
...test_task_store.py => test_task_state_store.py} | 56 +-
.../tests/unit/models/test_taskinstance.py | 56 +
.../tests/unit/partition_mappers/test_product.py | 40 +
.../partition_mappers/test_rollup_wait_policy.py | 17 -
.../tests/unit/serialization/test_helpers.py | 23 +
.../unit/serialization/test_serialized_objects.py | 32 +-
airflow-core/tests/unit/state/test_metastore.py | 213 +-
.../unit/ti_deps/deps/test_trigger_rule_dep.py | 90 +
.../unit/timetables/test_partitioned_timetable.py | 23 +
.../unit/timetables/test_trigger_timetable.py | 238 ++
.../tests/unit/triggers/test_base_trigger.py | 30 +
.../tests/unit/triggers/test_shared_stream.py | 2652 +++++++++++++++++++-
airflow-core/tests/unit/utils/test_db_cleanup.py | 95 +-
airflow-core/tests/unit/utils/test_email.py | 6 +-
.../src/airflowctl/api/datamodels/generated.py | 44 +-
.../go_sdk_tests/test_go_sdk_dag.py | 60 +-
.../java_sdk_tests/test_java_sdk_dag.py | 44 +-
chart/files/pod-template-file.kubernetes-helm-yaml | 96 +-
chart/templates/NOTES.txt | 704 ------
chart/templates/_helpers.yaml | 48 +-
.../pgbouncer/pgbouncer-networkpolicy.yaml | 10 +-
chart/templates/rbac/job-launcher-rolebinding.yaml | 5 +-
chart/templates/rbac/pod-launcher-rolebinding.yaml | 5 +-
.../security-context-constraint-rolebinding.yaml | 5 +-
.../templates/scheduler/scheduler-deployment.yaml | 18 +-
.../secrets/metadata-connection-secret.yaml | 10 +-
chart/templates/workers/worker-deployment.yaml | 241 +-
chart/templates/workers/worker-hpa.yaml | 29 +-
chart/templates/workers/worker-kedaautoscaler.yaml | 39 +-
.../workers/worker-kubernetes-serviceaccount.yaml | 8 +-
chart/templates/workers/worker-networkpolicy.yaml | 17 +-
.../workers/worker-poddisruptionbudget.yaml | 21 +-
chart/templates/workers/worker-service.yaml | 17 +-
chart/templates/workers/worker-serviceaccount.yaml | 20 +-
chart/tests/chart_utils/log_groomer.py | 40 +-
.../helm_tests/airflow_aux/test_airflow_common.py | 12 +-
.../helm_tests/airflow_aux/test_annotations.py | 128 -
.../airflow_aux/test_container_lifecycle.py | 159 +-
.../airflow_aux/test_job_launcher_role.py | 36 +-
.../airflow_aux/test_pod_launcher_role.py | 72 +-
.../airflow_aux/test_pod_template_file.py | 1042 ++------
.../helm_tests/airflow_core/test_pdb_worker.py | 117 +-
.../helm_tests/airflow_core/test_scheduler.py | 101 +-
chart/tests/helm_tests/airflow_core/test_worker.py | 1721 +++----------
.../helm_tests/airflow_core/test_worker_sets.py | 2126 ++++------------
chart/tests/helm_tests/other/test_hpa.py | 100 +-
chart/tests/helm_tests/other/test_keda.py | 191 +-
chart/tests/helm_tests/other/test_pgbouncer.py | 24 +-
chart/tests/helm_tests/security/test_kerberos.py | 57 +-
chart/tests/helm_tests/security/test_rbac.py | 25 +-
.../helm_tests/security/test_rbac_pod_launcher.py | 7 +-
.../helm_tests/security/test_scc_rolebinding.py | 36 +-
.../helm_tests/security/test_security_context.py | 325 +--
chart/values.schema.json | 1386 +---------
chart/values.yaml | 691 +----
contributing-docs/01_roles_in_airflow_project.rst | 6 +-
contributing-docs/02_how_to_communicate.rst | 2 +-
contributing-docs/05_pull_requests.rst | 14 +-
contributing-docs/30_new_language_sdk.rst | 4 +
dev/README_RELEASE_PROVIDERS.md | 43 +-
dev/breeze/doc/09_release_management_tasks.rst | 19 +
dev/breeze/doc/images/output_build-docs.svg | 2 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 4 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
.../doc/images/output_release-management.svg | 96 +-
.../doc/images/output_release-management.txt | 2 +-
...elease-management_classify-provider-changes.svg | 200 ++
...elease-management_classify-provider-changes.txt | 1 +
.../output_setup_check-all-params-in-groups.svg | 10 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 80 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 16 +-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 16 +-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
.../src/airflow_breeze/commands/common_options.py | 2 +-
.../airflow_breeze/commands/developer_commands.py | 6 -
.../commands/developer_commands_config.py | 2 -
.../commands/release_management_commands.py | 109 +
.../commands/release_management_commands_config.py | 19 +
dev/breeze/src/airflow_breeze/global_constants.py | 1 +
.../src/airflow_breeze/params/shell_params.py | 3 -
.../prepare_providers/provider_documentation.py | 44 +
dev/breeze/tests/test_provider_documentation.py | 42 +
dev/breeze/tests/test_selective_checks.py | 2 +-
.../react_plugin_template/package.json | 8 +-
.../react_plugin_template/pnpm-lock.yaml | 553 +---
docker-stack-docs/build-arg-ref.rst | 1 +
docs/spelling_wordlist.txt | 4 +
generated/PYPI_README.md | 2 +-
generated/provider_dependencies.json | 11 +-
generated/provider_dependencies.json.sha256sum | 2 +-
go-sdk/dags/go_examples.py | 20 +-
go-sdk/example/bundle/main.go | 15 +-
go-sdk/pkg/execution/frames.go | 13 +
go-sdk/pkg/execution/integration_test.go | 56 +
go-sdk/pkg/execution/messages.go | 26 +-
go-sdk/pkg/execution/messages_test.go | 13 +
go-sdk/pkg/execution/task_runner.go | 29 +-
java-sdk/README.md | 12 +
.../main/kotlin/airflow-jvm-conventions.gradle.kts | 7 +-
.../apache/airflow/example/AnnotationExample.java | 12 +-
.../example/src/resources/dags/java_examples.py | 7 +
.../org/apache/airflow/sdk/execution/Task.kt | 15 +-
.../org/apache/airflow/sdk/execution/TaskTest.kt | 11 +
providers/.last_release_date.txt | 2 +-
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 11 +
providers/alibaba/docs/index.rst | 6 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
providers/amazon/README.rst | 6 +-
providers/amazon/docs/changelog.rst | 27 +
providers/amazon/docs/index.rst | 6 +-
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../src/airflow/providers/amazon/aws/exceptions.py | 4 +
.../src/airflow/providers/amazon/aws/hooks/glue.py | 32 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 9 +-
.../providers/amazon/aws/log/s3_task_handler.py | 18 +-
.../airflow/providers/amazon/aws/triggers/emr.py | 19 +-
.../tests/unit/amazon/aws/hooks/test_glue.py | 69 +
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 13 +-
.../unit/amazon/aws/log/test_s3_task_handler.py | 15 +
.../unit/amazon/aws/utils/test_task_log_fetcher.py | 18 +-
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 11 +
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/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 11 +
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 +-
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 17 +-
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/docs/operators.rst | 11 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../providers/apache/spark/hooks/spark_submit.py | 31 +-
.../apache/spark/operators/spark_submit.py | 87 +-
.../apache/spark/operators/test_spark_submit.py | 227 +-
providers/celery/docs/.latest-doc-only-change.txt | 2 +-
providers/clickhousedb/README.rst | 2 +-
providers/clickhousedb/docs/commits.rst | 2 +-
providers/clickhousedb/docs/index.rst | 2 +-
providers/clickhousedb/pyproject.toml | 2 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 20 +
providers/cncf/kubernetes/docs/index.rst | 6 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../providers/cncf/kubernetes/operators/pod.py | 15 +-
.../providers/cncf/kubernetes/triggers/pod.py | 19 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 20 +
providers/common/ai/README.rst | 9 +-
providers/common/ai/docs/changelog.rst | 57 +
providers/common/ai/docs/index.rst | 8 +-
providers/common/ai/docs/operators/agent.rst | 136 +-
.../ai/docs/operators/llamaindex_embedding.rst | 12 +-
providers/common/ai/docs/toolsets.rst | 107 +-
providers/common/ai/provider.yaml | 3 +-
providers/common/ai/pyproject.toml | 13 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../providers/common/ai/durable/caching_model.py | 50 +-
.../providers/common/ai/durable/caching_toolset.py | 33 +-
.../providers/common/ai/durable/fingerprint.py | 162 ++
.../providers/common/ai/durable/step_counter.py | 4 +-
.../airflow/providers/common/ai/durable/storage.py | 77 +-
.../common/ai/example_dags/example_agent.py | 233 +-
.../ai/example_dags/example_agent_capabilities.py | 57 +-
.../ai/example_dags/example_agent_durable.py | 102 +-
.../common/ai/example_dags/example_agent_skills.py | 49 +-
.../example_dags/example_aip_progress_tracker.py | 10 +-
.../common/ai/example_dags/example_llm_sql.py | 251 +-
.../ai/example_dags/example_llm_survey_agentic.py | 241 +-
.../ai/example_dags/example_llm_survey_analysis.py | 450 ++--
.../airflow/providers/common/ai/mixins/approval.py | 39 +-
.../airflow/providers/common/ai/operators/agent.py | 127 +-
.../common/ai/operators/llamaindex_embedding.py | 47 +-
.../providers/common/ai/plugins/www/package.json | 2 +-
.../providers/common/ai/plugins/www/pnpm-lock.yaml | 241 +-
.../airflow/providers/common/ai/toolsets/hook.py | 7 +
.../airflow/providers/common/ai/toolsets/sql.py | 159 +-
.../common/ai/utils/dataquality}/__init__.py | 0
.../airflow/providers/common/ai/utils/logging.py | 2 +-
.../providers/common/ai/utils/sql_validation.py | 259 +-
.../providers/common/ai/utils/tool_definition.py | 44 +
.../common/ai/tests/unit/common/ai/conftest.py | 6 +-
.../tests/unit/common/ai/decorators/test_agent.py | 4 +-
.../ai/tests/unit/common/ai/decorators/test_llm.py | 4 +-
.../unit/common/ai/decorators/test_llm_branch.py | 4 +-
.../common/ai/decorators/test_llm_file_analysis.py | 2 +-
.../ai/decorators/test_llm_schema_compare.py | 4 +-
.../unit/common/ai/decorators/test_llm_sql.py | 4 +-
.../unit/common/ai/durable/test_caching_model.py | 94 +-
.../unit/common/ai/durable/test_caching_toolset.py | 78 +-
.../unit/common/ai/durable/test_fingerprint.py | 212 ++
.../common/ai/durable/test_replay_verification.py | 138 +
.../tests/unit/common/ai/durable/test_storage.py | 135 +-
.../tests/unit/common/ai/mixins/test_approval.py | 62 +-
.../tests/unit/common/ai/operators/test_agent.py | 233 +-
.../ai/operators/test_llamaindex_embedding.py | 130 +-
.../ai/tests/unit/common/ai/operators/test_llm.py | 59 +-
.../unit/common/ai/operators/test_llm_branch.py | 4 +-
.../common/ai/operators/test_llm_file_analysis.py | 25 +-
.../common/ai/operators/test_llm_schema_compare.py | 4 +-
.../tests/unit/common/ai/operators/test_llm_sql.py | 22 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 11 +
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 293 +++
.../ai/tests/unit/common/ai/utils/test_logging.py | 2 +-
.../unit/common/ai/utils/test_sql_validation.py | 192 ++
.../unit/common/ai/utils/test_tool_definition.py | 23 +-
.../providers/common/compat/lineage/hook.py | 33 +-
.../tests/unit/common/compat/lineage/test_hook.py | 108 +-
providers/databricks/README.rst | 6 +-
providers/databricks/docs/changelog.rst | 29 +
providers/databricks/docs/index.rst | 6 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../src/airflow/providers/databricks/exceptions.py | 4 +
.../providers/databricks/operators/databricks.py | 432 +++-
.../unit/databricks/operators/test_databricks.py | 399 ++-
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 11 +
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 +-
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 26 +
providers/edge3/docs/index.rst | 6 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 6 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../providers/edge3/plugins/www/package.json | 33 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 886 +++----
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 11 +
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
providers/fab/README.rst | 6 +-
providers/fab/docs/changelog.rst | 31 +
providers/fab/docs/index.rst | 6 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 6 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 11 +-
.../fab/src/airflow/providers/fab/www/package.json | 4 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 83 +-
.../unit/fab/auth_manager/test_fab_auth_manager.py | 42 +-
providers/ftp/README.rst | 6 +-
providers/ftp/docs/changelog.rst | 11 +
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/docs/.latest-doc-only-change.txt | 2 +-
providers/google/README.rst | 10 +-
.../google/docs/api-auth-backend/google-openid.rst | 16 +
providers/google/docs/changelog.rst | 35 +
providers/google/docs/index.rst | 8 +-
.../google/docs/operators/cloud/cloud_run.rst | 32 +
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 10 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/hooks/dataproc.py | 19 +-
.../airflow/providers/google/cloud/hooks/ray.py | 5 -
.../providers/google/cloud/operators/cloud_run.py | 103 +-
.../google/cloud/transfers/gcs_to_sftp.py | 23 +-
.../providers/google/cloud/triggers/bigquery.py | 40 +-
.../providers/google/cloud/triggers/cloud_run.py | 15 +
.../providers/google/cloud/triggers/dataproc.py | 124 +-
.../tests/unit/google/cloud/links/test_base.py | 167 ++
.../tests/unit/google/cloud/links/test_bigquery.py | 143 ++
.../unit/google/cloud/operators/test_cloud_run.py | 363 ++-
.../google/cloud/transfers/test_gcs_to_sftp.py | 99 +
.../unit/google/cloud/triggers/test_cloud_run.py | 26 +-
.../unit/google/cloud/triggers/test_dataproc.py | 35 +
providers/hashicorp/README.rst | 6 +-
providers/hashicorp/docs/changelog.rst | 11 +
providers/hashicorp/docs/index.rst | 6 +-
providers/hashicorp/provider.yaml | 3 +-
providers/hashicorp/pyproject.toml | 6 +-
.../src/airflow/providers/hashicorp/__init__.py | 2 +-
providers/http/README.rst | 6 +-
providers/http/docs/changelog.rst | 17 +
providers/http/docs/index.rst | 6 +-
providers/http/provider.yaml | 3 +-
providers/http/pyproject.toml | 6 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
providers/informatica/README.rst | 9 +-
providers/informatica/dev/docker-compose.yml | 90 +
.../dev/informatica_simulator/Dockerfile | 74 +-
.../dev/informatica_simulator/app/main.py | 372 +++
.../dev/informatica_simulator/requirements.txt | 8 +
.../informatica/dev/init/001_schema_and_seed.sql | 152 ++
providers/informatica/docs/changelog.rst | 19 +
providers/informatica/docs/guides/api.rst | 2 +-
.../informatica/docs/guides/configuration.rst | 81 +-
providers/informatica/docs/guides/usage.rst | 153 +-
providers/informatica/docs/index.rst | 8 +-
providers/informatica/provider.yaml | 32 +-
providers/informatica/pyproject.toml | 14 +-
.../src/airflow/providers/informatica/__init__.py | 2 +-
.../src/airflow/providers/informatica/conf.py | 61 +
.../informatica/example_dags}/__init__.py | 0
.../example_dags/example_informatica_lineage.py | 353 +++
.../informatica/extractors/informatica.py | 82 +-
.../providers/informatica/get_provider_info.py | 21 +
.../src/airflow/providers/informatica/hooks/edc.py | 69 +-
.../providers/informatica/lineage/__init__.py | 24 +-
.../providers/informatica/lineage/resolver.py | 161 ++
.../providers/informatica/lineage/selective.py | 68 +
.../providers/informatica/lineage/sql_parser.py | 133 +
.../providers/informatica/lineage/validation.py | 298 +++
.../providers/informatica/plugins/informatica.py | 4 +-
.../providers/informatica/plugins/listener.py | 176 +-
.../tests/unit/informatica/hooks/test_edc.py | 91 +-
.../tests/unit/informatica/lineage}/__init__.py | 0
.../unit/informatica/lineage/test_resolver.py | 155 ++
.../unit/informatica/lineage/test_selective.py | 78 +
.../unit/informatica/lineage/test_sql_parser.py | 148 ++
.../unit/informatica/lineage/test_validation.py | 314 +++
.../unit/informatica/plugins/test_listener.py | 434 +++-
.../tests/unit/informatica/test_conf.py | 86 +
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 11 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
providers/microsoft/azure/README.rst | 10 +-
providers/microsoft/azure/docs/changelog.rst | 19 +
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/hooks/msgraph.py | 52 +-
.../providers/microsoft/azure/hooks/wasb.py | 7 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 160 +-
.../tests/unit/microsoft/azure/hooks/test_wasb.py | 32 +-
providers/microsoft/mssql/README.rst | 6 +-
providers/microsoft/mssql/docs/changelog.rst | 11 +
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/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 13 +
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 6 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../airflow/providers/openlineage/api/datasets.py | 11 +-
.../src/airflow/providers/openlineage/api/sql.py | 9 +-
.../example_openlineage_all_facets_dag.py | 508 ++++
...mple_openlineage_custom_operator_failure_dag.py | 88 +
...e_openlineage_custom_operator_ol_methods_dag.py | 354 +++
.../example_openlineage_defer_simple_dag.py | 4 +-
.../example_openlineage_edge_labels_dag.py | 74 +
.../openlineage/example_openlineage_hitl_dag.py | 135 +
.../example_openlineage_manual_lineage_dag.py | 255 ++
...lineage_schedule_cron_trigger_timetable_dag.py} | 26 +-
...ineage_schedule_delta_trigger_timetable_dag.py} | 24 +-
...chedule_multiple_cron_trigger_timetable_dag.py} | 26 +-
... example_openlineage_schedule_timedelta_dag.py} | 23 +-
.../example_openlineage_trigger_failed_dag.py | 98 +
.../system/openlineage/expected_events/__init__.py | 43 +-
.../openlineage_all_facets_dag.json | 842 +++++++
.../openlineage_custom_operator_failure_dag.json | 170 ++
...openlineage_custom_operator_ol_methods_dag.json | 434 ++++
.../expected_events/openlineage_docs_file_dag.json | 24 +-
.../openlineage_edge_labels_dag.json | 72 +
.../expected_events/openlineage_hitl_dag.json | 353 +++
.../openlineage_manual_lineage_dag.json | 1498 +++++++++++
...penlineage_schedule_asset_or_time_dag__af3.json | 12 +-
...ineage_schedule_cron_trigger_timetable_dag.json | 65 +
...neage_schedule_delta_trigger_timetable_dag.json | 59 +
...eage_schedule_list_complex_assets_dag__af3.json | 225 +-
...nlineage_schedule_multiple_assets_dag__af3.json | 12 +-
...hedule_multiple_cron_trigger_timetable_dag.json | 74 +
.../openlineage_schedule_timedelta_dag__af2.json | 56 +
.../openlineage_schedule_timedelta_dag__af3.json | 59 +
.../openlineage_task_groups_dag.json | 4 +-
.../openlineage_trigger_dag__af3_3_plus.json | 428 ++++
...lineage_trigger_dag_deferrable__af3_3_plus.json | 660 +++++
.../openlineage_trigger_failed_dag.json | 441 ++++
...openlineage_trigger_failed_dag__af3_3_plus.json | 441 ++++
.../openlineage_versioned_dag__af3.json | 90 +-
.../tests/system/openlineage/operator.py | 94 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 11 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../papermill/docs/.latest-doc-only-change.txt | 2 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 16 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 6 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
.../providers/postgres/dialects/postgres.py | 12 +-
.../airflow/providers/postgres/hooks/postgres.py | 41 +-
.../tests/unit/postgres/dialects/test_postgres.py | 57 +
.../tests/unit/postgres/hooks/test_postgres.py | 29 +
providers/redis/README.rst | 6 +-
providers/redis/docs/changelog.rst | 11 +
providers/redis/docs/index.rst | 6 +-
providers/redis/provider.yaml | 3 +-
providers/redis/pyproject.toml | 6 +-
.../redis/src/airflow/providers/redis/__init__.py | 2 +-
providers/sftp/README.rst | 6 +-
providers/sftp/docs/changelog.rst | 11 +
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/slack/README.rst | 6 +-
providers/slack/docs/changelog.rst | 11 +
providers/slack/docs/index.rst | 6 +-
providers/slack/provider.yaml | 3 +-
providers/slack/pyproject.toml | 6 +-
.../slack/src/airflow/providers/slack/__init__.py | 2 +-
providers/smtp/docs/connections/smtp.rst | 2 +-
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 8 +-
providers/smtp/tests/unit/smtp/hooks/test_smtp.py | 43 +-
providers/snowflake/README.rst | 6 +-
providers/snowflake/docs/changelog.rst | 17 +
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 | 12 +
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 | 19 +
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../airflow/providers/standard/decorators/stub.py | 10 +
.../tests/unit/standard/decorators/test_stub.py | 14 +
.../tests/unit/standard/operators/test_python.py | 2 +-
providers/weaviate/README.rst | 6 +-
providers/weaviate/docs/changelog.rst | 11 +
providers/weaviate/docs/index.rst | 6 +-
providers/weaviate/provider.yaml | 4 +-
providers/weaviate/pyproject.toml | 6 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
scripts/ci/analyze_ci_job_durations.py | 586 +++++
scripts/ci/prek/check_java_sdk_version_in_sync.py | 152 ++
.../check_template_context_variable_in_sync.py | 6 +-
scripts/ci/prek/known_airflow_exceptions.txt | 2 +-
scripts/docker/entrypoint_ci.sh | 4 -
scripts/docker/install_jdk.sh | 70 -
scripts/docker/install_os_dependencies.sh | 20 +
scripts/tests/ci/test_analyze_ci_job_durations.py | 310 +++
.../tests/listeners/test_listener_manager.py | 12 +-
.../observability/metrics/metrics_template.yaml | 9 +-
.../observability/traces/__init__.py | 43 +-
.../tests/observability/test_traces.py | 103 +
.../secrets_masker/secrets_masker.py | 3 +-
.../tests/secrets_masker/test_secrets_masker.py | 7 +
shared/state/src/airflow_shared/state/__init__.py | 42 +-
shared/state/tests/state/test_state.py | 54 +-
task-sdk/docs/resumable-job-mixin.rst | 8 +-
task-sdk/src/airflow/sdk/api/client.py | 37 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 32 +-
.../src/airflow/sdk/bases/resumablejobmixin.py | 44 +-
task-sdk/src/airflow/sdk/definitions/context.py | 8 +-
task-sdk/src/airflow/sdk/definitions/variable.py | 12 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 100 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 160 +-
.../airflow/sdk/execution_time/schema/schema.json | 184 +-
.../src/airflow/sdk/execution_time/supervisor.py | 96 +-
.../src/airflow/sdk/execution_time/task_runner.py | 10 +-
task-sdk/src/airflow/sdk/types.py | 3 +
task-sdk/tests/task_sdk/api/test_client.py | 79 +-
.../tests/task_sdk/bases/test_resumablejobmixin.py | 36 +-
.../tests/task_sdk/definitions/test_variables.py | 17 +-
.../tests/task_sdk/execution_time/test_context.py | 343 ++-
.../task_sdk/execution_time/test_supervisor.py | 163 +-
.../task_sdk/execution_time/test_task_runner.py | 191 +-
uv.lock | 1456 ++++++-----
891 files changed, 43024 insertions(+), 18070 deletions(-)
copy .github/workflows/{e2e-flaky-tests-report.yml => ci-duration-monitor.yml}
(73%)
rename
airflow-core/docs/administration-and-deployment/{task-and-asset-store-cleanup.rst
=> task-and-asset-state-store-cleanup.rst} (70%)
rename
airflow-core/docs/administration-and-deployment/{task-and-asset-store.rst =>
task-and-asset-state-store.rst} (77%)
rename airflow-core/docs/core-concepts/{asset-store.rst =>
asset-state-store.rst} (50%)
rename airflow-core/docs/core-concepts/{task-and-asset-store.rst =>
task-and-asset-state-store.rst} (82%)
rename airflow-core/docs/core-concepts/{task-store.rst =>
task-state-store.rst} (68%)
create mode 100644 airflow-core/docs/howto/static-type-checking.rst
create mode 100644 airflow-core/newsfragments/62487.significant.rst
create mode 100644 airflow-core/newsfragments/67523.feature.rst
create mode 100644 airflow-core/newsfragments/67868.bugfix.rst
rename
airflow-core/src/airflow/api_fastapi/core_api/datamodels/{asset_store.py =>
asset_state_store.py} (61%)
rename airflow-core/src/airflow/api_fastapi/core_api/datamodels/{task_store.py
=> task_state_store.py} (67%)
rename
airflow-core/src/airflow/api_fastapi/core_api/routes/public/{asset_store.py =>
asset_state_store.py} (64%)
rename
airflow-core/src/airflow/api_fastapi/core_api/routes/public/{task_store.py =>
task_state_store.py} (73%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/{asset_store.py
=> asset_state_store.py} (86%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/{task_store.py =>
task_state_store.py} (87%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/routes/{asset_store.py =>
asset_state_store.py} (78%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/routes/{task_store.py =>
task_state_store.py} (83%)
delete mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2026_06_16.py
rename airflow-core/src/airflow/example_dags/{example_asset_store.py =>
example_asset_state_store.py} (81%)
rename airflow-core/src/airflow/example_dags/{example_task_store.py =>
example_task_state_store.py} (70%)
create mode 100644
airflow-core/src/airflow/example_dags/example_task_state_store_mapped.py
rename
airflow-core/src/airflow/migrations/versions/{0112_3_3_0_add_task_store_and_asset_store_tables.py
=> 0112_3_3_0_add_task_state_store_and_asset_state_store_tables.py} (72%)
rename airflow-core/src/airflow/models/{asset_store.py =>
asset_state_store.py} (93%)
rename airflow-core/src/airflow/models/{task_store.py => task_state_store.py}
(87%)
delete mode 100644
airflow-core/src/airflow/ui/src/components/EditableMarkdownArea.tsx
copy
airflow-core/src/airflow/ui/src/{pages/DagsList/DagsFilters/RequiredActionFilter.tsx
=> components/HITLReview/HITLReviewDetail.tsx} (50%)
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/HITLReviewDetailSummary.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/HITLReviewDrawer.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/HITLReviewList.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/HITLReviewListSection.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/HITLReviewModal.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/HITLReviewModal.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/useHITLReviewModalRouteSync.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/useHITLReviewModalRouteSync.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/useHITLReviewModalSelection.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/HITLReview/useHITLReviewModalSelection.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/MarkdownModal.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/MarkdownModal.tsx
copy airflow-core/src/airflow/ui/src/{pages/Asset/AssetStore/index.ts =>
components/NoteIcon.tsx} (75%)
create mode 100644
airflow-core/src/airflow/ui/src/components/NotePreview.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/NotePreview.tsx
create mode 100644 airflow-core/src/airflow/ui/src/layouts/BaseLayout.test.tsx
copy
airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore/AddAssetStoreButton.tsx
=> AssetStateStore/AddAssetStateStoreButton.tsx} (81%)
rename airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore/AssetStore.tsx
=> AssetStateStore/AssetStateStore.tsx} (74%)
rename
airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore/AssetStoreModal.tsx =>
AssetStateStore/AssetStateStoreModal.tsx} (84%)
rename
airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore/ClearAllAssetStoreButton.tsx
=> AssetStateStore/ClearAllAssetStateStoreButton.tsx} (63%)
rename
airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore/DeleteAssetStoreButton.tsx
=> AssetStateStore/DeleteAssetStateStoreButton.tsx} (72%)
rename
airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore/EditAssetStoreButton.tsx
=> AssetStateStore/EditAssetStateStoreButton.tsx} (76%)
copy airflow-core/src/airflow/ui/src/pages/Asset/{AssetStore =>
AssetStateStore}/index.ts (95%)
copy
airflow-core/src/airflow/ui/src/pages/{Asset/AssetStore/AddAssetStoreButton.tsx
=> DagRuns/RunNoteButton.tsx} (56%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Deadlines/DashboardDeadlines.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Deadlines/DeadlineItem.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Deadlines/DeadlineSection.tsx
copy airflow-core/src/airflow/ui/src/pages/{Asset/AssetStore =>
Dashboard/Deadlines}/index.ts (93%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/useDashboardDeadlines.ts
rename
airflow-core/src/airflow/ui/src/pages/{Asset/AssetStore/AddAssetStoreButton.tsx
=> TaskInstances/TaskInstanceNoteButton.tsx} (53%)
rename airflow-core/src/airflow/ui/src/pages/{TaskStore/AddTaskStoreButton.tsx
=> TaskStateStore/AddTaskStateStoreButton.tsx} (86%)
rename
airflow-core/src/airflow/ui/src/pages/{TaskStore/ClearAllTaskStoreButton.tsx =>
TaskStateStore/ClearAllTaskStateStoreButton.tsx} (67%)
rename
airflow-core/src/airflow/ui/src/pages/{TaskStore/DeleteTaskStoreButton.tsx =>
TaskStateStore/DeleteTaskStateStoreButton.tsx} (73%)
rename
airflow-core/src/airflow/ui/src/pages/{TaskStore/EditTaskStoreButton.tsx =>
TaskStateStore/EditTaskStateStoreButton.tsx} (84%)
rename airflow-core/src/airflow/ui/src/pages/{TaskStore/TaskStore.tsx =>
TaskStateStore/TaskStateStore.tsx} (79%)
rename airflow-core/src/airflow/ui/src/pages/{TaskStore/TaskStoreModal.tsx =>
TaskStateStore/TaskStateStoreModal.tsx} (88%)
rename airflow-core/src/airflow/ui/src/pages/{TaskStore =>
TaskStateStore}/index.ts (94%)
copy airflow-core/src/airflow/ui/src/{utils/useDocumentTitle.ts =>
queries/useDagRunNote.ts} (52%)
create mode 100644 airflow-core/src/airflow/ui/src/queries/useNoteEditor.ts
create mode 100644
airflow-core/src/airflow/ui/src/queries/useTaskInstanceNote.ts
copy airflow-core/src/airflow/ui/src/{pages/Asset/AssetStore/index.ts =>
utils/documentTitleContext.ts} (83%)
copy airflow-core/src/airflow/ui/src/utils/{useDocumentTitle.ts =>
useDocumentTitleProvider.tsx} (57%)
copy airflow-core/src/airflow/ui/{src/pages/Asset/AssetStore/index.ts =>
tests/e2e/components/HITLReviewDrawer.ts} (65%)
rename airflow-core/src/airflow/ui/{src/pages/Asset/AssetStore/index.ts =>
tests/e2e/components/HITLReviewModal.ts} (65%)
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/pages/DagDetailPage.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/pages/DagRunPage.ts
create mode 100644
airflow-core/src/airflow/ui/tests/e2e/specs/dag-detail.spec.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/specs/dag-run.spec.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/backfills.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/dag-runs.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/hitl.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/variables.ts
copy airflow-core/src/airflow/ui/{src/utils/useDocumentTitle.ts =>
tests/e2e/utils/shared.ts} (56%)
delete mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/test-helpers.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/ui/waits.ts
create mode 100644
airflow-core/tests/unit/api_fastapi/core_api/datamodels/test_trigger.py
rename
airflow-core/tests/unit/api_fastapi/core_api/routes/public/{test_asset_store.py
=> test_asset_state_store.py} (79%)
rename
airflow-core/tests/unit/api_fastapi/core_api/routes/public/{test_task_store.py
=> test_task_state_store.py} (79%)
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/execution_api/routes}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/routes/test_health_routes.py
rename
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/{test_asset_store.py
=> test_asset_state_store.py} (92%)
rename
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/{test_task_store.py
=> test_task_state_store.py} (90%)
rename airflow-core/tests/unit/models/{test_asset_store.py =>
test_asset_state_store.py} (74%)
rename airflow-core/tests/unit/models/{test_task_store.py =>
test_task_state_store.py} (80%)
create mode 100644
dev/breeze/doc/images/output_release-management_classify-provider-changes.svg
create mode 100644
dev/breeze/doc/images/output_release-management_classify-provider-changes.txt
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/fingerprint.py
copy {airflow-core/src/airflow/_shared =>
providers/common/ai/src/airflow/providers/common/ai/utils/dataquality}/__init__.py
(100%)
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/tool_definition.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_fingerprint.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_replay_verification.py
copy airflow-core/src/airflow/api_fastapi/core_api/datamodels/trigger.py =>
providers/common/ai/tests/unit/common/ai/utils/test_tool_definition.py (59%)
create mode 100644 providers/google/tests/unit/google/cloud/links/test_base.py
create mode 100644
providers/google/tests/unit/google/cloud/links/test_bigquery.py
create mode 100644 providers/informatica/dev/docker-compose.yml
copy airflow-core/src/airflow/api_fastapi/core_api/datamodels/trigger.py =>
providers/informatica/dev/informatica_simulator/Dockerfile (59%)
create mode 100644 providers/informatica/dev/informatica_simulator/app/main.py
create mode 100644
providers/informatica/dev/informatica_simulator/requirements.txt
create mode 100644 providers/informatica/dev/init/001_schema_and_seed.sql
create mode 100644
providers/informatica/src/airflow/providers/informatica/conf.py
copy {airflow-core/src/airflow/_shared =>
providers/informatica/src/airflow/providers/informatica/example_dags}/__init__.py
(100%)
create mode 100644
providers/informatica/src/airflow/providers/informatica/example_dags/example_informatica_lineage.py
copy
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2026_06_30/test_variables.py
=> providers/informatica/src/airflow/providers/informatica/lineage/__init__.py
(65%)
create mode 100644
providers/informatica/src/airflow/providers/informatica/lineage/resolver.py
create mode 100644
providers/informatica/src/airflow/providers/informatica/lineage/selective.py
create mode 100644
providers/informatica/src/airflow/providers/informatica/lineage/sql_parser.py
create mode 100644
providers/informatica/src/airflow/providers/informatica/lineage/validation.py
copy {airflow-core/tests/integration =>
providers/informatica/tests/unit/informatica/lineage}/__init__.py (100%)
create mode 100644
providers/informatica/tests/unit/informatica/lineage/test_resolver.py
create mode 100644
providers/informatica/tests/unit/informatica/lineage/test_selective.py
create mode 100644
providers/informatica/tests/unit/informatica/lineage/test_sql_parser.py
create mode 100644
providers/informatica/tests/unit/informatica/lineage/test_validation.py
create mode 100644 providers/informatica/tests/unit/informatica/test_conf.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_all_facets_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_custom_operator_failure_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_custom_operator_ol_methods_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_edge_labels_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_hitl_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_manual_lineage_dag.py
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_defer_simple_dag.py
=> example_openlineage_schedule_cron_trigger_timetable_dag.py} (62%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_defer_simple_dag.py
=> example_openlineage_schedule_delta_trigger_timetable_dag.py} (64%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_defer_simple_dag.py
=> example_openlineage_schedule_multiple_cron_trigger_timetable_dag.py} (62%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_defer_simple_dag.py
=> example_openlineage_schedule_timedelta_dag.py} (64%)
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_trigger_failed_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_all_facets_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_custom_operator_failure_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_custom_operator_ol_methods_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_edge_labels_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_hitl_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_manual_lineage_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_schedule_cron_trigger_timetable_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_schedule_delta_trigger_timetable_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_schedule_multiple_cron_trigger_timetable_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_schedule_timedelta_dag__af2.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_schedule_timedelta_dag__af3.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_trigger_dag__af3_3_plus.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_trigger_dag_deferrable__af3_3_plus.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_trigger_failed_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_trigger_failed_dag__af3_3_plus.json
create mode 100644 scripts/ci/analyze_ci_job_durations.py
create mode 100644 scripts/ci/prek/check_java_sdk_version_in_sync.py
delete mode 100755 scripts/docker/install_jdk.sh
create mode 100644 scripts/tests/ci/test_analyze_ci_job_durations.py