github-actions[bot] opened a new pull request, #70214:
URL: https://github.com/apache/airflow/pull/70214

   * Flag missing conn-fields when hook-only files change in static checks
   
   * Add missing Dutch translations (#68742)
   
   * Add missing  Dutch translations
   
   * Fix common.ai durable execution skipping Toolset-capability tools (#69881)
   
   When durable=True, tools supplied via a pydantic-ai Toolset capability
   (capabilities=[Toolset(ts)]) bypassed the CachingToolset applied to
   toolsets=, so their results re-executed on every retry instead of
   replaying. Wrap the inner toolset of concrete Toolset capabilities with
   the same CachingToolset. A Toolset capability backed by a callable
   factory can't be wrapped (it resolves per run) and now logs a warning.
   
   Also fixes two latent durable-execution bugs found in review:
   
   - cleanup() ran before the message-history XCom push and output
     serialization. A failure in either wiped the cache, so the retry
     re-ran every already-completed step. Move cleanup to after them.
   
   - the pre-3.3 ObjectStorage cache filename joined dag/task/run with "_",
     aliasing distinct tasks (dag "etl"/task "load_data" and dag
     "etl_load"/task "data" both mapped to one file, so one task could
     read, overwrite, or delete another's cache). Hash the identity
     components instead.
   
   * Don't deactivate DAG bundles owned by other dag-processors (#69964)
   
   `DagBundlesManager.sync_bundles_to_db()` marks every stored bundle that is
   not in the calling process's config as inactive. This assumes the caller
   sees the complete bundle configuration.
   
   When multiple dag-processors are each configured with a partial config (one
   bundle per processor, a natural way to shard parsing), each processor treats
   the other processors' bundles as "no longer found in config" and disables
   them. Processor A disables B's bundle, B disables A's, and they flip
   `dag_bundle.active` on every parse cycle -- the deployment never converges
   and continuously logs "DAG bundle ... is no longer found in config and has
   been disabled" for bundles that are actively configured elsewhere.
   
   Add a `deactivate_missing` flag (default `True`, preserving existing
   single-processor behavior) and have `DagFileProcessorManager.sync_bundles()`
   pass `deactivate_missing=False` when the processor was started with a bundle
   filter (`--bundle-name` / `bundle_names_to_parse`), i.e. when it only owns a
   subset of the bundles.
   
   closes: #69963
   related: #69698
   
   Generated-by: Claude Code following the guidelines
   
   * Authorize Dag reparse against the file's Dags, not the query-string dag_id 
(#69471)
   
   * Authorize Dag reparse against the file's Dags, not the query-string dag_id
   
   The PUT /parseDagFile/{file_token} endpoint authorized the caller through a 
route dependency that, with no dag_id path parameter, resolves the target from 
the query string, which is decoupled from the Dag file the signed file_token 
actually resolves to.
   
   Add a requires_access_dag_from_file_token dependency that decodes the token, 
resolves the Dags defined in that file, and authorizes the caller against 
exactly those Dags, so authorization always matches the Dag being reparsed 
regardless of any request parameter.
   
   * Update airflow-core/src/airflow/api_fastapi/core_api/security.py
   
   Co-authored-by: Amogh Desai <[email protected]>
   
   * Fix CI
   
   ---------
   
   Co-authored-by: Amogh Desai <[email protected]>
   
   * Restore graph task and group coloring via Chakra palette tokens (#68760)
   
   * Restore graph task and group coloring via Chakra palette tokens
   
   Custom operator and TaskGroup colors disappeared in Airflow 3: the
   ui_color/ui_fgcolor attributes were kept but the new UI ignored them, so
   teams that relied on color to parse large graphs at a glance lost that
   signal (see the demand on the linked issue).
   
   Bring the coloring back in a way that fits the new opinionated theming:
   the value must be a Chakra palette token (e.g. blue.500), which resolves
   through a theme-controlled CSS variable and therefore stays legible in
   both light and dark mode and under custom themes -- the dark-mode and
   accessibility concerns that drove the original removal. The graph paints
   the node fill from ui_color and the operator label from ui_fgcolor, as in
   Airflow 2.x, while the border keeps showing run state. Legacy hex/named
   values can no longer adapt to the theme, so they are ignored by the graph
   and emit a warning for user-authored operators and task groups.
   
   * Color task groups in the graph view, including when expanded
   
   ui_color and ui_fgcolor are documented as the fill and label colors of a
   TaskGroup node, and Airflow 2.x painted them, but the graph excluded groups
   from the custom fill and dropped the colors entirely once a group was
   expanded. Treat groups like leaf tasks so a token-valued group color renders
   its fill and label in both the collapsed and expanded states.
   
   * Accept raw hex colors and Chakra tokens for graph node coloring
   
   Review feedback asked to keep the Airflow 2 behavior where ui_color and 
ui_fgcolor accept a raw color (a hex code or CSS name) in addition to Chakra 
palette tokens, so existing Dags keep their graph colors without any change. 
Dark-mode color variants are deferred to a follow-up.
   
   * Adjustments
   
   * Fix unreadable graph task text on light custom colors in dark mode
   
   The task icon and label fell back to the theme's default foreground for 
Chakra token fills, so a light token such as yellow.200 rendered light text on 
a light fill in dark mode. Deriving the text color from the resolved fill 
measures tokens too, so contrast holds for hex, CSS names, and tokens alike.
   
   * Update task group graph test fixture for restored node colors
   
   The graph serializer now emits each node's ui_color/ui_fgcolor for task
   and group nodes, so the expected graph fixture must include them; join
   nodes stay uncolored. The fixture was stale and omitted these fields,
   failing test_task_group_to_dict_serialized_dag and
   test_task_group_to_dict_alternative_syntax.
   
   * Document semantic theme tokens for ui_color and ui_fgcolor
   
   The graph node color attributes accept theme-aware semantic tokens (e.g.
   brand.solid) that adapt to light and dark mode, in addition to palette tokens
   and raw colors — but the docs only mentioned palette tokens, so users had no
   pointer to the semantic tokens available in the UI theme.
   
   * Skip Go SDK CI jobs for doc-only changes under go-sdk/ (#70021)
   
   go-sdk/*.md edits (README, ADRs) currently match the Go SDK file groups
   and trigger the Go unit + e2e suites plus a prod image build, none of
   which a documentation change can affect. Excluding .md also lets
   non-.go build files (go.mod, go.sum, build config) trigger the unit
   tests, which the previous .go-only pattern missed.
   
   * Enhance/standardize documentation for `AssetOrTimeSchedule` (#69831)
   
   * UI: Lazy-mount the pause confirmation dialog on Dag cards and rows (#70016)
   
   * Skip ts-sdk supervisor schema check for doc-only changes (#70022)
   
   ts-sdk/*.md edits (e.g. README) currently match TS_SDK_FILES and keep
   the check-ts-sdk-supervisor-schema prek hook from being skipped, so a
   documentation-only change needlessly regenerates and diffs the
   generated supervisor schema. Documentation does not affect it.
   
   * Use atomic upsert for asset run queue on MySQL to avoid deadlocks (#69977)
   
   Under concurrent asset-event fan-out, the per-row SAVEPOINT loop used for
   non-PostgreSQL backends deadlocks on MySQL/InnoDB and surfaces confusing
   "SAVEPOINT ... does not exist" errors, and the deadlock is not retried.
   Route MySQL to a single-statement INSERT ... ON DUPLICATE KEY UPDATE,
   mirroring the existing PostgreSQL path, so the enqueue is atomic and holds
   locks far more briefly.
   
   closes: #69938
   
   * Pin task bundle manifest to the dagrun's version (#69941)
   
   A mid-run DAG re-parse possibly creates a new DagVersion and bumps
   not-yet-started task instances' dag_version_id, while the DagRun
   stays pinned to its original bundle_version. ExecuteTask.make()
   sourced the bundle version from the run's pin (dag_run.bundle_version)
   but bundle version_data from the task's now-bumped dag_version,
   so the workload shipped a hash and a manifest that describe
   different versions. This double source was noticed for the callback
   path in a previous PR, but the task path was missed.
   
   Source version_data from the run's pinned created_dag_version so it always
   matches the bundle version, mirroring ExecuteCallback.make() and the way Git
   bundles resolve everything from the run's pinned commit.
   
   * Allow configuring XCom sidecar container security context (#69613)
   
   * Allow configuring XCom sidecar container security context
   
   * fix CI error
   
   * fix CI error #2
   
   * Update 
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/operators/pod.py
   
   Co-authored-by: Przemysław Mirowski 
<[email protected]>
   
   * fix CI error
   
   ---------
   
   Co-authored-by: Przemysław Mirowski 
<[email protected]>
   
   * Add missing newsfragment to Helm Chart (#70043)
   
   * Remove duplicated newsfragments
   
   * Add missing newsfragments
   
   * Consolidate Airflow version newsfragment
   
   * Update doc (#70047)
   
   * Fix `@task.llm_branch` import failure on Task SDK-only workers (#70068)
   
   * Reject unsupported require_approval in LLM branch and schema compare 
operators (#70069)
   
   * Fix stale docs.sqlalchemy.org/en/14 pooling link in config.yml (#69751)
   
   * Java SDK: Throw MissingXComException instead of NPE for absent XComs 
(#69257)
   
   Signed-off-by: PoAn Yang <[email protected]>
   
   * Rename Kafka Listener to Kafka Event Producer and update the documentation 
(#70014)
   
   * Set stream=False for Snowflake Cortex Agent requests. (#69731)
   
   * Send Airflow CLI logs to stderr for -o commands so structured output stays 
parseable (#68598)
   
   * Document task subprocess lifecycle and pre-connect log buffer (#70076)
   
   * Enhancing docs for `HttpEventTrigger` (#70073)
   
   * docs/http-event-trigger: Enhancing docs for HttpEventTrigger
   
   * Apply suggestions from code review
   
   Co-authored-by: Tzu-ping Chung <[email protected]>
   
   ---------
   
   Co-authored-by: Tzu-ping Chung <[email protected]>
   
   * Add Amazon ECR repository operators (#69886)
   
   * Prevent negative trigger queue delay metrics (#69971)
   
   * Bump the uv-dependency-updates group in /dev/breeze with 2 updates (#70033)
   
   Bumps the uv-dependency-updates group in /dev/breeze with 2 updates: 
[gitpython](https://github.com/gitpython-developers/GitPython) and 
[prek](https://github.com/j178/prek).
   
   
   Updates `gitpython` from 3.1.50 to 3.1.51
   - [Release notes](https://github.com/gitpython-developers/GitPython/releases)
   - 
[Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
   - 
[Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.50...3.1.51)
   
   Updates `prek` from 0.4.8 to 0.4.9
   - [Release notes](https://github.com/j178/prek/releases)
   - [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)
   - [Commits](https://github.com/j178/prek/compare/v0.4.8...v0.4.9)
   (cherry picked from commit ffe49c77d25d32284eb01fc9eb3187ec87b5b39f)
   
   Co-authored-by: David Blain <[email protected]>
   
   ---
   updated-dependencies:
   - dependency-name: gitpython
     dependency-version: 3.1.51
     dependency-type: direct:production
     update-type: version-update:semver-patch
     dependency-group: uv-dependency-updates
   - dependency-name: prek
     dependency-version: 0.4.9
     dependency-type: direct:production
     update-type: version-update:semver-patch
     dependency-group: uv-dependency-updates
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   
   * Bump the github-actions-updates group across 1 directory with 9 updates 
(#70040)
   
   Bumps the github-actions-updates group with 9 updates in the / directory:
   
   | Package | From | To |
   | --- | --- | --- |
   | [actions/setup-java](https://github.com/actions/setup-java) | `5.4.0` | 
`5.5.0` |
   | [actions/setup-node](https://github.com/actions/setup-node) | `6.4.0` | 
`7.0.0` |
   | 
[slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) 
| `3.0.3` | `3.0.5` |
   | 
[aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials)
 | `6.2.1` | `6.2.2` |
   | [github/codeql-action/init](https://github.com/github/codeql-action) | 
`4.36.2` | `4.37.0` |
   | [github/codeql-action/autobuild](https://github.com/github/codeql-action) 
| `4.36.2` | `4.37.0` |
   | [github/codeql-action/analyze](https://github.com/github/codeql-action) | 
`4.36.2` | `4.37.0` |
   | [actions/stale](https://github.com/actions/stale) | `10.3.0` | `10.4.0` |
   | [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | `8.2.0` | 
`8.3.2` |
   
   
   
   Updates `actions/setup-java` from 5.4.0 to 5.5.0
   - [Release notes](https://github.com/actions/setup-java/releases)
   - 
[Commits](https://github.com/actions/setup-java/compare/1bcf9fb12cf4aa7d266a90ae39939e61372fe520...0f481fcb613427c0f801b606911222b5b6f3083a)
   
   Updates `actions/setup-node` from 6.4.0 to 7.0.0
   - [Release notes](https://github.com/actions/setup-node/releases)
   - 
[Commits](https://github.com/actions/setup-node/compare/48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e...820762786026740c76f36085b0efc47a31fe5020)
   
   Updates `slackapi/slack-github-action` from 3.0.3 to 3.0.5
   - [Release notes](https://github.com/slackapi/slack-github-action/releases)
   - 
[Changelog](https://github.com/slackapi/slack-github-action/blob/main/CHANGELOG.md)
   - 
[Commits](https://github.com/slackapi/slack-github-action/compare/45a88b9581bfab2566dc881e2cd66d334e621e2c...0d95c9a7becc1e6e297d76df9bc735c44f4cbcbc)
   
   Updates `aws-actions/configure-aws-credentials` from 6.2.1 to 6.2.2
   - [Release 
notes](https://github.com/aws-actions/configure-aws-credentials/releases)
   - 
[Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
   - 
[Commits](https://github.com/aws-actions/configure-aws-credentials/compare/254c19bd240aabef8777f48595e9d2d7b972184b...517a711dbcd0e402f90c77e7e2f81e849156e31d)
   
   Updates `github/codeql-action/init` from 4.36.2 to 4.37.0
   - [Release notes](https://github.com/github/codeql-action/releases)
   - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
   - 
[Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...99df26d4f13ea111d4ec1a7dddef6063f76b97e9)
   
   Updates `github/codeql-action/autobuild` from 4.36.2 to 4.37.0
   - [Release notes](https://github.com/github/codeql-action/releases)
   - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
   - 
[Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...99df26d4f13ea111d4ec1a7dddef6063f76b97e9)
   
   Updates `github/codeql-action/analyze` from 4.36.2 to 4.37.0
   - [Release notes](https://github.com/github/codeql-action/releases)
   - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
   - 
[Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...99df26d4f13ea111d4ec1a7dddef6063f76b97e9)
   
   Updates `actions/stale` from 10.3.0 to 10.4.0
   - [Release notes](https://github.com/actions/stale/releases)
   - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
   - 
[Commits](https://github.com/actions/stale/compare/eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899...1e223db275d687790206a7acac4d1a11bd6fe629)
   
   Updates `astral-sh/setup-uv` from 8.2.0 to 8.3.2
   - [Release notes](https://github.com/astral-sh/setup-uv/releases)
   - 
[Commits](https://github.com/astral-sh/setup-uv/compare/fac544c07dec837d0ccb6301d7b5580bf5edae39...11f9893b081a58869d3b5fccaea48c9e9e46f990)
   
   ---
   updated-dependencies:
   - dependency-name: actions/setup-java
     dependency-version: 5.5.0
     dependency-type: direct:production
     update-type: version-update:semver-minor
     dependency-group: github-actions-updates
   - dependency-name: actions/setup-node
     dependency-version: 7.0.0
     dependency-type: direct:production
     update-type: version-update:semver-major
     dependency-group: github-actions-updates
   - dependency-name: slackapi/slack-github-action
     dependency-version: 3.0.5
     dependency-type: direct:production
     update-type: version-update:semver-patch
     dependency-group: github-actions-updates
   - dependency-name: aws-actions/configure-aws-credentials
     dependency-version: 6.2.2
     dependency-type: direct:production
     update-type: version-update:semver-patch
     dependency-group: github-actions-updates
   - dependency-name: github/codeql-action/init
     dependency-version: 4.37.0
     dependency-type: direct:production
     update-type: version-update:semver-minor
     dependency-group: github-actions-updates
   - dependency-name: github/codeql-action/autobuild
     dependency-version: 4.37.0
     dependency-type: direct:production
     update-type: version-update:semver-minor
     dependency-group: github-actions-updates
   - dependency-name: github/codeql-action/analyze
     dependency-version: 4.37.0
     dependency-type: direct:production
     update-type: version-update:semver-minor
     dependency-group: github-actions-updates
   - dependency-name: actions/stale
     dependency-version: 10.4.0
     dependency-type: direct:production
     update-type: version-update:semver-minor
     dependency-group: github-actions-updates
   - dependency-name: astral-sh/setup-uv
     dependency-version: 8.3.2
     dependency-type: direct:production
     update-type: version-update:semver-minor
     dependency-group: github-actions-updates
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   
   * Fix CI integration tests gated by the wrong platform (#70015)
   
   Signed-off-by: PoAn Yang <[email protected]>
   
   * Fix mypy prek hooks skipping all files in dot-directory (#70064)
   
   Signed-off-by: PoAn Yang <[email protected]>
   
   * Document 3.3.0 image databricks constraint fix in Dockerfile changelog 
(#70083)
   
   Record in the 'Changes after publishing the images' table that the 3.3.0 
Python 3.11/3.12 images had their downgraded databricks stack corrected 
(provider 6.13.0 -> 7.16.1, connector 2.0.2 -> 4.2.5, thrift 0.23.0 -> 0.16.0).
   
   related: #69603
   
   * Fix DocumentLoaderOperator ignoring unknown parser on byte input (#70071)
   
   * Fix DocumentLoaderOperator ignoring unknown parser on byte input
   
   * Validate explicit parser in _resolve_backend
   
   * Send TS SDK logs to stderr on socket disconnect (#69302)
   
   * Send TypeScript SDK logs to stderr when the log socket disconnects
   
   Co-authored-by: Jason(Zhe-You) Liu 
<[email protected]>
   
   * Harden TS SDK log channel shutdown
   
   * Unref log channel close flush timer so it cannot delay process exit
   
   ---------
   
   Co-authored-by: Jason(Zhe-You) Liu 
<[email protected]>
   
   * Build Go SDK e2e example bundle natively in CI (#69909)
   
   * Build Go SDK e2e example bundle natively in CI
   
   * Capture build output and remove path duplication in Go SDK e2e bundle build
   
   The native/containerized build branch was inlined with no output capture, so 
a
   failed CI build surfaced only a bare traceback, unlike the Java SDK's helper
   which prints the build log on failure. The containerized path also hardcoded
   /repo/go-sdk/bin instead of deriving it from the already-imported
   GO_SDK_ROOT_PATH/GO_SDK_BIN_PATH constants, and the Go build cache key 
ignored
   go.mod so a toolchain bump alone wouldn't invalidate it.
   
   * i18n(ko): translate Dag list run-state filter labels (#69781)
   
   * Preserve output_type through human approval in LLM operators (#70075)
   
   * Preserve output_type through human approval in LLM operators
   
   * Cover BaseModel in output_type restore test
   
   * Clarify the dags reserialize command scope (#69810)
   
   * Add Task SDK, Go and Java SDK execution architecture diagrams (#69750)
   
   * Add Task SDK, Go and Java SDK execution architecture diagrams
   
   Add graphviz-generated diagrams to the architecture overview showing how a
   task actually runs across the different SDKs, and embed them in
   core-concepts/overview.rst:
   
   - Python Task SDK: supervised (two native OS processes over a msgpack socket)
     vs native/in-process paths, plus a numbered message-flow sequence.
   - Go SDK: standalone edge worker pulling from the Edge API, task talks to the
     Execution API directly.
   - Java (JVM) SDK: Coordinator layer reusing the Python Supervisor, driving a
     JVM subprocess over loopback TCP, with an architecture diagram and a 
numbered
     execution-workflow sequence.
   
   * Draw Task and Java SDK execution flows as true sequence diagrams
   
   The message-flow diagrams added earlier in this PR drew every step on a 
single
   vertical spine, so the request/response round-trips between the task runtime 
and
   the Supervisor were hard to follow. Responding to review feedback, redraw 
them
   as true sequence diagrams — one lifeline per participant with the Supervisor 
in
   the middle — so each round-trip reads as arrows going back and forth between
   neighboring lifelines, with straight message arrows and margined labels.
   
   * Discount CI image-build time from duration-trend alerts (#69789)
   
   * Discount CI image-build time from duration-trend alerts
   
   The CI duration monitor folded the "Prepare breeze & CI image" step into
   each job's total. That step occasionally balloons on a one-off cache miss
   (a full image rebuild instead of a cached pull), which repeatedly flagged
   unrelated jobs as regressed — e.g. a Non-DB core job reported +190% driven
   almost entirely by an 18m image build, while its actual test time was flat.
   
   Image-build time is now excluded from the run and per-job durations used
   for the trend, and the image build is watched on its own: it is only
   reported when it has stayed slow for more than two days, so a transient
   rebuild spike no longer produces a false alert.
   
   * Apply naming nits: prefix duration helpers with calculate_
   
   Rename work_duration -> calculate_work_duration,
   run_image_build_seconds -> calculate_image_build_seconds,
   adjusted_run_duration -> calculate_adjusted_run_duration for a
   consistent calculate_ prefix on the duration-computing helpers.
   
   Co-Authored-By: Claude Opus 4.8 <[email protected]>
   
   ---------
   
   Co-authored-by: Claude Opus 4.8 <[email protected]>
   
   * Clarify AssetPartitionDagRun provisional-run docstring (#69982)
   
   The previous wording ("we should not allow more than one like this") did not
   state the actual invariant. Make explicit that rows are never deleted — so
   multiple records per target_dag_id/partition_key are expected — and that the
   constraint is specifically at most one row with a null created_dag_run_id,
   which the _lock_asset_model mutex enforces.
   
   * fix/issue-70020: Adding cap to cloudpickle (#70086)
   
   * Bring back edge worker metric compatibility with Airflow 3.2 (#67328)
   
   * Bring back edge worker DualStatusManager compability
   
   * Reworked statsd taging for pre airflow 3.3 versions
   
   * Fix mypy
   
   * document metrics compability issues
   
   * fix doc
   
   * Fix docu and added unit test
   
   * Fix imports
   
   * Fix unit test
   
   * Fix flaky unit tests by reset after test execution
   
   ---------
   
   Co-authored-by: AutomationDev85 <AutomationDev85>
   
   * Replace vars(response) with attribute access in Azure Data Factory and 
Synapse operators for SDK v10 compatibility (#69689)
   
   * fix(providers/azure): use attribute access instead of vars() for SDK v10 
hybrid model compat
   
   * added regression tests for azure data factory and azure synapse operators
   
   * Fix ruff formatting in test_synapse.py
   
   ---------
   
   Co-authored-by: Malte Niederstadt <[email protected]>
   
   * Bump eslint (#70032)
   
   Bumps the eslint group with 1 update in the /airflow-core/src/airflow/ui 
directory: [eslint](https://github.com/eslint/eslint).
   
   
   Updates `eslint` from 10.6.0 to 10.7.0
   - [Release notes](https://github.com/eslint/eslint/releases)
   - [Commits](https://github.com/eslint/eslint/compare/v10.6.0...v10.7.0)
   
   ---
   updated-dependencies:
   - dependency-name: eslint
     dependency-version: 10.7.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: eslint
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   
   * cncf-kubernetes: fix potential race condition in trigger_reentry flow 
caused by `is_istio_enabled` (#69269)
   
   * Gracefully return istio check if pod is removed
   
   This is meant to catch a potential race condition in the
   `trigger_reentry` flow. There is already a check that the pod still
   exists in the event of a success, but it is still possible for the pod
   to be removed during the first and second API read. Should this happen,
   we should return the same way as if no pod was provided to the function.
   
   * Add log for missing pod in istio check
   
   ---------
   
   Co-authored-by: Przemysław Mirowski 
<[email protected]>
   
   * Upgrade http to https in PR template (#70063)
   
   * Update SQLAlchemy documentation link from 1.4 to 2.0
   
   * fix: upgrade http:// to https:// in .github/PULL_REQUEST_TEMPLATE.md
   
   ---------
   
   Co-authored-by: hanu-14 <[email protected]>
   
   * Make schema_fields templated in GCSToBigQueryOperator (#69108)
   
   schema_fields was not a template field, so a templated value (a Variable
   or XComArg resolving to a schema) passed to GCSToBigQueryOperator was never
   rendered and reached BigQuery unresolved. Mark it templated, matching how
   BigQueryUpdateTableSchemaOperator already templates schema_fields_updates.
   
   * docs: fix stale Airflow 2.0 references in dev/README.md (#69961)
   
   * docs: fix stale Airflow 2.0 references in dev/README.md
   
   * docs: fix official_source typo and missing space in dev/README.md
   
   Two small typos flagged in #69902 that were missed in the initial commit:
   - Line 92: "official_source releases" -> "official source releases"
   - Line 99: '"apache-airflow-providers"separately' -> 
'"apache-airflow-providers" separately'
   
   * Refactor get_statsd_logger to use keyword arguments for clarity and add a 
test for ipv6 support in StatsD logger (#69632)
   
   * Let area:e2e-tests label force the airflow-e2e-tests suite (#69993)
   
   * Let area:e2e-test label force Airflow E2E tests
   
   Contributors validating changes whose impact selective-checks' file 
heuristics miss otherwise have to request the full test matrix. A focused area 
label lets them run the standard Airflow E2E suite without unrelated test jobs.
   
   * Use the plural E2E tests area label
   
   * Automate keeping documented "tested with" versions in sync with the test 
matrix (#69124)
   
   The Python, database and Kubernetes versions Airflow is tested with live in
   global_constants.py, but are also listed by hand in the installation
   prerequisites doc and the README. Those lists drifted: PostgreSQL 18 (and
   MySQL 8.4) were added to the test matrix and the README, but the 
prerequisites
   doc was forgotten, so it still advertised PostgreSQL up to 17.
   
   Add a prek hook that regenerates the tested-versions block in 
prerequisites.rst
   and the "Main version (dev)" column of the README from global_constants.py, 
so
   this drift becomes an auto-fixable check failure instead of a silent doc bug.
   Also correct the stale PostgreSQL and MySQL versions in prerequisites.rst.
   
   Generated-by: Claude Code (Opus 4.8) following the guidelines
   
   * Fix Breeze OpenLineage integration gate stuck on stale Postgres versions 
(#69264)
   
   * Fix Breeze OpenLineage integration gate stuck on stale Postgres versions
   
   The gate in enter_shell() hardcoded PostgreSQL 12/13/14 as the only
   versions allowed with --integration openlineage, but Breeze's actual
   matrix has moved to 14-18 (12 isn't even a valid choice anymore).
   Derive the allowed set from CURRENT_POSTGRES_VERSIONS in
   global_constants.py instead, so the gate can't drift out of sync with
   the matrix again.
   
   closes: #69233
   
   * Cover --integration all in OpenLineage Postgres gate tests
   
   Reviewer feedback on apache/airflow#69264: the gate also triggers on
   "all" (not just "openlineage"), so the tests should exercise that path
   too.
   
   * Bump @visx/shape from 3.12.0 to 4.0.0 in /airflow-core/src/airflow/ui 
(#69722)
   
   Bumps [@visx/shape](https://github.com/airbnb/visx) from 3.12.0 to 4.0.0.
   - [Release notes](https://github.com/airbnb/visx/releases)
   - [Changelog](https://github.com/airbnb/visx/blob/master/CHANGELOG.md)
   - [Commits](https://github.com/airbnb/visx/compare/v3.12.0...v4.0.0)
   
   ---
   updated-dependencies:
   - dependency-name: "@visx/shape"
     dependency-version: 4.0.0
     dependency-type: direct:production
     update-type: version-update:semver-major
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   
   * Rename Task and Asset store to Task and Asset state store (#70097)
   
   * i18n(ko): add missing translation for triggerDag.partitionKeyHelp (#70005)
   
   * Add integration tests for coordinator-mode TypeScript tasks (#69328)
   
   * Add integration tests for coordinator-mode TypeScript tasks
   
   * Register ts_sdk e2e test mode in breeze CLI
   
   * Exercise real airflow-ts-pack packing in TypeScript SDK e2e tests
   
   The reviewer asked the e2e tests to wait for airflow-ts-pack and use its
   real packing path. The example build now runs airflow-ts-pack, which embeds
   the airflow metadata in bundle.mjs, so the hand-written
   airflow-metadata.yaml sidecar would bypass the path users actually take.
   
   * Trim ts_sdk e2e docstrings and comments to essentials
   
   * Build TS SDK e2e example natively in CI and skip doc-only changes
   
   * Suppress noisy Alembic plugin setup logs (#69916)
   
   Alembic emits autogenerate plugin registration messages at INFO during CLI 
startup. Those unrelated lines contaminate machine-readable command output, 
while warnings and errors still need to remain visible.
   
   * Fix ClickHouse test_connection unit test failing with newer 
clickhouse-connect (#70114)
   
   * Fix ClickHouse test_connection unit test failing with newer 
clickhouse-connect
   
   The assertion pinned the exact call signature that clickhouse_connect's
   DB-API cursor uses internally, which changed in 1.4.x. Only the SQL sent
   is relevant to what the test verifies, so the provider keeps working
   across the whole supported clickhouse-connect range.
   
   * Assert bound parameters too, not just the statement
   
   Reviewer feedback: the statement and its parameters are Airflow's own
   contract, so both belong in the assertion; only what the driver appends
   on top of them is out of scope.
   
   * Add running_pod_log_lines config option to KubernetesExecutor (#69301)
   
   * Resolve conflict in KubernetesExecutor.__init__ and drop redundant comment
   
   The running_pod_log_lines config addition conflicted with the
   pod-launch-failure requeue state added to __init__ after this branch
   diverged; keep both initializations. Also drops a comment that only
   restated the line below it, per review feedback.
   
   * Clarify fallback reference in KubernetesExecutor running_pod_log_lines
   
   self.RUNNING_POD_LOG_LINES looked like a self-referential fallback since
   it isn't set on the instance until this assignment completes; referencing
   the class attribute directly makes clear it falls back to the class default.
   
   * Bump the core-ui-package-updates group across 1 directory with 4 updates 
(#70037)
   
   Bumps the core-ui-package-updates group with 4 updates in the 
/airflow-core/src/airflow/ui directory: 
[@tanstack/react-virtual](https://github.com/TanStack/virtual/tree/HEAD/packages/react-virtual),
 [msw](https://github.com/mswjs/msw), 
[prettier](https://github.com/prettier/prettier) and 
[vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).
   
   
   Updates `@tanstack/react-virtual` from 3.14.5 to 3.14.6
   - [Release notes](https://github.com/TanStack/virtual/releases)
   - 
[Changelog](https://github.com/TanStack/virtual/blob/main/packages/react-virtual/CHANGELOG.md)
   - 
[Commits](https://github.com/TanStack/virtual/commits/@tanstack/[email protected]/packages/react-virtual)
   
   Updates `msw` from 2.14.6 to 2.15.0
   - [Release notes](https://github.com/mswjs/msw/releases)
   - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
   - [Commits](https://github.com/mswjs/msw/compare/v2.14.6...v2.15.0)
   
   Updates `prettier` from 3.9.4 to 3.9.5
   - [Release notes](https://github.com/prettier/prettier/releases)
   - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
   - [Commits](https://github.com/prettier/prettier/compare/3.9.4...3.9.5)
   
   Updates `vite` from 8.1.3 to 8.1.4
   - [Release notes](https://github.com/vitejs/vite/releases)
   - 
[Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
   - [Commits](https://github.com/vitejs/vite/commits/v8.1.4/packages/vite)
   
   ---
   updated-dependencies:
   - dependency-name: "@tanstack/react-virtual"
     dependency-version: 3.14.6
     dependency-type: direct:production
     update-type: version-update:semver-patch
     dependency-group: core-ui-package-updates
   - dependency-name: msw
     dependency-version: 2.15.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: core-ui-package-updates
   - dependency-name: prettier
     dependency-version: 3.9.5
     dependency-type: direct:development
     update-type: version-update:semver-patch
     dependency-group: core-ui-package-updates
   - dependency-name: vite
     dependency-version: 8.1.4
     dependency-type: direct:development
     update-type: version-update:semver-patch
     dependency-group: core-ui-package-updates
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   
   * UI: Complete Hindi (hi) translation coverage (#70111)
   
   Adds the missing Hindi translations so the locale reaches full coverage
   against the current English source, well above the 90% completeness
   threshold defined in airflow-core/src/airflow/ui/public/i18n/README.md.
   
   Covers:
   - common.json: preset filters, keyboard-shortcut help dialog, note
     edit/preview/write, dagRun.partitionDate.
   - admin.json: variables import parsing status.
   - components.json: triggerDag partitionKeyHelp.
   - dags.json: any/last run-state filters and the run-state count block.
   - dashboard.json: alert see more/less toggles and pluralized count.
   - hitl.json: review drawer and required-action list strings.
   
   Also removes stale Hindi keys that were renamed or dropped on the English
   side (asset_other, dagWarnings.error_other, and four keyboard-shortcut
   copies in dag.json) so the locale no longer carries unused entries.
   
   * Document GlueJobOperator support for OpenLineage Spark injection (#69652)
   
   Signed-off-by: Maciej Obuchowski <[email protected]>
   
   * Add API endpoint for backfill dag run entries (#67381)
   
   * Add GET /backfills/{backfill_id}/dag_runs endpoint
   
   Adds a new public API endpoint that returns the BackfillDagRun entries
   for a given backfill with joined DagRun state. Users can see what
   happened in a backfill: which dates ran, their states (queued, running,
   success, failed), and which slots were skipped (with reason).
   
   - BackfillDagRunResponse / BackfillDagRunCollectionResponse models
   - LEFT OUTER JOIN via joinedload includes skipped slots (null dag_run_id)
   - Pagination via limit/offset, default ordering by sort_ordinal
   - 404 when backfill doesn't exist
   - 8 unit tests covering happy path, skipped slots, 404, pagination,
     empty backfill, and ordering contract
   
   closes: #46250
   
   * Align backfill dag run response identifiers
   
   * Update Weaviate examples for client 4.16 API (#67343)
   
   * Restore pluggable email backend for task failure and retry alerts (#69877)
   
   Since #57354, task email_on_failure / email_on_retry alerts were routed
   unconditionally through SmtpNotifier, silently ignoring the
   [email] email_backend configuration. Custom backends (SES, SendGrid,
   org-internal) stopped delivering failure/retry emails even though the
   deprecated email_on_* parameters still worked.
   
   This restores the old behaviour using the existing [email] email_backend
   option -- no new configuration is introduced:
   
   - A non-default [email] email_backend is transparently wrapped in a new
     LegacyEmailBackendNotifier, so existing SES / SendGrid / custom backends
     keep delivering alerts unchanged. The backend is resolved from config at
     notify time, so the Task SDK keeps no static dependency on
     airflow.utils.email.
   - Otherwise the default SmtpNotifier is used, exactly as before.
   
   The notifier lives in the Task SDK (airflow.sdk.execution_time.email_backend)
   next to its only caller, so no extra provider needs to be installed for a
   custom email backend to keep working.
   
   Both failure-email entry points (the worker task-runner path and the
   DAG-processor callback path) funnel through the same function, so the
   selected backend is used consistently regardless of how the task failed.
   
   The deprecated email_on_* parameters are not un-deprecated; this only keeps
   their existing behaviour pluggable until removal in Airflow 4.
   
   * Add partition_key and partition_key_regexp_pattern filters for asset 
events (#64610)
   
   * Add partition_key and partition_key_pattern filters for asset events
   
   Add two new query parameters to the asset events API endpoints:
   
   - partition_key: exact-match filter leveraging the new composite
     B-tree index on (asset_id, partition_key)
   - partition_key_pattern: regex-based filter using database-native
     regexp_match for flexible pattern matching
   
   Includes Core API, Execution API, Task SDK (InletEventsAccessor),
   client, documentation, migration for the composite index, and tests.
   
   Made-with: Cursor
   
   * Regenerate supervisor schema snapshot for partition_key filters
   
   * Add ReDoS safeguards for partition_key_pattern regex filter
   
   The pattern is evaluated by the database's regex engine, so a pathological
   pattern could consume DB CPU (ReDoS). Mitigations:
   
   - Cap the pattern length (MAX_REGEX_PATTERN_LENGTH) in both the Core and
     Execution API validators, returning 400 for over-long patterns.
   - Bound the regex query with a transaction-local statement_timeout on
     PostgreSQL (apply_regex_query_timeout); no-op elsewhere. MySQL bounds
     regex evaluation via its built-in regexp_time_limit; SQLite has no
     server-side regex and MariaDB is unsupported.
   - Document the safeguards in assets.rst.
   
   * Gate regex query filters behind a config flag with configurable timeout
   
   Add two [api] configs (Airflow 3.4.0):
   
   - enable_regexp_query_filters (bool, default False): the 
partition_key_pattern
     filter passes a user-supplied regex to the database engine, which is a 
ReDoS
     vector, so it is disabled by default and must be explicitly enabled. 
Exact-match
     partition_key filtering is unaffected.
   - regexp_query_timeout (int seconds, default 30): the primary runtime 
mitigation,
     enforced as a PostgreSQL transaction-local statement_timeout; 0 disables 
it.
   
   When the flag is off, partition_key_pattern requests return HTTP 400 on both 
the
   Core and Execution APIs. Config descriptions document the security rationale.
   Adds tests for the disabled path and the timeout helper.
   
   * Revert pattern length cap for regex filters
   
   Drop MAX_REGEX_PATTERN_LENGTH; the opt-in flag and the PostgreSQL
   statement_timeout are the meaningful ReDoS safeguards, and a length cap
   does not stop short catastrophic patterns while risking false rejections
   of legitimate ones.
   
   * Fix CI: enable regex flag for by-alias tests, regenerate TS SDK schema
   
   - Add the enable_regexp_query_filters conf_vars fixture to
     TestGetAssetEventByAssetAliasPartitionKey (was missed), fixing the 4
     by-alias regex tests that now hit the default-off flag; add a
     disabled->400 test for the alias endpoint too.
   - Regenerate ts-sdk/src/generated/supervisor.ts for the partition_key /
     partition_key_pattern comms fields (check-ts-sdk-supervisor-schema).
   
   * Address review feedback on partition key regexp filter
   
   - Rename the public/SDK parameter partition_key_pattern ->
     partition_key_regexp_pattern to distinguish regexp filtering from the
     substring "*_pattern" filters on other APIs.
   - Move the enable_regexp_query_filters gate into _RegexParam construction
     and the regex compile check into depends_regex, so a regexp filter can
     never be instantiated without the setting being enabled.
   - Drop the mutually-exclusive 400 between partition_key and
     partition_key_regexp_pattern (both now combine with AND) on the Core and
     Execution APIs and in the Task SDK client/accessor.
   - Reuse the shared QueryAssetEventPartitionKeyFilter/Regex params in the
     Execution API asset-event routes instead of duplicating the query params
     and validation.
   - Keep backend implementation details out of the public parameter
     description; simplify the config docs; revert an unrelated limit check.
   - Regenerate OpenAPI specs, UI TS clients, and the supervisor schema
     snapshots.
   
   * Collapse regexp config into one setting and scope the query timeout
   
   Address further review feedback:
   
   - Replace the enable_regexp_query_filters + regexp_query_timeout pair with a
     single [api] regexp_query_timeout: 0 (default) disables regexp filtering
     entirely, any positive value enables it and bounds the query runtime. This
     removes the "enabled but unbounded" combination.
   - Make apply_regex_query_timeout a context manager that sets a 
transaction-local
     statement_timeout on enter and resets it on exit, so the bound is scoped to
     the regexp query and does not leak to other statements in the request's
     transaction. Both asset-event routes apply it automatically around query
     execution instead of relying on a manual call in the view.
   
   * Regenerate UI query client for partition_key_regexp_pattern rename
   
   The hand-applied rename missed the type-block declarations and JSDoc in the
   generated query hooks (they were not on lines matching the AssetEvents hook
   name). Regenerate with `pnpm codegen` so the UI client matches the OpenAPI
   spec, fixing the "Compile / format / lint UI" static check.
   
   * Fix provide_session positional static check in partition-key tests
   
   The check-no-new-provide-session-positional hook flagged the partition-key
   regexp tests. The nine test methods never used the injected session, so drop
   their @provide_session decorator and unused session parameter; make session
   keyword-only in the _create_partition_key_test_data helper that does use it.
   
   * Address review: MySQL query timeout, float config, doc link, test tidy-up
   
   - Enforce regexp_query_timeout on MySQL too (session max_execution_time),
     not just PostgreSQL statement_timeout; apply_regex_query_timeout now
     branches by dialect and is a no-op on SQLite.
   - Make [api] regexp_query_timeout a float so fractional seconds (e.g. 0.5)
     are allowed; read it via conf.getfloat.
   - Link the config option in assets.rst via :ref: and note the MySQL bound.
   - Tests: create partition-key rows via an autouse fixture instead of a
     per-test helper call, fold the exact-match cases into parametrized tests
     (core + execution API), and cover the MySQL/float timeout paths.
   
   * Restore previous db timeout instead of clearing it
   
   Address review nit: apply_regex_query_timeout now captures the current
   statement_timeout (PostgreSQL) / max_execution_time (MySQL) before overriding
   it and restores that value on exit, instead of resetting to 0. This preserves
   a server- or role-level global timeout rather than clobbering it.
   
   * Apply regexp query timeout automatically via the filter dependency
   
   Address review feedback: instead of relying on each view to wrap its query in
   apply_regex_query_timeout (easy to forget -> ReDoS), the regexp filter's
   dependency (regex_param_factory) now applies the timeout to the request's
   session itself. Any endpoint using QueryAssetEventPartitionKeyRegex is 
bounded
   automatically. The dependency is function-scoped so it can depend on the
   session it bounds; the previous timeout value is restored on teardown. 
Removes
   the manual wrappers from the core and execution asset-event routes and adds
   tests for the dependency behavior.
   
   * Optionally emit Dag tags as metric tags (#68568)
   
   * Emit Dag tags as metric tags
   
   Add a [metrics] dag_tags_in_metrics option (default False). When enabled, 
each
   Dag tag becomes a metric tag on Dag-run and task-instance metrics: tags with 
a
   colon (e.g. env:prod) split into a key/value pair; plain tags (e.g. 
production)
   become standalone DogStatsd tags, or tag=true in InfluxDB line protocol. 
Built-in
   keys (dag_id, run_type, task_id, team_name) win on collision.
   
   Tags come from the DagRun's dag_model.tags. The scheduler hot loop
   (get_running_dag_runs_to_examine) and the executor-event failure path 
eager-load
   them (gated on the flag) to avoid per-DagRun queries; other in-session 
emission
   paths fall back to a lazy load, so the tags reach all Dag-run and 
task-instance
   metrics. DagRun.dag_tags_for_stats swallows SQLAlchemyError so a 
detached/expired
   instance degrades to no tags rather than breaking the caller.
   
   TaskInstance.stats_tags reuses DagRun.dag_tags_for_stats and adds task_id and
   run_type; the Task SDK worker reads the in-memory Dag and also adds 
run_type, so
   ti.* metrics carry a consistent tag set across the worker and scheduler 
emitters.
   
   The build_dag_metric_tags helper lives in the shared observability stats 
module.
   
   * Address review feedback on Dag tags metric emission
   
   Keep the scheduler hot path free of per-task conf reads. Warm the dag tags 
via the existing
   TaskInstance -> DagModel join rather than an extra dag_run hop, since the
   DagModel is shared in the identity map. Fold the repeated dogstatsd tag-list
   guard into a single helper, and consolidate the tag-formatting tests.
   
   * Address further review nits on Dag tags metric emission
   
   Make session a keyword-only argument on get_running_dag_runs_to_examine, in
   line with the convention for session parameters. Reduce 
TaskInstance.stats_tags
   to the dag run's tags plus the task-level ones, keeping the TI's transiently
   resolved team_name when present.
   
   * Source task instance team_name metric tag from the dag run
   
   TaskInstance.stats_tags already reuses the dag run's stats tags, so take
   team_name from there too rather than from a separate per-task transient
   attribute, keeping a single source of truth for the tag.
   
   The scheduling loop now stashes the resolved team on the dag run so
   task-instance metrics still carry it. The heartbeat-purge path already tags
   team inline, so its now-redundant per-task assignment is dropped.
   
   * Add ADR-0006: no Lang-SDK source display for mixed-language (@task.stub) 
Dag (#70059)
   
   * Add ADR-0006: no Lang-SDK source display for stub DAGs
   
   * Drop the per-Dag source slicing argument from ADR-0006
   
   That point argued against per-Dag filtering of the source view, but that
   shape is essentially the upcoming per-file get_source_code on the AIP-85
   DagImporter interface, so it is not a reason for this decision and would
   read as pre-judging that work.
   
   * [main] Upgrade important CI environment (#69999)
   
   * [main] CI: Upgrade important CI environment
   
   * Fix plugin validation type check for mypy 2.3.0
   
   mypy 2.3.0 narrows the `inspect.isclass()` guard to `type[object]`, which 
does
   not carry `validate`, so the four shared distributions that symlink
   plugins_manager.py failed static checks. The MRO check immediately above
   already establishes the class is an AirflowPlugin by name -- it cannot use
   issubclass() because the shared library is reachable under two module paths 
--
   so make that knowledge explicit to the type checker.
   
   * Fix breeze tag listing type check for GitPython 3.1.52
   
   GitPython 3.1.52 types `git.ls_remote` as the full union of git-command
   return shapes, so mypy no longer accepts calling `splitlines()` on it and the
   four static-check hooks that type-check dev/breeze failed. With plain
   arguments the call always returns the command output, so say so.
   
   ---------
   
   Co-authored-by: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
   Co-authored-by: Jarek Potiuk <[email protected]>
   
   * Bump the auth-ui-package-updates group across 1 directory with 9 updates 
(#70105)
   
   * Bump the auth-ui-package-updates group across 1 directory with 9 updates
   
   Bumps the auth-ui-package-updates group with 9 updates in the 
/airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
   
   | Package | From | To |
   | --- | --- | --- |
   | 
[@7nohe/openapi-react-query-codegen](https://github.com/7nohe/openapi-react-query-codegen)
 | `2.1.0` | `2.2.0` |
   | 
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
 | `8.62.1` | `8.64.0` |
   | 
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)
 | `8.62.1` | `8.64.0` |
   | 
[@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils)
 | `8.62.1` | `8.64.0` |
   | [eslint](https://github.com/eslint/eslint) | `10.6.0` | `10.7.0` |
   | 
[eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist)
 | `5.9.1` | `5.10.0` |
   | [prettier](https://github.com/prettier/prettier) | `3.9.4` | `3.9.5` |
   | 
[typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)
 | `8.62.1` | `8.64.0` |
   | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.3` | 
`8.1.4` |
   
   
   
   Updates `@7nohe/openapi-react-query-codegen` from 2.1.0 to 2.2.0
   - [Release 
notes](https://github.com/7nohe/openapi-react-query-codegen/releases)
   - 
[Commits](https://github.com/7nohe/openapi-react-query-codegen/compare/v2.1.0...v2.2.0)
   
   Updates `@typescript-eslint/eslint-plugin` from 8.62.1 to 8.64.0
   - [Release 
notes](https://github.com/typescript-eslint/typescript-eslint/releases)
   - 
[Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
   - 
[Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.64.0/packages/eslint-plugin)
   
   Updates `@typescript-eslint/parser` from 8.62.1 to 8.64.0
   - [Release 
notes](https://github.com/typescript-eslint/typescript-eslint/releases)
   - 
[Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
   - 
[Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.64.0/packages/parser)
   
   Updates `@typescript-eslint/utils` from 8.62.1 to 8.64.0
   - [Release 
notes](https://github.com/typescript-eslint/typescript-eslint/releases)
   - 
[Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
   - 
[Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.64.0/packages/utils)
   
   Updates `eslint` from 10.6.0 to 10.7.0
   - [Release notes](https://github.com/eslint/eslint/releases)
   - [Commits](https://github.com/eslint/eslint/compare/v10.6.0...v10.7.0)
   
   Updates `eslint-plugin-perfectionist` from 5.9.1 to 5.10.0
   - [Release 
notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
   - 
[Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
   - 
[Commits](https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.9.1...v5.10.0)
   
   Updates `prettier` from 3.9.4 to 3.9.5
   - [Release notes](https://github.com/prettier/prettier/releases)
   - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
   - [Commits](https://github.com/prettier/prettier/compare/3.9.4...3.9.5)
   
   Updates `typescript-eslint` from 8.62.1 to 8.64.0
   - [Release 
notes](https://github.com/typescript-eslint/typescript-eslint/releases)
   - 
[Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
   - 
[Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.64.0/packages/typescript-eslint)
   
   Updates `vite` from 8.1.3 to 8.1.4
   - [Release notes](https://github.com/vitejs/vite/releases)
   - 
[Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
   - [Commits](https://github.com/vitejs/vite/commits/v8.1.4/packages/vite)
   
   ---
   updated-dependencies:
   - dependency-name: "@7nohe/openapi-react-query-codegen"
     dependency-version: 2.2.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: "@typescript-eslint/eslint-plugin"
     dependency-version: 8.64.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: "@typescript-eslint/parser"
     dependency-version: 8.64.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: "@typescript-eslint/utils"
     dependency-version: 8.64.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: eslint
     dependency-version: 10.7.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: eslint-plugin-perfectionist
     dependency-version: 5.10.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: prettier
     dependency-version: 3.9.5
     dependency-type: direct:development
     update-type: version-update:semver-patch
     dependency-group: auth-ui-package-updates
   - dependency-name: typescript-eslint
     dependency-version: 8.64.0
     dependency-type: direct:development
     update-type: version-update:semver-minor
     dependency-group: auth-ui-package-updates
   - dependency-name: vite
     dependency-version: 8.1.4
     dependency-type: direct:development
     update-type: version-update:semver-patch
     dependency-group: auth-ui-package-updates
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   
   * Update generated files
   
   ---------
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   Co-authored-by: vincbeck <[email protected]>
   
   * Add Asset Tab plugin (#69986)
   
   * Add Asset Tab plugin
   
   * Delete test_plugins.py
   
   * [AIP-94] Add filters and pagination to airflowctl jobs list (#68616)
   
   * Support legacy list-jobs filters in airflowctl jobs list
   
   * Always default jobs list ordering to most recent start date
   
   Previously the default order_by switched between the API default and
   -start_date depending on whether --limit was given, making the output
   ordering hard to predict. The legacy airflow dags list-jobs command
   always ordered by start_date descending, so apply that default
   unconditionally.
   
   Co-Authored-By: Claude Fable 5 <[email protected]>
   
   ---------
   
   Co-authored-by: Claude Fable 5 <[email protected]>
   
   * Add AWS services toolset for agents to access 1000+ APIs (#70087)
   
   * Add AWS services toolset for agents to access 1000+ APIs
   
   * Fix basic tests
   
   * Fix basic tests
   
   * Move to helpers
   
   * resolve comments
   
   * Add more tests
   
   * Update description
   
   * parametrize tests
   
   * Fix task instance mark success downstream default (#67763)
   
   * Add worker-name filter to `airflow edge list-workers` (#70095)
   
   * get the name pattern for the list-workers
   
   * Rename list-workers name filter flag to --worker-name-pattern
   
   Match the existing worker_name_pattern naming already used by the edge
   REST/UI routes for consistency.
   
   * Fix dag.test() dropping defer-time kwargs when trigger yields an event 
(#69942)
   
   When DAG.test() runs a deferred task's trigger inline and the trigger
   yields an event, the kwargs passed at defer() time were discarded and
   replaced with only {"event": ...}. The resume method then ran with its
   default argument values.
   
   This broke example_neptune_analytics on the deferrable path:
   NeptuneCreatePrivateGraphEndpointOperator defers with
   kwargs={"vpc_id": self.vpc_id} and resumes into
   execute_complete(..., vpc_id=""). The lost vpc_id fell back to "" and
   was pushed to XCom; the downstream delete_endpoint task built a malformed
   request URI (/graphs/<id>/endpoints/) and the service rejected it with
   AccessDeniedException: Unable to determine service/operation name to be
   authorized.
   
   Merge the event into the deferral's next_kwargs instead of replacing
   them, mirroring the production resume path in airflow.models.trigger.
   Add a regression test.
   
   * TriggerRunner: Add batch trigger creation duration metric (#68521)
   
   Add a timing metric that records the time spent creating all pending 
triggers during a single create_triggers() invocation. Also, add a unit test 
verifying that the metric is emitted with the expected tags when triggers are 
successfully created.
   
   * Bump axios in /providers/edge3/src/airflow/providers/edge3/plugins/www 
(#70145)
   
   Bumps [axios](https://github.com/axios/axios) from 1.17.0 to 1.18.0.
   - [Release notes](https://github.com/axios/axios/releases)
   - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
   - [Commits](https://github.com/axios/axios/compare/v1.17.0...v1.18.0)
   
   ---
   updated-dependencies:
   - dependency-name: axios
     dependency-version: 1.18.0
     dependency-type: direct:production
   ...
   
   Signed-off-by: dependabot[bot] <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   
   * Remove airflow.utils dependency from Docker provider (#69900)
   
   * Document that Code view shows only Python source for stub tasks (#70155)
   
   * Remove deprecated dataset aliases (#70154)
   
   Co-authored-by: SHIVANSH-ux-ys <[email protected]>
   Signed-off-by: viiccwen <[email protected]>
   
   * Use canonical serde imports in tests (#70162)
   
   Signed-off-by: viiccwen <[email protected]>
   
   * Fix flaky static checks caused by migration-reference hook race (#70170)
   
   The update-migration-references, -fab, and -edge3 hooks live in three
   different prek workspaces that run in parallel, yet each invocation
   processed all three apps and rewrote every migration file and
   migrations-ref.rst even when nothing changed. Concurrent containers
   racing on the same files intermittently failed CI static checks with
   'revision = not found' when a reader caught a file mid-write.
   
   Scope each hook to its own app and write files only when the content
   actually changed, so no two hooks touch the same files.
   
   * Add toolset as a provider module category (#70122)
   
   * Fix toolsets python-modules check for common.ai provider (#70181)
   
   * Harden common.ai SQLToolset allowed_tables against function/COPY bypass 
(#70134)
   
   SQLToolset(allowed_tables=[...]) restricts which tables an LLM agent's SQL
   can reach, but the check only inspected table references. A SQL function
   whose argument is a file path or a SQL string carries no table node, so
   pg_read_file('/etc/passwd'), query_to_xml('SELECT ... FROM other_table'),
   and COPY ... FROM PROGRAM (under allow_writes) slipped past the guardrail.
   
   collect_table_references now rejects COPY and -- fail-closed -- every
   function sqlglot cannot type (exp.Anonymous), the channel those functions
   use. Ordinary builtins (count, lower) are recognised and pass; a legitimate
   unrecognised function (json_build_object) or a project UDF is permitted via
   the new allowed_functions parameter. This avoids maintaining an unbounded
   denylist of dangerous names and matches the module's allowlist philosophy:
   an incomplete allow-list refuses a query, it never leaks.
   
   The guardrail stays best-effort: a least-privilege database role remains the
   hard boundary, and the docs, docstrings, and SQL example DAG lead with that
   guidance.
   
   ---------
   
   Signed-off-by: PoAn Yang <[email protected]>
   Signed-off-by: dependabot[bot] <[email protected]>
   Signed-off-by: Maciej Obuchowski <[email protected]>
   Signed-off-by: viiccwen <[email protected]>
   Co-authored-by: Vincent Kling <[email protected]>
   Co-authored-by: Kaxil Naik <[email protected]>
   Co-authored-by: Sebastián Ortega <[email protected]>
   Co-authored-by: Pierre Jeambrun <[email protected]>
   Co-authored-by: Amogh Desai <[email protected]>
   Co-authored-by: Andrew Chang <[email protected]>
   Co-authored-by: Jake McGrath 
<[email protected]>
   Co-authored-by: Yuseok Jo <[email protected]>
   Co-authored-by: Daniel Standish <[email protected]>
   Co-authored-by: Niko Oliveira <[email protected]>
   Co-authored-by: Aaron Chen <[email protected]>
   Co-authored-by: Przemysław Mirowski 
<[email protected]>
   Co-authored-by: Guan-Ming Chiu 
<[email protected]>
   Co-authored-by: Amitesh Gupta 
<[email protected]>
   Co-authored-by: PoAn Yang <[email protected]>
   Co-authored-by: Christos Bisias <[email protected]>
   Co-authored-by: SameerMesiah97 
<[email protected]>
   Co-authored-by: Dheeraj Turaga <[email protected]>
   Co-authored-by: Jason(Zhe-You) Liu 
<[email protected]>
   Co-authored-by: Tzu-ping Chung <[email protected]>
   Co-authored-by: Morgan <[email protected]>
   Co-authored-by: Vic Wen <[email protected]>
   Co-authored-by: dependabot[bot] 
<49699333+dependabot[bot]@users.noreply.github.com>
   Co-authored-by: Jarek Potiuk <[email protected]>
   Co-authored-by: Hojeong Park <[email protected]>
   Co-authored-by: Claude Opus 4.8 <[email protected]>
   Co-authored-by: AutomationDev85 
<[email protected]>
   Co-authored-by: Malte Niederstadt 
<[email protected]>
   Co-authored-by: Malte Niederstadt <[email protected]>
   Co-authored-by: Noah Gil <[email protected]>
   Co-authored-by: MOHAMMED HANAN M T P 
<[email protected]>
   Co-authored-by: hanu-14 <[email protected]>
   Co-authored-by: Nikolaus Schuetz <[email protected]>
   Co-authored-by: nagasrisai <[email protected]>
   Co-authored-by: ykuc <[email protected]>
   Co-authored-by: Aaryan Mahajan <[email protected]>
   Co-authored-by: 조현준 <[email protected]>
   Co-authored-by: Ephraim Anierobi <[email protected]>
   Co-authored-by: Henry Chen <[email protected]>
   Co-authored-by: Deepak kumar <[email protected]>
   Co-authored-by: Maciej Obuchowski <[email protected]>
   Co-authored-by: Shivam Rastogi <[email protected]>
   Co-authored-by: Hussein Awala <[email protected]>
   Co-authored-by: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
   Co-authored-by: vincbeck <[email protected]>
   Co-authored-by: Brent Bovenzi <[email protected]>
   Co-authored-by: GPK <[email protected]>
   Co-authored-by: Aditya Patel 
<[email protected]>
   Co-authored-by: Shubham Raj 
<[email protected]>
   Co-authored-by: Sean Ghaeli <[email protected]>
   Co-authored-by: Shae Alhusayni <[email protected]>
   Co-authored-by: SHIVANSH-ux-ys <[email protected]>
   Co-authored-by: Wei Lee <[email protected]>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to