This is an automated email from the ASF dual-hosted git repository.

geido pushed a change to branch fix/mcp-get-chart-data-detached-instance
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard c3f16bfe14f fix(mcp): snapshot chart fields in get_chart_data before 
session expiry
 discard aa1e9406781 fix(mcp): refresh chart after lookup in get_chart_data
     add d9b201db74c fix(explore): open version-history forks in a usable tab, 
not a blank one (#43830)
     add 935ee5f1a65 chore(deps): bump simplejson from 4.1.1 to 4.1.2 (#43874)
     add 592d378c0d6 chore(deps-dev): bump pandas-gbq from 0.35.1 to 0.35.2 
(#43873)
     add b925246befb chore(deps): bump click from 8.4.2 to 8.5.0 (#43872)
     add b1c33e54353 chore(deps-dev): bump hdbcli from 2.29.25 to 2.29.27 
(#43869)
     add 297b0455f61 chore(deps): bump nh3 from 0.3.6 to 0.3.7 (#43868)
     add db60f25ee9a chore(deps-dev): bump babel-jest from 30.4.1 to 30.5.0 in 
/superset-frontend (#43879)
     add e1ce6b601c0 chore(deps-dev): bump jest-environment-jsdom from 30.4.1 
to 30.5.0 in /superset-frontend (#43878)
     add 635de27b259 fix(explore): prevent editable title over-truncation 
(#43811)
     add 99a910b81c5 fix(echarts): render Plain Timeseries legends as HTML, not 
canvas (#43314)
     add 0636ac4b114 fix(examples): correct chart metadata (#43810)
     add 581ef8b7c18 chore(deps): bump antd from 6.6.1 to 6.6.2 in /docs 
(#43852)
     add c1822666dac ci: fail when the published OpenAPI spec is stale (#43841)
     add 6956da1de5d fix(sql): close StarRocks SQL parsing and 
mutation-detection gaps (#43809)
     add c3109899e27 fix(dashboard): is_externally_managed still allows edits 
(#38584)
     add 0d025daaf7e fix(plugin-chart-table): defer search until IME 
composition ends (#43756)
     add ee03ee17199 test(treemap): pin border-free labels so tiles render 
without seams (#43890)
     add 9fb02296d85 test(dashboard): migrate tabs resize E2E to Playwright 
(#41434)
     add 67a417812d3 fix(reports): look up fetched report schedules by the list 
API id fields (#43365)
     add db0af5c610e fix(embedded): guard guest payload check against scalar 
control values (#43577)
     add 67605734320 fix(dashboard): show loading state on + Dashboard during 
the create navigation (#43683)
     add b4325e2ce34 fix(handlebars): separate CSS style block from template 
with a blank line (#43722)
     add ff90a60b09d fix(partition): normalize ancestor-path array names to 
leaf values (#43731)
     add c1ca29fe09d fix(core): render duration values instead of NaN:NaN:NaN 
(#43839)
     add b8cdebcaba2 chore(deps-dev): bump jest from 30.4.2 to 30.5.0 in 
/superset-frontend (#43877)
     add ccfaa2302a5 chore(deps): bump slack-sdk from 3.43.0 to 3.44.1 (#43871)
     add a49581dd76f chore(deps): bump msgpack from 1.2.1 to 1.2.2 (#43867)
     add fb12d4ae120 fix(importers): catch JSONDecodeError in load_configs 
masked_encrypted_extra merge (#43261)
     add c77efa77edf fix(sqla): normalize PostgreSQL date trunc metric units 
(#42095)
     add 01b8eb50a0d feat(semantic-layers): hide Samples tab and disable 
drill-to-detail for semantic views (#42534)
     add 724d9045c67 chore(api): regenerate the spec for 
ReportScheduleRestApi.report_format (#43910)
     add ed4d413d77d ci: remove unused submoduled GHA workflows (#43865)
     add 334700fc331 fix(sqla): parenthesize calculated column expressions in 
SELECT/GROUP BY/ORDER BY and series-limit queries (#43864)
     add 0820a0ac141 fix(sqllab): correct Run dropdown crash and caret color 
regression (#43849)
     add b2fd72559a7 feat(gunicorn): statsd support (#32487)
     add a3aba2a16a3 ci: show the spec diff when the staleness check fails 
(#43912)
     add 8fb5b8f2fbc feat: migrate Global Async Queries onto the Global Task 
Framework (#43407)
     add 630982e2695 fix(dashboard): resolve chart datasources across types in 
access checks (#43781)
     add 0ac1a6fade3 fix(versioning): keep the dashboard version-history panel 
inside the viewport (#43836)
     add 8963613e920 fix(versioning): match version-history search on the 
change author name (#43835)
     add 3b492233c71 fix(versioning): bound dashboard related history by the 
chart attach window (#43837)
     add 48500822471 fix(dashboard): don't 500 on inconsistent position_json 
(#43575)
     add 1e76fb60981 chore(deps-dev): update teradatasql requirement from 
>=20.0.0.66 to >=20.0.0.67 (#43925)
     add 5c4c8b831f9 chore(deps): bump cryptography from 50.0.0 to 50.0.1 
(#43923)
     add 9e9a3d06ad8 chore(deps-dev): bump grpcio from 1.83.0 to 1.83.1 (#43922)
     add 974f36f94f7 chore(deps-dev): bump google-cloud-bigquery from 3.43.0 to 
3.45.0 (#43926)
     add 1315f5ff6bc chore(deps): bump pydantic from 2.13.4 to 2.13.5 (#43924)
     add 1358543827f fix(sqllab): preserve ClickHouse LIMIT BY when applying 
the row limit (#43578)
     add fe1b368bcd8 feat: add dashed line support for derived series 
(timeseries comparison) on MixedTimeseries chart (#34794)
     add 18d277c096d ci(playwright): make embedded and app-root E2E coverage 
required (#43919)
     add f3896ccf209 fix(explore): say when filter-value suggestions could not 
be loaded (#43779)
     add c03f3441bd5 feat(mcp): gauge chart type plugin (#43568)
     add 87f138cc80a docs(mcp): add theme management tools to AI/MCP tools 
reference (#43899)
     add df3abe474c4 docs(theming): document new component sizing tokens and 
HIDE_NAVBAR_LOGO (#43639)
     add 7d09490bb82 fix(security): grant SQL Lab query authors an explore 
access bypass (#39296) (#42590)
     add 0db9ca74012 chore(deps): bump @ant-design/icons from 6.3.2 to 6.3.3 in 
/docs (#43951)
     add 7c9c32651c7 chore(deps): bump react-error-boundary from 6.1.3 to 6.1.4 
in /superset-frontend (#43959)
     add 07052752b68 chore(deps-dev): bump tsx from 4.23.12 to 4.23.13 in 
/superset-frontend (#43958)
     add b8fb5a268c9 chore(deps): bump zod from 4.4.3 to 4.5.4 in 
/superset-frontend (#43957)
     add e5e6d748195 chore(deps-dev): bump webpack from 5.110.1 to 5.110.2 in 
/superset-frontend (#43956)
     add a5377541c92 chore(deps): bump zizmorcore/zizmor-action from 0.6.2 to 
0.6.3 (#43954)
     add 06913244de4 chore(deps-dev): bump webpack from 5.110.1 to 5.110.2 in 
/docs (#43952)
     add 4eff13b81e9 chore(deps-dev): bump webpack from 5.110.0 to 5.110.2 in 
/superset-embedded-sdk (#43953)
     add 92bd2ba0572 chore(deps): bump @ant-design/icons from 6.3.2 to 6.3.3 in 
/superset-frontend (#43955)
     add 53070fa4c04 fix(dashboard): resolve metric Label in Chart Data (View 
as table) results grid (#43719)
     add 4440887dc2b fix(security): use self-repository syntax for 
setup-backend action ref (#43968)
     add 233f6379ae5 fix(ci): use self-repository syntax for supersetbot setup 
in tag-release (#43965)
     add d22069a7af3 fix(security): use GitHub self-repository syntax for local 
action refs (#43969)
     add 574d121cd86 fix(security): use self-repository uses syntax in 
supersetbot workflow (#43962)
     add 8d6044a1475 fix(sqllab): wrap cost-estimate JSON parse to prevent raw 
JSONDecodeError leak (#43888)
     add 1fb6b989413 fix: downgrade md5 namespace-fallback deprecation log to 
info (#43884)
     add 1b3758d2a4d ci: add ASF GitHub Actions allowlist check (#43844)
     add bd3ab309073 chore(deps): bump @ant-design/icons from 6.3.3 to 6.3.4 in 
/superset-frontend (#43982)
     add 89786160f97 chore(deps): bump @ant-design/icons from 6.3.3 to 6.3.4 in 
/docs (#43981)
     add cdb6c8e0c90 chore(deps-dev): bump the typescript-eslint group in 
/superset-frontend with 2 updates (#43980)
     add c4e145b071f fix(sql_lab): raise 400 not 500 on malformed Jinja during 
CSV export access check (#43866)
     add 7d0cf1acfc8 docs(scarf-404): replace dead links by the Scarf homepage 
(#43973)
     add 7382ee0bfec fix(dashboard): prevent header metadata bar from 
overlapping action buttons at narrow widths (#43845)
     add ad319bd8a3c fix(docs): unbreak Netlify docs preview build (#44001)
     add 056fd218d44 fix: handle missing table element in downloadAsPivotExcel 
(#39386)
     add 08694d64cb8 fix(plugin-chart-table): declare DataTable hooks before 
the early return (#43150)
     add 204ccc7ce7f fix(datasets): apply Schema filter on the combined 
datasource list (#43829)
     add 33c6df77c99 fix(database): don't reattach stored connection details 
when the effective destination changes (#44003)
     add c45fc6a31a2 feat(embedded): diagnose guest-token header size budgets 
(#43944)
     add 57eafd75e0c docs(handlebars): correct helper names that are not 
registered (#44020)
     add 067a356b6f0 fix(chart): include echart_options in Matrixify 
render-trigger allowlist (#43946)
     add 3ccab2ea7aa fix(time-format): share DateWithFormatter and stop reading 
four-digit years as epoch offsets (#43909)
     add a114b4cc468 fix(import): skip redundant has_table check when dataset 
import has no data URI (#43808)
     add 85ea6e900a4 docs(mcp): document MCP_STATELESS_HTTP and its multi-pod 
tradeoff (#43902)
     add 60553b4326a docs(ag-grid): document Show summary support for Raw 
Records mode (#43905)
     add 7029c468c4d fix(reports): bound CSV transport retries and sanitize 
failures (#43977)
     add bc35151350c docs(handlebars): correct helper names in the 6.1.0 
versioned docs (#44024)
     add 04ab089962f chore(deps): bump @swc/html from 1.15.43 to 1.16.2 in 
/docs in the security group across 1 directory (#44023)
     add 5986fe92c2f fix(rls): roll back db.session after RLS failure in 
get_from_clause (#43883)
     add e6d088d6b1b fix(mcp): surface rejected filter columns in get_chart_sql 
(#43680)
     add 10866337c5c docs(helm): document Gateway API HTTPRoute support (#43635)
     add 1339bdc6ce1 ci: bump ASF allowlist-check to v1.0.1 for self-repository 
syntax support (#44014)
     add 7b65d222050 chore(tags): TAGGING_SYSTEM to True by default (#39888)
     add 83d5d1ccdad fix(security): use GitHub self-repository syntax for local 
action ref (#43961)
     add 02ea5775c10 fix(ci): use self-repository syntax for local supersetbot 
action ref (#43963)
     add 9d89dbddc7b fix(security): use self-repository syntax for 
change-detector action ref (#43971)
     add 0e6170aaa3b fix(security): use self-repository syntax for 
setup-backend ref in unit-test workflow (#43970)
     add 380675662d8 fix(ci): use self-repository syntax for local actions in 
presto-hive workflow (#43975)
     add 3564baabf6e fix(security): suppress zizmor self-repository false 
positive for setup-backend step (#44018)
     add 335a2a78ea8 fix(dashboard): expand clipped scrollable content before 
screenshot/PDF export (#43979)
     add fa31e9c1c32 fix(security): suppress zizmor self-repository false 
positive for cached-dependencies (#43972)
     add 362d3509cb0 fix(security): suppress zizmor self-repository false 
positive for cached-dependencies in presto-hive workflow (#43984)
     add 3828dcb9225 fix(security): suppress zizmor self-repository false 
positive for cached-dependencies in presto-hive workflow (#43976)
     add 91f4d01ca2c fix(chart-creation): stop antd v6 Steps from doubling the 
icon-content gap (#43730)
     add c510946df55 fix: BigQuery pivot-table Custom SQL row label with a 
space drops from GROUPING SETS (#43720)
     add 9de50b85e5a chore(deps): bump the security group across 1 directory 
with 3 updates (#44029)
     add d0f139c2104 feat(deps): bump `flask-caching` from 2.4.1 to 2.5.0 + 
bump `flask` from v2 to v3 (#43875)
     add 2875c76d55a chore(deps): bump react-ace from 14.0.1 to 15.0.0 in 
/superset-frontend (#42833)
     add acb29937aed chore(deps): bump the security group across 1 directory 
with 3 updates (#44030)
     add 986b648f1ca fix(versioning): resolve dashboard M2M membership by 
attach/detach windows, not end_transaction_id (#44010)
     add daf41bdf046 fix(security): suppress zizmor self-repository false 
positive for sqlite install-deps step (#44002)
     add 9669e414711 chore(build): remove legacy re-export shim used for 
development (#42190)
     add c9965c7bf41 feat(folders): drag and drop visible elements 
(columns/metrics) of folders in explore view (#42483)
     add 5d771e9f467 fix(dataset): apply the import overwrite permission check 
to identity-matched datasets (#43058)
     add 50c1504cac4 fix(db_engine_specs): cast VARCHAR before Postgres 
DATE_TRUNC (#43167)
     add c503f92642a fix(charts): restrict Prophet time grain schema validation 
to supported Prophet grains (#43585)
     add 613871ed363 fix(native-filters): stabilize DefaultValue's filterState 
object identity (#43859)
     add 4f26627a6a9 fix(native-filters): stop Date Range calendar popup from 
clipping in overflow dropdown (#43978)
     add fc110d8428f fix(versioning): enforce is_managed_externally on version 
restore (#44013)
     add c76e4d98f2c fix(api): advertise only the time grains Prophet can 
resolve (#43710)
     add 1ab6077e060 fix(filters): clamp filter bar row while remeasuring after 
items change (#43966)
     add 9079f002ee1 fix(dashboard): scope tab-diff report lookup to the edited 
dashboard (#43989)
     add de08dc207c0 chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 in 
/superset-frontend (#44062)
     add 010c7a12edb chore(deps): bump query-string from 9.5.0 to 9.5.1 in 
/superset-frontend (#44061)
     add 176a50d2544 chore(deps-dev): bump webpack from 5.110.2 to 5.110.3 in 
/superset-frontend (#44060)
     add cb2188aec3e chore(deps-dev): bump babel-jest from 30.5.0 to 30.5.1 in 
/superset-frontend (#44059)
     add 638f87de5f7 chore(deps-dev): bump jest from 30.5.0 to 30.5.1 in 
/superset-frontend (#44058)
     add 677e9189f12 chore(deps-dev): bump oxfmt from 0.65.0 to 0.66.0 in 
/superset-frontend (#44056)
     add e170822a28d chore(deps-dev): bump oxfmt from 0.65.0 to 0.66.0 in /docs 
(#44054)
     add ea287c1ab0f chore(deps-dev): bump webpack from 5.110.2 to 5.110.3 in 
/docs (#44053)
     add 5e99f14ac90 chore(deps-dev): bump oxlint from 1.80.0 to 1.81.0 in 
/superset-websocket (#44051)
     add 0a412b07cb0 chore(deps-dev): bump webpack from 5.110.2 to 5.110.3 in 
/superset-embedded-sdk (#44050)
     add d38f20e5ad2 chore(deps): bump query-string from 9.5.0 to 9.5.1 in 
/superset-frontend (#44061)
     add e43f44e91ed chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 in 
/superset-embedded-sdk (#44048)
     add df95ab23ec2 chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 in 
/superset-websocket (#44046)
     add 49b9347974e fix(charts): preserve dataset conversion when saving SQL 
Lab charts (#43988)
     add 7b83ed83746 fix(mcp): align execute_sql table-access checks with the 
SQL Lab path (#43998)
     add 954dbc9ff61 fix(dataset): validate SQL table access on virtual dataset 
import (#43999)
     add 57a92170bd5 fix(chart): apply the query-context datasource check on 
create and update (#43997)
     add 4d8dfdd1520 fix(sqllab): restrict TabStateView updates to owned 
columns and queries (#43992)
     add 97329bb1cf1 fix(reports): detect perceptually blank screenshots 
(#44034)
     add 5b466d964fa fix(mcp): refresh chart after lookup in get_chart_data
     add 67e72bfc3c7 fix(mcp): snapshot chart fields in get_chart_data before 
session expiry

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   (c3f16bfe14f)
            \
             N -- N -- N   refs/heads/fix/mcp-get-chart-data-detached-instance 
(67e72bfc3c7)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .github/actions/change-detector/label-draft-pr.yml |    23 -
 .github/actions/comment-on-pr                      |     1 -
 .github/actions/latest-tag                         |     1 -
 .github/actions/setup-docker/action.yml            |     6 +-
 .github/workflows/asf-allowlist-check.yml          |    46 +
 .github/workflows/check-openapi-spec-drift.yml     |    99 +
 .github/workflows/docker.yml                       |    23 +
 .github/workflows/github-action-validator.yml      |     2 +-
 .github/workflows/latest-release-tag.yml           |    42 -
 .github/workflows/superset-e2e.yml                 |    31 +-
 .github/workflows/superset-playwright.yml          |    30 +-
 .../workflows/superset-python-integrationtest.yml  |    10 +-
 .github/workflows/superset-python-presto-hive.yml  |    22 +-
 .github/workflows/superset-python-unittest.yml     |     4 +-
 .github/workflows/superset-translations.yml        |    14 +-
 .github/workflows/supersetbot.yml                  |     2 +-
 .github/workflows/tag-release.yml                  |     6 +-
 .gitmodules                                        |     6 -
 .pre-commit-config.yaml                            |    13 +-
 Dockerfile                                         |    37 +
 SECURITY.md                                        |    10 +
 UPDATING.md                                        |   168 +
 docker-compose-non-dev.yml                         |    35 +
 docker/entrypoints/run-server.sh                   |     9 +
 docker/entrypoints/run-websocket.sh                |    44 +
 docker/superset-websocket/config.example.json      |     4 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |    43 +
 docs/admin_docs/configuration/cache.mdx            |    55 +-
 docs/admin_docs/configuration/event-logging.mdx    |    27 +-
 docs/admin_docs/configuration/mcp-server.mdx       |     3 +
 docs/admin_docs/configuration/theming.mdx          |   124 +
 docs/admin_docs/installation/docker-compose.mdx    |     2 +-
 docs/admin_docs/installation/kubernetes.mdx        |    50 +-
 docs/admin_docs/security/securing_superset.mdx     |     5 +-
 .../version-6.1.0/installation/docker-compose.mdx  |     2 +-
 .../version-6.1.0/installation/kubernetes.mdx      |     2 +-
 docs/developer_docs/api.mdx                        |     9 -
 docs/developer_docs/extensions/tasks.md            |   194 +-
 .../creating-your-first-dashboard.mdx              |     9 +
 docs/docs/using-superset/embedding.mdx             |    48 +
 docs/docs/using-superset/handlebars-chart.mdx      |    76 +-
 .../docs/using-superset/using-ai-with-superset.mdx |     8 +
 docs/netlify.toml                                  |     7 +-
 docs/package.json                                  |     8 +-
 docs/scripts/fix-openapi-spec.py                   |     1 -
 docs/scripts/generate-api-index.mjs                |     1 -
 docs/static/feature-flags.json                     |    12 +-
 docs/static/resources/openapi.json                 |   436 +-
 .../version-6.0.0/installation/docker-compose.mdx  |     2 +-
 .../version-6.0.0/installation/kubernetes.mdx      |     2 +-
 .../using-superset/handlebars-chart.mdx            |    76 +-
 docs/yarn.lock                                     |   575 +-
 helm/superset/Chart.yaml                           |     2 +-
 helm/superset/README.md                            |     2 +-
 helm/superset/values.yaml                          |     5 +-
 pyproject.toml                                     |    29 +-
 requirements/base.in                               |     2 +-
 requirements/base.txt                              |    25 +-
 requirements/development.txt                       |    31 +-
 scripts/{check-custom-rules.sh => oxfmt.sh}        |    44 +-
 .../src/superset_core/tasks/decorators.py          |     9 +
 superset-core/src/superset_core/tasks/models.py    |    71 +-
 .../src/superset_core/tasks/subscription.py        |   140 +
 superset-core/src/superset_core/tasks/types.py     |    87 +-
 superset-embedded-sdk/package-lock.json            |    16 +-
 superset-embedded-sdk/package.json                 |     4 +-
 superset-frontend/jest.config.js                   |     6 +-
 superset-frontend/package-lock.json                | 34688 +++++++++++--------
 superset-frontend/package.json                     |    18 +-
 .../packages/generator-superset/package.json       |     2 +-
 .../superset-core/src/translation/index.ts         |     4 -
 .../superset-core/src/translation/types/index.ts   |     4 +-
 .../superset-core/src/translation/types/jed.ts     |     2 -
 .../superset-ui-chart-controls/package.json        |     2 +-
 .../superset-ui-chart-controls/src/types.ts        |     2 -
 .../packages/superset-ui-core/package.json         |     8 +-
 .../src/chart/components/StatefulChart.test.tsx    |   298 +-
 .../src/chart/components/StatefulChart.tsx         |   108 +-
 .../packages/superset-ui-core/src/chart/index.ts   |     8 +-
 .../src/chart/models/ChartProps.ts                 |    22 +-
 .../superset-ui-core/src/chart/types/Base.ts       |     2 -
 .../src/chart/types/QueryResponse.ts               |     2 -
 .../src/chart/types/TransformFunction.ts           |     2 -
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |    55 +
 .../src/components/DeleteModal/index.tsx           |     3 +
 .../DropdownButton/DropdownButton.test.tsx         |    14 +
 .../DropdownContainer/DropdownContainer.test.tsx   |    71 +
 .../DropdownContainer/DropdownContainer.tsx        |    13 +-
 .../DynamicEditableTitle.regression.test.tsx       |   115 -
 .../DynamicEditableTitle.test.tsx                  |   184 +-
 .../src/components/DynamicEditableTitle/index.tsx  |    23 +-
 .../PageHeaderWithActions.stories.tsx              |   102 +
 .../PageHeaderWithActions.test.tsx                 |    19 +-
 .../src/components/PageHeaderWithActions/index.tsx |     6 +-
 .../TableCollection/TableCollection.test.tsx       |    26 +
 .../src/components/TableCollection/index.tsx       |    68 +-
 .../superset-ui-core/src/connection/index.ts       |     1 -
 .../superset-ui-core/src/connection/types.ts       |     2 -
 .../superset-ui-core/src/dimension/index.ts        |     1 -
 .../superset-ui-core/src/dimension/types.ts        |     2 -
 .../superset-ui-core/src/query/api/legacy/index.ts |     1 -
 .../superset-ui-core/src/query/api/legacy/types.ts |     2 -
 .../src/query/buildQueryContext.ts                 |     4 +
 .../src/query/types/AdvancedAnalytics.ts           |     2 -
 .../superset-ui-core/src/query/types/Column.ts     |     2 -
 .../superset-ui-core/src/query/types/Dashboard.ts  |     2 -
 .../superset-ui-core/src/query/types/Datasource.ts |     2 -
 .../superset-ui-core/src/query/types/Metric.ts     |     2 -
 .../superset-ui-core/src/query/types/Query.ts      |     4 +-
 .../src/query/types/QueryFormData.ts               |     4 +-
 .../src/query/types/QueryResponse.ts               |     2 -
 .../superset-ui-core/src/query/types/Time.ts       |     2 -
 .../superset-ui-core/src/query/types/index.ts      |    12 -
 .../src/time-format}/DateWithFormatter.ts          |    20 +-
 .../superset-ui-core/src/time-format/index.ts      |     1 +
 .../src/time-format/utils/stringifyTimeInput.ts    |    26 +-
 .../test/query/buildQueryContext.test.ts           |    13 +
 .../test/time-format/DateWithFormatter.test.ts     |    41 +
 .../time-format/utils/stringifyTimeInput.test.ts   |    81 +
 .../playwright/pages/DashboardPage.ts              |    19 +
 .../tests/dashboard/dashboard-tabs.spec.ts         |   222 +
 .../tests/dashboard/dashboard-test-helpers.ts      |    19 +-
 .../plugin-chart-ag-grid-table/src/index.ts        |     2 -
 .../src/transformProps.ts                          |     2 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |     2 -
 .../src/utils/formatValue.ts                       |     2 +-
 .../src/utils/useColDefs.ts                        |     7 +-
 .../test/utils/formatDurationValue.test.ts}        |    27 +-
 .../plugins/plugin-chart-echarts/package.json      |     2 +-
 .../src/MixedTimeseries/transformProps.ts          |    52 +-
 .../src/Timeseries/EchartsTimeseries.test.tsx      |    60 +
 .../src/Timeseries/EchartsTimeseries.tsx           |   125 +-
 .../src/Timeseries/TimeseriesLegend.tsx            |   196 +
 .../src/Timeseries/transformProps.ts               |   178 +-
 .../src/Timeseries/transformers.ts                 |    73 +
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    19 +
 .../test/MixedTimeseries/transformProps.test.ts    |   161 +
 .../test/Timeseries/Bar/transformProps.test.ts     |   138 +-
 .../test/Timeseries/EchartsTimeseries.test.tsx     |   223 +-
 .../test/Timeseries/transformProps.test.ts         |   370 +-
 .../test/Treemap/transformProps.test.ts            |    44 +
 .../plugins/plugin-chart-handlebars/package.json   |     2 +-
 .../plugin-chart-handlebars/src/Handlebars.tsx     |    13 +-
 .../src/components/Handlebars/HandlebarsViewer.tsx |    51 +-
 .../test/Handlebars.test.tsx                       |   194 +
 .../plugin-chart-partition/src/Partition.ts        |    29 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     2 +-
 .../src/react-pivottable/TableRenderers.tsx        |    34 +-
 .../test/react-pivottable/tableRenders.test.tsx    |    39 +
 .../plugin-chart-point-cluster-map/package.json    |     4 +-
 .../plugin-chart-table/src/DataTable/DataTable.tsx |   154 +-
 .../src/DataTable/components/GlobalFilter.tsx      |    33 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    13 +-
 .../plugins/plugin-chart-table/src/index.ts        |     2 -
 .../plugin-chart-table/src/transformProps.ts       |     2 +-
 .../plugins/plugin-chart-table/src/types.ts        |     2 -
 .../src/utils/DateWithFormatter.ts                 |    55 -
 .../plugin-chart-table/src/utils/formatValue.ts    |     2 +-
 .../test/DataTable/DataTable.test.tsx              |   129 +
 .../plugin-chart-table/test/TableChart.test.tsx    |   250 +-
 .../test/utils/formatDurationValue.test.ts}        |    27 +-
 .../plugins/preset-chart-deckgl/package.json       |     2 +-
 superset-frontend/spec/helpers/shim.tsx            |     2 +
 .../RunQueryActionButton.test.tsx                  |    24 +
 .../components/RunQueryActionButton/index.tsx      |     6 +-
 superset-frontend/src/components/Chart/Chart.tsx   |     6 +
 .../src/components/Chart/ChartContainer.tsx        |    13 +-
 .../ChartContextMenu/ChartContextMenu.test.tsx     |    70 +-
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |    11 +-
 .../src/components/Chart/ChartRenderer.test.tsx    |    34 +
 .../src/components/Chart/ChartRenderer.tsx         |    33 +-
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |    17 +-
 .../Chart/DrillDetail/DrillDetailPane.test.tsx     |    15 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |     7 +-
 .../src/components/Chart/chartAction.ts            |   188 +-
 .../src/components/Chart/chartActions.test.ts      |   117 +-
 .../ErrorMessage/PreformattedErrorDescription.tsx} |    25 +-
 .../src/components/ListView/ListView.tsx           |     4 +
 .../DashboardBuilder/DashboardBuilder.tsx          |    47 +-
 .../dashboard/components/PropertiesModal/index.tsx |    40 +
 .../sections/AsyncModeSection.test.tsx             |    48 +
 .../PropertiesModal/sections/AsyncModeSection.tsx  |    60 +
 .../components/PropertiesModal/sections/index.ts   |     1 +
 .../SliceHeaderControls.test.tsx                   |   114 +
 .../components/SliceHeaderControls/index.tsx       |    15 +-
 .../FilterBar/FilterControls/FilterValue.test.tsx  |    60 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |    48 +-
 .../FiltersConfigForm/DefaultValue.test.tsx        |   118 +
 .../FiltersConfigForm/DefaultValue.tsx             |    25 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |    48 +-
 superset-frontend/src/dashboard/types.ts           |     2 +
 .../src/dashboard/util/permissionUtils.test.ts     |     1 +
 .../src/embedded/guestTokenDiagnostics.test.ts     |   101 +
 .../src/embedded/guestTokenDiagnostics.ts          |    71 +
 superset-frontend/src/embedded/index.test.tsx      |   191 +-
 superset-frontend/src/embedded/index.tsx           |    46 +-
 .../DataTablesPane/components/SamplesPane.tsx      |     7 +-
 .../DataTablesPane/components/useResultsPane.tsx   |     7 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    18 +-
 .../DataTablesPane/test/SamplesPane.test.tsx       |     3 +-
 .../DataTablesPane/test/useResultsPane.test.tsx    |    18 +
 .../DatasourcePanelDragOption.test.tsx             |    17 +
 .../DatasourcePanelDragOption/index.tsx            |    33 +-
 .../DatasourcePanel/DatasourcePanelItem.test.tsx   |    78 +-
 .../DatasourcePanel/DatasourcePanelItem.tsx        |   128 +-
 .../DatasourcePanel/compatibility.test.ts          |    57 +
 .../components/DatasourcePanel/compatibility.ts    |    66 +
 .../components/DatasourcePanel/folderDrag.test.ts  |    88 +
 .../components/DatasourcePanel/folderDrag.ts       |    68 +
 .../src/explore/components/DndItemType.ts          |     3 +
 .../ExploreContainer/ExploreDndContext.test.tsx    |   138 +
 .../ExploreContainer/ExploreDndContext.tsx         |   129 +-
 .../src/explore/components/SaveModal.test.tsx      |   136 +-
 .../src/explore/components/SaveModal.tsx           |    34 +-
 .../controls/ColumnConfigControl/index.tsx         |     1 -
 .../controls/ColumnConfigControl/types.ts          |     2 -
 .../controls/DateFilterControl/DateFilterLabel.tsx |     6 +-
 .../DateFilterControl/components/CustomFrame.tsx   |    18 +-
 .../tests/DateFilterLabel.test.tsx                 |    11 +-
 .../DndColumnMetricSelect.test.tsx                 |   104 +
 .../DndColumnMetricSelect.tsx                      |    34 +-
 .../DndColumnSelect.test.tsx                       |   131 +
 .../DndColumnSelectControl/DndColumnSelect.tsx     |    30 +-
 .../DndMetricSelect.test.tsx                       |   192 +
 .../DndColumnSelectControl/DndMetricSelect.tsx     |   108 +-
 .../DndColumnSelectControl/DndSelectLabel.test.tsx |   114 +
 .../DndColumnSelectControl/DndSelectLabel.tsx      |    53 +-
 .../createAdhocMetricFromColumn.test.ts}           |    48 +-
 .../DndColumnSelectControl/dndTestUtils.ts         |    18 +
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   200 +-
 .../index.tsx                                      |    81 +-
 .../VizTypeControl/VizTypeControl.test.tsx         |    46 +-
 .../controls/VizTypeControl/VizTypeGallery.tsx     |     2 +-
 .../src/explore/exploreUtils/index.ts              |    18 +-
 .../src/features/home/DashboardTable.test.tsx      |     8 +
 .../src/features/home/DashboardTable.tsx           |     7 +
 .../HeaderReportDropdown/index.test.tsx            |    31 +
 .../reports/ReportModal/ReportModal.test.tsx       |   166 +
 .../src/features/reports/ReportModal/actions.ts    |     2 +
 .../src/features/reports/ReportModal/index.tsx     |    16 +-
 .../features/reports/ReportModal/reducer.test.ts   |    82 +-
 .../src/features/reports/ReportModal/reducer.ts    |    12 +-
 superset-frontend/src/features/reports/types.ts    |     2 +
 .../src/features/tasks/LiveDuration.test.tsx       |   100 +
 .../src/features/tasks/LiveDuration.tsx            |    57 +
 .../tasks/TaskDependenciesPopover.test.tsx         |    83 +
 .../src/features/tasks/TaskDependenciesPopover.tsx |   141 +
 .../src/features/tasks/TaskPayloadPopover.test.tsx |    74 +
 .../src/features/tasks/TaskPayloadPopover.tsx      |    45 +-
 .../src/features/tasks/timeUtils.test.ts           |    12 +-
 superset-frontend/src/features/tasks/timeUtils.ts  |    59 +-
 superset-frontend/src/features/tasks/types.ts      |   104 +-
 .../versionHistory/ChartVersionPreview.test.tsx    |    21 +-
 .../versionHistory/ChartVersionPreview.tsx         |    17 +-
 .../DashboardVersionHistory.test.tsx               |    55 +-
 .../src/hooks/apiResources/datasets.test.ts        |   115 +-
 .../src/hooks/apiResources/datasets.ts             |    52 +-
 superset-frontend/src/hooks/usePermissions.ts      |     1 +
 superset-frontend/src/hooks/useTabId.test.ts       |   153 +
 superset-frontend/src/hooks/useTabId.ts            |   166 +-
 .../src/middleware/asyncEvent.test.ts              |  1316 +-
 superset-frontend/src/middleware/asyncEvent.ts     |   810 +-
 superset-frontend/src/middleware/realtime.test.ts  |   390 +
 superset-frontend/src/middleware/realtime.ts       |   451 +
 .../src/pages/ChartCreation/ChartCreation.test.tsx |    14 +
 .../src/pages/ChartCreation/index.tsx              |     7 +
 .../DashboardList/DashboardList.behavior.test.tsx  |    30 +
 .../src/pages/DashboardList/index.tsx              |     8 +
 .../src/pages/TaskList/TaskList.test.tsx           |    24 +-
 superset-frontend/src/pages/TaskList/index.tsx     |   217 +-
 superset-frontend/src/types/Dashboard.ts           |     1 +
 superset-frontend/src/types/bootstrapTypes.ts      |     5 +-
 superset-frontend/src/utils/asyncMode.test.ts      |    91 +
 superset-frontend/src/utils/asyncMode.ts           |    69 +
 .../src/utils/downloadAsPivotExcel.test.ts         |    19 +
 .../src/utils/downloadAsPivotExcel.ts              |     7 +
 .../src/utils/navigationUtils.test.ts              |   155 +
 superset-frontend/src/utils/navigationUtils.ts     |    31 +-
 superset-frontend/src/views/CRUD/hooks.test.tsx    |   232 +
 superset-frontend/src/views/CRUD/hooks.ts          |   112 +
 superset-websocket/Dockerfile                      |     8 +-
 superset-websocket/README.md                       |   272 +-
 superset-websocket/config.example.json             |     4 +-
 superset-websocket/config.test.json                |     4 +-
 superset-websocket/package-lock.json               |   654 +-
 superset-websocket/package.json                    |    15 +-
 superset-websocket/spec/config.test.ts             |    30 +
 superset-websocket/spec/index.test.ts              |  1149 +-
 superset-websocket/src/config.ts                   |    76 +-
 superset-websocket/src/index.ts                    |   778 +-
 superset-websocket/utils/README.md                 |     6 +-
 .../utils/client-ws-app/routes/index.js            |    17 +-
 superset-websocket/utils/loadtest.js               |    67 +-
 superset/app.py                                    |    13 +-
 superset/async_events/api.py                       |   179 -
 superset/async_events/async_query_manager.py       |   468 -
 .../async_events/async_query_manager_factory.py    |    35 -
 superset/charts/data/api.py                        |   177 +-
 superset/charts/data/query_context_cache_loader.py |    30 -
 superset/charts/schemas.py                         |   117 +-
 superset/cli/update.py                             |    17 +-
 superset/commands/chart/create.py                  |    10 +-
 .../chart/data/create_async_job_command.py         |    43 -
 superset/commands/chart/data/get_data_command.py   |     4 +
 superset/commands/chart/importers/v1/__init__.py   |     6 +-
 superset/commands/chart/update.py                  |    54 +-
 superset/commands/chart/utils.py                   |    71 +
 .../commands/dashboard/importers/v1/__init__.py    |     6 +-
 superset/commands/dashboard/update.py              |    90 +-
 superset/commands/database/exceptions.py           |    29 +
 superset/commands/database/importers/v1/utils.py   |    60 +-
 superset/commands/database/test_connection.py      |    41 +-
 superset/commands/database/update.py               |    87 +
 superset/commands/database/utils.py                |    96 +
 superset/commands/database/validate.py             |    47 +-
 superset/commands/dataset/importers/v1/utils.py    |   128 +-
 superset/commands/datasource/list.py               |   112 +-
 superset/commands/distributed_lock/acquire.py      |    32 +-
 superset/commands/distributed_lock/base.py         |    17 +-
 superset/commands/distributed_lock/release.py      |    76 +-
 superset/commands/explore/get.py                   |    50 +-
 superset/commands/importers/v1/assets.py           |     6 +-
 superset/commands/importers/v1/utils.py            |    68 +
 superset/commands/report/chart_data.py             |   194 +
 superset/commands/report/execute.py                |    91 +-
 superset/commands/sql_lab/estimate.py              |    14 +-
 superset/commands/sql_lab/export.py                |    10 +
 superset/commands/tasks/cancel.py                  |   117 +-
 superset/commands/tasks/exceptions.py              |     7 +
 superset/commands/tasks/internal_update.py         |    43 +-
 superset/commands/tasks/reap.py                    |   187 +
 superset/commands/tasks/submit.py                  |   292 +-
 superset/commands/version_restore.py               |    18 +-
 superset/common/query_actions.py                   |    78 +-
 superset/common/query_context.py                   |    35 +-
 superset/common/query_context_factory.py           |     4 +
 superset/common/query_context_processor.py         |   199 +-
 superset/common/query_object.py                    |     4 +
 superset/common/query_object_factory.py            |    13 +-
 superset/common/query_serialization.py             |   131 +
 superset/common/utils/query_cache_manager.py       |    16 +-
 superset/config.py                                 |   212 +-
 superset/connectors/sqla/models.py                 |    30 +-
 superset/constants.py                              |     2 +-
 superset/coordination/__init__.py                  |    37 +
 superset/coordination/base.py                      |   567 +
 .../cache_backend.py                               |   267 +-
 .../rank.py => coordination/exceptions.py}         |    28 +-
 superset/coordination/types.py                     |    85 +
 superset/daos/base.py                              |    43 +-
 superset/daos/database.py                          |    20 +-
 superset/daos/datasource.py                        |     4 +
 superset/daos/key_value.py                         |     9 +-
 superset/daos/report.py                            |    12 +-
 superset/daos/semantic_layer.py                    |     6 +-
 superset/daos/tasks.py                             |   521 +-
 superset/dashboards/api.py                         |     1 +
 superset/dashboards/filters.py                     |    50 +-
 superset/dashboards/schemas.py                     |     4 +
 superset/datasets/api.py                           |     2 +
 superset/datasets/schemas.py                       |    58 +-
 superset/db_engine_specs/base.py                   |    13 +
 superset/db_engine_specs/postgres.py               |    33 +-
 superset/db_engine_specs/snowflake.py              |    10 +
 superset/distributed_lock/__init__.py              |     7 +-
 superset/embedded/view.py                          |     7 +-
 superset/examples/birth_names.py                   |    55 +-
 .../datasets/project_management.yaml               |     2 +-
 .../charts/Quarterly_Sales_By_Product_Line.yaml    |     2 +-
 .../charts/Revenue_by_Deal_Size.yaml               |     2 +-
 .../charts/Messages_per_Channel.yaml               |     2 +-
 .../usa_births_names/charts/Genders_by_State.yaml  |     2 +-
 .../charts/Top_10_Boy_Name_Share.yaml              |     4 +-
 .../charts/Top_10_Girl_Name_Share.yaml             |     4 +-
 .../examples/usa_births_names/charts/Trends.yaml   |     2 +-
 ...op_10_Games_Proportion_of_Sales_in_Markets.yaml |     2 +-
 .../Total_Sales_per_Market_Grouped_by_Genre.yaml   |     2 +-
 superset/examples/world_bank.py                    |    25 +-
 .../examples/world_health/charts/Growth_Rate.yaml  |     2 +-
 .../world_health/charts/World_s_Pop_Growth.yaml    |     2 +-
 superset/explore/utils.py                          |     7 +-
 superset/extensions/__init__.py                    |     6 -
 superset/extensions/metastore_cache.py             |     3 +-
 superset/initialization/__init__.py                |    58 +-
 superset/key_value/utils.py                        |     6 +-
 superset/mcp_service/chart/chart_helpers.py        |    77 +
 superset/mcp_service/chart/chart_utils.py          |    35 +
 superset/mcp_service/chart/plugins/__init__.py     |     3 +
 .../mcp_service/chart/plugins/{pie.py => gauge.py} |    82 +-
 superset/mcp_service/chart/schemas.py              |    81 +-
 superset/mcp_service/chart/tool/generate_chart.py  |    11 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |    64 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |    19 +-
 .../chart/tool/get_chart_type_schema.py            |    10 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   101 +-
 ..._7e2c9a4f1b83_create_task_dependencies_table.py |   195 +
 superset/models/core.py                            |     7 +
 superset/models/dashboard.py                       |   128 +-
 superset/models/helpers.py                         |   268 +-
 superset/models/slice.py                           |    54 +
 superset/models/sql_lab.py                         |    25 +-
 superset/models/task_dependencies.py               |    69 +
 superset/models/task_subscribers.py                |    38 +-
 superset/models/tasks.py                           |   139 +-
 superset/reports/api.py                            |     1 +
 superset/security/api.py                           |    24 +-
 superset/security/guest_token.py                   |    19 +
 superset/security/manager.py                       |   178 +-
 superset/sql/dialects/__init__.py                  |     2 +
 superset/sql/dialects/postgres.py                  |    79 +
 superset/sql/dialects/starrocks.py                 |   813 +
 superset/sql/metric_normalization.py               |   181 +
 superset/sql/parse.py                              |   159 +-
 superset/tags/models.py                            |    31 +
 superset/tasks/api.py                              |   110 +-
 superset/tasks/async_queries.py                    |   499 +-
 superset/tasks/context.py                          |   394 +-
 superset/tasks/decorators.py                       |   326 +-
 superset/tasks/dependencies.py                     |   126 +
 superset/tasks/filters.py                          |    20 +-
 superset/tasks/guest.py                            |    86 +
 superset/tasks/heartbeat.py                        |   167 +
 superset/tasks/locks.py                            |    84 +-
 superset/tasks/manager.py                          |   895 +-
 superset/tasks/query_cancel.py                     |   165 +
 superset/tasks/registry.py                         |    36 +-
 superset/tasks/scheduler.py                        |   313 +-
 superset/tasks/schemas.py                          |   161 +-
 superset/tasks/subscription.py                     |    84 +
 superset/tasks/utils.py                            |   197 +-
 superset/utils/cache.py                            |    32 +-
 superset/utils/cache_manager.py                    |     8 +-
 superset/utils/csv.py                              |     9 +-
 superset/utils/feature_flag_manager.py             |    64 +-
 superset/utils/screenshot_utils.py                 |   365 +-
 superset/utils/webdriver.py                        |   237 +-
 superset/versioning/activity/impact.py             |   152 +-
 superset/versioning/activity/orchestrator.py       |    19 +-
 superset/versioning/activity/queries.py            |    60 +-
 superset/versioning/activity/scope.py              |     2 +-
 superset/versioning/activity/windows.py            |    66 +
 superset/versioning/membership.py                  |    86 +
 superset/versioning/restore.py                     |    50 +-
 superset/views/base.py                             |    15 +-
 superset/views/datasource/views.py                 |    96 +-
 superset/views/sql_lab/views.py                    |    65 +-
 .../{mcp_service/theme => websocket}/__init__.py   |     9 +-
 superset/websocket/channel.py                      |   234 +
 .../utils/__init__.py => websocket/permissions.py} |    23 +-
 tests/integration_tests/async_events/api_tests.py  |   210 -
 tests/integration_tests/base_tests.py              |    19 +
 tests/integration_tests/charts/api_tests.py        |     8 +-
 tests/integration_tests/charts/commands_tests.py   |   102 +-
 tests/integration_tests/charts/data/api_tests.py   |   131 +-
 .../charts/version_restore_tests.py                |    42 +
 tests/integration_tests/dashboard_tests.py         |     3 +-
 tests/integration_tests/dashboards/api_tests.py    |     2 +
 .../integration_tests/dashboards/commands_tests.py |     3 +
 .../dashboards/security/security_dataset_tests.py  |     5 +-
 .../dashboards/version_restore_tests.py            |    70 +
 tests/integration_tests/datasets/api_tests.py      |    60 +-
 tests/integration_tests/datasource/api_tests.py    |    62 +
 tests/integration_tests/datasource_tests.py        |    10 +-
 .../db_engine_specs/base_engine_spec_tests.py      |     7 +-
 tests/integration_tests/embedded/test_view.py      |    17 +-
 .../explore/form_data/commands_tests.py            |   186 +-
 tests/integration_tests/fixtures/tags.py           |    21 +-
 tests/integration_tests/query_context_tests.py     |    73 +
 tests/integration_tests/reports/api_tests.py       |     1 +
 tests/integration_tests/reports/commands_tests.py  |   109 +-
 tests/integration_tests/sql_lab/commands_tests.py  |    16 +
 tests/integration_tests/sqla_models_tests.py       |    59 +-
 tests/integration_tests/superset_test_config.py    |     1 -
 tests/integration_tests/tags/api_tests.py          |     8 +-
 tests/integration_tests/tasks/api_tests.py         |   230 +
 .../integration_tests/tasks/async_queries_tests.py |   155 -
 .../tasks/commands/test_cancel.py                  |   174 +-
 .../integration_tests/tasks/commands/test_reap.py  |   170 +
 .../tasks/commands/test_submit.py                  |    54 +
 .../integration_tests/tasks/test_sync_join_wait.py |     6 +-
 tests/unit_tests/async_events/__init__.py          |    16 -
 .../async_events/async_query_manager_tests.py      |   535 -
 .../charts/commands/data/test_get_data_command.py  |    15 +-
 .../charts/data/test_empty_query_context.py        |     7 +
 tests/unit_tests/charts/test_chart_data_api.py     |   183 +-
 tests/unit_tests/charts/test_schemas.py            |    85 +-
 .../test_dynamodb.py => cli/update_test.py}        |    38 +-
 .../chart/create_async_job_command_test.py         |    51 -
 tests/unit_tests/commands/chart/create_test.py     |    87 +-
 tests/unit_tests/commands/dashboard/update_test.py |   168 +
 .../commands/databases/test_connection_test.py     |    60 +
 tests/unit_tests/commands/databases/update_test.py |   297 +
 .../unit_tests/commands/databases/validate_test.py |   205 +
 tests/unit_tests/commands/datasource/list_test.py  |   224 +
 .../explore/test_get_query_authorship_bypass.py    |    93 +
 .../commands/importers/v1/assets_test.py           |     3 +
 .../importers/v1/test_find_existing_for_import.py  |   134 +-
 .../unit_tests/commands/importers/v1/utils_test.py |   102 +
 .../unit_tests/commands/report/chart_data_test.py  |   298 +
 tests/unit_tests/commands/report/execute_test.py   |   185 +-
 tests/unit_tests/commands/sql_lab/test_estimate.py |    42 +
 .../unit_tests/commands/tasks}/__init__.py         |     0
 .../commands/tasks/test_internal_update.py         |    65 +
 .../commands/test_base_restore_version_command.py  |    99 +
 .../unit_tests/common/test_async_min_cache_ttl.py  |    67 +
 tests/unit_tests/common/test_query_actions.py      |    97 +
 .../common/test_query_context_processor.py         |   186 +-
 .../common/test_query_context_processor_timing.py  |     7 +-
 .../unit_tests/common/test_query_object_factory.py |    23 +
 .../unit_tests/common/test_query_serialization.py  |   193 +
 tests/unit_tests/connectors/sqla/models_test.py    |    41 +
 .../unit_tests/coordination}/__init__.py           |     0
 .../test_cache_backend.py                          |    89 +-
 tests/unit_tests/coordination/test_service.py      |   458 +
 tests/unit_tests/dao/datasource_test.py            |    31 +
 tests/unit_tests/daos/test_tasks.py                |   424 +
 tests/unit_tests/dashboards/api_test.py            |    79 +
 .../dashboards/semantic_view_access_test.py        |   645 +
 .../databases/commands/importers/v1/import_test.py |    43 +
 .../datasets/commands/importers/v1/import_test.py  |   425 +
 tests/unit_tests/datasets/schema_tests.py          |   115 +
 tests/unit_tests/db_engine_specs/test_base.py      |     7 +
 tests/unit_tests/db_engine_specs/test_postgres.py  |   100 +
 tests/unit_tests/db_engine_specs/test_redshift.py  |    32 +
 .../distributed_lock/distributed_lock_tests.py     |   243 +-
 tests/unit_tests/explore/utils_test.py             |   117 +
 tests/unit_tests/feature_flag_test.py              |    82 +
 .../check_async_query_secret_test.py               |   140 -
 .../initialization/check_encryption_engine_test.py |     2 +-
 .../initialization/check_websocket_secret_test.py  |    68 +
 tests/unit_tests/initialization_test.py            |    10 +-
 tests/unit_tests/jinja_context_test.py             |     6 +-
 tests/unit_tests/key_value/utils_test.py           |    12 +-
 .../mcp_service/chart/test_gauge_chart.py          |   231 +
 .../mcp_service/chart/tool/test_get_chart_data.py  |    39 +-
 .../mcp_service/chart/tool/test_get_chart_sql.py   |   102 +
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   186 +-
 tests/unit_tests/models/dashboard_test.py          |   571 +
 tests/unit_tests/models/helpers_test.py            |   671 +-
 .../models/test_virtual_dataset_format.py          |    25 +
 .../unit_tests/security/guest_token_audit_test.py  |    87 +
 tests/unit_tests/security/manager_test.py          |    74 +
 .../test_realtime_notification_permissions.py      |    61 +
 tests/unit_tests/sql/metric_normalization_tests.py |   255 +
 tests/unit_tests/sql/parse_tests.py                |   721 +
 tests/unit_tests/subjects/test_raise_for_access.py |    22 +-
 tests/unit_tests/tags/commands/create_test.py      |    19 +-
 tests/unit_tests/tags/commands/update_test.py      |    10 +-
 tests/unit_tests/tasks/test_async_queries.py       |   661 +-
 tests/unit_tests/tasks/test_context.py             |    92 +
 tests/unit_tests/tasks/test_decorators.py          |   126 +-
 tests/unit_tests/tasks/test_dependencies.py        |   499 +
 tests/unit_tests/tasks/test_filters.py             |    61 +
 tests/unit_tests/tasks/test_guest.py               |   127 +
 tests/unit_tests/tasks/test_handlers.py            |   161 +-
 tests/unit_tests/tasks/test_heartbeat.py           |   157 +
 tests/unit_tests/tasks/test_locks.py               |   111 +
 tests/unit_tests/tasks/test_manager.py             |   881 +-
 tests/unit_tests/tasks/test_models.py              |    73 +
 tests/unit_tests/tasks/test_query_cancel.py        |   207 +
 tests/unit_tests/tasks/test_reap.py                |   193 +
 tests/unit_tests/tasks/test_scheduler_executor.py  |   185 +
 .../tasks/test_scheduler_soft_timeout.py           |    44 +-
 tests/unit_tests/tasks/test_schemas.py             |    89 +-
 tests/unit_tests/tasks/test_submit.py              |   126 +
 tests/unit_tests/tasks/test_subscription.py        |    68 +
 tests/unit_tests/tasks/test_timeout.py             |   335 +-
 tests/unit_tests/tasks/test_utils.py               |    19 +-
 tests/unit_tests/utils/cache_test.py               |    45 +
 tests/unit_tests/utils/csv_tests.py                |    27 +-
 tests/unit_tests/utils/test_cache_manager.py       |     6 +-
 tests/unit_tests/utils/test_screenshot_utils.py    |   309 +-
 tests/unit_tests/utils/webdriver_test.py           |   345 +-
 tests/unit_tests/versioning/test_activity.py       |   252 +
 tests/unit_tests/views/datasource/views_test.py    |   157 +-
 tests/unit_tests/views/test_base.py                |    51 +
 .../views/test_sql_lab_tab_state_views.py          |   203 +-
 .../unit_tests/websocket}/__init__.py              |     0
 tests/unit_tests/websocket/test_channel.py         |   319 +
 579 files changed, 61706 insertions(+), 24554 deletions(-)
 delete mode 100644 .github/actions/change-detector/label-draft-pr.yml
 delete mode 160000 .github/actions/comment-on-pr
 delete mode 160000 .github/actions/latest-tag
 create mode 100644 .github/workflows/asf-allowlist-check.yml
 create mode 100644 .github/workflows/check-openapi-spec-drift.yml
 delete mode 100644 .github/workflows/latest-release-tag.yml
 create mode 100755 docker/entrypoints/run-websocket.sh
 copy scripts/{check-custom-rules.sh => oxfmt.sh} (55%)
 create mode 100644 superset-core/src/superset_core/tasks/subscription.py
 delete mode 100644 
superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/DynamicEditableTitle.regression.test.tsx
 create mode 100644 
superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.stories.tsx
 rename superset-frontend/{plugins/plugin-chart-ag-grid-table/src/utils => 
packages/superset-ui-core/src/time-format}/DateWithFormatter.ts (68%)
 create mode 100644 
superset-frontend/packages/superset-ui-core/test/time-format/DateWithFormatter.test.ts
 create mode 100644 
superset-frontend/packages/superset-ui-core/test/time-format/utils/stringifyTimeInput.test.ts
 create mode 100644 
superset-frontend/playwright/tests/dashboard/dashboard-tabs.spec.ts
 copy superset-frontend/{src/components/Chart/DrillDetail/types.ts => 
plugins/plugin-chart-ag-grid-table/test/utils/formatDurationValue.test.ts} (52%)
 create mode 100644 
superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/TimeseriesLegend.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-handlebars/test/Handlebars.test.tsx
 delete mode 100644 
superset-frontend/plugins/plugin-chart-table/src/utils/DateWithFormatter.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-table/test/DataTable/DataTable.test.tsx
 copy superset-frontend/{src/components/Chart/DrillDetail/types.ts => 
plugins/plugin-chart-table/test/utils/formatDurationValue.test.ts} (52%)
 copy 
superset-frontend/{packages/superset-ui-core/src/components/Badge/index.tsx => 
src/components/ErrorMessage/PreformattedErrorDescription.tsx} (65%)
 create mode 100644 
superset-frontend/src/dashboard/components/PropertiesModal/sections/AsyncModeSection.test.tsx
 create mode 100644 
superset-frontend/src/dashboard/components/PropertiesModal/sections/AsyncModeSection.tsx
 create mode 100644 
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DefaultValue.test.tsx
 create mode 100644 superset-frontend/src/embedded/guestTokenDiagnostics.test.ts
 create mode 100644 superset-frontend/src/embedded/guestTokenDiagnostics.ts
 create mode 100644 
superset-frontend/src/explore/components/DatasourcePanel/compatibility.test.ts
 create mode 100644 
superset-frontend/src/explore/components/DatasourcePanel/compatibility.ts
 create mode 100644 
superset-frontend/src/explore/components/DatasourcePanel/folderDrag.test.ts
 create mode 100644 
superset-frontend/src/explore/components/DatasourcePanel/folderDrag.ts
 copy 
superset-frontend/src/{dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/constants.ts
 => 
explore/components/controls/DndColumnSelectControl/createAdhocMetricFromColumn.test.ts}
 (50%)
 create mode 100644 superset-frontend/src/features/tasks/LiveDuration.test.tsx
 create mode 100644 superset-frontend/src/features/tasks/LiveDuration.tsx
 create mode 100644 
superset-frontend/src/features/tasks/TaskDependenciesPopover.test.tsx
 create mode 100644 
superset-frontend/src/features/tasks/TaskDependenciesPopover.tsx
 create mode 100644 
superset-frontend/src/features/tasks/TaskPayloadPopover.test.tsx
 create mode 100644 superset-frontend/src/hooks/useTabId.test.ts
 create mode 100644 superset-frontend/src/middleware/realtime.test.ts
 create mode 100644 superset-frontend/src/middleware/realtime.ts
 create mode 100644 superset-frontend/src/utils/asyncMode.test.ts
 create mode 100644 superset-frontend/src/utils/asyncMode.ts
 delete mode 100644 superset/async_events/api.py
 delete mode 100644 superset/async_events/async_query_manager.py
 delete mode 100644 superset/async_events/async_query_manager_factory.py
 delete mode 100644 superset/charts/data/query_context_cache_loader.py
 delete mode 100644 superset/commands/chart/data/create_async_job_command.py
 create mode 100644 superset/commands/chart/utils.py
 create mode 100644 superset/commands/report/chart_data.py
 create mode 100644 superset/commands/tasks/reap.py
 create mode 100644 superset/common/query_serialization.py
 create mode 100644 superset/coordination/__init__.py
 create mode 100644 superset/coordination/base.py
 rename superset/{async_events => coordination}/cache_backend.py (75%)
 copy superset/{utils/pandas_postprocessing/rank.py => 
coordination/exceptions.py} (58%)
 create mode 100644 superset/coordination/types.py
 copy superset/mcp_service/chart/plugins/{pie.py => gauge.py} (60%)
 create mode 100644 
superset/migrations/versions/2026-08-21_12-00_7e2c9a4f1b83_create_task_dependencies_table.py
 create mode 100644 superset/models/task_dependencies.py
 create mode 100644 superset/sql/dialects/postgres.py
 create mode 100644 superset/sql/dialects/starrocks.py
 create mode 100644 superset/sql/metric_normalization.py
 create mode 100644 superset/tasks/dependencies.py
 create mode 100644 superset/tasks/guest.py
 create mode 100644 superset/tasks/heartbeat.py
 create mode 100644 superset/tasks/query_cancel.py
 create mode 100644 superset/tasks/subscription.py
 create mode 100644 superset/versioning/membership.py
 copy superset/{mcp_service/theme => websocket}/__init__.py (74%)
 create mode 100644 superset/websocket/channel.py
 copy superset/{mcp_service/utils/__init__.py => websocket/permissions.py} (59%)
 delete mode 100644 tests/integration_tests/async_events/api_tests.py
 delete mode 100644 tests/integration_tests/tasks/async_queries_tests.py
 create mode 100644 tests/integration_tests/tasks/commands/test_reap.py
 delete mode 100644 tests/unit_tests/async_events/__init__.py
 delete mode 100644 tests/unit_tests/async_events/async_query_manager_tests.py
 copy tests/unit_tests/{db_engine_specs/test_dynamodb.py => cli/update_test.py} 
(52%)
 delete mode 100644 
tests/unit_tests/commands/chart/create_async_job_command_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/update_test.py
 create mode 100644 
tests/unit_tests/commands/explore/test_get_query_authorship_bypass.py
 create mode 100644 tests/unit_tests/commands/report/chart_data_test.py
 rename {superset/async_events => tests/unit_tests/commands/tasks}/__init__.py 
(100%)
 create mode 100644 tests/unit_tests/commands/tasks/test_internal_update.py
 create mode 100644 
tests/unit_tests/commands/test_base_restore_version_command.py
 create mode 100644 tests/unit_tests/common/test_async_min_cache_ttl.py
 create mode 100644 tests/unit_tests/common/test_query_serialization.py
 copy {scripts => tests/unit_tests/coordination}/__init__.py (100%)
 rename tests/unit_tests/{async_events => coordination}/test_cache_backend.py 
(56%)
 create mode 100644 tests/unit_tests/coordination/test_service.py
 create mode 100644 tests/unit_tests/dashboards/semantic_view_access_test.py
 delete mode 100644 
tests/unit_tests/initialization/check_async_query_secret_test.py
 create mode 100644 
tests/unit_tests/initialization/check_websocket_secret_test.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_gauge_chart.py
 create mode 100644 
tests/unit_tests/security/test_realtime_notification_permissions.py
 create mode 100644 tests/unit_tests/sql/metric_normalization_tests.py
 create mode 100644 tests/unit_tests/tasks/test_context.py
 create mode 100644 tests/unit_tests/tasks/test_dependencies.py
 create mode 100644 tests/unit_tests/tasks/test_guest.py
 create mode 100644 tests/unit_tests/tasks/test_heartbeat.py
 create mode 100644 tests/unit_tests/tasks/test_locks.py
 create mode 100644 tests/unit_tests/tasks/test_models.py
 create mode 100644 tests/unit_tests/tasks/test_query_cancel.py
 create mode 100644 tests/unit_tests/tasks/test_reap.py
 create mode 100644 tests/unit_tests/tasks/test_scheduler_executor.py
 create mode 100644 tests/unit_tests/tasks/test_submit.py
 create mode 100644 tests/unit_tests/tasks/test_subscription.py
 copy {scripts => tests/unit_tests/websocket}/__init__.py (100%)
 create mode 100644 tests/unit_tests/websocket/test_channel.py

Reply via email to