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/10/20 21:54:17 UTC

(superset) branch ci-skip-uncompletable-jobs-on-forks updated (ee0b2475325 -> 62ee294c448)

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

sadpandajoe pushed a change to branch ci-skip-uncompletable-jobs-on-forks
in repository https://gitbox.apache.org/repos/asf/superset.git


    from ee0b2475325 Merge branch 'master' into ci-skip-uncompletable-jobs-on-forks
     add 54d2421ded3 test(bigquery): verify string-literal escaping against a real GoogleSQL engine (#44546)
     add 9e4adb98717 fix(alerts): handle report filter loading states and errors (#45142)
     add 96e22f4eaba fix(contour): preserve undefined unused fields (#44967)
     add 9659a13ae8e docs(config): document AFTER_ASSET_CREATE hook (#44126)
     add 564b85aa395 build: group Dependabot PRs for GHA refs from `actions` org (#45296)
     add 8db419ce1ab feat(build): migrate custom lint rule to Oxlint (#44201)
     add 6a7cfd5ba12 chore(deps): bump actions/setup-node from 7.0.0 to 7.1.0 (#45285)
     add 9bd8cd9f33f chore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 (#45286)
     add 1aeb8642447 chore(deps-dev): bump baseline-browser-mapping from 2.11.26 to 2.11.27 in /superset-frontend (#45299)
     add 0dc57e9a9de fix(semantic-views): stop debounced refreshes after the modal unmounts (#45281)
     add e6b1d766183 feat(auth): add self-service forgot-password recovery for AUTH_DB (sip-201) (#45277)
     add 4c546edbd8f perf(security): resolve user_view_menu_names via role semi-join (#45303)
     add f7ad2aba62f chore(deps): bump the codeql group across 1 directory with 3 updates (#45326)
     add f808b982a59 fix(charts): reject query_context missing datasource/queries on save (#44549)
     add 72bfc4134f2 fix(semantic-layer): classify provider errors in value suggestions (#45147)
     add fed77adfee5 fix(mcp): preserve embedded guest identity during permalink lookup (#45346)
     add e0e728ef764 chore(deps): bump geolib from 3.3.14 to 4.0.0 in /superset-frontend (#45328)
     add 6132c019432 fix(extensions-cli): fix scaffold template dep mismatches vs. host (#45244)
     add d548e8dce9c fix(filters): use manual semantic-view range bounds (#44999)
     add 4b9856bfefd fix(rls): apply Public role RLS rules to anonymous users (#45333)
     add 3841bc9e0ec chore(deps): bump immer from 11.1.18 to 11.1.21 in /superset-frontend (#45330)
     add 81e558a6a80 chore(deps-dev): bump sqlalchemy-bigquery from 1.17.2 to 1.17.3 (#45319)
     add d176d68451b chore(deps-dev): bump elasticsearch-dbapi from 0.2.13 to 0.3.0 (#45318)
     add 13bd0cd9326 fix(sql): keep stop and finish outcomes consistent when they race (#45283)
     add f33b030d710 fix(explore): correct HOLIDAY tooltip wording (#45276)
     add d9bc4ea8580 fix(plugin-chart-pivot-table): sticky-position row labels and corner header cells (#43917)
     add 2020fea4acb feat(storybook/build): generate Playwright-runnable tests from Storybook stories (#44964)
     add e835d670d2e chore(deps-dev): bump prophet from 1.4.0 to 1.5.0 (#45324)
     add 1aaabd8e435 fix(websocket): support Sentinel and full TLS options for Redis/Valkey (#45355)
     add 3d82e3dfbcb chore(deps): bump cachetools from 7.2.0 to 7.2.1 (#45323)
     add 5c5061b1c8e chore(deps-dev): bump clickhouse-connect from 1.9.0 to 1.10.0 (#45321)
     add a23199762c5 fix(mypy): make UUIDMixin.uuid's nullable type resolve deterministically (#44817)
     add e734cd00d43 chore(deps): bump react-syntax-highlighter from 16.1.1 to 16.1.2 in /superset-frontend (#45370)
     add f2b71475ce2 chore(deps): bump @googleapis/sheets from 18.1.0 to 18.1.1 in /superset-frontend (#45369)
     add 3dfb42a2937 chore(deps): bump astral-sh/setup-uv from 10.2.0 to 10.3.0 (#45368)
     add 576cc9e0952 chore(deps): bump helm/chart-testing-action from 2.8.0 to 2.9.0 (#45367)
     add 50d34f8aaa2 chore(deps-dev): bump syntaqlite from 0.9.0 to 0.12.1 (#45320)
     add ad63b3eb7ab fix(impala): stop SQL Lab queries through the live cursor only (#45232)
     add 86e186b5f60 fix(tests): stop the unit suite from retaining one Superset app per module (#45364)
     add 19bb09461dc fix(examples): rewrite chart datasource references on import (#45378)
     add 9c7ca9ba107 fix(docs): improve Kapa AI widget dark mode compatibility (#39102)
     add 61d27b4aebe fix(sql): handle trailing comments after empty statements (#45274)
     add 58b1de82815 fix(datasets): don't call physical datasets "virtual" in sync columns toast (#45376)
     add 853f207c668 fix(dashboard): apply temporal x-axis cross-filters to target charts (#45310)
     add c650cbd3c61 fix(import): return 422 instead of 500 for corrupt ZIP uploads (#45380)
     add a9a7a35c4b4 fix(dashboard): show an access error for charts the viewer cannot read (#45398)
     add 44eac5b37b2 fix(soft-delete): align dashboard card dialogs and archive permission hints (#45302)
     add 21fad62645a fix(semantic-layer): resolve grain variants deterministically (#44454)
     add a13af92ff34 fix(semantic-layer): return 400 for mapper validation refusals (#45292)
     add a5d29a9d27d test(e2e): add a stub semantic-layer provider for Playwright (#45103)
     add 84be38cfc90 chore(deps): update pygithub requirement from >=2.1.1 to >=2.10.0 (#45413)
     add 31ee5719f77 fix(semantic layers): reject unknown compatibility selections (#45359)
     add e336cd04c3c fix(mcp): keep refusal and rejection categories in get_chart_data (#45360)
     add 5e1962e9a1d test(mcp): correct Dublin fold timestamp expectations (#45358)
     add ae71281c519 fix(dashboard): resolve to a fixed point when un-clipping scrollable chart content (#44102)
     add 4569608fc44 fix(pivot-table): keep MIN/MAX of non-numeric columns off the additive fast-path (#45408)
     add dfd13baab0e fix(versioning): don't record dataset column and metric extra rewrites as edits (#45349)
     add 4f49d24151d test(i18n): run the babel_update.sh msgcat tests on CI (#45247)
     add e837c37bc29 fix(semantic-layer): raise typed rejections from the E2E stub provider (#45401)
     add 4ccd337b932 chore(deps-dev): bump oracledb from 4.0.2 to 26.0.0 (#44443)
     add 297449d68e7 fix(semantic layers): return 400 for ambiguous variants in compatibility name check (#45426)
     add 663d691c311 fix(embedded): apply the chart-data guest redaction to samples and the legacy query endpoint (#45273)
     add acdd2d27667 chore(deps-dev): bump oxlint-tsgolint in /docs (#45450)
     add b8a4a5e20ad chore(deps): bump the swc group across 2 directories with 1 update (#45449)
     add c812be8019f chore(deps): bump EnricoMi/publish-unit-test-result-action from 2.24.0 to 2.25.0 (#45448)
     add 22654af3337 chore(deps): bump express from 5.2.1 to 5.3.0 in /superset-websocket/utils/client-ws-app (#45447)
     add 118acbcde35 chore(deps): bump pydantic from 2.13.5 to 2.14.0 (#45417)
     add 56ff8920385 fix(security): don't let dataset editorship substitute for data access (#45266)
     add 99ecfe5801c chore(deps): bump sqlalchemy-utils from 0.42.1 to 0.43.0 (#45416)
     add f0cfaff7881 fix(sql): decode async SQLExecutor results from the results backend (#45348)
     add 8e6e91e4dc0 feat(semantic-layers): add the provider execution context contract (#45251)
     add 53f14e7b7b1 fix(semantic-layer): refuse a chart's own filter on a column the semantic view lacks (#45294)
     add 98d5fa50b4c fix(semantic-layer): validate views before creation (#45287)
     add d36febc96ec fix(versioning): don't record save-path defaults as user changes (#45352)
     add 5a1831000a9 fix: add dblink and pg_* state-mutating functions to SQL denylist (#45089)
     add 88e92663b8f fix(semantic-layers): restore mocking compatibility after implementation became a plain property (#45501)
     add 152e1e9de9a fix(dataset): convert timezone-aware values with the dataset timezone (#45344)
     add 25e94d00d37 fix(pivot-table): stop the grand-total corner from silently picking one metric (#44657)
     add d285a1abae8 fix(dashboards): prevent horizontal filter bar from vanishing on cross-filter (#45050) (#45051)
     add 15f55686ea9 fix(dashboard): respect DASHBOARD_AUTO_REFRESH_INTERVALS configuration in refresh dropdown (#45039)
     add 1e18d01d76d feat(mcp): add caller-scoped PNG chart previews (#44558)
     add 9c287d989a8 feat(build): migrate to Typescript 6 (#44726)
     add 7b23ddea9f6 chore(build): migrate from external `copy-webpack-plugin` to Webpack-native `output.copy` (#44965)
     add 0a17a75f9a8 chore(deps): bump the storybook group across 2 directories with 4 updates (#45513)
     add d5bccecf581 chore(deps): bump chromaui/action from 18.11.0 to 18.12.1 (#45512)
     add 77b0fd62ea7 docs: add Plum to In the Wild (#45518)
     add 3cf94c87aef chore(deps-dev): bump @types/node from 26.6.4 to 26.6.5 in /superset-embedded-sdk (#45514)
     add 1df897b3bba fix(pivot-table): blank mixed-metric totals in exports and reports (#45311)
     add 38353434467 fix(cache): honor disabled datasource suggestion caches (#45288)
     add ad30c898f86 fix(dashboard): copy a layout that omits the source's current charts (#45472)
     add 3988a771f37 fix(dataset): warn immediately when normalize_columns is toggled on (#44617)
     add 3c42a68d439 test(mcp): refresh native tool inventory for PNG chart previews (#45511)
     add 1811fe5167f fix(dashboard): stop Edit Properties hanging on dashboards with many charts (#45354)
     add 65cfc1ed18c fix(deck.gl): set maplibre-gl 6's worker URL so vector basemaps load (#45396)
     add 973ac9b8efb fix(export): honor CSV_EXPORT encoding in streaming CSV exports (#45351)
     add a708a08cdb0 feat(semantic-layers): declare provider obligations and add a registration test fixture (#45393)
     add 488a3c53b45 fix(soft-delete): show Recently Archived in the menu to everyone who can open it (#45523)
     add 82a7ec91d6e feat(semantic-layers): apply a default chronological order for time-series queries (#45389)
     add fe79ab48e93 fix(tags): make owner-tag creation safe under concurrent creates (#45498)
     add e315ed365e8 test(reports): cover scheduled reports on semantic-view charts (#45526)
     add 036d1dafe2c fix(semantic-layers): report async chart query validation errors as failures (#45525)
     add d73c9b93398 fix(alerts): don't flag "Every minute" schedule as invalid in cron picker (#45468)
     add 63c6d273616 chore(plugin-chart-ag-grid-table): remove unused useTableTheme hook (#45469)
     add aa3df7caf77 fix(explore): hide empty Actual range for comparison header (#44996)
     add f0b43df751a fix(dashboard): remap native filter scopes when duplicating charts on save as (#45038)
     add b1fe28b5791 fix(ci): narrow nullable filters in metric_filter_test and resync oxfmt formatting (#45239)
     add 875dcbb1bb0 feat(action-log): open JSON payloads in a tree modal (#45337)
     add c01e784fc64 fix(ci): restore the full-repo mypy check on two semantic-layer and sqla test files (#45315)
     add 293f159deaf fix(sqllab): keep the results grid header opaque when rows scroll under it (#45480)
     add 25186586572 fix(chart): keep the chart on screen during a dashboard auto-refresh (#45234)
     add fcff5931594 fix(sqllab): ignore a Run/Stop click whose gesture started on the other action (#45336)
     add 87dc979e986 fix(table-chart): show the record count in the search box (#45497)
     add ec40973ae81 fix(semantic-layer): reject SQL extras in direct mapper calls (#45534)
     add ddbf152ac92 fix(dashboard): keep archived charts' membership when restoring a version (#45482)
     add 208438b18b6 test(tasks): cover the embedded-guest error text on task show and list (#45533)
     add 2d0203e3699 fix(plugin-chart-echarts): merge a series object in ECharts Options into every series (#45421)
     add 77ded19ba5c fix(sqllab): commit the recomputed row limit before async dispatch (#45178)
     add a1fd5b1f81e fix(sqllab): resolve query datasources when opening SQL Lab (#45374)
     add c06005afb1e fix(dashboard): load the saved description into dashboard info (#45298)
     add 2978799419e fix(models): keep NULL rows in !=, NOT LIKE and NOT ILIKE filters (#45317)
     add 33687492472 test(explore): cover chart header actions, chart pills, and view container wiring (#44848)
     add 304f5a38b58 test(playwright): add Featured Charts render smoke and Explore image download (#44844)
     add 6842e2f76b3 test(explore): cover cartodiagram and primitive explore controls (#44850)
     add c807ee7f909 fix(native-filters): keep pending removal timers when another filter is removed (#44837)
     add 62ee294c448 Merge branch 'master' into ci-skip-uncompletable-jobs-on-forks

No new revisions were added by this update.

Summary of changes:
 .github/dependabot.yml                             |     5 +-
 .github/workflows/bashlib.sh                       |    13 +
 .github/workflows/bump-python-package.yml          |     2 +-
 .github/workflows/chromatic.yml                    |     2 +-
 .github/workflows/codeql-analysis.yml              |     4 +-
 .github/workflows/docker.yml                       |     2 +-
 .github/workflows/embedded-sdk-release.yml         |     2 +-
 .github/workflows/embedded-sdk-test.yml            |     2 +-
 .github/workflows/github-action-validator.yml      |     2 +-
 .github/workflows/pre-commit.yml                   |    16 +-
 .github/workflows/python-nightly-canary.yml        |     6 +
 .github/workflows/release.yml                      |     2 +-
 .github/workflows/superset-docs-deploy.yml         |     2 +-
 .github/workflows/superset-docs-verify.yml         |     4 +-
 .github/workflows/superset-e2e.yml                 |    22 +-
 .github/workflows/superset-extensions-cli.yml      |     2 +-
 .github/workflows/superset-frontend.yml            |     9 +-
 .github/workflows/superset-helm-lint-test.yml      |     2 +-
 .../workflows/superset-python-integrationtest.yml  |     2 +-
 .../workflows/superset-python-unittest-report.yml  |     2 +-
 .github/workflows/superset-python-unittest.yml     |    17 +-
 .github/workflows/superset-translations.yml        |     4 +-
 .github/workflows/superset-websocket.yml           |     2 +-
 .github/workflows/tag-release.yml                  |     4 +-
 .github/workflows/tech-debt.yml                    |     2 +-
 .github/workflows/testcontainers.yml               |     3 +-
 .gitignore                                         |     2 +
 .pre-commit-config.yaml                            |    39 +-
 RELEASING/requirements.txt                         |     2 +-
 RESOURCES/INTHEWILD.yaml                           |     5 +
 UPDATING.md                                        |   173 +-
 docs/admin_docs/configuration/cache.mdx            |    16 +
 .../configuration/configuring-superset.mdx         |    79 +
 docs/admin_docs/configuration/mcp-server.mdx       |     5 +-
 .../extensions/contribution-types.md               |    83 +-
 docs/developer_docs/extensions/development.md      |    37 +
 .../extensions/semantic-execution-context.md       |   102 +
 docs/developer_docs/semantic-layer-cache-clear.md  |    17 +-
 docs/developer_docs/semantic-query-errors.md       |    50 +-
 .../creating-your-first-dashboard.mdx              |    43 +-
 docs/docs/using-superset/exploring-data.mdx        |    49 +
 docs/docs/using-superset/recently-archived.mdx     |     4 +
 .../using-superset/semantic-layer-connections.mdx  |     6 +
 .../using-superset/semantic-member-selections.mdx  |    10 +
 docs/docs/using-superset/version-history.mdx       |     8 +-
 docs/docusaurus.config.ts                          |    53 +-
 docs/package.json                                  |     8 +-
 docs/static/img/logos/plum.svg                     |   Bin 0 -> 4215 bytes
 docs/static/resources/openapi.json                 |   146 +-
 docs/yarn.lock                                     |   256 +-
 pyproject.toml                                     |    20 +-
 requirements/base.txt                              |    10 +-
 requirements/development.in                        |     9 +-
 requirements/development.txt                       |    22 +-
 scripts/change_detector.py                         |     1 +
 scripts/eslint.sh                                  |    30 -
 superset-core/pyproject.toml                       |     5 +-
 .../src/superset_core/semantic_layers/context.py   |    62 +
 .../src/superset_core/semantic_layers/layer.py     |    45 +-
 .../src/superset_core/semantic_layers/testing.py   |    61 +
 .../src/superset_core/semantic_layers/types.py     |    42 +-
 .../src/superset_core/semantic_layers/view.py      |    33 +-
 .../tests/semantic_layers/example_provider.py      |   167 +
 .../semantic_layers/test_execution_context.py      |    71 +
 .../tests/semantic_layers/test_registration.py     |   153 +
 superset-embedded-sdk/package-lock.json            |     8 +-
 superset-embedded-sdk/package.json                 |     2 +-
 .../src/superset_extensions_cli/cli.py             |     7 +-
 .../templates/frontend/package.json.j2             |     9 +-
 superset-extensions-cli/tests/test_cli_build.py    |     4 +-
 superset-frontend/.storybook/main.mjs              |    10 +-
 .../playwright.storybook-ci.config.ts}             |    24 +-
 superset-frontend/.storybook/setup-stories.test.ts |   156 +
 superset-frontend/.storybook/setup-stories.ts      |   179 +
 .../external.d.ts => .storybook/stories.spec.ts}   |    14 +-
 .../i18n-strings/index.js}                         |   116 +-
 .../i18n-strings}/no-eager-t-in-config.test.ts     |    13 +-
 .../i18n-strings}/no-template-vars.test.ts         |    12 +-
 .../i18n-strings}/package.json                     |     9 +-
 .../index.ts => custom-lint-rules/icons/index.js}  |    61 +-
 .../icons}/no-fontawesome.test.ts                  |    13 +-
 .../icons}/package.json                            |     9 +-
 .../theme-colors/colors.js}                        |     7 +-
 .../theme-colors/index.js}                         |   111 +-
 .../theme-colors/no-literal-colors.test.ts         |    81 +
 .../theme-colors}/package.json                     |    12 +-
 superset-frontend/eslint.config.minimal.js         |   130 -
 superset-frontend/jest.config.js                   |     3 +-
 superset-frontend/oxlint.custom-lint-rules.mts     |   121 +
 superset-frontend/oxlint.json                      |    20 +-
 superset-frontend/package-lock.json                | 30789 ++++++++-----------
 superset-frontend/package.json                     |    64 +-
 .../packages/superset-core/package.json            |     2 +-
 .../packages/superset-core/tsconfig.json           |    18 +-
 .../src/operators/utils/extractExtraMetrics.ts     |     4 +-
 .../components/RadioButtonControl.tsx              |     9 +-
 .../src/utils/getTemporalColumns.ts                |     4 +-
 .../src/utils/metricColumnFilter.ts                |     4 +-
 .../superset-ui-chart-controls/tsconfig.json       |    18 +-
 .../packages/superset-ui-core/package.json         |     4 +-
 .../src/components/CronPicker/CronPicker.test.tsx  |    28 +-
 .../src/components/CronPicker/index.tsx            |     6 +-
 .../DropdownContainer/DropdownContainer.test.tsx   |    28 +
 .../src/components/DropdownContainer/types.ts      |     4 +-
 .../src/components/Loading/Loading.stories.tsx     |     5 +-
 .../src/components/SafeMarkdown/SafeMarkdown.tsx   |     2 +-
 .../src/components/Typography/index.tsx            |     3 +-
 .../packages/superset-ui-core/tsconfig.json        |    18 +-
 .../packages/superset-ui-switchboard/tsconfig.json |    18 +-
 .../playwright/helpers/api/dashboard.ts            |    28 +
 .../playwright/helpers/api/semanticLayer.test.ts   |    65 +
 .../playwright/helpers/api/semanticLayer.ts        |   136 +
 .../playwright/helpers/fixtures/testAssets.ts      |    25 +-
 superset-frontend/playwright/pages/ExplorePage.ts  |    23 +-
 .../tests/dashboard/dashboard-test-helpers.ts      |    20 +-
 .../tests/dashboard/featured-charts-render.spec.ts |   234 +
 .../tests/explore/explore-download-image.spec.ts   |    65 +
 .../semantic-view/semantic-view-dashboard.spec.ts  |   204 +
 .../src/utils/useTableTheme.ts                     |    42 -
 .../plugin-chart-ag-grid-table/tsconfig.json       |    18 +-
 .../plugins/plugin-chart-calendar/tsconfig.json    |    18 +-
 .../src/components/OlChartMap.tsx                  |    18 +-
 .../test/components/OlChartMap.test.tsx            |   108 +
 .../plugin-chart-cartodiagram/tsconfig.json        |    18 +-
 .../plugin-chart-cartodiagram/types/external.d.ts  |     2 +
 .../plugins/plugin-chart-chord/tsconfig.json       |    18 +-
 .../plugins/plugin-chart-country-map/tsconfig.json |    18 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |     4 +
 .../src/utils/mergeCustomEChartOptions.test.ts     |    67 +
 .../src/utils/mergeCustomEChartOptions.ts          |    17 +
 .../test/Rose/buildQuery.test.ts                   |    12 +-
 .../test/Timeseries/EchartsTimeseries.test.tsx     |     6 +
 .../test/Timeseries/transformProps.test.ts         |     4 +
 .../plugins/plugin-chart-echarts/tsconfig.json     |    18 +-
 .../plugins/plugin-chart-handlebars/tsconfig.json  |    18 +-
 .../plugins/plugin-chart-horizon/tsconfig.json     |    18 +-
 .../plugin-chart-paired-t-test/tsconfig.json       |    18 +-
 .../tsconfig.json                                  |    18 +-
 .../plugins/plugin-chart-partition/tsconfig.json   |    18 +-
 .../src/PivotTableChart.tsx                        |     2 +
 .../src/plugin/buildQuery.ts                       |    35 +-
 .../src/plugin/controlPanel.tsx                    |    54 +-
 .../src/plugin/resultAggregation.ts                |   121 +
 .../src/plugin/transformProps.ts                   |    37 +-
 .../src/plugin/utilities.ts                        |    42 +-
 .../src/react-pivottable/Styles.ts                 |    98 +-
 .../src/react-pivottable/TableRenderers.tsx        |   106 +-
 .../src/react-pivottable/utilities.ts              |   739 +-
 .../plugins/plugin-chart-pivot-table/src/types.ts  |     1 +
 .../test/PivotTableChart.test.tsx                  |    22 +
 .../test/plugin/buildQuery.test.ts                 |    21 +
 .../test/plugin/transformProps.test.ts             |    82 +-
 .../test/plugin/utilities.test.ts                  |    49 +-
 .../test/react-pivottable/Styles.test.tsx          |   328 +
 .../test/react-pivottable/tableRenders.test.tsx    |    90 +-
 .../test/react-pivottable/utilities.test.ts        |   890 +-
 .../plugin-chart-pivot-table/test/testData.ts      |    68 +
 .../plugins/plugin-chart-pivot-table/tsconfig.json |    18 +-
 .../src/MapLibre.tsx                               |    35 +-
 .../test/MapLibre.test.tsx                         |    69 +-
 .../plugin-chart-point-cluster-map/tsconfig.json   |    16 +-
 .../types/external.d.ts                            |     2 +
 .../plugins/plugin-chart-table/src/TableChart.tsx  |     7 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |    56 +-
 .../plugins/plugin-chart-table/tsconfig.json       |    18 +-
 .../plugins/plugin-chart-word-cloud/tsconfig.json  |    18 +-
 .../plugins/plugin-chart-world-map/tsconfig.json   |    18 +-
 .../src/CategoricalDeckGLContainer.test.tsx        |   213 +-
 .../src/CategoricalDeckGLContainer.tsx             |    73 +-
 .../src/DeckGLContainer.test.tsx                   |    28 +
 .../preset-chart-deckgl/src/DeckGLContainer.tsx    |    11 +
 .../preset-chart-deckgl/src/Multi/Multi.tsx        |    25 +-
 .../preset-chart-deckgl/src/Multi/MultiV1.test.tsx |    66 +-
 .../plugins/preset-chart-deckgl/src/Multi/index.ts |     2 +-
 .../src/Multi/transformProps.test.ts               |    43 +
 .../external.d.ts => src/Multi/transformProps.ts}  |    22 +-
 .../preset-chart-deckgl/src/factory.test.tsx       |   117 +
 .../plugins/preset-chart-deckgl/src/factory.tsx    |    25 +
 .../preset-chart-deckgl/src/layers/Arc/Arc.test.ts |     6 +
 .../src/layers/Polygon/Polygon.test.tsx            |   100 +
 .../src/layers/Polygon/Polygon.tsx                 |    22 +
 .../plugins/preset-chart-deckgl/tsconfig.json      |    16 +-
 .../preset-chart-deckgl/types/external.d.ts        |     2 +
 .../types/{external.d.ts => global.d.ts}           |    13 +-
 superset-frontend/scripts/check-custom-rules.js    |     6 +-
 .../scripts/internal/oxlint-metrics-uploader.js    |   174 +-
 superset-frontend/spec/helpers/runStopButton.ts    |    55 +
 .../spec/scripts/oxlint-metrics-uploader.test.ts   |   327 +-
 .../src/SqlLab/actions/sqlLab.test.ts              |   308 +
 superset-frontend/src/SqlLab/actions/sqlLab.ts     |    68 +-
 .../RunQueryActionButton.test.tsx                  |   545 +-
 .../components/RunQueryActionButton/index.tsx      |    37 +-
 .../src/components/Chart/Chart.test.tsx            |    38 +
 superset-frontend/src/components/Chart/Chart.tsx   |     8 +
 .../Chart/ChartRenderer.refresh.test.tsx           |   302 +
 .../src/components/Chart/ChartRenderer.test.tsx    |    19 +
 .../src/components/Chart/ChartRenderer.tsx         |    90 +-
 .../src/components/Chart/chartAction.ts            |    34 +
 .../src/components/Chart/chartActions.test.ts      |    62 +
 .../DatasourceEditor/DatasourceEditor.tsx          |    45 +-
 ...atasourceEditorNormalizeColumnsWarning.test.tsx |   146 +
 .../src/components/Datasource/utils/index.ts       |    12 +-
 .../src/components/Datasource/utils/utils.test.tsx |    28 +-
 .../src/components/GridTable/GridTable.test.tsx    |    25 +-
 .../src/components/GridTable/index.tsx             |     9 +-
 .../src/components/JsonModal/JsonModal.test.tsx    |    18 +
 .../src/components/JsonModal/utils.ts              |    10 +-
 .../src/dashboard/actions/hydrate.test.ts          |    43 +
 superset-frontend/src/dashboard/actions/hydrate.ts |    32 +-
 .../components/AnchorLink/AnchorLink.test.tsx      |     2 +-
 .../src/dashboard/components/Header/index.tsx      |     4 +-
 .../PropertiesModal.manyCharts.test.tsx            |   107 +
 .../dashboard/components/PropertiesModal/index.tsx |     9 +-
 .../PropertiesModal/sections/AccessSection.tsx     |     2 +-
 .../RefreshFrequencySelect.test.tsx                |    99 +-
 .../RefreshFrequency/RefreshFrequencySelect.tsx    |    43 +-
 .../components/gridComponents/Header/Header.tsx    |     2 +-
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |     4 +-
 .../FilterControls.overflow.test.tsx               |   269 +
 .../FilterBar/FilterControls/FilterControls.tsx    |     4 +-
 .../FilterBar/FilterControls/FilterValue.test.tsx  |    73 +
 .../FilterBar/FilterControls/FilterValue.tsx       |    28 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |    22 +-
 .../FiltersConfigForm/getControlItemsMap.test.tsx  |    19 +-
 .../FiltersConfigForm/getControlItemsMap.tsx       |     1 +
 .../FiltersConfigForm/utils.test.ts                |    41 +
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |    27 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |    40 +
 .../hooks/useFilterOperations.test.ts              |   145 +-
 .../hooks/useItemStateManager.ts                   |    28 +-
 superset-frontend/src/dashboard/types.ts           |     2 +-
 .../util/charts/getFormDataWithExtraFilters.ts     |     7 +-
 .../util/getFormDataWithExtraFilters.test.ts       |    49 +
 .../src/explore/actions/saveModalActions.test.ts   |   212 +
 .../src/explore/actions/saveModalActions.ts        |    14 +
 .../components/ChartPills.behavior.test.tsx        |   158 +
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |   289 +
 .../ExploreChartPanel/ExploreChartPanel.test.tsx   |    28 +-
 .../explore/components/ExploreChartPanel/index.tsx |     6 +
 .../ExploreViewContainer.test.tsx                  |   276 +-
 .../components/LegacyAggregationAlert.test.tsx     |   302 +
 .../explore/components/LegacyAggregationAlert.tsx  |   115 +
 .../RunQueryButton/RunQueryButton.test.tsx         |   361 +-
 .../explore/components/RunQueryButton/index.tsx    |     6 +-
 .../controls/ComparisonRangeLabel.test.tsx         |    38 +-
 .../components/controls/ComparisonRangeLabel.tsx   |    24 +-
 .../ConditionalFormattingControl.test.tsx          |   112 +-
 .../ConditionalFormattingControl.tsx               |    12 +-
 .../ContourPopoverControl-unused-fields.test.tsx   |    60 +
 .../ContourControl/ContourPopoverControl.tsx       |     4 +-
 .../controls/CustomListItem/index.test.tsx         |    48 +
 .../DatasourceControl/DatasourceControl.test.tsx   |     2 +-
 .../components/DateFunctionTooltip.tsx             |     2 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |    69 +-
 .../index.tsx                                      |    38 +-
 .../controls/FixedOrMetricControl/index.tsx        |     2 +-
 .../LayerConfigsControl.test.tsx                   |   271 +
 .../MapViewControl/MapViewControl.test.tsx         |   134 +
 .../MapViewControl/MapViewPopoverContent.test.tsx  |    78 +
 .../components/controls/SliderControl.test.tsx     |    71 +
 .../components/controls/SwitchControl.test.tsx     |    57 +
 .../controls/TimeRangeControl/index.test.tsx       |    55 +
 .../controls/VerticalRadioControl.test.tsx         |    83 +
 .../controls/ViewQueryModalFooter.test.tsx         |   142 +-
 .../controls/VizTypeControl/VizTypeGallery.tsx     |    24 +-
 .../ZoomConfigControl/ZoomConfigControl.test.tsx   |   195 +-
 .../ZoomConfigControl/ZoomConfigsChart.test.tsx    |   178 +
 superset-frontend/src/explore/constants.ts         |    10 +
 .../exploreUtils/legacyAggregationTag.test.ts      |   137 +
 .../explore/exploreUtils/legacyAggregationTag.ts   |    93 +
 superset-frontend/src/explore/types.ts             |     2 +
 .../src/features/alerts/AlertReportModal.test.tsx  |  1128 +
 .../src/features/alerts/AlertReportModal.tsx       |   338 +-
 .../src/features/charts/ChartCard.test.tsx         |    32 +
 .../src/features/charts/ChartCard.tsx              |    10 +-
 .../src/features/dashboards/DashboardCard.test.tsx |    47 +-
 .../src/features/dashboards/DashboardCard.tsx      |    14 +-
 .../src/features/home/DashboardTable.test.tsx      |    58 +-
 .../src/features/home/DashboardTable.tsx           |    31 +-
 .../src/features/home/RightMenu.test.tsx           |    76 +
 superset-frontend/src/features/home/RightMenu.tsx  |    16 +
 .../semanticViews/AddSemanticViewModal.test.tsx    |    98 +-
 .../semanticViews/AddSemanticViewModal.tsx         |    21 +
 superset-frontend/src/features/tags/tags.ts        |     2 +-
 .../versionHistory/RelatedUpdateRow.test.tsx       |    27 +
 .../features/versionHistory/RelatedUpdateRow.tsx   |     5 +-
 .../versionHistory/VersionHistoryPanel.test.tsx    |    32 +
 .../versionHistory/VersionHistoryPanel.tsx         |     1 +
 .../src/features/versionHistory/display.test.ts    |    47 +
 .../src/features/versionHistory/display.ts         |    33 +-
 .../filters/components/Range/RangeChart.test.tsx   |   115 +
 .../components/Range/RangeFilterPlugin.test.tsx    |   475 +-
 .../filters/components/Range/RangeFilterPlugin.tsx |   195 +-
 .../filters/components/Range/buildQuery.test.ts    |    50 +
 .../src/filters/components/Range/buildQuery.ts     |     4 +
 .../src/filters/components/Range/index.ts          |     2 +
 .../filters/components/Range/isSemanticRange.ts}   |    22 +-
 .../src/filters/components/Range/transformProps.ts |     2 +-
 .../src/hooks/apiResources/dashboards.test.ts      |    48 +
 .../src/hooks/apiResources/dashboards.ts           |     1 +
 superset-frontend/src/hooks/useRunStopButton.ts    |   181 +
 .../src/pages/ActionLog/ActionLog.test.tsx         |    76 +
 superset-frontend/src/pages/ActionLog/index.tsx    |    67 +-
 .../pages/ChartList/ChartList.permissions.test.tsx |    27 +-
 superset-frontend/src/pages/ChartList/index.tsx    |    10 +-
 .../DashboardList/DashboardList.cardview.test.tsx  |    77 +-
 .../DashboardList.permissions.test.tsx             |    34 +-
 .../src/pages/DashboardList/index.tsx              |    31 +-
 .../DatasetList/DatasetList.permissions.test.tsx   |    30 +
 superset-frontend/src/pages/DatasetList/index.tsx  |    10 +-
 .../pages/ForgotPassword/ForgotPassword.test.tsx   |   157 +
 .../src/pages/ForgotPassword/index.tsx             |   168 +
 superset-frontend/src/pages/Login/Login.test.tsx   |    39 +
 superset-frontend/src/pages/Login/index.tsx        |    39 +-
 .../test-runner.ts => src/pages/Login/styles.ts}   |    40 +-
 .../src/pages/ResetPassword/ResetPassword.test.tsx |   301 +
 .../src/pages/ResetPassword/index.tsx              |   285 +
 superset-frontend/src/types/Dashboard.ts           |     1 +
 superset-frontend/src/types/bootstrapTypes.ts      |     1 +
 .../src/utils/semanticViewStructure.test.ts        |    50 +
 .../src/utils/semanticViewStructure.ts             |     2 +-
 superset-frontend/src/views/routePaths.ts          |     2 +
 superset-frontend/src/views/routes.test.tsx        |    10 +
 superset-frontend/src/views/routes.tsx             |    21 +
 superset-frontend/tsconfig.json                    |    20 +-
 superset-frontend/webpack.config.js                |    36 +-
 superset-websocket/README.md                       |    25 +
 superset-websocket/config.example.json             |    10 +-
 superset-websocket/package-lock.json               |    64 +-
 superset-websocket/package.json                    |     4 +-
 superset-websocket/spec/config.test.ts             |    42 +
 superset-websocket/spec/index.test.ts              |   161 +-
 superset-websocket/src/config.ts                   |    75 +
 superset-websocket/src/index.ts                    |    93 +-
 .../utils/client-ws-app/package-lock.json          |   147 +-
 .../utils/client-ws-app/package.json               |     2 +-
 superset/app.py                                    |    28 +-
 superset/charts/api.py                             |     7 +-
 superset/charts/client_processing.py               |   261 +-
 superset/charts/data/api.py                        |    48 +-
 superset/charts/data/dashboard_filter_context.py   |    22 +
 superset/charts/schemas.py                         |     4 +-
 superset/commands/chart/data/get_data_command.py   |    37 +-
 superset/commands/chart/exceptions.py              |     4 +
 superset/commands/dataset/create.py                |    69 +-
 superset/commands/dataset/duplicate.py             |    48 +-
 superset/commands/dataset/exceptions.py            |    46 +
 superset/commands/dataset/importers/v1/utils.py    |   194 +-
 superset/commands/dataset/update.py                |   127 +-
 superset/commands/importers/v1/examples.py         |     8 +-
 superset/commands/importers/v1/utils.py            |    49 +-
 superset/commands/security/exceptions.py           |    15 +
 superset/commands/security/password_recovery.py    |   315 +
 superset/commands/semantic_layer/create.py         |    44 +-
 superset/commands/semantic_layer/utils.py          |     2 +-
 superset/commands/sql_lab/execute.py               |    12 +
 superset/commands/streaming_export/base.py         |    34 +-
 superset/common/db_query_status.py                 |     6 +
 superset/common/form_data_query_context.py         |    30 +
 superset/common/query_context_factory.py           |    20 +-
 superset/common/query_context_processor.py         |    26 +-
 superset/common/query_object_factory.py            |    31 +-
 superset/common/utils/time_range_utils.py          |    32 +-
 superset/config.py                                 |    37 +
 superset/constants.py                              |     1 +
 superset/daos/dashboard.py                         |   151 +-
 superset/daos/key_value.py                         |    29 +-
 superset/daos/query.py                             |    26 +-
 superset/dashboards/api.py                         |    11 +-
 superset/dashboards/schemas.py                     |     3 +
 superset/databases/api.py                          |     7 +-
 superset/datasets/api.py                           |     7 +-
 superset/datasource/api.py                         |   165 +-
 superset/db_engine_specs/README.md                 |     2 +
 superset/db_engine_specs/base.py                   |     3 +
 superset/db_engine_specs/impala.py                 |    48 +-
 superset/db_engine_specs/trino.py                  |    35 +-
 superset/errors.py                                 |     1 +
 superset/exceptions.py                             |    27 +
 superset/extensions/metadb.py                      |     3 +-
 superset/importexport/api.py                       |     7 +-
 superset/initialization/__init__.py                |    29 +-
 superset/jinja_context.py                          |    17 +
 superset/key_value/types.py                        |     7 +
 superset/mcp_service/README.md                     |    41 +
 superset/mcp_service/chart/chart_helpers.py        |     7 +
 superset/mcp_service/chart/schemas.py              |    42 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |    53 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   141 +-
 superset/mcp_service/constants.py                  |     1 +
 superset/mcp_service/dashboard/permalink.py        |     6 +-
 superset/mcp_service/dashboard_scope_sql.py        |     7 +-
 superset/mcp_service/mcp_config.py                 |     3 +
 superset/mcp_service/middleware.py                 |    27 +
 ...141b8ada7731_tag_pivot_tables_with_restored_.py |   334 +
 superset/models/dashboard.py                       |    13 +
 superset/models/helpers.py                         |   175 +-
 superset/models/slice.py                           |    23 +-
 superset/queries/api.py                            |    15 +-
 superset/queries/saved_queries/api.py              |     7 +-
 superset/result_set.py                             |     5 +
 superset/security/api.py                           |   214 +-
 superset/security/manager.py                       |   108 +-
 superset/security/password_change.py               |     9 +-
 superset/security/password_recovery.py             |   316 +
 superset/semantic_layers/api.py                    |     8 +-
 superset/semantic_layers/cache_host.py             |    19 +-
 superset/semantic_layers/cache_policy.py           |    14 +-
 superset/semantic_layers/cache_repository.py       |    14 +-
 superset/semantic_layers/cache_transform.py        |    17 +-
 superset/semantic_layers/dimension_resolution.py   |   117 +
 superset/semantic_layers/exceptions.py             |    11 +-
 superset/semantic_layers/execution.py              |   286 +
 superset/semantic_layers/mapper.py                 |   341 +-
 superset/semantic_layers/models.py                 |   238 +-
 superset/semantic_layers/ordering.py               |    59 +
 superset/sql/execution/celery_task.py              |   541 +-
 superset/sql/execution/executor.py                 |   252 +-
 superset/sql/execution/serialization.py            |   130 +
 superset/sql/execution/utils.py                    |   260 +
 superset/sql/parse.py                              |    54 +-
 superset/sql_lab.py                                |   366 +-
 superset/sqllab/api.py                             |     4 +-
 superset/subjects/utils.py                         |    19 +-
 superset/tags/models.py                            |    84 +-
 superset/tasks/async_queries.py                    |    34 +-
 superset/tasks/schemas.py                          |     9 +
 superset/themes/api.py                             |     7 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |   338 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |   312 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |   320 +-
 superset/translations/de/LC_MESSAGES/messages.po   |   312 +-
 superset/translations/en/LC_MESSAGES/messages.po   |   294 +-
 superset/translations/es/LC_MESSAGES/messages.po   |   312 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |   306 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |   328 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |   314 +-
 superset/translations/it/LC_MESSAGES/messages.po   |   334 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |   304 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |   321 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |   320 +-
 superset/translations/messages.pot                 |   273 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |   312 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |   306 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |   309 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |   334 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |   306 +-
 superset/translations/ro/LC_MESSAGES/messages.po   |   323 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |   321 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |   320 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |   328 +-
 superset/translations/sr/LC_MESSAGES/messages.po   |   342 +-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |   342 +-
 superset/translations/ta/LC_MESSAGES/messages.po   |   312 +-
 superset/translations/th/LC_MESSAGES/messages.po   |   320 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |   307 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |   328 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |   298 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |   298 +-
 superset/utils/core.py                             |    11 +-
 superset/utils/date_parser.py                      |     7 +-
 superset/utils/error_sanitization.py               |    38 +
 superset/utils/excel.py                            |     7 +-
 superset/utils/schema.py                           |    60 +
 superset/utils/screenshot_utils.py                 |    34 +-
 superset/utils/webdriver.py                        |     4 +-
 superset/versioning/changes/shadow_queries.py      |     9 +-
 superset/versioning/diff.py                        |   124 +-
 superset/versioning/restore.py                     |    41 +-
 superset/views/api.py                              |     5 +
 superset/views/archived_assets.py                  |    18 +-
 superset/views/auth.py                             |    22 +-
 superset/views/base.py                             |     6 +
 superset/views/datasource/views.py                 |    80 +-
 .../src/superset_e2e_semantic_stub/__init__.py     |   290 +
 .../semantic_stub/dist/manifest.json               |    10 +
 tests/integration_tests/dashboards/api_tests.py    |    91 +
 .../dashboards/version_restore_tests.py            |   358 +
 tests/integration_tests/datasource/api_tests.py    |   237 +-
 tests/integration_tests/queries/api_tests.py       |    29 +-
 .../security/row_level_security_tests.py           |    69 +
 tests/integration_tests/security_tests.py          |   121 +-
 tests/integration_tests/sqllab_tests.py            |    29 +-
 .../superset_test_config_semantic.py               |    35 +-
 tests/integration_tests/tags/race_tests.py         |    94 +
 tests/integration_tests/tasks/api_tests.py         |    78 +-
 .../mypy_fixtures/__init__.py                      |    13 +-
 tests/mypy_fixtures/uuid_mixin_nullable.py         |    44 +
 .../db_engine_specs/_bigquery_container.py         |    79 +
 .../db_engine_specs/test_bigquery.py               |   183 +
 tests/testcontainers/db_engine_specs/test_mysql.py |   113 +
 .../db_engine_specs/test_postgres.py               |   690 +
 .../charts/commands/data/test_get_data_command.py  |    63 +-
 .../charts/commands/importers/v1/import_test.py    |    46 +
 .../charts/data/streaming_filename_test.py         |    18 +-
 tests/unit_tests/charts/test_client_processing.py  |   634 +-
 tests/unit_tests/charts/test_schemas.py            |    51 +-
 tests/unit_tests/commands/dataset/test_create.py   |   268 +-
 .../unit_tests/commands/dataset/test_duplicate.py  |   136 +-
 tests/unit_tests/commands/dataset/update_test.py   |   475 +-
 .../commands/importers/v1/examples_test.py         |    51 +
 .../unit_tests/commands/importers/v1/utils_test.py |   143 +
 .../unit_tests/commands/report/conftest.py         |    10 +-
 .../commands/report/semantic_view_report_test.py   |   232 +
 .../commands/semantic_layer/create_test.py         |   148 +-
 .../commands/semantic_layer/update_test.py         |    12 +-
 tests/unit_tests/commands/sql_lab/test_estimate.py |    27 +
 tests/unit_tests/commands/sql_lab/test_execute.py  |    92 +
 .../commands/streaming_export}/__init__.py         |     0
 .../commands/streaming_export/base_test.py         |    51 +
 .../common/test_query_context_factory.py           |    35 +
 .../common/test_query_context_processor.py         |    76 +-
 tests/unit_tests/common/test_time_range_utils.py   |    27 +
 tests/unit_tests/conftest.py                       |    53 +-
 tests/unit_tests/dao/dashboard_test.py             |   581 +
 tests/unit_tests/dao/queries_test.py               |    30 +-
 tests/unit_tests/dao/query_stop_isolation_test.py  |   126 +
 .../dao/test_copy_dashboard_legacy_ids.py          |    51 +
 tests/unit_tests/dao/test_query_stop_race.py       |    73 +-
 tests/unit_tests/daos/test_query_dao.py            |   619 +
 tests/unit_tests/dashboards/datasets_test.py       |    86 +
 tests/unit_tests/databases/api_test.py             |    47 +-
 .../datasets/commands/importers/v1/import_test.py  |   608 +-
 tests/unit_tests/datasource/test_compatible_api.py |    98 +
 .../db_engine_specs/test_impala_pending.py         |   132 +-
 tests/unit_tests/db_engine_specs/test_trino.py     |    52 +
 tests/unit_tests/exceptions_test.py                |    46 +
 tests/unit_tests/importexport/api_test.py          |    42 +
 tests/unit_tests/initialization_test.py            |     9 +-
 .../mcp_service/chart/test_bullet_chart.py         |    18 +-
 .../mcp_service/chart/test_bullet_tool_paths.py    |    21 +-
 .../mcp_service/chart/test_chart_helpers.py        |    25 +
 .../chart/test_native_chart_regressions.py         |    24 +
 .../mcp_service/chart/test_new_chart_types.py      |    26 +-
 .../mcp_service/chart/tool/test_get_chart_data.py  |   325 +-
 .../chart/tool/test_get_chart_preview.py           |   413 +
 .../mcp_service/dashboard/test_permalink.py        |    40 +-
 .../mcp_service/dataset/tool/test_query_dataset.py |    44 +-
 .../mcp_service/native_tool_inventory.json         |    30 +-
 .../test_compatibility_selection_validation.py     |     9 +-
 .../semantic_layer/tool/test_get_table.py          |    27 +-
 .../semantic_layer/tool/test_list_metrics.py       |    25 +-
 .../mcp_service/test_dashboard_scope_sql.py        |    24 +
 tests/unit_tests/mcp_service/test_middleware.py    |     5 +-
 .../mcp_service/test_validation_contract.py        |     2 +-
 ...t_tag_pivot_tables_with_restored_aggregation.py |   461 +
 tests/unit_tests/models/helpers_test.py            |   622 +-
 tests/unit_tests/models/slice_test.py              |    87 +
 tests/unit_tests/models/template_params_test.py    |    68 +
 tests/unit_tests/models/test_multivalue_filter.py  |   138 +
 tests/unit_tests/scripts/change_detector_test.py   |    13 +
 .../scripts/translations/babel_update_test.py      |   105 +-
 tests/unit_tests/security/manager_test.py          |   308 +-
 .../unit_tests/security/test_password_recovery.py  |  1067 +
 .../security/test_password_recovery_rate_limit.py  |    71 +
 tests/unit_tests/semantic_layers/api_test.py       |   123 +-
 .../unit_tests/semantic_layers/cache_host_test.py  |     6 +
 .../semantic_layers/cache_transform_test.py        |     8 +-
 tests/unit_tests/semantic_layers/conftest.py       |   171 +
 .../semantic_layers/default_order_test.py          |   376 +
 .../semantic_layers/dimension_resolution_test.py   |   161 +
 .../semantic_layers/e2e_stub_extension_test.py     |   220 +
 .../semantic_layers/execution_context_test.py      |  1141 +
 .../semantic_layers/grain_validation_test.py       |     6 +-
 .../semantic_layers/integer_precision_test.py      |    14 +-
 tests/unit_tests/semantic_layers/mapper_test.py    |   989 +-
 .../semantic_layers/metadata_contract_test.py      |    92 +-
 .../semantic_layers/metric_filter_test.py          |   137 +-
 tests/unit_tests/semantic_layers/models_test.py    |   407 +-
 .../semantic_layers/query_errors_test.py           |   373 +-
 .../semantic_layers/simple_cache_clear_test.py     |   106 +-
 .../semantic_layers/values_endpoint_test.py        |   292 +
 tests/unit_tests/sql/execution/conftest.py         |     6 +-
 .../unit_tests/sql/execution/test_async_results.py |  1498 +
 tests/unit_tests/sql/execution/test_celery_task.py |  2351 +-
 tests/unit_tests/sql/execution/test_executor.py    |    42 +-
 tests/unit_tests/sql/execution/test_utils.py       |   207 +
 tests/unit_tests/sql/parse_tests.py                |   110 +
 tests/unit_tests/sql_lab_test.py                   |  1714 ++
 tests/unit_tests/sqllab/api_test.py                |    24 +-
 tests/unit_tests/tags/models_test.py               |     6 +-
 tests/unit_tests/tags/race_test.py                 |   225 +
 tests/unit_tests/tasks/test_async_queries.py       |   139 +-
 tests/unit_tests/tasks/test_schemas.py             |    62 +
 tests/unit_tests/test_app_reinitialization.py      |   114 +
 tests/unit_tests/test_sqllab_error_stacktrace.py   |    17 +-
 tests/unit_tests/themes/api_test.py                |    33 +
 tests/unit_tests/utils/excel_tests.py              |    13 +
 tests/unit_tests/utils/test_core.py                |    20 +
 tests/unit_tests/utils/test_error_sanitization.py  |    94 +
 tests/unit_tests/utils/test_schema.py              |   138 +
 tests/unit_tests/utils/test_screenshot_utils.py    |   134 +
 .../versioning/test_dataset_child_extra.py         |   148 +
 .../versioning/test_diff_save_defaults.py          |   264 +
 tests/unit_tests/versioning/test_shadow_queries.py |    79 +
 tests/unit_tests/views/datasource/views_test.py    |   440 +-
 tests/unit_tests/views/test_archived_assets.py     |    86 +
 tests/unit_tests/views/test_base.py                |    72 +
 598 files changed, 70416 insertions(+), 22643 deletions(-)
 create mode 100644 docs/developer_docs/extensions/semantic-execution-context.md
 create mode 100644 docs/static/img/logos/plum.svg
 delete mode 100755 scripts/eslint.sh
 create mode 100644 superset-core/src/superset_core/semantic_layers/context.py
 create mode 100644 superset-core/src/superset_core/semantic_layers/testing.py
 create mode 100644 superset-core/tests/semantic_layers/example_provider.py
 create mode 100644 superset-core/tests/semantic_layers/test_execution_context.py
 create mode 100644 superset-core/tests/semantic_layers/test_registration.py
 copy superset-frontend/{plugins/preset-chart-deckgl/types/external.d.ts => .storybook/playwright.storybook-ci.config.ts} (64%)
 create mode 100644 superset-frontend/.storybook/setup-stories.test.ts
 create mode 100644 superset-frontend/.storybook/setup-stories.ts
 copy superset-frontend/{plugins/preset-chart-deckgl/types/external.d.ts => .storybook/stories.spec.ts} (77%)
 rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings/index.ts => custom-lint-rules/i18n-strings/index.js} (69%)
 rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings => custom-lint-rules/i18n-strings}/no-eager-t-in-config.test.ts (92%)
 rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings => custom-lint-rules/i18n-strings}/no-template-vars.test.ts (88%)
 rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings => custom-lint-rules/i18n-strings}/package.json (64%)
 rename superset-frontend/{eslint-rules/eslint-plugin-icons/index.ts => custom-lint-rules/icons/index.js} (66%)
 rename superset-frontend/{eslint-rules/eslint-plugin-icons => custom-lint-rules/icons}/no-fontawesome.test.ts (88%)
 rename superset-frontend/{eslint-rules/eslint-plugin-icons => custom-lint-rules/icons}/package.json (66%)
 rename superset-frontend/{eslint-rules/eslint-plugin-theme-colors/colors.ts => custom-lint-rules/theme-colors/colors.js} (97%)
 rename superset-frontend/{eslint-rules/eslint-plugin-theme-colors/index.ts => custom-lint-rules/theme-colors/index.js} (67%)
 create mode 100644 superset-frontend/custom-lint-rules/theme-colors/no-literal-colors.test.ts
 rename superset-frontend/{eslint-rules/eslint-plugin-theme-colors => custom-lint-rules/theme-colors}/package.json (54%)
 delete mode 100644 superset-frontend/eslint.config.minimal.js
 create mode 100644 superset-frontend/oxlint.custom-lint-rules.mts
 create mode 100644 superset-frontend/playwright/helpers/api/semanticLayer.test.ts
 create mode 100644 superset-frontend/playwright/helpers/api/semanticLayer.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/featured-charts-render.spec.ts
 create mode 100644 superset-frontend/playwright/tests/explore/explore-download-image.spec.ts
 create mode 100644 superset-frontend/playwright/tests/semantic-view/semantic-view-dashboard.spec.ts
 delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/test/components/OlChartMap.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/src/plugin/resultAggregation.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/test/react-pivottable/Styles.test.tsx
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/Multi/transformProps.test.ts
 copy superset-frontend/plugins/preset-chart-deckgl/{types/external.d.ts => src/Multi/transformProps.ts} (62%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/factory.test.tsx
 copy superset-frontend/plugins/preset-chart-deckgl/types/{external.d.ts => global.d.ts} (74%)
 create mode 100644 superset-frontend/spec/helpers/runStopButton.ts
 create mode 100644 superset-frontend/src/components/Chart/ChartRenderer.refresh.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorNormalizeColumnsWarning.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.manyCharts.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ChartPills.behavior.test.tsx
 create mode 100644 superset-frontend/src/explore/components/LegacyAggregationAlert.test.tsx
 create mode 100644 superset-frontend/src/explore/components/LegacyAggregationAlert.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl-unused-fields.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/CustomListItem/index.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewPopoverContent.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/SliderControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/SwitchControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/TimeRangeControl/index.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/VerticalRadioControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigsChart.test.tsx
 create mode 100644 superset-frontend/src/explore/exploreUtils/legacyAggregationTag.test.ts
 create mode 100644 superset-frontend/src/explore/exploreUtils/legacyAggregationTag.ts
 create mode 100644 superset-frontend/src/filters/components/Range/RangeChart.test.tsx
 create mode 100644 superset-frontend/src/filters/components/Range/buildQuery.test.ts
 copy superset-frontend/{plugins/plugin-chart-cartodiagram/types/external.d.ts => src/filters/components/Range/isSemanticRange.ts} (64%)
 create mode 100644 superset-frontend/src/hooks/useRunStopButton.ts
 create mode 100644 superset-frontend/src/pages/ForgotPassword/ForgotPassword.test.tsx
 create mode 100644 superset-frontend/src/pages/ForgotPassword/index.tsx
 rename superset-frontend/{.storybook/test-runner.ts => src/pages/Login/styles.ts} (54%)
 create mode 100644 superset-frontend/src/pages/ResetPassword/ResetPassword.test.tsx
 create mode 100644 superset-frontend/src/pages/ResetPassword/index.tsx
 create mode 100644 superset/commands/security/password_recovery.py
 create mode 100644 superset/migrations/versions/2026-09-25_00-00_141b8ada7731_tag_pivot_tables_with_restored_.py
 create mode 100644 superset/security/password_recovery.py
 create mode 100644 superset/semantic_layers/dimension_resolution.py
 create mode 100644 superset/semantic_layers/execution.py
 create mode 100644 superset/semantic_layers/ordering.py
 create mode 100644 superset/sql/execution/serialization.py
 create mode 100644 superset/sql/execution/utils.py
 create mode 100644 tests/e2e_extensions/semantic_stub/dist/backend/src/superset_e2e_semantic_stub/__init__.py
 create mode 100644 tests/e2e_extensions/semantic_stub/dist/manifest.json
 copy superset/commands/security/exceptions.py => tests/integration_tests/superset_test_config_semantic.py (50%)
 create mode 100644 tests/integration_tests/tags/race_tests.py
 copy RELEASING/requirements.txt => tests/mypy_fixtures/__init__.py (65%)
 create mode 100644 tests/mypy_fixtures/uuid_mixin_nullable.py
 create mode 100644 tests/testcontainers/db_engine_specs/_bigquery_container.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_bigquery.py
 copy RELEASING/requirements.txt => tests/unit_tests/commands/report/conftest.py (82%)
 create mode 100644 tests/unit_tests/commands/report/semantic_view_report_test.py
 copy {scripts => tests/unit_tests/commands/streaming_export}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/streaming_export/base_test.py
 create mode 100644 tests/unit_tests/dao/query_stop_isolation_test.py
 create mode 100644 tests/unit_tests/daos/test_query_dao.py
 create mode 100644 tests/unit_tests/datasource/test_compatible_api.py
 create mode 100644 tests/unit_tests/exceptions_test.py
 create mode 100644 tests/unit_tests/migrations/test_tag_pivot_tables_with_restored_aggregation.py
 create mode 100644 tests/unit_tests/models/template_params_test.py
 create mode 100644 tests/unit_tests/security/test_password_recovery.py
 create mode 100644 tests/unit_tests/security/test_password_recovery_rate_limit.py
 create mode 100644 tests/unit_tests/semantic_layers/default_order_test.py
 create mode 100644 tests/unit_tests/semantic_layers/dimension_resolution_test.py
 create mode 100644 tests/unit_tests/semantic_layers/e2e_stub_extension_test.py
 create mode 100644 tests/unit_tests/semantic_layers/execution_context_test.py
 create mode 100644 tests/unit_tests/sql/execution/test_async_results.py
 create mode 100644 tests/unit_tests/sql/execution/test_utils.py
 create mode 100644 tests/unit_tests/tags/race_test.py
 create mode 100644 tests/unit_tests/test_app_reinitialization.py
 create mode 100644 tests/unit_tests/utils/test_schema.py
 create mode 100644 tests/unit_tests/versioning/test_dataset_child_extra.py
 create mode 100644 tests/unit_tests/versioning/test_diff_save_defaults.py
 create mode 100644 tests/unit_tests/views/test_archived_assets.py