You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ms...@apache.org on 2026/06/08 19:58:54 UTC

(superset) branch msyavuz/fix/theme-embedded-override updated (aaf69673c71 -> 62626d2251d)

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

msyavuz pushed a change to branch msyavuz/fix/theme-embedded-override
in repository https://gitbox.apache.org/repos/asf/superset.git


    from aaf69673c71 fix(theme): embedded method overrides dashboard level config
     add e5ff6de790b chore: correct typos in config.py and models_test.py comments (#40706)
     add cb2a56d16e0 chore: guard recursive merge keys and invoke subprocess without a shell (#40558)
     add e5c7200551a ci: gate expensive test workflows at the job level (#40718)
     add 001834470b8 fix(mcp): escape LIKE wildcards in MCP list tool search filters (#40682)
     add f4dfb7f0266 fix(mcp): fall back to form_data spatial query for Deck.gl charts (#40339)
     add fcb1e299ace fix(nvd3): sanitize generateMultiLineTooltipContent output (#40612)
     add 6ea4e227856 refactor(nvd3): extract testable generateAnnotationTooltipContent helper (#40620)
     add 80ea36c852f fix(db_engine_specs): escape schema name in regex; document safe filter pattern (#40642)
     add c373da1bb91 ci: add cancel-in-progress concurrency to PR helper workflows (#40725)
     add 80a5f6b787e fix(calendar): Fix day offset in Calendar Heatmap visualization (#34564)
     add 2be2246a003 chore(deps-dev): bump gevent from 24.2.1 to 26.4.0 (#40378)
     add 43fde2fb07e fix(charts): enforce DISALLOWED_SQL_FUNCTIONS and DISALLOWED_SQL_TABLES at chart-data execution (#40567)
     add 6a125bf774b fix(jinja): expose dialect-escaped companion value on get_filters() (#40531)
     add 9d1bc6b2ccb fix(i18n): don't flag intentional string deletions as translation regressions (#40716)
     add cf5307d0c6f ci: reduce Cypress parallelism from 6 shards to 2 (#40717)
     add 5ba60d51fd0 ci: gate CodeQL analysis at the job level for docs-only PRs (#40724)
     add 41572dbf9df fix(chart): restrict owner lookup to users with write access (#39304)
     add 696705794b1 ci: gate docker image builds at the job level (#40723)
     add 966c243db6f ci: drop removed Cypress shards from required status checks (#40770)
     add aa547da9607 fix: remove registration_hash in the registrations API (#40643)
     add bdb081329fb feat(websocket): validate WebSocket upgrade Origin against an allowlist (#40625)
     add ff5e43c8a09 ci: add timeout-minutes to compute-heavy workflow jobs (#40743)
     add 8dcc7e7eec2 ci: stable required-check anchors for skippable matrix test jobs (#40772)
     add ddb09f468d8 fix(plugin-chart-ag-grid-table): enforce numeric bounds for range (BETWEEN) filters (#40607)
     add 23d18743bdb fix(deck.gl): strip all JS-executed form_data keys when JavaScript controls are disabled (#40602)
     add c505c70c52e fix(databases): do not render existing encrypted field value in edit mode (#40628)
     add 75d94ff466a fix(SafeMarkdown): block script-executing link protocols regardless of EscapeMarkdownHtml (#40622)
     add cd5bdf11acc fix(playwright): de-flake list-view delete and bulk-export specs (#39980)
     add 9a31362fa5e fix(reports): stamp email subject date at send time, not import time (#40693)
     add 7d69f76127a fix(mcp): API key authentication for MCP — transport, validation, and RBAC (#39604)
     add 6f97d9817e1 fix(database): preserve engine_information when creating database connection (#38107)
     add 80a3df3550e ci: run full Python-version matrix on push, current-only on PRs (#40722)
     add 3f94c9db2d5 chore(deps): bump query-string from 9.3.1 to 9.4.0 in /superset-frontend (#40742)
     add cbd731e6614 chore(deps-dev): bump webpack from 5.107.1 to 5.107.2 in /superset-frontend (#40741)
     add 09cd2c26cdc chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40740)
     add 6662529306e chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40739)
     add 0ad09d5cd0e chore(deps): bump dompurify from 3.4.8 to 3.4.7 in /superset-frontend/packages/superset-ui-core (#40737)
     add ddeec68c88a chore(deps): bump dompurify from 3.4.5 to 3.4.7 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#40735)
     add 0d1b702ce8d feat(extensions): static supply-chain controls — denylist + version policy (#40668)
     add 7d323dc0ae3 fix(filters): Enable decimal values in Range filter slider (#34742)
     add 639866625db fix(echarts): Show full labels in bar chart tooltips (#34759)
     add f5f4a415981 chore(deps-dev): bump @babel/register from 7.29.3 to 7.29.7 in /superset-frontend (#40757)
     add 937eff6d52c chore(deps-dev): bump oxlint from 1.66.0 to 1.67.0 in /superset-frontend (#40755)
     add 04939c94cc4 chore(deps-dev): bump @babel/node from 7.29.0 to 7.29.7 in /superset-frontend (#40752)
     add 94c1a1b1f20 chore(deps-dev): bump @babel/runtime-corejs3 from 7.29.2 to 7.29.7 in /superset-frontend (#40751)
     add ccce0cab187 chore(deps): bump content-disposition from 2.0.0 to 2.0.1 in /superset-frontend (#40750)
     add 74060987082 fix(dashboard-filter): Consider dashboard filters to charts not declared in the dashboard position (#40774)
     add 79c74af2e9d ci: cache npm downloads in frontend-heavy workflows (#40744)
     add 875673f6707 fix(asyncEvent): use Map for job listener/retry registries (#40747)
     add 42367afb25c fix(reports): add per-tile animation wait to prevent partial ECharts renders in tiled screenshots (#40694)
     add 98c096df056 chore(deps): bump @babel/runtime from 7.29.2 to 7.29.7 in /superset-frontend (#40753)
     add 45a616439bb chore(deps): update dayjs requirement from ^1.11.20 to ^1.11.21 in /superset-frontend/packages/superset-ui-core (#40736)
     add aa4092ba682 fix(mcp): add select_columns lean defaults to get_dashboard_info, get_chart_info, get_dataset_info (#40473)
     add fa42b13eb83 fix(dataset): preserve numeric column types when pydruid infers STRING from first-row value (#40677)
     add 601f9c2b8c3 fix(embedded): add guest token to streaming exports (#40712)
     add 55bb75efe6d fix(dashboard): prevent filter dropdown button from disappearing during layout recalculations (#38193)
     add 645aa3b1df4 chore(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6 in /superset-frontend (#40795)
     add 81192048572 fix(dashboard): sort Dynamic Group By display values alphabetically (#40220)
     add 108e40cbb61 feat(duration-format): replace pretty-ms with native Intl.DurationFormat for localized duration formatting (#39330)
     add 550c80f640a chore(lint): convert ChartRenderer, Chart, DrillByChart to function components (#39459)
     add 70ee6e21eb6 chore(deps-dev): bump @babel/core from 7.29.0 to 7.29.7 in /superset-frontend (#40800)
     add b069b6caf6c chore(deps-dev): bump terser-webpack-plugin from 5.6.0 to 5.6.1 in /superset-frontend (#40797)
     add 20024ce3af2 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.10.2 to 0.10.4 in /superset-frontend (#40796)
     add 44777cc1109 chore(deps): bump @ant-design/icons from 6.2.3 to 6.2.5 in /superset-frontend (#40794)
     add 2aca35cb68d chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40793)
     add e956f82224b fix(dashboard): prevent divider display controls from reverting on second save (#40696)
     add 1623ceda73d fix(result_set): preserve JSON/JSONB data as objects instead of strings (#38172)
     add 19d01521bf5 fix(dashboard): replace chartsInScope references at import time (#38171)
     add 81bc3088e22 fix(dashboard): prevent stale favorite status errors after navigation (#38156)
     add 863e93539ae fix(dashboard): clean up JSON formatting and contribution suffix in V… (#40683)
     add 0984839788f ci: required-check anchors for cypress-matrix and playwright-tests (unblock docs-only PRs) (#40780)
     add 7eaaffde896 ci: cache npm downloads in the translations workflow (#40779)
     add 7f452e40966 chore(deps): bump @ant-design/icons from 6.2.3 to 6.2.5 in /docs (#40792)
     add 5a6306983e5 docs: add social media links to website footer and README (#38108)
     add 4715cfd3725 chore(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6 in /docs (#40791)
     add 2babb480818 chore(deps): bump ioredis from 5.10.1 to 5.11.0 in /superset-websocket (#40734)
     add 3d7021fdf95 chore(deps): bump hot-shots from 14.3.1 to 15.0.0 in /superset-websocket (#40789)
     add 151df43d9d0 fix(docker): prevent static asset 404s by waiting for webpack dev server (#38161)
     add 6b0d7479399 fix: cache warmup using WebDriver for reliable authentication (#38449)
     add 381b99ae84b fix(csv): respect CSV_EXPORT config for decimal separator and delimiter (#38170)
     add b85a2cdab15 fix: ODPS (MaxCompute) data source table preview failed (#38174)
     add 84aaaaa6b08 fix(mcp): filter sensitive database columns from list_databases loaded-metadata (#40771)
     add ef7379c47e3 chore(mcp): remove low-value list/info tools that fail agent-native policy (#40690)
     add 6348aa19173 chore(deps-dev): update taos-ws-py requirement from >=0.3.8 to >=0.6.9 (#40831)
     add d3f07a7ba54 chore(deps-dev): update playwright requirement from <2,>=1.37.0 to >=1.60.0,<2 (#40829)
     add 2463eb65b1c chore(deps-dev): bump python-ldap from 3.4.5 to 3.4.7 (#40827)
     add 9da45363542 chore(deps-dev): update oceanbase-py requirement from >=0.0.1 to >=0.0.1.2 (#40824)
     add 849f297e9d2 chore(deps-dev): update sqlalchemy-vertica-python requirement from <0.7,>=0.5.9 to >=0.6.3,<0.7 (#40826)
     add 138e405cb60 chore(deps): bump xlsxwriter from 3.0.9 to 3.2.9 (#40825)
     add c0a12f4cfb5 chore(deps-dev): update sqlalchemy-kusto requirement from <4,>=3.0.0 to >=3.1.2,<4 (#40828)
     add 9bb700ff0df chore(deps-dev): bump concurrently from 9.2.1 to 10.0.0 in /superset-frontend (#40798)
     add 5da63d716be fix(toasts): stop the toast overlay from covering controls behind it (#40805)
     add 06f95f53623 refactor(explore): migrate Explore Controls from react-dnd to @dnd-kit (#37880)
     add 21189ae130a fix(dashboard): update browser tab title when dashboard is renamed (#40730)
     add 7c7ab88a602 feat(ListView): expose expandable prop (#40765)
     add dc423b22b31 feat(embedded): support themeMode URL param for initial theme (#40760)
     add a5fe47ee715 docs(footer): render social icons as uniform white (#40854)
     add b4eda37fbf9 chore(deps-dev): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /superset-frontend (#40849)
     add 983f2818b0e chore(deps-dev): bump @swc/plugin-emotion from 14.10.0 to 14.12.0 in /superset-frontend (#40848)
     add c5d795c1f11 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40847)
     add 709fd52b0b3 chore(deps-dev): bump tsx from 4.22.3 to 4.22.4 in /superset-frontend (#40845)
     add 534d2191ffe chore(deps): bump react-draggable from 4.5.0 to 4.6.0 in /superset-frontend (#40844)
     add c6ecaf9642b chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /docs (#40843)
     add 228ac0d5687 chore(deps): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /docs (#40842)
     add ba6e9cc90fa chore(deps-dev): bump eslint from 10.4.0 to 10.4.1 in /superset-websocket (#40840)
     add 507cf936877 test(dashboard): API-created dashboards should link charts from position_json (#32966) (#40816)
     add 62626d2251d Merge branch 'master' into msyavuz/fix/theme-embedded-override

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |  14 +-
 .github/workflows/codeql-analysis.yml              |  35 +-
 .github/workflows/docker.yml                       |  54 +-
 .github/workflows/github-action-validator.yml      |   5 +
 .github/workflows/labeler.yml                      |   5 +
 .github/workflows/pr-lint.yml                      |   5 +
 .github/workflows/pre-commit.yml                   |   8 +-
 .github/workflows/superset-e2e.yml                 | 126 +++-
 .github/workflows/superset-extensions-cli.yml      |   5 +-
 .github/workflows/superset-frontend.yml            |   6 +
 .github/workflows/superset-playwright.yml          |  40 +-
 .../workflows/superset-python-integrationtest.yml  |  98 +--
 .github/workflows/superset-python-presto-hive.yml  |  50 +-
 .github/workflows/superset-python-unittest.yml     |  56 +-
 .github/workflows/superset-translations.yml        |   2 +
 .github/workflows/superset-websocket.yml           |   1 +
 README.md                                          |   5 +
 UPDATING.md                                        |  23 +
 docker-compose.yml                                 |  25 +
 docs/admin_docs/configuration/cache.mdx            |  33 +
 docs/docusaurus.config.ts                          |  17 +
 docs/i18n/en/docusaurus-theme-classic/footer.json  |   2 +-
 docs/package.json                                  |   8 +-
 docs/src/styles/main.css                           |  52 +-
 docs/static/img/community/reddit-symbol.svg        | Bin 0 -> 1995 bytes
 docs/static/img/community/slack-symbol.svg         | Bin 0 -> 1911 bytes
 docs/yarn.lock                                     |  55 +-
 pyproject.toml                                     |  17 +-
 requirements/base.txt                              |   4 +-
 requirements/development.txt                       |   8 +-
 .../translations/check_translation_regression.py   | 174 +++--
 superset-embedded-sdk/README.md                    | 116 ++--
 superset-frontend/jest.config.js                   |   2 +-
 superset-frontend/package-lock.json                | 577 ++++++++--------
 superset-frontend/package.json                     |  38 +-
 .../packages/superset-core/package.json            |   2 +-
 .../src/utils/D3Formatting.ts                      |   2 +-
 .../packages/superset-ui-core/package.json         |  10 +-
 .../DropdownContainer/DropdownContainer.tsx        |  31 +-
 .../src/components/Modal/Modal.tsx                 |  20 +-
 .../src/components/SafeMarkdown/SafeMarkdown.tsx   |  49 +-
 .../src/components/Table/index.tsx                 |   2 +
 .../TableCollection/TableCollection.test.tsx       |   6 +
 .../src/components/TableCollection/index.tsx       |  31 +-
 .../superset-ui-core/src/number-format/README.md   |   6 +-
 .../factories/createDurationFormatter.ts           |  47 +-
 .../utils/getIntlDurationFormatter.ts}             |  14 +-
 .../src/number-format/utils/parseMilliseconds.ts   |  57 ++
 .../superset-ui-core/src/query/types/Dashboard.ts  |   1 -
 .../test/components/SafeMarkdown.test.tsx          |  58 ++
 .../factories/createDurationFormatter.test.ts      |  25 +-
 .../utils/getIntlDurationFormatter.test.ts         |  38 ++
 .../number-format/utils/parseMilliseconds.test.ts  | 148 +++++
 .../packages/superset-ui-core/types/intl.d.ts      |  73 ++
 .../playwright/components/ListView/BulkSelect.ts   |  84 ++-
 .../playwright/components/ListView/index.ts        |   1 +
 .../components/modals/DeleteConfirmationModal.ts   |  32 +-
 .../playwright/pages/ChartListPage.ts              |  33 +-
 .../playwright/pages/DashboardListPage.ts          |  33 +-
 .../playwright/pages/DatasetListPage.ts            |  39 +-
 .../playwright/tests/chart/chart-list.spec.ts      | 103 ++-
 .../tests/dashboard/dashboard-list.spec.ts         | 137 ++--
 .../playwright/tests/dataset/dataset-list.spec.ts  | 128 ++--
 superset-frontend/playwright/utils/constants.ts    |   7 +-
 .../legacy-plugin-chart-calendar/src/utils.ts      |   4 +-
 .../src/vendor/cal-heatmap.ts                      |  27 +-
 .../test/utils.test.ts                             | 125 ++--
 .../plugins/legacy-preset-chart-nvd3/package.json  |   4 +-
 .../plugins/legacy-preset-chart-nvd3/src/utils.ts  |  36 +-
 .../legacy-preset-chart-nvd3/test/utils.test.ts    |  79 +++
 .../src/utils/agGridFilterConverter.ts             |  33 +-
 .../test/utils/agGridFilterConverter.test.ts       |  61 ++
 .../plugins/plugin-chart-echarts/package.json      |   2 +-
 .../src/Timeseries/transformProps.ts               |   6 +-
 .../test/Timeseries/transformProps.test.ts         |  97 +++
 .../plugins/plugin-chart-handlebars/package.json   |   2 +-
 .../plugins/preset-chart-deckgl/package.json       |   2 +-
 superset-frontend/spec/helpers/setup.ts            |   4 +
 superset-frontend/spec/helpers/testing-library.tsx |   7 +
 .../DynamicGroupBy/DynamicGroupByPlugin.test.tsx   |  81 +++
 .../DynamicGroupBy/DynamicGroupByPlugin.tsx        |  19 +-
 .../components/DynamicGroupBy/types.ts             |   1 -
 superset-frontend/src/components/Chart/Chart.tsx   | 506 +++++++-------
 .../src/components/Chart/ChartRenderer.test.tsx    |  83 +--
 .../src/components/Chart/ChartRenderer.tsx         | 732 ++++++++++-----------
 .../src/components/Chart/DrillBy/DrillByChart.tsx  |   4 +-
 .../src/components/ListView/ListView.test.tsx      |   5 +-
 .../src/components/ListView/ListView.tsx           |  23 +-
 superset-frontend/src/components/ListView/utils.ts |  22 +-
 .../MessageToasts/ToastPresenter.test.tsx          |  10 +
 .../components/MessageToasts/ToastPresenter.tsx    |   4 +-
 .../useStreamingExport.test.ts                     |  32 +
 .../StreamingExportModal/useStreamingExport.ts     |   5 +
 .../src/dashboard/actions/dashboardState.test.ts   | 331 +++++++++-
 .../src/dashboard/actions/dashboardState.ts        | 100 ++-
 .../DashboardBuilder/DashboardWrapper.test.tsx     |  53 +-
 .../FilterControls/GroupByFilterCard.test.tsx      |  41 ++
 .../FilterBar/FilterControls/GroupByFilterCard.tsx |  36 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |   2 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx | 133 ++++
 .../FiltersConfigModal/FiltersConfigModal.tsx      |  18 +-
 .../dashboard/containers/DashboardPage.test.tsx    | 191 +++++-
 .../src/dashboard/containers/DashboardPage.tsx     |  24 +-
 .../util/charts/getFormDataWithExtraFilters.ts     |  12 -
 .../util/migrateChartCustomization.test.ts         |  24 +-
 .../dashboard/util/migrateChartCustomization.ts    |   7 +-
 .../src/embedded/EmbeddedContextProviders.tsx      |   5 +-
 .../src/embedded/getInitialThemeMode.test.ts       |  66 ++
 .../embedded/getInitialThemeMode.ts}               |  27 +-
 .../components/useGridResultTable.tsx              |  37 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |  40 ++
 .../DatasourcePanelDragOption.test.tsx             |  16 +-
 .../DatasourcePanelDragOption/index.tsx            |  44 +-
 .../ExploreContainer/ExploreContainer.test.tsx     | 120 ++--
 .../ExploreContainer/ExploreDndContext.test.tsx    | 125 ++++
 .../ExploreContainer/ExploreDndContext.tsx         | 244 +++++++
 .../explore/components/ExploreContainer/index.tsx  |  81 +--
 .../components/controls/ContourControl/index.tsx   |   2 +
 .../DndColumnMetricSelect.test.tsx                 | 273 ++++----
 .../DndColumnSelect.test.tsx                       |  24 +-
 .../DndColumnSelectControl/DndColumnSelect.tsx     |   5 +
 .../DndFilterSelect.test.tsx                       | 329 +++++----
 .../DndColumnSelectControl/DndFilterSelect.tsx     |   2 +
 .../DndMetricSelect.test.tsx                       | 258 ++++----
 .../DndColumnSelectControl/DndMetricSelect.tsx     |   5 +
 .../DndColumnSelectControl/DndSelectLabel.test.tsx |   9 +-
 .../DndColumnSelectControl/DndSelectLabel.tsx      |  83 ++-
 .../DndColumnSelectControl/OptionWrapper.test.tsx  |  55 +-
 .../DndColumnSelectControl/OptionWrapper.tsx       |  90 +--
 .../DndColumnSelectControl/dndTestUtils.ts         | 120 ++++
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |   2 +-
 .../OptionControls/OptionControls.test.tsx         |  21 +-
 .../components/controls/OptionControls/index.tsx   | 109 ++-
 .../DatabaseConnectionForm/EncryptedField.test.tsx |  62 +-
 .../DatabaseConnectionForm/EncryptedField.tsx      |  12 +-
 .../databases/DatabaseModal/index.test.tsx         |  37 ++
 .../src/features/databases/DatabaseModal/index.tsx |   7 +
 .../src/features/tasks/TaskStatusIcon.tsx          |   4 +
 .../src/features/tasks/timeUtils.test.ts           |   6 +-
 superset-frontend/src/features/tasks/timeUtils.ts  |  72 +-
 .../components/Range/RangeFilterPlugin.test.tsx    | 159 ++++-
 .../filters/components/Range/RangeFilterPlugin.tsx |  26 +
 .../src/middleware/asyncEvent.test.ts              |  28 +
 superset-frontend/src/middleware/asyncEvent.ts     |  37 +-
 superset-frontend/src/pages/ChartList/index.tsx    |   3 +
 .../src/pages/DashboardList/index.tsx              |   3 +
 superset-frontend/src/pages/DatasetList/index.tsx  |   6 +
 superset-frontend/src/pages/TaskList/index.tsx     |   7 +-
 .../UserRegistrations/UserRegistrations.test.tsx   |   7 +-
 .../src/pages/UserRegistrations/index.tsx          |  14 -
 superset-frontend/src/preamble.test.ts             | 113 ++++
 superset-frontend/src/preamble.ts                  |   3 +-
 superset-frontend/src/setup/setupFormatters.ts     |  15 +-
 superset-websocket/README.md                       |  19 +
 superset-websocket/config.example.json             |   3 +-
 superset-websocket/package-lock.json               | 135 ++--
 superset-websocket/package.json                    |   6 +-
 superset-websocket/spec/index.test.ts              |  99 +++
 superset-websocket/src/config.ts                   |   9 +-
 superset-websocket/src/index.ts                    |  37 ++
 superset/charts/api.py                             |   9 +
 superset/charts/client_processing.py               |   4 +-
 superset/charts/data/dashboard_filter_context.py   |  30 +-
 superset/commands/dashboard/create.py              |  13 +-
 superset/commands/dashboard/importers/v1/utils.py  | 148 +++--
 superset/commands/streaming_export/base.py         |  67 +-
 superset/config.py                                 |  27 +-
 superset/daos/base.py                              |  37 +-
 superset/daos/database.py                          |  75 +++
 superset/databases/api.py                          |  20 +-
 superset/dataframe.py                              |  18 +-
 superset/db_engine_specs/__init__.py               |   8 +
 superset/db_engine_specs/base.py                   |  43 +-
 superset/db_engine_specs/druid.py                  |  26 +
 superset/db_engine_specs/odps.py                   | 201 ++++++
 superset/extensions/utils.py                       |  79 +++
 superset/jinja_context.py                          |  55 +-
 superset/mcp_service/action_log/schemas.py         | 302 ---------
 superset/mcp_service/action_log/tool/__init__.py   |  24 -
 .../action_log/tool/get_action_log_info.py         |  97 ---
 .../action_log/tool/list_action_logs.py            | 152 -----
 superset/mcp_service/app.py                        |  50 +-
 superset/mcp_service/auth.py                       | 291 ++++----
 superset/mcp_service/bin/superset-mcp.js           |   4 +-
 superset/mcp_service/chart/chart_helpers.py        | 153 +++++
 superset/mcp_service/chart/schemas.py              |  44 ++
 superset/mcp_service/chart/tool/get_chart_data.py  |  25 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |  17 +-
 superset/mcp_service/common/schema_discovery.py    |  85 +--
 superset/mcp_service/composite_token_verifier.py   | 199 ++++++
 superset/mcp_service/constants.py                  |   4 +-
 superset/mcp_service/css_template/__init__.py      |  16 -
 superset/mcp_service/css_template/schemas.py       | 280 --------
 superset/mcp_service/css_template/tool/__init__.py |  24 -
 .../css_template/tool/get_css_template_info.py     | 108 ---
 .../css_template/tool/list_css_templates.py        | 150 -----
 superset/mcp_service/dashboard/schemas.py          |  49 ++
 .../dashboard/tool/get_dashboard_info.py           |  17 +-
 superset/mcp_service/dataset/schemas.py            |  86 +++
 .../mcp_service/dataset/tool/get_dataset_info.py   |  16 +-
 superset/mcp_service/mcp_config.py                 | 189 ++++--
 superset/mcp_service/mcp_core.py                   |  12 +
 superset/mcp_service/middleware.py                 |   8 +-
 superset/mcp_service/plugin/__init__.py            |  16 -
 superset/mcp_service/plugin/dao.py                 |  23 -
 superset/mcp_service/plugin/schemas.py             | 213 ------
 superset/mcp_service/plugin/tool/__init__.py       |  24 -
 .../mcp_service/plugin/tool/get_plugin_info.py     | 101 ---
 superset/mcp_service/plugin/tool/list_plugins.py   | 123 ----
 superset/mcp_service/screenshot/webdriver_pool.py  |   6 +-
 superset/mcp_service/server.py                     |  10 +-
 superset/mcp_service/system/tool/get_schema.py     |  55 +-
 superset/mcp_service/theme/__init__.py             |  16 -
 superset/mcp_service/theme/schemas.py              | 305 ---------
 superset/mcp_service/theme/tool/__init__.py        |  24 -
 superset/mcp_service/theme/tool/get_theme_info.py  | 116 ----
 superset/mcp_service/theme/tool/list_themes.py     | 147 -----
 superset/models/helpers.py                         |  33 +
 superset/reports/notifications/email.py            |  16 +-
 superset/result_set.py                             |  56 +-
 superset/security/api.py                           |  13 +-
 superset/security/manager.py                       |  75 ++-
 superset/sql/parse.py                              |  28 +
 superset/tasks/cache.py                            | 204 ++----
 superset/translations/ar/LC_MESSAGES/messages.po   |  80 ++-
 superset/translations/ca/LC_MESSAGES/messages.po   |  86 ++-
 superset/translations/cs/LC_MESSAGES/messages.po   |  86 ++-
 superset/translations/de/LC_MESSAGES/messages.po   |  82 ++-
 superset/translations/en/LC_MESSAGES/messages.po   |  72 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  88 ++-
 superset/translations/fa/LC_MESSAGES/messages.po   |  82 ++-
 superset/translations/fi/LC_MESSAGES/messages.po   |  99 ++-
 superset/translations/fr/LC_MESSAGES/messages.po   |  86 ++-
 superset/translations/it/LC_MESSAGES/messages.po   |  74 ++-
 superset/translations/ja/LC_MESSAGES/messages.po   |  84 ++-
 superset/translations/ko/LC_MESSAGES/messages.po   |  73 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |  84 ++-
 superset/translations/messages.pot                 |  66 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  84 ++-
 superset/translations/nl/LC_MESSAGES/messages.po   |  80 ++-
 superset/translations/pl/LC_MESSAGES/messages.po   |  80 ++-
 superset/translations/pt/LC_MESSAGES/messages.po   |  74 ++-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  80 ++-
 superset/translations/requirements.txt             |   5 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |  92 ++-
 superset/translations/sk/LC_MESSAGES/messages.po   |  86 ++-
 superset/translations/sl/LC_MESSAGES/messages.po   |  80 ++-
 superset/translations/th/LC_MESSAGES/messages.po   |  99 ++-
 superset/translations/tr/LC_MESSAGES/messages.po   |  76 ++-
 superset/translations/uk/LC_MESSAGES/messages.po   |  84 ++-
 superset/translations/zh/LC_MESSAGES/messages.po   |  77 ++-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  77 ++-
 superset/utils/screenshot_utils.py                 |   8 +
 superset/utils/screenshots.py                      |  16 +-
 superset/utils/webdriver.py                        |  95 ++-
 superset/views/utils.py                            |  15 +-
 tests/integration_tests/charts/api_tests.py        |   8 +
 tests/integration_tests/dao/base_dao_test.py       |  69 ++
 tests/integration_tests/dashboards/api_tests.py    |  76 +++
 .../db_engine_specs/base_engine_spec_tests.py      |   7 +-
 tests/integration_tests/result_set_tests.py        |  34 +-
 tests/integration_tests/strategy_tests.py          |  56 +-
 tests/integration_tests/tasks/test_cache.py        |  95 ---
 tests/integration_tests/tasks/test_utils.py        |  77 ---
 tests/integration_tests/thumbnails_tests.py        |  16 +-
 tests/unit_tests/charts/test_client_processing.py  | 111 ++++
 .../charts/test_dashboard_filter_context.py        |  80 ++-
 .../sql_lab/streaming_export_command_test.py       | 194 ++++++
 tests/unit_tests/connectors/sqla/models_test.py    | 114 +++-
 tests/unit_tests/connectors/sqla/utils_test.py     |   1 +
 .../dashboards/commands/importers/v1/utils_test.py | 174 +++++
 tests/unit_tests/databases/api_test.py             |  12 +-
 tests/unit_tests/db_engine_specs/test_base.py      |  77 +++
 tests/unit_tests/db_engine_specs/test_druid.py     | 116 ++++
 tests/unit_tests/db_engine_specs/test_odps.py      | 174 +++++
 tests/unit_tests/extensions/test_utils.py          |  96 +++
 tests/unit_tests/jinja_context_test.py             | 118 ++++
 .../unit_tests/mcp_service/action_log/__init__.py  |  16 -
 .../mcp_service/action_log/tool/__init__.py        |  16 -
 .../action_log/tool/test_action_log_tools.py       | 401 -----------
 .../mcp_service/chart/test_chart_helpers.py        | 651 ++++++++++++++++++
 .../mcp_service/chart/tool/test_get_chart_info.py  |  91 ++-
 .../mcp_service/css_template/__init__.py           |  16 -
 .../mcp_service/css_template/tool/__init__.py      |  16 -
 .../css_template/tool/test_css_template_tools.py   | 280 --------
 .../dashboard/tool/test_dashboard_tools.py         |  72 ++
 .../database/tool/test_database_tools.py           |  42 ++
 .../mcp_service/dataset/tool/test_dataset_tools.py |  59 ++
 tests/unit_tests/mcp_service/plugin/__init__.py    |  16 -
 .../unit_tests/mcp_service/plugin/tool/__init__.py |  16 -
 .../mcp_service/plugin/tool/test_plugin_tools.py   | 172 -----
 .../mcp_service/system/tool/test_get_schema.py     | 149 +----
 .../mcp_service/system/tool/test_mcp_core.py       |  76 +++
 tests/unit_tests/mcp_service/test_auth_api_key.py  | 366 +++++++----
 tests/unit_tests/mcp_service/test_auth_rbac.py     |  14 +-
 .../mcp_service/test_auth_user_resolution.py       |   4 +-
 .../mcp_service/test_composite_token_verifier.py   | 345 ++++++++++
 tests/unit_tests/mcp_service/test_mcp_config.py    | 213 ++++++
 tests/unit_tests/mcp_service/test_mcp_server.py    |  23 +
 .../mcp_service/test_mcp_tool_registration.py      |  53 +-
 .../mcp_service/test_tool_search_transform.py      |  14 +-
 tests/unit_tests/mcp_service/theme/__init__.py     |  16 -
 .../unit_tests/mcp_service/theme/tool/__init__.py  |  16 -
 .../mcp_service/theme/tool/test_theme_tools.py     | 267 --------
 .../reports/notifications/email_tests.py           |  21 +-
 tests/unit_tests/result_set_test.py                | 121 ++++
 .../check_translation_regression_test.py           | 179 +++++
 .../security/test_granular_export_permissions.py   |  11 +
 .../unit_tests/server}/__init__.py                 |   0
 .../server/test_gunicorn_gevent_smoke.py           | 162 +++++
 tests/unit_tests/sql/parse_tests.py                |  36 +
 tests/unit_tests/tasks/test_cache.py               | 136 ++++
 tests/unit_tests/utils/test_screenshot_utils.py    |  26 +
 tests/unit_tests/views/test_utils.py               |  48 ++
 314 files changed, 13812 insertions(+), 8261 deletions(-)
 create mode 100644 docs/static/img/community/reddit-symbol.svg
 create mode 100644 docs/static/img/community/slack-symbol.svg
 copy superset-frontend/{src/dashboard/util/isEmbedded.ts => packages/superset-ui-core/src/number-format/utils/getIntlDurationFormatter.ts} (72%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/number-format/utils/parseMilliseconds.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/utils/getIntlDurationFormatter.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/utils/parseMilliseconds.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/types/intl.d.ts
 create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/DynamicGroupByPlugin.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/GroupByFilterCard.test.tsx
 create mode 100644 superset-frontend/src/embedded/getInitialThemeMode.test.ts
 copy superset-frontend/{packages/superset-ui-core/src/hooks/useChangeEffect/useChangeEffect.ts => src/embedded/getInitialThemeMode.ts} (55%)
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/dndTestUtils.ts
 create mode 100644 superset-frontend/src/preamble.test.ts
 create mode 100644 superset/db_engine_specs/odps.py
 delete mode 100644 superset/mcp_service/action_log/schemas.py
 delete mode 100644 superset/mcp_service/action_log/tool/__init__.py
 delete mode 100644 superset/mcp_service/action_log/tool/get_action_log_info.py
 delete mode 100644 superset/mcp_service/action_log/tool/list_action_logs.py
 create mode 100644 superset/mcp_service/composite_token_verifier.py
 delete mode 100644 superset/mcp_service/css_template/__init__.py
 delete mode 100644 superset/mcp_service/css_template/schemas.py
 delete mode 100644 superset/mcp_service/css_template/tool/__init__.py
 delete mode 100644 superset/mcp_service/css_template/tool/get_css_template_info.py
 delete mode 100644 superset/mcp_service/css_template/tool/list_css_templates.py
 delete mode 100644 superset/mcp_service/plugin/__init__.py
 delete mode 100644 superset/mcp_service/plugin/dao.py
 delete mode 100644 superset/mcp_service/plugin/schemas.py
 delete mode 100644 superset/mcp_service/plugin/tool/__init__.py
 delete mode 100644 superset/mcp_service/plugin/tool/get_plugin_info.py
 delete mode 100644 superset/mcp_service/plugin/tool/list_plugins.py
 delete mode 100644 superset/mcp_service/theme/__init__.py
 delete mode 100644 superset/mcp_service/theme/schemas.py
 delete mode 100644 superset/mcp_service/theme/tool/__init__.py
 delete mode 100644 superset/mcp_service/theme/tool/get_theme_info.py
 delete mode 100644 superset/mcp_service/theme/tool/list_themes.py
 delete mode 100644 tests/integration_tests/tasks/test_cache.py
 delete mode 100644 tests/integration_tests/tasks/test_utils.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_odps.py
 create mode 100644 tests/unit_tests/extensions/test_utils.py
 delete mode 100644 tests/unit_tests/mcp_service/action_log/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/action_log/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/action_log/tool/test_action_log_tools.py
 delete mode 100644 tests/unit_tests/mcp_service/css_template/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/css_template/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/css_template/tool/test_css_template_tools.py
 delete mode 100644 tests/unit_tests/mcp_service/plugin/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/plugin/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/plugin/tool/test_plugin_tools.py
 create mode 100644 tests/unit_tests/mcp_service/test_composite_token_verifier.py
 delete mode 100644 tests/unit_tests/mcp_service/theme/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/theme/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/theme/tool/test_theme_tools.py
 create mode 100644 tests/unit_tests/scripts/translations/check_translation_regression_test.py
 rename {superset/mcp_service/action_log => tests/unit_tests/server}/__init__.py (100%)
 create mode 100644 tests/unit_tests/server/test_gunicorn_gevent_smoke.py
 create mode 100644 tests/unit_tests/tasks/test_cache.py
 create mode 100644 tests/unit_tests/views/test_utils.py