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

amaannawab923 pushed a change to branch feat/embedded-chart
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard a658e8be090 fix(embedded): chain the migration onto the current master 
head
 discard 6a23050f04a fix(embedded): register the embedded chart response schema
 discard ab0a0b60bfb fix(embedded): resolve the guest user before the chart 
lookup
 discard 1f772b30596 fix(embedded): document the embedded PUT and expect the 
new chart permission
 discard ccc63158903 fix(embedded): declare embedded_charts in the chart purge 
policy
 discard cc9b1d8c28d fix(embedded): type the chart's datasource as Datasource
 discard 5bc5f5f19c3 chore(embedded): apply lint and formatting fixes
 discard 66b884f1996 fix(embedded): pad the embedded chart and size it to its 
container
 discard 63d6c3b1514 test(embedded): cover the fabricated hydrate payload
 discard 34f38ead763 fix(embedded): don't serve the mobile experience inside an 
iframe
 discard 35ebc7d3228 fix(embedded): restore fullscreen and image exports for 
embedded charts
 discard 73f03c1b3e6 fix(embedded): don't 500 on a malformed Referer
 discard 39fd3ddd04f fix(embedded): say 'chart' in the embed modal when 
embedding a chart
 discard fa28a975832 feat(embedded): complete the standalone chart render path
 discard 7909ddb7755 feat(embedded): allow guest tokens scoped to a chart
 discard 5f439b18f38 fix(embedded): correct import paths for the 6.x module 
layout
 discard 4c80658354b feat(embedded): expose Embed chart from the chart menu
 discard 8609fab3c6b feat(embedded): render an embedded chart via fabricated 
dashboard state
 discard a4be5ffa0cd feat(embedded): resolve a uuid as either an embedded 
dashboard or chart
 discard 3620c4cde5f feat(embedded): add EmbeddedChartDAO, schemas and chart 
embedded endpoints
 discard d9f3ed34ddc feat(embedded): add EmbeddedChart model and migration
     add 18465bad51f perf(dashboard): batch dataset lookups during dashboard 
