You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jl...@apache.org on 2026/09/01 17:44:36 UTC

(superset) branch fix-bar-chart-label-placement updated (edb9f82c90c -> 485fb437527)

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

sadpandajoe pushed a change to branch fix-bar-chart-label-placement
in repository https://gitbox.apache.org/repos/asf/superset.git


    from edb9f82c90c fix(echarts): resolve legacy/undefined bar value labels to Outside End, not Auto
     add 74dd6901021 docs(security): document EXTRA_EDITORS_RESOLVER (#43595)
     add 05830ebc77a docs: document PNG/PDF chart export options (#43593)
     add c1b6ff340b0 docs(mcp): document the update_dataset_metric tool (#43596)
     add 5c3c6362ae1 docs(cache): document NATIVE_FILTER_OPTIONS_CACHE_TIMEOUT (#43592)
     add 323741b0439 docs(alerts-reports): document report/alert content format options (#43594)
     add 29f4a05eb7a docs(security): document the RLS indicator badge on dataset list/Explore (#43591)
     add 88c4e689e3a fix(pivot-table): keep D3_FORMAT-styled numbers intact in pivoted Excel export (#42601)
     add 35fc36a97e5 chore(deps-dev): bump baseline-browser-mapping from 2.11.15 to 2.11.16 in /superset-frontend (#43621)
     add 83934c038ed chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43618)
     add 8f82d851cf9 chore(deps-dev): bump tiktoken from 0.13.0 to 0.14.0 (#43617)
     add e9e652d22da chore(deps-dev): bump trino from 0.338.0 to 0.339.0 (#43616)
     add 8c88c0d3ac7 chore(deps-dev): update teradatasql requirement from >=20.0.0.65 to >=20.0.0.66 (#43615)
     add ba5d5091b97 chore(deps): bump holidays from 0.102 to 0.103 (#43614)
     add b8acf4b207b chore(deps-dev): bump syntaqlite from 0.7.1 to 0.9.0 (#43612)
     add ebbe2e87142 chore(deps): bump the storybook group in /docs with 2 updates (#43610)
     add 6814a892303 chore(deps): bump gunicorn from 26.0.0 to 26.2.0 (#43609)
     add 94b59420b76 docs(embedding): document EMBEDDED_DISABLE_PERMALINK_ORIGIN_REWRITE (#43600)
     add bcc6af6c5fb fix(dao): don't mask transient OperationalError as a "not found" result (#43479)
     add a16bc0d94f8 fix(mcp): apply time grain overrides from extra_form_data (#43599)
     add 478f612f258 fix(mcp): add open-world tool annotations (#43529)
     add ea3206b076f fix(mcp): surface rejected filter columns in get_chart_data (#43598)
     add ecbd6578b0d fix(db_engine_specs): always mask OAuth2 client secret in encrypted extra (#43491)
     add e1c7a516745 fix(mcp): flag failed tool calls with isError (#43374)
     add 20be48c0858 fix(explore): catch TemplateError when validating access for permalinked query datasources (#43605)
     add 9f62aace7ef fix(examples): replace deprecated granularity_sqla with granularity (#43432)
     add 7b145a520c9 fix(tags): catch TemplateError when validating access for tagged SQL Lab queries (#43423)
     add 5ff44c5ed66 docs(cli): document import_directory --username option (#43602)
     add f9e43a37d8d docs(theming): document THEME_DEFAULT_MODE config setting (#43601)
     add 13e97ba9139 fix(sql-lab): fix transparent background in ag-grid native menus (#43368)
     add b733b57e9eb docs(mcp): document chart type plugin filtering config (#43597)
     add 8c5be889d9e fix(cockroachdb): replace abandoned cockroachdb package with sqlalchemy-cockroachdb (#43501)
     add fa59b44cfe8 chore(deps): bump mapbox-gl from 3.28.1 to 3.29.0 in /superset-frontend (#43619)
     add b7301ac88a6 fix: Dashboard export with charts from multiple databases (#37120)
     add e39bfb255bf fix(explore): prevent duplicate Date Range tooltips (#43425)
     add fd64efd72db fix(uploads): set catalog on datasets created by file upload (#43301)
     add 81b3e855223 fix(echarts): guard cross-filter when labelMap entry is missing (#42559)
     add 2ebd415b8ad chore(deps-dev): bump mcp from 1.29.1 to 2.0.0 (#43611)
     add 98ec6018df5 fix(embedded): honor "can view query" permission for guest users (#43151)
     add 3ddc3b1d569 fix(cache): fall back to default timeout when cache_timeout is None (#43149)
     add 12cd259c551 fix(dataset): preserve validation error messages (#43631)
     add a59b96c4f52 fix(explore): keep the row count label visible when the row limit is reached (#43296)
     add 933dbbc2a24 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 1.0.1 to 1.0.2 in /superset-frontend (#43645)
     add a30e4a4350d chore(deps): bump github/codeql-action/init from 4.37.7 to 4.37.8 (#43644)
     add 8bec85158ce feat(modals): add renderExtraFields prop to chart and dashboard properties modals (#43622)
     add cb7b790733c fix(dataset): surface real validation message in save-error dialog (#43459)
     add 9bf457dea66 chore(deps): bump github/codeql-action/analyze from 4.37.7 to 4.37.8 (#43643)
     add e18f27e1cef fix(native-filters): allow clearing an optional "select first value" filter (#43405)
     add e518b21994c fix(dashboard): keep the chart menu usable in fullscreen on production builds (#43555)
     add abf338d611d feat(filters): search filter values server-side in Explore (#43518)
     add b3f718da621 fix(explore): keep certification badges after saving or swapping a dataset (#43319)
     add 94dd3d049ce fix(ci): repair scheduled pre-commit drift (#43603)
     add 9a6f6ee0c04 docs: fix docstring parameter names that do not match signatures (#43630)
     add d997d363e35 docs: update frontend Node/npm prerequisites to match engines (#43546)
     add 53e76afd704 feat(ci): enforce min release age for npm dep installation (#43164)
     add a5c68c8df9a fix(number-format): handle sub-byte values and unit rollover in memory formatter (#43549)
     add fc26991cd47 feat(plugin-chart-echarts): add gridline and axis tick controls (#43428)
     add 4ced5ca35a7 chore(superset-core): drop unused `__all__` lists (#43626)
     add 60479fb9586 feat(dashboard): add dashboard.slice.header.menu extension slot (#43624)
     add 5c24f72d92c chore(deps): bump content-disposition from 2.0.1 to 3.0.0 in /superset-frontend (#43382)
     add 0eda633b45f fix(dataset): stop a stale edit modal from silently reverting a saved change (#43583)
     add 99a1f756cd4 fix(trino): coerce string-typed values results back to source type (#43654)
     add 782a57fbfcd chore(deps-dev): bump nwsapi from 2.2.23 to 2.2.24 to fix the SqlEditor jest flake (#43657)
     add 30402b412c2 fix(explore): catch TemplateError when validating access for query-backed form_data (#43470)
     add 058eaf78abe fix(dashboard): remove @has_access_api from filter state REST API (#43564)
     add c7cc22f4fee chore(deps): bump setuptools to 84.0.0 and pip to 26.2.1 (#43413)
     add b2a88425511 chore(deps-dev): bump the swc group in /superset-frontend with 3 updates (#43447)
     add 6f69fc6dba0 feat(postprocessing): teach pivot() to compute percent-of-row/col/total (#42809) (#42976)
     add b30d5690286 fix(chart): map the remaining time grains for Prophet forecasting (#43205)
     add de33efae983 fix(table-chart): support where for adhoc columns with server-side pagination (#42706)
     add 1c8d58a77bd fix(i18n): make language pack endpoint public for embedded dashboards (#42438)
     add b38fa702564 chore(deps-dev): bump eslint from 10.8.1 to 10.9.0 in /superset-frontend (#43677)
     add 7c2a3fa7772 chore(deps-dev): bump baseline-browser-mapping from 2.11.16 to 2.11.17 in /superset-frontend (#43676)
     add 4444a89f267 chore(deps): bump reselect from 5.2.0 to 5.3.0 in /superset-frontend (#43675)
     add 7bc44d55044 chore(deps): bump reselect from 5.2.0 to 5.3.0 in /docs (#43674)
     add 46f17aa8805 chore(deps): bump baseline-browser-mapping from 2.11.16 to 2.11.17 in /docs (#43673)
     add ac88acb14b2 chore(deps-dev): bump eslint from 10.8.1 to 10.9.0 in /superset-websocket (#43670)
     add 2ca3695f30c chore(deps): bump js-yaml to patch quadratic-CPU DoS (superset-frontend) (#43663)
     add ec19a37e9bf chore(deps): bump greenlet from 3.5.4 to 3.5.5 (#43671)
     add 9151b5c6fb0 chore(deps): bump brace-expansion to patch DoS in docs (#43665)
     add 3d91ba3fded chore(deps): bump js-yaml, brace-expansion, d3-color to patch DoS/ReDoS in cypress-base (#43664)
     add 74ea780eaa7 fix(plugin-chart-echarts): misplaced first date label on horizontal bar charts (#43661)
     add 96119ffefce feat(plugin-chart-echarts): add Butterfly Chart (#43346)
     add 87fb7d18e16 fix(semantic-layer): hydrate the semantic view edit modal from /structure (#42839)
     add 5f67e85003d chore(i18n): complete Italian translations with 100% placeholder validation (#43274)
     add 88cd8bf575a fix(ci): repair nightly pre-commit failures (#43366)
     add 2df06dcd571 feat(mcp): add feature-gated interactive pivot support (#43480)
     add bba48329465 fix(sqllab): prefer concluded live query state over a stale history snapshot (#43535)
     add ee4a90892c4 test(explore): zero-value stacked bar segment no longer overlaps its neighbor's label (#42882)
     add 65fa1ce8163 chore(ci): skip Jest test HTML report generation to save up time (#43653)
     add 22891894d4d docs: fix superset-core component source links after src/ui removal (#43690)
     add b310f469c20 feat(dashboard): add a tooltip displaying chart descriptions (#43271)
     add 6abab3c1cb6 feat(butterfly): added cross-filtering and drill-to-detail for the butterfly chart (#43684)
     add f3985d88a1b feat(build): migrate to TS7 and TS7-oriented `oxlint-tsgolint` (#43691)
     add b8b2e5ea8b5 chore(deps): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /docs (#43704)
     add 5b64150d0ac chore(deps-dev): bump webpack-bundle-analyzer from 5.3.1 to 5.3.2 in /superset-frontend (#43706)
     add 6e185ebce8e chore(deps): bump actions/setup-java from 5.7.0 to 6.0.0 (#43707)
     add 9d1b5ebdb7b chore(deps-dev): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /superset-frontend (#43708)
     add 040b33c4502 chore(deps): bump yeoman-generator from 8.2.2 to 8.3.0 in /superset-frontend (#43709)
     add b24cb2af8a1 fix(db_engine_specs): support SQLAlchemy 2 DBAPI discovery (#43700)
     add a5ddc4864ab Merge remote-tracking branch 'origin/master' into fix-bar-chart-label-placement
     add 5bffceb2951 feat(mcp): let get_dashboard_info accept filter_state directly (#43688)
     add 1f1539fe0eb feat: test(presto) close db_engine_spec unit test gaps (#43607)
     add ac3c158c41e fix(tags): catch TemplateError when validating access for tagged SQL Lab queries on delete (#43433)
     add da27ba59a57 fix(pivot-table): apply "Show values as" percent to exports and reports (#43718)
     add ba0142ca644 fix(dashboard): reconcile stale results tab in Chart Data modal (#43648)
     add b04a1534514 fix(dashboard): stretch Chart Data modal results grid to fill available height (#43454)
     add e3d30bb730e chore(deps-dev): bump oxlint from 1.79.0 to 1.80.0 in /superset-frontend (#43753)
     add 9656ecc3aff chore(deps-dev): bump @types/node from 26.2.0 to 26.3.0 in /superset-frontend (#43752)
     add 3b5a4baa055 chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-frontend (#43751)
     add 842efd5f120 fix(datasets): warn on percent D3 format for count metrics (#43453)
     add 439564041f5 fix(echarts): place weekly time-axis ticks on the data buckets (#43339)
     add 58ef03dabca chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-websocket (#43739)
     add eec1e4d288b chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-websocket (#43740)
     add ed513bbe42a docs: add Veremes to users in the wild (#43754)
     add 485fb437527 Merge remote-tracking branch 'origin/master' into fix-bar-chart-label-placement

No new revisions were added by this update.

Summary of changes:
 .github/dependabot.yml                             |    13 +-
 .github/workflows/codeql-analysis.yml              |     4 +-
 .github/workflows/dependency-review.yml            |    21 +
 .github/workflows/generate-FOSSA-report.yml        |     2 +-
 .github/workflows/license-check.yml                |     2 +-
 .github/workflows/superset-docs-deploy.yml         |     2 +-
 .github/workflows/superset-frontend.yml            |     1 +
 .pre-commit-config.yaml                            |     6 +-
 .rat-excludes                                      |     1 +
 RESOURCES/INTHEWILD.yaml                           |     5 +
 UPDATING.md                                        |     1 +
 docs/DOCS_CLAUDE.md                                |     6 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |    14 +
 docs/admin_docs/configuration/cache.mdx            |    21 +
 .../importing-exporting-datasources.mdx            |    20 +
 docs/admin_docs/configuration/mcp-server.mdx       |    35 +
 docs/admin_docs/configuration/theming.mdx          |    21 +
 docs/admin_docs/security/security.mdx              |    58 +
 .../contributing/development-setup.md              |     8 +-
 .../developer_docs/extensions/components/alert.mdx |     4 +-
 .../developer_docs/extensions/components/index.mdx |     4 +-
 .../creating-your-first-dashboard.mdx              |    12 +
 docs/docs/using-superset/embedding.mdx             |    15 +
 .../docs/using-superset/using-ai-with-superset.mdx |    23 +-
 docs/eslint.config.js                              |    71 -
 docs/oxlint.json                                   |   139 +
 docs/package.json                                  |    24 +-
 docs/static/img/logos/veremes.svg                  |   Bin 0 -> 5469 bytes
 docs/tsconfig.json                                 |    29 +-
 docs/yarn.lock                                     |  1938 +-
 pyproject.toml                                     |    28 +-
 requirements/base.in                               |     4 +-
 requirements/base.txt                              |     9 +-
 requirements/development.in                        |     2 +-
 requirements/development.txt                       |    20 +-
 superset-core/src/superset_core/common/models.py   |    16 -
 superset-core/src/superset_core/mcp/decorators.py  |     7 -
 superset-core/src/superset_core/queries/daos.py    |     6 -
 superset-core/src/superset_core/queries/models.py  |     6 -
 superset-core/src/superset_core/queries/query.py   |     3 -
 superset-core/src/superset_core/queries/types.py   |    10 -
 superset-core/src/superset_core/rest_api/api.py    |     3 -
 .../src/superset_core/rest_api/decorators.py       |     3 -
 .../src/superset_core/semantic_layers/daos.py      |     3 -
 .../superset_core/semantic_layers/decorators.py    |     3 -
 .../src/superset_core/semantic_layers/layer.py     |     1 +
 .../src/superset_core/semantic_layers/models.py    |     3 -
 superset-core/src/superset_core/tasks/daos.py      |     3 -
 .../src/superset_core/tasks/decorators.py          |     6 -
 superset-core/src/superset_core/tasks/models.py    |     6 -
 superset-core/src/superset_core/tasks/types.py     |     9 -
 superset-embedded-sdk/.npmrc                       |     1 +
 superset-frontend/.npmrc                           |     1 +
 superset-frontend/cypress-base/package-lock.json   |   157 +-
 superset-frontend/cypress-base/package.json        |    10 +-
 superset-frontend/jest.config.js                   |    25 +-
 superset-frontend/package-lock.json                |   802 +-
 superset-frontend/package.json                     |    47 +-
 .../packages/generator-superset/package.json       |     2 +-
 .../packages/superset-ui-core/package.json         |     6 +-
 .../superset-ui-core/src/chart/types/VizType.ts    |     1 +
 .../src/components/Select/types.ts                 |     1 +
 .../ThemedAgGridReact/ThemedAgGridReact.test.tsx   |    28 +
 .../src/components/ThemedAgGridReact/index.tsx     |    11 +
 .../factories/createMemoryFormatter.ts             |    18 +-
 .../superset-ui-core/src/number-format/index.ts    |     2 +
 .../src/query/extractQueryFields.ts                |     2 +
 .../src/query/getClientErrorObject.ts              |    21 +-
 .../superset-ui-core/src/ui-overrides/types.ts     |    11 +
 .../factories/createMemoryFormatter.test.ts        |    25 +
 .../test/query/extractQueryFields.test.ts          |    10 +
 .../test/query/getClientErrorObject.test.ts        |    18 +
 .../Histogram.tsx => Butterfly/Butterfly.tsx}      |    37 +-
 .../src/{Bubble => Butterfly}/buildQuery.ts        |    24 +-
 .../src/Butterfly/constants.ts}                    |    19 +-
 .../src/{Bubble => Butterfly}/controlPanel.tsx     |   231 +-
 .../src/Butterfly/images/example-dark.png          |   Bin 0 -> 48940 bytes
 .../src/Butterfly/images/example.png               |   Bin 0 -> 48389 bytes
 .../src/Butterfly/images/thumbnail-dark.png        |   Bin 0 -> 48859 bytes
 .../src/Butterfly/images/thumbnail.png             |   Bin 0 -> 48351 bytes
 .../src/{Graph => Butterfly}/index.ts              |    46 +-
 .../src/Butterfly/transformProps.ts                |   353 +
 .../src/{Bubble => Butterfly}/types.ts             |    47 +-
 .../src/MixedTimeseries/controlPanel.tsx           |     4 +
 .../src/MixedTimeseries/transformProps.ts          |    47 +-
 .../src/MixedTimeseries/types.ts                   |     4 +
 .../src/Timeseries/Area/controlPanel.tsx           |     4 +
 .../src/Timeseries/EchartsTimeseries.test.tsx      |     2 +
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |     4 +
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |     4 +
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |     4 +
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |     4 +
 .../src/Timeseries/Step/controlPanel.tsx           |     4 +
 .../src/Timeseries/constants.ts                    |     2 +
 .../src/Timeseries/transformProps.ts               |    58 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |     2 +
 .../plugins/plugin-chart-echarts/src/constants.ts  |    10 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  |    22 +
 .../plugins/plugin-chart-echarts/src/index.ts      |     2 +
 .../src/utils/eventHandlers.ts                     |     3 +
 .../plugin-chart-echarts/src/utils/series.ts       |   164 +
 .../test/Butterfly/Butterfly.test.tsx              |   202 +
 .../test/Butterfly/buildQuery.test.ts              |    85 +
 .../test/Butterfly/controlPanel.test.ts            |    83 +
 .../test/Butterfly/transformProps.test.ts          |   341 +
 .../test/MixedTimeseries/transformProps.test.ts    |   147 +
 .../test/Timeseries/transformProps.test.ts         |   408 +
 .../test/Timeseries/transformers.test.ts           |    69 +-
 .../test/utils/eventHandlers.test.ts               |    43 +
 .../plugin-chart-echarts/test/utils/series.test.ts |   145 +
 .../plugin-chart-point-cluster-map/package.json    |     2 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |     5 +-
 .../components/QueryHistory/QueryHistory.test.tsx  |   243 +-
 .../src/SqlLab/components/QueryHistory/index.tsx   |    41 +-
 .../QueryHistory/mergeQueryStatus.test.ts          |   151 +
 .../components/QueryHistory/mergeQueryStatus.ts    |    71 +
 .../SqlLab/components/SqlEditor/SqlEditor.test.tsx |    18 +-
 .../DatasourceModal/DatasourceModal.test.tsx       |   143 +-
 .../DatasourceModal.useModal.test.tsx              |     4 +
 .../Datasource/DatasourceModal/index.tsx           |   100 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |    75 +-
 .../DatasourceEditorMetricFormatWarning.test.tsx   |   210 +
 .../Datasource/components/Fieldset/index.tsx       |     3 +
 .../src/components/Datasource/index.ts             |     1 +
 .../src/components/Datasource/types.ts             |     6 +
 .../src/components/Datasource/utils/index.ts       |    27 +
 .../RowCountLabel/RowCountLabel.test.tsx           |    16 +
 .../src/components/RowCountLabel/index.tsx         |    16 +-
 .../src/dashboard/actions/dashboardLayout.ts       |     2 +-
 .../DashboardBuilder/DashboardWrapper.tsx          |     2 +-
 .../dashboard/components/PropertiesModal/index.tsx |    40 +-
 .../PropertiesModal/sections/AccessSection.tsx     |     7 +
 .../components/SliceHeader/SliceHeader.test.tsx    |   192 +-
 .../components/SliceHeader/SliceInfo.test.tsx      |    64 +
 .../new/NewRow.tsx => SliceHeader/SliceInfo.tsx}   |    37 +-
 .../src/dashboard/components/SliceHeader/index.tsx |    38 +-
 .../SliceHeaderControls.test.tsx                   |    57 +-
 .../components/SliceHeaderControls/Styles.tsx      |    18 +-
 .../components/SliceHeaderControls/index.tsx       |    24 +
 .../gridComponents/ChartHolder/ChartHolder.tsx     |    18 +-
 .../FilterControls/FilterControl.test.tsx          |    26 +
 .../FilterBar/FilterControls/FilterControl.tsx     |     4 +-
 .../nativeFilters/FilterBar/utils.test.ts          |    52 +
 .../components/nativeFilters/FilterBar/utils.ts    |     7 +-
 superset-frontend/src/dataMask/reducer.ts          |     2 +-
 .../src/explore/components/Control.test.tsx        |    77 +-
 .../src/explore/components/Control.tsx             |    21 +-
 .../src/explore/components/ControlHeader.test.tsx  |   112 +
 .../src/explore/components/ControlHeader.tsx       |    32 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |    26 +-
 .../components/DataTableControls.tsx               |    15 +-
 .../components/ResultsPaneOnDashboard.tsx          |    26 +-
 .../DataTablesPane/components/SamplesPane.tsx      |     8 +
 .../components/SingleQueryResultPane.tsx           |     4 +
 .../DataTablesPane/components/useResultsPane.tsx   |    13 +
 .../DataTablesPane/test/DataTableControls.test.tsx |    94 +
 .../test/ResultsPaneOnDashboard.test.tsx           |    61 +
 .../test/getStaleResultsTabFallback.test.ts        |     2 +-
 .../DataTablesPane/test/useResultsPane.test.tsx    |    43 +-
 .../src/explore/components/DataTablesPane/types.ts |    10 +
 .../src/explore/components/DataTablesPane/utils.ts |    54 +
 .../explore/components/PropertiesModal/index.tsx   |    54 +-
 .../controls/ColumnConfigControl/types.ts          |     4 +-
 .../DatasourceControl/DatasourceControl.test.tsx   |    10 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |    20 +-
 .../tests/DateFilterLabel.test.tsx                 |    90 +-
 .../components/controls/DateFilterControl/types.ts |     6 +
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   164 +
 .../index.tsx                                      |   264 +-
 .../semanticViews/SemanticViewEditModal.test.tsx   |   178 +-
 .../semanticViews/SemanticViewEditModal.tsx        |    71 +-
 .../components/Select/SelectFilterPlugin.test.tsx  |   184 +-
 .../components/Select/SelectFilterPlugin.tsx       |    63 +-
 .../filters/components/Select/buildQuery.test.ts   |    32 +
 .../src/filters/components/Select/buildQuery.ts    |     9 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |    26 +-
 superset-frontend/src/setup/setupFormatters.ts     |     2 +-
 superset-frontend/src/types/bootstrapTypes.ts      |     2 +-
 .../src/utils/downloadAsPivotExcel.test.ts         |   116 +
 .../src/utils/downloadAsPivotExcel.ts              |    52 +-
 .../src/visualizations/presets/MainPreset.ts       |     4 +
 superset-websocket/.npmrc                          |     1 +
 superset-websocket/package-lock.json               |   168 +-
 superset-websocket/package.json                    |     4 +-
 superset/charts/client_processing.py               |   590 +-
 superset/charts/data/api.py                        |    11 +-
 superset/cli/viz_migrations.py                     |     2 +-
 superset/commands/chart/export.py                  |    15 +-
 superset/commands/dashboard/export.py              |    26 +-
 superset/commands/database/export.py               |     6 +-
 superset/commands/database/uploaders/base.py       |     2 +
 superset/commands/dataset/export.py                |    63 +-
 superset/commands/dataset/update.py                |     4 +-
 superset/commands/explore/permalink/create.py      |     7 +-
 superset/commands/explore/permalink/get.py         |     7 +-
 superset/commands/export/models.py                 |    40 +-
 superset/commands/query/export.py                  |    42 +-
 superset/commands/tag/create.py                    |    28 +-
 superset/commands/tag/delete.py                    |    28 +-
 superset/commands/tag/exceptions.py                |    12 +
 superset/commands/tag/export.py                    |     4 +-
 superset/commands/theme/export.py                  |     6 +-
 superset/connectors/sqla/models.py                 |     1 +
 superset/constants.py                              |    20 +
 superset/daos/base.py                              |    17 +-
 superset/dashboards/filter_state/api.py            |     6 -
 superset/datasets/api.py                           |    72 +-
 superset/datasource/api.py                         |    25 +-
 superset/db_engine_specs/__init__.py               |     7 +-
 superset/db_engine_specs/base.py                   |    22 +-
 superset/db_engine_specs/cockroachdb.py            |     2 +-
 superset/db_engine_specs/presto.py                 |    11 +-
 superset/db_engine_specs/trino.py                  |    13 +-
 superset/examples/birth_names.py                   |    14 +-
 .../usa_births_names/charts/Boy_Name_Cloud.yaml    |     2 +-
 .../examples/usa_births_names/charts/Boys.yaml     |     2 +-
 .../examples/usa_births_names/charts/Genders.yaml  |     2 +-
 .../usa_births_names/charts/Genders_by_State.yaml  |     2 +-
 .../usa_births_names/charts/Girl_Name_Cloud.yaml   |     2 +-
 .../examples/usa_births_names/charts/Girls.yaml    |     2 +-
 .../usa_births_names/charts/Participants.yaml      |     2 +-
 .../usa_births_names/charts/Pivot_Table_v2.yaml    |     2 +-
 .../charts/Top_10_Boy_Name_Share.yaml              |     2 +-
 .../charts/Top_10_Girl_Name_Share.yaml             |     2 +-
 .../examples/usa_births_names/charts/Trends.yaml   |     2 +-
 superset/examples/world_bank.py                    |     2 +-
 .../examples/world_health/charts/Box_plot.yaml     |     2 +-
 .../examples/world_health/charts/Growth_Rate.yaml  |     2 +-
 .../charts/Life_Expectancy_VS_Rural.yaml           |     2 +-
 .../charts/Most_Populated_Countries.yaml           |     2 +-
 superset/examples/world_health/charts/Rural.yaml   |     2 +-
 .../world_health/charts/Rural_Breakdown.yaml       |     2 +-
 superset/examples/world_health/charts/Treemap.yaml |     2 +-
 .../world_health/charts/World_s_Pop_Growth.yaml    |     2 +-
 .../world_health/charts/World_s_Population.yaml    |     2 +-
 superset/explore/form_data/api.py                  |     9 +
 superset/explore/permalink/api.py                  |     5 +
 superset/explore/utils.py                          |    11 +-
 superset/mcp_service/CLAUDE.md                     |    13 +-
 .../tool/get_annotation_layer_info.py              |     1 +
 .../tool/get_layer_annotation_info.py              |     1 +
 .../tool/list_annotation_layers.py                 |     1 +
 .../tool/list_layer_annotations.py                 |     1 +
 superset/mcp_service/app.py                        |    13 +-
 superset/mcp_service/chart/chart_helpers.py        |    20 +-
 superset/mcp_service/chart/chart_utils.py          |    39 +-
 superset/mcp_service/chart/plugin.py               |     4 +
 superset/mcp_service/chart/plugins/__init__.py     |     5 +
 .../mcp_service/chart/plugins/interactive_pivot.py |   235 +
 superset/mcp_service/chart/registry.py             |    15 +
 .../mcp_service/chart/resources/chart_configs.py   |    39 +
 superset/mcp_service/chart/schemas.py              |   213 +-
 superset/mcp_service/chart/tool/delete_chart.py    |     2 +
 superset/mcp_service/chart/tool/generate_chart.py  |    18 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |    30 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |     1 +
 .../mcp_service/chart/tool/get_chart_preview.py    |     1 +
 superset/mcp_service/chart/tool/get_chart_sql.py   |     1 +
 .../chart/tool/get_chart_type_schema.py            |    62 +-
 superset/mcp_service/chart/tool/list_charts.py     |     1 +
 superset/mcp_service/chart/tool/restore_chart.py   |     2 +
 superset/mcp_service/chart/tool/update_chart.py    |     5 +
 .../mcp_service/chart/tool/update_chart_preview.py |     4 +
 .../chart/validation/schema_validator.py           |     9 +-
 superset/mcp_service/dashboard/schemas.py          |     9 +
 .../tool/add_chart_to_existing_dashboard.py        |     2 +
 .../mcp_service/dashboard/tool/delete_dashboard.py |     2 +
 .../dashboard/tool/duplicate_dashboard.py          |     2 +
 .../dashboard/tool/generate_dashboard.py           |     2 +
 .../dashboard/tool/get_dashboard_datasets.py       |     1 +
 .../dashboard/tool/get_dashboard_info.py           |    33 +-
 .../dashboard/tool/get_dashboard_layout.py         |     1 +
 .../mcp_service/dashboard/tool/list_dashboards.py  |     1 +
 .../tool/manage_dashboard_certification.py         |     2 +
 .../dashboard/tool/manage_dashboard_owners.py      |     2 +
 .../dashboard/tool/manage_dashboard_roles.py       |     2 +
 .../dashboard/tool/manage_native_filters.py        |     2 +
 .../dashboard/tool/remove_chart_from_dashboard.py  |     2 +
 .../dashboard/tool/restore_dashboard.py            |     2 +
 .../mcp_service/dashboard/tool/update_dashboard.py |     2 +
 .../mcp_service/database/tool/get_database_info.py |     1 +
 .../mcp_service/database/tool/list_databases.py    |     1 +
 .../mcp_service/dataset/tool/create_dataset.py     |     2 +
 .../dataset/tool/create_virtual_dataset.py         |     2 +
 .../mcp_service/dataset/tool/get_dataset_info.py   |     1 +
 superset/mcp_service/dataset/tool/list_datasets.py |     1 +
 superset/mcp_service/dataset/tool/query_dataset.py |     1 +
 .../dataset/tool/update_dataset_metric.py          |     2 +
 .../explore/tool/generate_explore_link.py          |     2 +
 superset/mcp_service/middleware.py                 |     8 +
 superset/mcp_service/query/tool/get_query_info.py  |     1 +
 superset/mcp_service/query/tool/list_queries.py    |     1 +
 .../mcp_service/report/tool/get_report_info.py     |     1 +
 superset/mcp_service/report/tool/list_reports.py   |     1 +
 .../mcp_service/rls/tool/get_rls_filter_info.py    |     1 +
 superset/mcp_service/rls/tool/list_rls_filters.py  |     1 +
 superset/mcp_service/role/tool/get_role_info.py    |     1 +
 superset/mcp_service/role/tool/list_roles.py       |     1 +
 .../saved_query/tool/get_saved_query_info.py       |     1 +
 .../saved_query/tool/list_saved_queries.py         |     1 +
 .../tool/get_compatible_dimensions.py              |     1 +
 .../semantic_layer/tool/get_compatible_metrics.py  |     1 +
 .../mcp_service/semantic_layer/tool/get_table.py   |     1 +
 .../semantic_layer/tool/list_metrics.py            |     1 +
 superset/mcp_service/sql_lab/tool/execute_sql.py   |     2 +
 .../sql_lab/tool/open_sql_lab_with_context.py      |     1 +
 .../mcp_service/sql_lab/tool/save_sql_query.py     |     2 +
 superset/mcp_service/system/tool/find_users.py     |     1 +
 .../mcp_service/system/tool/generate_bug_report.py |     1 +
 .../mcp_service/system/tool/get_instance_info.py   |     1 +
 superset/mcp_service/system/tool/get_schema.py     |     1 +
 superset/mcp_service/system/tool/health_check.py   |     1 +
 superset/mcp_service/tag/tool/get_tag_info.py      |     1 +
 superset/mcp_service/tag/tool/list_tags.py         |     1 +
 superset/mcp_service/task/tool/get_task_info.py    |     1 +
 superset/mcp_service/task/tool/list_tasks.py       |     1 +
 superset/mcp_service/theme/tool/create_theme.py    |     2 +
 superset/mcp_service/theme/tool/get_theme_info.py  |     1 +
 superset/mcp_service/theme/tool/list_themes.py     |     1 +
 superset/mcp_service/user/tool/get_user_info.py    |     1 +
 superset/mcp_service/user/tool/list_users.py       |     1 +
 superset/migrations/shared/constraints.py          |     6 +-
 superset/models/helpers.py                         |    71 +-
 superset/semantic_layers/api.py                    |     8 +-
 superset/semantic_layers/models.py                 |     2 +-
 superset/translations/it/LC_MESSAGES/messages.po   | 50254 +++++++++----------
 superset/utils/cache.py                            |    14 +-
 superset/utils/excel.py                            |    28 +-
 superset/utils/json.py                             |     8 +-
 superset/utils/pandas_postprocessing/pivot.py      |   195 +-
 superset/utils/pandas_postprocessing/utils.py      |     8 +
 superset/utils/screenshots.py                      |     2 +-
 superset/versioning/api_helpers.py                 |    77 +
 superset/versioning/etag.py                        |    44 +
 superset/views/core.py                             |     1 -
 superset/views/error_handling.py                   |    11 +-
 tests/integration_tests/charts/data/api_tests.py   |    47 +-
 .../integration_tests/dashboards/commands_tests.py |   104 +
 .../dashboards/filter_state/api_tests.py           |   635 +-
 .../databases/commands/upload_test.py              |    30 +
 tests/integration_tests/datasets/api_tests.py      |    44 +-
 tests/integration_tests/datasource/api_tests.py    |    75 +
 tests/integration_tests/security_tests.py          |     4 +
 tests/unit_tests/charts/dao/dao_tests.py           |    13 +-
 tests/unit_tests/charts/test_chart_data_api.py     |    73 +
 tests/unit_tests/charts/test_client_processing.py  |   609 +-
 tests/unit_tests/commands/dataset/update_test.py   |     4 +
 .../commands/explore/permalink}/__init__.py        |     0
 .../commands/explore/permalink/test_create.py      |    45 +
 .../commands/explore/permalink/test_get.py         |    57 +
 tests/unit_tests/dao/base_dao_test.py              |   125 +-
 tests/unit_tests/dashboards/dao_tests.py           |    11 +-
 .../unit_tests/dashboards/filter_state_api_test.py |    66 +
 tests/unit_tests/datasets/api_tests.py             |   146 +
 tests/unit_tests/db_engine_specs/test_base.py      |    64 +-
 tests/unit_tests/db_engine_specs/test_crdb.py      |    16 +
 tests/unit_tests/db_engine_specs/test_init.py      |    35 +
 tests/unit_tests/db_engine_specs/test_presto.py    |   921 +
 tests/unit_tests/db_engine_specs/test_trino.py     |    92 +
 tests/unit_tests/explore/utils_test.py             |    25 +-
 .../chart/test_chart_config_coercion.py            |    16 +
 .../mcp_service/chart/test_chart_helpers.py        |    47 +-
 .../mcp_service/chart/test_chart_utils.py          |    70 +
 .../chart/test_interactive_pivot_chart.py          |   449 +
 .../mcp_service/chart/test_registry_filters.py     |    15 +-
 .../mcp_service/chart/tool/test_get_chart_data.py  |    63 +-
 .../chart/tool/test_get_chart_type_schema.py       |     7 +
 .../chart/tool/test_update_chart_preview.py        |    79 +
 .../dashboard/test_dashboard_schemas.py            |    11 +
 .../dashboard/tool/test_dashboard_tools.py         |   166 +
 tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py |    30 +
 .../mcp_service/test_mcp_tool_registration.py      |    42 +
 tests/unit_tests/mcp_service/test_middleware.py    |    65 +
 tests/unit_tests/models/core_test.py               |    23 +
 tests/unit_tests/models/helpers_test.py            |   133 +
 .../unit_tests/pandas_postprocessing/test_pivot.py |   425 +
 .../pandas_postprocessing/test_prophet.py          |    46 +
 tests/unit_tests/semantic_layers/api_test.py       |    12 +
 tests/unit_tests/tags/commands/create_test.py      |    69 +
 tests/unit_tests/tags/commands/delete_test.py      |   104 +
 tests/unit_tests/utils/cache_test.py               |    93 +
 tests/unit_tests/utils/json_tests.py               |    21 +
 tests/unit_tests/versioning/test_etag.py           |   109 +
 tests/unit_tests/views/test_base.py                |    36 +-
 tests/unit_tests/views/test_error_handling.py      |    76 +
 385 files changed, 39593 insertions(+), 28930 deletions(-)
 delete mode 100644 docs/eslint.config.js
 create mode 100644 docs/oxlint.json
 create mode 100644 docs/static/img/logos/veremes.svg
 create mode 120000 superset-embedded-sdk/.npmrc
 create mode 100644 superset-frontend/.npmrc
 copy superset-frontend/plugins/plugin-chart-echarts/src/{Histogram/Histogram.tsx => Butterfly/Butterfly.tsx} (67%)
 copy superset-frontend/plugins/plugin-chart-echarts/src/{Bubble => Butterfly}/buildQuery.ts (62%)
 copy superset-frontend/{packages/superset-ui-core/src/query/api/legacy/types.ts => plugins/plugin-chart-echarts/src/Butterfly/constants.ts} (78%)
 copy superset-frontend/plugins/plugin-chart-echarts/src/{Bubble => Butterfly}/controlPanel.tsx (52%)
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/example-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/example.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/thumbnail.png
 copy superset-frontend/plugins/plugin-chart-echarts/src/{Graph => Butterfly}/index.ts (65%)
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/transformProps.ts
 copy superset-frontend/plugins/plugin-chart-echarts/src/{Bubble => Butterfly}/types.ts (58%)
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/Butterfly.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/buildQuery.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/transformProps.test.ts
 create mode 100644 superset-frontend/src/SqlLab/components/QueryHistory/mergeQueryStatus.test.ts
 create mode 100644 superset-frontend/src/SqlLab/components/QueryHistory/mergeQueryStatus.ts
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorMetricFormatWarning.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/SliceHeader/SliceInfo.test.tsx
 copy superset-frontend/src/dashboard/components/{gridComponents/new/NewRow.tsx => SliceHeader/SliceInfo.tsx} (60%)
 create mode 100644 superset-frontend/src/explore/components/ControlHeader.test.tsx
 create mode 100644 superset-frontend/src/explore/components/DataTablesPane/test/DataTableControls.test.tsx
 create mode 100644 superset-frontend/src/explore/components/DataTablesPane/utils.ts
 create mode 100644 superset-frontend/src/utils/downloadAsPivotExcel.test.ts
 create mode 120000 superset-websocket/.npmrc
 create mode 100644 superset/mcp_service/chart/plugins/interactive_pivot.py
 copy {scripts => tests/unit_tests/commands/explore/permalink}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/explore/permalink/test_create.py
 create mode 100644 tests/unit_tests/commands/explore/permalink/test_get.py
 create mode 100644 tests/unit_tests/dashboards/filter_state_api_test.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_interactive_pivot_chart.py
 create mode 100644 tests/unit_tests/versioning/test_etag.py