export (#43017)
     add bf12a21367c fix(charts): sort chart types by display name (#43634)
     add c185a2c6785 chore(deps-dev): bump @types/node from 26.3.0 to 26.4.0 in 
/superset-frontend (#43819)
     add 464adba69b8 chore(deps-dev): bump minimizer-webpack-plugin from 5.6.1 
to 5.7.0 in /superset-frontend (#43818)
     add 3bd0ad52678 chore(deps): bump react-intersection-observer from 11.0.0 
to 11.0.1 in /superset-frontend (#43817)
     add 9d855a4adf9 chore(deps-dev): bump @types/node from 26.2.0 to 26.4.0 in 
/superset-websocket (#43815)
     add 0398b320f94 chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /docs in 
the security group across 1 directory (#43798)
     add 669a0cefb49 chore(deps): bump the security group across 1 directory 
with 2 updates (#43797)
     add d9887fd9286 chore(deps): bump js-yaml from 5.4.0 to 5.4.1 in /docs 
(#43816)
     add a95c40aa1e4 chore(deps): bump qs from 6.15.2 to 6.16.0 in 
/superset-websocket/utils/client-ws-app in the security group across 1 
directory (#43824)
     add d2d965e009f fix(navbar): use down-chevron icon consistently on all 
navbar dropdowns (#43531)
     add 28578160ff5 docs(pivot-table): document DB-computed totals/subtotals 
behavior (#43636)
     add b558f41461e feat(dashboard): convert @import to inline CSS in the 
dashboard CSS editor (#43667)
     add 9828281e7fd fix(charts): exclude string helpers from post_processing 
operation allowlist (#43345)
     add dd1a475df62 chore(deps-dev): bump baseline-browser-mapping from 
2.11.18 to 2.11.19 in /superset-frontend (#43750)
     add 232ccf66d64 chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in 
/superset-frontend (#43749)
     add c91c9018323 chore(deps): bump baseline-browser-mapping from 2.11.18 to 
2.11.19 in /docs (#43747)
     add 5d8ff9181a5 chore(deps-dev): bump the typescript-eslint group across 1 
directory with 2 updates (#43744)
     add a6cbd7c3b58 chore(deps-dev): bump typescript-eslint from 8.67.0 to 
8.68.0 in /superset-websocket (#43742)
     add 0bca5af7a9b fix(table): hide the Time Grain control in raw records 
mode (#43802)
     add 3258f5fa3f6 fix(security): catch JSONDecodeError on stored 
query_context in query_context_modified (#43795)
     add 765a4ecca51 chore(deps): bump caniuse-lite from 1.0.30001809 to 
1.0.30001810 in /docs (#43746)
     add cceb52e776f fix(embedded): don't let guest-user check turn error 
responses into 500s (#43834)
     add 93df5bc3620 fix(semantic-layers): classify SemanticLayer/SemanticView 
in FAB role sets (#43783)
     add 8d0637efadf fix(semantic-layers): serve filter-value suggestions for 
semantic views (#43777)
     add 2aacf579323 chore(deps): bump antd from 6.6.1 to 6.6.2 in 
/superset-frontend (#43858)
     add a6a794864bf chore(deps-dev): bump minimizer-webpack-plugin from 5.7.0 
to 5.8.0 in /superset-frontend (#43857)
     add 0e01b5fb4ca chore(deps): bump baseline-browser-mapping from 2.11.19 to 
2.11.20 in /docs (#43851)
     add 173d2173aaf chore(deps-dev): bump baseline-browser-mapping from 
2.11.19 to 2.11.20 in /superset-frontend (#43856)
     add 0fc410eeccd chore(deps-dev): bump @testing-library/react from 15.0.7 
to 16.3.3 in /superset-frontend (#43855)
     add 34286883d33 chore(deps): bump postcss from 8.5.23 to 8.5.26 in 
/superset-frontend (#43854)
     add 0a5eddb18b0 chore(deps): bump morgan from 1.11.0 to 1.12.0 in 
/superset-websocket/utils/client-ws-app (#43850)
     add a0685173932 chore(deps-dev): bump webpack from 5.109.2 to 5.110.1 in 
/superset-frontend (#43853)
     add c84c7c4bdd2 chore(ci): optimize Dependabot processes (#43681)
     add e9412576b20 feat(build/websocket): upgrade to Typescript 7 + migrate 
ESLint to TS7-compatible `oxlint` and`tsgolint` (#43703)
     add 8f6caf4ff94 feat(build): upgrade to Typescript 7, Babel 8, Webpack CLI 
7 and JSDOM 30 for `superset-embedded-sdk` (#43702)
     add f63a0e9d9c7 feat(conditional-formatting): add manual min/max 
color-range bounds (#43820)
     add 31a3a190373 chore(deps-dev): bump @types/node from 25.9.5 to 26.4.0 in 
/superset-embedded-sdk (#43881)
     add d27124e5f6b chore(deps-dev): bump webpack-cli from 7.2.2 to 7.2.3 in 
/superset-embedded-sdk (#43882)
     add 3b1e43be5c5 chore(deps-dev): bump css-loader from 7.1.4 to 7.1.5 in 
/superset-frontend (#43880)
     add bc6ff77af01 feat(ci): broaden usage of fast-startup `ubuntu-slim` 
runner (#43477)
     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 6504cad6bb3 feat(embedded): add EmbeddedChart model and migration
     add 10651a4dfeb feat(embedded): add EmbeddedChartDAO, schemas and chart 
embedded endpoints
     add 4dd680e11e5 feat(embedded): resolve a uuid as either an embedded 
dashboard or chart
     add f90ec7492db feat(embedded): render an embedded chart via fabricated 
dashboard state
     add 0a1fa937c25 feat(embedded): expose Embed chart from the chart menu
     add 80f3e2d9ac7 fix(embedded): correct import paths for the 6.x module 
layout
     add 9af43f52ddb feat(embedded): allow guest tokens scoped to a chart
     add 8bb6d592173 feat(embedded): complete the standalone chart render path
     add 20567da1c63 fix(embedded): say 'chart' in the embed modal when 
embedding a chart
     add 5188a08b9cd fix(embedded): don't 500 on a malformed Referer
     add 7f6b24cb079 fix(embedded): restore fullscreen and image exports for 
embedded charts
     add e1445b56c1c fix(embedded): don't serve the mobile experience inside an 
iframe
     add 2e2b473497d test(embedded): cover the fabricated hydrate payload
     add d4f4ce04415 fix(embedded): pad the embedded chart and size it to its 
container
     add 99131225229 chore(embedded): apply lint and formatting fixes
     add 74ad670ae29 fix(embedded): type the chart's datasource as Datasource
     add d13a5c7be49 fix(embedded): declare embedded_charts in the chart purge 
policy
     add 946ec1ae131 fix(embedded): document the embedded PUT and expect the 
new chart permission
     add d6e63c2539c fix(embedded): resolve the guest user before the chart 
lookup
     add 96725309dd2 fix(embedded): register the embedded chart response schema
     add 4858138ce8f fix(embedded): chain the migration onto the current master 
head
     add 4ab3070b7a1 fix(embedded): dump the chart id on embedded chart 
responses
     add 71c108ecd8b fix(embedded): load an embedded chart under the chart 
permission
     add e1287c0e3a2 fix(embedded): honour guest token revocation for charts
     add 8e9fa1b3a00 perf(embedded): load the chart stack lazily
     add d884080ceb3 fix(embedded): rename the chart description for the chart 
stack
     add 91942e3389e fix(dashboard): refetch the embedded config when the 
resource type changes
     add 137764b67fe fix(embedded): chain the migration onto the current master 
head

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   (a658e8be090)
            \
             N -- N -- N   refs/heads/feat/embedded-chart (137764b67fe)

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/dependabot.yml                             |    30 +
 .github/workflows/asf-allowlist-check.yml          |    46 +
 .github/workflows/check-openapi-spec-drift.yml     |    99 +
 .github/workflows/docker.yml                       |    25 +-
 .github/workflows/github-action-validator.yml      |     6 +-
 .github/workflows/hold-label-ci-gate.yml           |     4 +-
 .github/workflows/latest-release-tag.yml           |    42 -
 .github/workflows/pre-commit.yml                   |     2 +-
 .github/workflows/superset-e2e.yml                 |    33 +-
 .github/workflows/superset-extensions-cli.yml      |     2 +-
 .github/workflows/superset-frontend.yml            |     4 +-
 .github/workflows/superset-playwright.yml          |    32 +-
 .../workflows/superset-python-integrationtest.yml  |     2 +-
 .github/workflows/superset-python-presto-hive.yml  |     2 +-
 .github/workflows/superset-python-unittest.yml     |     2 +-
 .../workflows/superset-translations-comment.yml    |     2 +-
 .github/workflows/superset-translations.yml        |    14 +-
 .github/workflows/superset-websocket.yml           |     6 +-
 .github/workflows/supersetbot.yml                  |     2 +-
 .github/workflows/tag-release.yml                  |     2 +-
 .gitmodules                                        |     6 -
 .pre-commit-config.yaml                            |    13 +-
 Dockerfile                                         |    37 +
 SECURITY.md                                        |    10 +
 UPDATING.md                                        |   163 +
 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/cache.mdx            |    55 +-
 docs/admin_docs/configuration/event-logging.mdx    |    27 +-
 docs/admin_docs/configuration/theming.mdx          |   124 +
 docs/admin_docs/installation/docker-compose.mdx    |     2 +-
 docs/admin_docs/installation/kubernetes.mdx        |     2 +-
 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              |     6 +
 docs/docs/using-superset/embedding.mdx             |    69 +
 docs/docs/using-superset/exploring-data.mdx        |    14 +
 .../docs/using-superset/using-ai-with-superset.mdx |     8 +
 docs/netlify.toml                                  |     7 +-
 docs/package.json                                  |    12 +-
 docs/scripts/fix-openapi-spec.py                   |     1 -
 docs/scripts/generate-api-index.mjs                |     1 -
 docs/static/resources/openapi.json                 |   412 +-
 .../version-6.0.0/installation/docker-compose.mdx  |     2 +-
 .../version-6.0.0/installation/kubernetes.mdx      |     2 +-
 docs/yarn.lock                                     |   205 +-
 helm/superset/Chart.yaml                           |     2 +-
 helm/superset/README.md                            |     2 +-
 helm/superset/values.yaml                          |     5 +-
 pyproject.toml                                     |    27 +-
 requirements/base.in                               |     2 +-
 requirements/base.txt                              |    16 +-
 requirements/development.txt                       |    22 +-
 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            |  4349 ++-
 superset-embedded-sdk/package.json                 |    20 +-
 superset-embedded-sdk/tsconfig.json                |     2 +
 superset-frontend/jest.config.js                   |     6 +-
 superset-frontend/package-lock.json                | 34409 +++++++++++--------
 superset-frontend/package.json                     |    33 +-
 .../packages/generator-superset/package.json       |     2 +-
 .../packages/superset-core/package.json            |     2 +-
 .../superset-ui-chart-controls/package.json        |     4 +-
 .../superset-ui-chart-controls/src/types.ts        |    18 +
 .../src/utils/getColorFormatters.ts                |   204 +-
 .../test/utils/getColorFormatters.test.ts          |   456 +-
 .../packages/superset-ui-core/package.json         |     8 +-
 .../src/chart/components/StatefulChart.test.tsx    |   200 +-
 .../src/chart/components/StatefulChart.tsx         |    78 +-
 .../packages/superset-ui-core/src/chart/index.ts   |     4 +-
 .../src/chart/models/ChartProps.ts                 |    22 +-
 .../src/components/DeleteModal/index.tsx           |     3 +
 .../DropdownButton/DropdownButton.test.tsx         |    14 +
 .../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 +-
 .../src/query/buildQueryContext.ts                 |     4 +
 .../superset-ui-core/src/query/types/Query.ts      |     2 +
 .../src/query/types/QueryFormData.ts               |     2 +
 .../src/time-format/utils/stringifyTimeInput.ts    |    15 +-
 .../test/query/buildQueryContext.test.ts           |    13 +
 .../time-format/utils/stringifyTimeInput.test.ts   |    58 +
 .../playwright/pages/DashboardPage.ts              |    19 +
 .../tests/dashboard/dashboard-tabs.spec.ts         |   222 +
 .../tests/dashboard/dashboard-test-helpers.ts      |    19 +-
 .../plugin-chart-ag-grid-table/package.json        |     2 +-
 .../src/controlPanel.tsx                           |     9 +
 .../src/transformProps.ts                          |     2 +
 .../src/utils/DateWithFormatter.ts                 |     7 +
 .../test/controlPanel.test.ts                      |    73 +
 .../test/transformProps.test.ts                    |    57 +
 .../test/utils/DateWithFormatter.test.ts           |    60 +
 .../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 +
 .../plugins/plugin-chart-partition/package.json    |     2 +-
 .../plugin-chart-partition/src/Partition.ts        |    29 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     4 +-
 .../plugins/plugin-chart-table/package.json        |     2 +-
 .../plugin-chart-table/src/DataTable/DataTable.tsx |   154 +-
 .../src/DataTable/components/GlobalFilter.tsx      |    33 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    11 +-
 .../plugin-chart-table/src/controlPanel.tsx        |     9 +
 .../plugin-chart-table/src/transformProps.ts       |     2 +
 .../src/utils/DateWithFormatter.ts                 |     7 +
 .../test/DataTable/DataTable.test.tsx              |   129 +
 .../plugin-chart-table/test/TableChart.test.tsx    |   277 +
 .../plugin-chart-table/test/controlPanel.test.ts   |    73 +
 .../test/utils/DateWithFormatter.test.ts           |    60 +
 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 +
 superset-frontend/src/components/ListView/types.ts |     2 +
 .../DashboardBuilder/DashboardBuilder.tsx          |    47 +-
 .../EmbeddedModal/EmbeddedModal.test.tsx           |    29 +
 .../dashboard/components/EmbeddedModal/index.tsx   |     5 +-
 .../dashboard/components/PropertiesModal/index.tsx |    40 +
 .../sections/AsyncModeSection.test.tsx             |    48 +
 .../PropertiesModal/sections/AsyncModeSection.tsx  |    60 +
 .../sections/StylingSection.test.tsx               |   112 +
 .../PropertiesModal/sections/StylingSection.tsx    |    95 +-
 .../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/FiltersConfigForm.tsx        |    48 +-
 superset-frontend/src/dashboard/types.ts           |     2 +
 .../src/dashboard/util/permissionUtils.test.ts     |     1 +
 .../src/dashboard/util/resolveCssImports.test.ts   |   210 +
 .../src/dashboard/util/resolveCssImports.ts        |   280 +
 .../embedded/embeddedChart/hydrateEmbedded.test.ts |    11 +
 .../src/embedded/embeddedChart/hydrateEmbedded.ts  |     6 +-
 .../src/embedded/embeddedChart/useExploreData.ts   |    23 +-
 .../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           |    55 +-
 .../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 +
 .../src/explore/components/SaveModal.test.tsx      |   122 +-
 .../src/explore/components/SaveModal.tsx           |    16 +-
 .../ConditionalFormattingControl.tsx               |     3 +
 .../FormattingPopover.tsx                          |     2 +
 .../FormattingPopoverContent.test.tsx              |   773 +-
 .../FormattingPopoverContent.tsx                   |   332 +-
 .../ConditionalFormattingControl/constants.ts      |    17 +-
 .../controls/ConditionalFormattingControl/types.ts |    12 +
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   200 +-
 .../index.tsx                                      |    81 +-
 .../src/explore/exploreUtils/index.ts              |    18 +-
 .../src/features/home/DashboardTable.test.tsx      |     8 +
 .../src/features/home/DashboardTable.tsx           |     7 +
 .../src/features/home/LanguagePicker.test.tsx      |    10 +
 .../src/features/home/LanguagePicker.tsx           |     2 +-
 superset-frontend/src/features/home/Menu.test.tsx  |    14 +
 superset-frontend/src/features/home/Menu.tsx       |    10 +
 .../src/features/home/RightMenu.test.tsx           |    28 +
 superset-frontend/src/features/home/RightMenu.tsx  |    10 +
 .../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/hooks/useThemeMenuItems.test.tsx           |    10 +
 .../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 +
 .../pages/ChartList/ChartList.listview.test.tsx    |    76 +-
 superset-frontend/src/pages/ChartList/index.tsx    |    28 +-
 .../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    |   334 +
 superset-frontend/src/views/CRUD/hooks.ts          |   129 +
 superset-websocket/.oxfmtrc.json                   |     1 -
 superset-websocket/Dockerfile                      |     8 +-
 superset-websocket/README.md                       |   272 +-
 superset-websocket/config.example.json             |     4 +-
 superset-websocket/config.test.json                |     4 +-
 superset-websocket/eslint.config.mjs               |    50 -
 {docs => superset-websocket}/oxlint.json           |    41 +-
 superset-websocket/package-lock.json               |  2614 +-
 superset-websocket/package.json                    |    26 +-
 superset-websocket/spec/config.test.ts             |    30 +
 superset-websocket/spec/index.test.ts              |  1155 +-
 superset-websocket/src/config.ts                   |    76 +-
 superset-websocket/src/index.ts                    |   778 +-
 superset-websocket/utils/README.md                 |     6 +-
 superset-websocket/utils/client-ws-app/app.js      |    18 +-
 superset-websocket/utils/client-ws-app/bin/www     |    20 +-
 .../utils/client-ws-app/package-lock.json          |    76 +-
 .../utils/client-ws-app/package.json               |     3 +-
 .../utils/client-ws-app/public/javascripts/app.js  |     2 +-
 .../utils/client-ws-app/routes/index.js            |    26 +-
 superset-websocket/utils/loadtest.js               |    74 +-
 superset/async_events/api.py                       |   179 -
 superset/async_events/async_query_manager.py       |   468 -
 .../async_events/async_query_manager_factory.py    |    35 -
 superset/charts/api.py                             |   238 +-
 superset/charts/data/api.py                        |   177 +-
 superset/charts/data/query_context_cache_loader.py |    30 -
 superset/charts/filters.py                         |    45 +-
 superset/charts/schemas.py                         |   142 +-
 superset/cli/update.py                             |    17 +-
 superset/commands/chart/create.py                  |     2 +-
 .../chart/data/create_async_job_command.py         |    43 -
 superset/commands/chart/data/get_data_command.py   |     4 +
 superset/commands/chart/update.py                  |     7 +-
 superset/commands/dashboard/export.py              |    98 +-
 superset/commands/dashboard/update.py              |    14 +-
 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/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/utils.py            |    14 +
 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/common/query_context.py                   |    35 +-
 superset/common/query_context_factory.py           |     4 +
 superset/common/query_context_processor.py         |   199 +-
 superset/common/query_object.py                    |    12 +-
 superset/common/query_object_factory.py            |    13 +-
 superset/common/query_serialization.py             |   131 +
 superset/common/utils/query_cache_manager.py       |    16 +-
 superset/config.py                                 |   203 +-
 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/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                       |    50 +-
 superset/db_engine_specs/base.py                   |    13 +
 superset/db_engine_specs/postgres.py               |    16 +-
 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/initialization/__init__.py                |    58 +-
 superset/key_value/utils.py                        |     6 +-
 superset/mcp_service/chart/chart_helpers.py        |     7 +
 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 +-
 .../chart/tool/get_chart_type_schema.py            |    10 +-
 ..._7e2c9a4f1b83_create_task_dependencies_table.py |   195 +
 ...10-00_a1c7e4b62f18_add_embedded_charts_table.py |     4 +-
 ...retire_semantic_layer_views_connections_pvms.py |   114 +
 superset/models/core.py                            |     7 +
 superset/models/dashboard.py                       |   128 +-
 superset/models/helpers.py                         |   225 +-
 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                       |   265 +-
 superset/semantic_layers/api.py                    |     7 +
 superset/semantic_layers/models.py                 |   173 +-
 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/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                        |   297 +-
 superset/tasks/schemas.py                          |   161 +-
 superset/tasks/subscription.py                     |    84 +
 superset/tasks/utils.py                            |   197 +-
 superset/utils/cache.py                            |    30 +-
 superset/utils/cache_manager.py                    |     4 +-
 superset/utils/error_sanitization.py               |    22 +-
 superset/utils/feature_flag_manager.py             |    64 +-
 superset/utils/pandas_postprocessing/__init__.py   |    10 +
 superset/versioning/activity/orchestrator.py       |    19 +-
 superset/versioning/activity/queries.py            |    83 +-
 superset/views/base.py                             |    15 +-
 superset/views/datasource/views.py                 |    96 +-
 .../{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/charts/api_tests.py        |   114 +
 tests/integration_tests/charts/commands_tests.py   |    88 +-
 tests/integration_tests/charts/data/api_tests.py   |   131 +-
 tests/integration_tests/dashboards/api_tests.py    |     2 +
 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/query_context_tests.py     |    73 +
 tests/integration_tests/reports/api_tests.py       |     1 +
 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/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/data/test_empty_query_context.py        |     7 +
 tests/unit_tests/charts/test_chart_data_api.py     |   183 +-
 tests/unit_tests/charts/test_filters.py            |   141 +
 tests/unit_tests/charts/test_schemas.py            |   115 +
 .../test_dynamodb.py => cli/update_test.py}        |    38 +-
 .../chart/create_async_job_command_test.py         |    51 -
 tests/unit_tests/commands/dashboard/export_test.py |   287 +-
 tests/unit_tests/commands/dashboard/update_test.py |    82 +
 .../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 +
 .../unit_tests/commands/importers/v1/utils_test.py |   102 +
 tests/unit_tests/commands/sql_lab/test_estimate.py |    42 +
 .../unit_tests/commands/tasks}/__init__.py         |     0
 .../commands/tasks/test_internal_update.py         |    65 +
 .../unit_tests/common/test_async_min_cache_ttl.py  |    67 +
 .../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 +
 tests/unit_tests/datasets/schema_tests.py          |    95 +
 tests/unit_tests/db_engine_specs/test_base.py      |     7 +
 tests/unit_tests/db_engine_specs/test_postgres.py  |    66 +
 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            |     1 -
 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 +
 tests/unit_tests/models/dashboard_test.py          |   571 +
 tests/unit_tests/models/helpers_test.py            |   597 +-
 tests/unit_tests/queries/query_object_test.py      |    17 +
 .../unit_tests/security/guest_token_audit_test.py  |    87 +
 tests/unit_tests/security/manager_test.py          |   156 +
 .../security/test_guest_token_revocation.py        |   153 +-
 .../test_realtime_notification_permissions.py      |    61 +
 tests/unit_tests/semantic_layers/models_test.py    |   400 +
 .../semantic_layers/values_endpoint_test.py        |   127 +
 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/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 +
 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/test_error_sanitization.py  |    17 +
 tests/unit_tests/versioning/test_activity.py       |   127 +
 tests/unit_tests/views/datasource/views_test.py    |   157 +-
 tests/unit_tests/views/test_base.py                |    51 +
 tests/unit_tests/views/test_error_handling.py      |    56 +
 .../unit_tests/websocket}/__init__.py              |     0
 tests/unit_tests/websocket/test_channel.py         |   319 +
 521 files changed, 62431 insertions(+), 26996 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
 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
 create mode 100644 
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/DateWithFormatter.test.ts
 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
 create mode 100644 
superset-frontend/plugins/plugin-chart-table/test/DataTable/DataTable.test.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-table/test/utils/DateWithFormatter.test.ts
 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/util/resolveCssImports.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.ts
 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/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-websocket/eslint.config.mjs
 copy {docs => superset-websocket}/oxlint.json (89%)
 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/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/migrations/versions/2026-09-03_00-00_b3e9c1a75d24_retire_semantic_layer_views_connections_pvms.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
 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
 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/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/semantic_layers/values_endpoint_test.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