You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/10/24 02:01:18 UTC

(superset) branch feat/csp-runtime-allowlist-iframe updated (95b0ba80438 -> ae69db02075)

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

rusackas pushed a change to branch feat/csp-runtime-allowlist-iframe
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit 95b0ba80438 fix(dashboard): drop allow-same-origin from iframe sandbox; add CSP regression test
    omit 83990e0e646 feat(dashboard): per-component behavior policy + extension docs
    omit 2f15c325723 feat(dashboard): dashboardComponents Extensions contribution point
    omit 377116e5ab4 docs(sip): add dashboard component contribution-point SIP
    omit ad3c8b6dac8 feat(dashboard): first-class iframe component with runtime CSP allowlist
     add 5d4358a1493 chore(deps): bump google-auth-library from 11.0.1 to 11.0.2 in /superset-frontend (#43364)
     add 80bba12d0fc chore(deps-dev): bump globals from 17.10.0 to 17.11.0 in /docs (#43363)
     add b288db91f95 chore(deps): bump github/codeql-action/init from 4.37.6 to 4.37.7 (#43362)
     add 8b67fb4d308 chore(deps-dev): bump globals from 17.10.0 to 17.11.0 in /superset-websocket (#43360)
     add fdd3945dded chore(deps): bump github/codeql-action/analyze from 4.37.6 to 4.37.7 (#43361)
     add e7dccd44a7c fix(reports): prevent blank/partial report PDFs from virtualized charts (#43348)
     add 2ff79bd4950 fix(github): point the issue templates at labels that exist (#43357)
     add c0884c0f0cc fix(explore): keep x-axis label when overriding Time Column with time comparison (#42875)
     add 1ef12580a7a fix(chart): ignore chart actions for a chart no longer in state (#43228)
     add 1ca5e61f544 chore: Unset future flag in engines and sessions. (#43273)
     add 83c6ea4e03d fix(explore): show the empty state when Samples returns no result payload (#43115)
     add 148ffaff501 fix(plugin-chart-echarts): omit stacked value labels on zero-height segments (#42756)
     add b5fe00b407d test(frontend): shrink flaky/misplaced recently-archived e2e coverage to Jest unit tests (#43264)
     add bcfb4346f6b fix(mcp): honor use_cache and cache_timeout in get_chart_data (#43349)
     add 271564cb0da feat(config): add EXTRA_PANDAS_POSTPROCESSING_OPS extension point (#43337)
     add 42ba2a4433f fix(reports): humanize day-of-month + day-of-week crontabs as OR (#43307)
     add 7441ce90aea fix(charts): align grain-less time comparisons safely (#43315)
     add 01b1d58ac97 fix(plugin-chart-echarts): restore tooltips for metrics labelled like… (#43369)
     add 18a36d04c72 fix(mcp): preserve user-authored result values (#43202)
     add 18fc2c62286 fix(sqllab): stop copying a permalink when opening a saved query (#43147)
     add 27ea5de44a0 fix(i18n-es): correct case/number collapse in the semantic-layer labels (#43311)
     add 22396d504a5 fix(ux): use title case for button labels (#40048)
     add f7d505e1fd0 fix(listview): stop card clicks creating a duplicate history entry (#43310)
     add fb53761ec8a chore(deps-dev): bump baseline-browser-mapping from 2.11.13 to 2.11.14 in /superset-frontend (#43381)
     add 87743ef3f83 chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43380)
     add 14408eb3db9 chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43379)
     add 132340b6529 chore(deps): bump astral-sh/setup-uv from 10.0.0 to 10.0.1 (#43378)
     add 6e22050b509 chore(deps): bump the storybook group in /docs with 2 updates (#43377)
     add 65910abf21f fix(sqllab): disable Save dataset until the query runs successfully (#43330)
     add e45dd2d3f16 ci: pull CI service images from GHCR mirror (fork-safe) [depends on #40880] (#40882)
     add 05842a6350f feat(metrics): add MEDIAN/STDDEV_SAMP/VAR_SAMP as system-wide aggregates (#42895)
     add a05a0999877 fix(embedded): block custom SQL injection in guest user chart payloads (#43111)
     add d422f5b4b68 fix: last date label hidden on time series x-axis (#39899) (#42299)
     add fd7095df9a5 fix(explore): align viz type gallery thumbnails and Featured tag (#43373)
     add 03eac279e5f fix(explore): exclude permalink_key from chart URL params (#43354)
     add edda9d1bbbc fix(frontend): tighten SQL Lab autorun scoping and HTML-rendering defaults (#43398)
     add aee98b527d1 fix(charts): escape untrusted strings before rendering into chart tooltips and popups (#43397)
     add 2b6044b624a fix: tighten SSRF validation, executor resolution, and cache scoping across reports/thumbnails (#43395)
     add 04017f39568 fix(sqllab): re-validate access against rendered SQL and tighten cache/permalink scoping (#43394)
     add 65893113fed fix(import): tighten ownership and validation checks across asset importers (#43393)
     add 9781254363f fix(export): escape formula-triggering values consistently and bound post-processing inputs (#43396)
     add 5f3e34908cc fix(charts): surface blocking alerts/reports when archiving a chart (#43402)
     add 5812c0eab56 fix(mcp): fail closed when MCP_AUTH_FACTORY raises (#43329)
     add 09bd8c98de2 feat(chart): enable cross-filter on temporal x-axis (bar/label click) (#42792)
     add f2610e9dca0 fix(sqllab): default PostgreSQL port to 5432 in the dynamic connection form (#43351)
     add 9f505eb0cbb fix(examples): replace deprecated timeseries_limit_metric with series_limit_metric (#43422)
     add c3ed8b312d5 fix(security): surface extra_editors in dashboard/chart lists (#43392)
     add 5ffb72151e8 chore(deps): bump react-error-boundary from 6.1.2 to 6.1.3 in /superset-frontend (#43451)
     add 90a3d930022 chore(deps): bump dayjs from 1.11.21 to 1.11.22 in /superset-frontend (#43450)
     add 8fa48d73f69 chore(deps-dev): bump concurrently from 10.0.4 to 10.0.5 in /superset-frontend (#43449)
     add af859717a73 chore: remove two stale codecov ignore paths (#43438)
     add e7756aeef94 chore(deps): bump immer from 11.1.16 to 11.1.17 in /superset-frontend (#43448)
     add 7196ce8a0c8 chore(deps): bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (#43445)
     add dcac129b514 chore(deps): bump js-yaml from 5.2.3 to 5.3.0 in /docs (#43442)
     add 4623d9219af fix: update in the wild link on community page (#43403)
     add 8a323241846 fix: add missing ownership checks to tag, report-log, and dataset-schema endpoints (#43390)
     add 7f1b41444c8 fix: add missing access checks to semantic-layer and theme endpoints (#43389)
     add 15b98aa6da0 fix(plugin-chart-echarts): apply contribution before rename with time comparison (#43384)
     add 3f10d8b1ccb fix(versioning): suppress automatic chart normalization changes (#43350)
     add 649c062825a chore(deps): bump baseline-browser-mapping from 2.11.13 to 2.11.15 in /docs (#43444)
     add f3142e7b15b fix(tags): fix broken import in daos/tag.py (#43466)
     add 2c02965f2bf chore(deps): bump @swc/core from 1.15.47 to 1.16.0 in /docs (#43443)
     add e450acf1c70 chore(deps): bump sqlglot from 30.16.0 to 30.17.0 (#43418)
     add a392e8b1024 chore(deps): bump marshmallow from 4.3.0 to 4.3.1 (#43417)
     add db539288acb chore(deps-dev): update teradatasql requirement from >=20.0.0.64 to >=20.0.0.65 (#43416)
     add ceb75b93503 chore(deps): bump sqlalchemy from 2.0.51 to 2.0.52 (#43415)
     add 8591f52cedf chore(deps): bump pyarrow from 25.0.0 to 25.0.1 (#43414)
     add f1f63478852 chore(deps-dev): bump prophet from 1.3.0 to 1.4.0 (#43412)
     add 1bde62f9973 chore(deps-dev): bump gevent from 26.7.0 to 26.8.0 (#43411)
     add 6eced8e9191 fix(roles): let the permissions dropdown size to its content (#43196)
     add dc436c76f7a fix(datasets): keep a metric's warning text when editing from Explore (#43177)
     add c980b3a3615 fix(mcp): tighten auth and request validation edge cases (#43388)
     add bf5f3a9e6be test(dashboard): migrate drill-to-detail E2E from Cypress to Playwright (#41437)
     add b0962ba5edb fix(plugin/chart/parallel-coordinate): prevent frontend crash with empty/undefined metrics when moving between pages quickly (#42392)
     add 6ab21b381a6 fix(mysql): resolve wire-protocol column types and mutate rows from immutable results (#42821)
     add a8a8b51afb8 fix(plugin-chart-table): guard row-indexed comparison-color lookups against undefined entries (#43139)
     add 27ec80c07b0 fix(explore): clear stale custom time-shift date error (#43146)
     add 31f06c0ee6d fix(dataset): correct Hours Offset filter bounds and grain-truncation order (#43173)
     add c635d0754fc fix(explore): honor column Label in filter search and pill (#43404)
     add 24b95f9ca7e fix(gsheets): correctly format Date-column filter literals (#43355)
     add 7dbf71a3791 fix(query-object): reject malformed ad-hoc metrics (#43353)
     add 94855e96262 fix(frontend): ignore stale list responses (#43306)
     add ca3d7670b77 fix(ci): restore scheduled CI checks (#43266)
     add 52571a5b8b1 chore(deps): bump the rjsf group in /superset-frontend with 3 updates (#43440)
     add dfd057b9201 chore(deps-dev): update clickhouse-connect requirement from <2.0,>=1.6.0 to >=1.7.1,<2.0 (#43419)
     add 7e3d092ac40 fix(soft-delete): name the recovery location in the archive confirmation (#43401)
     add 107204a1fc6 fix(sqllab): allow SQL Lab query owners to create charts without all_datasource_access (#42479)
     add 8b792ab6603 chore(deps-dev): bump @swc/core from 1.15.47 to 1.16.0 in /superset-frontend (#43446)
     add a9d54a00379 fix(soft-delete): card-view chart delete shows the archive dialog (#43469)
     add f83fb7c0e07 fix(archived-list): use the semantic-layers-aware label for the dataset type (#43465)
     add bd7b7392122 chore: remove obsolete pandas/SQLAlchemy version compat shim (#43497)
     add 6c2fef29cb7 feat(snowflake): Add support for OAuth 2.0 authentication (#36856)
     add 9dd8c42f3d4 chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43511)
     add 7bad69f523c chore(deps): bump dayjs from 1.11.22 to 1.11.23 in /superset-frontend (#43510)
     add d2aeb29223f chore(deps-dev): bump baseline-browser-mapping from 2.11.14 to 2.11.15 in /superset-frontend (#43508)
     add cbfa94c4dd6 chore(deps): bump antd from 6.6.0 to 6.6.1 in /docs (#43506)
     add d480152735e chore(deps): bump the storybook group in /docs with 2 updates (#43505)
     add ef0ad01aa56 chore(deps-dev): bump the storybook group across 1 directory with 5 updates (#43507)
     add fd3849cef1b chore(deps): bump antd from 6.6.0 to 6.6.1 in /superset-frontend (#43509)
     add f9530f31abb fix(table): keep each metric's own aggregate in the summary row by default (#43421)
     add 02b3e43b66b fix(number-format): preserve custom smart formatter id (#43439)
     add 34ffa37aaa4 chore(ci): drop inert SQLALCHEMY_WARN_20 flag from unit-test CI (#43495)
     add 3585e8235a7 fix(i18n): review Traditional Chinese count labels (#43063)
     add fc4d7221ecb fix(explore): skip re-fetch when navigating away from /explore (#39506)
     add f903e02d910 chore(deps): restore permissive marshmallow lower bound (>=3.0, <5) (#43521)
     add 88d2c2954e5 feat(deletion-retention): persist purge block reason codes on the audit log (#43485)
     add b89da3e9fca docs(versioning): fix post-flip doc and comment drift (#43493)
     add 68386a53ee2 chore(database): remove dead extra validation exception classes (#42411)
     add 90dab7cf61b fix(mcp): accept common chart input variants (#43130)
     add 649d6f1b41f fix(mcp): defer unknown numeric types to compile (#43131)
     add 0dcb2ca53a4 feat(maps): Add Italy regions and autonomous provinces country map (#42309)
     add e6b9205821b fix(country-map): give Alborz its own ISO code instead of reusing Tehran's (#42429)
     add 61ab0cdb5dd fix(ocient): update GIS test fixtures for pyocient's relocated geo types (#43496)
     add 473c318335b chore(superset-core): add __init__.py to semantic_layers (#43528)
     add 62d74be0afe fix(metadb): apply SUPERSET_META_DB_LIMIT after join instead of per-table (#36304) (#42598)
     add 2dfe8a5bd98 fix(OAuth2): Support creating OAuth2 connections via SQLAlchemy URI (#43489)
     add b4f7114a091 fix(semantic-layer): warn that deleting a layer cascade-deletes its dependent views (#42845)
     add 1fd763bd29b fix(mcp): honor and validate chart filters (#43478)
     add 19eca6523fb chore(deps): bump uuid from 14.0.1 to 14.0.2 in /superset-frontend (#43545)
     add 6194c852f1d chore(deps-dev): bump oxfmt from 0.63.0 to 0.64.0 in /docs (#43544)
     add e97db01482b chore(deps-dev): bump oxfmt from 0.63.0 to 0.64.0 in /superset-frontend (#43542)
     add 622bc45c9ec chore(deps-dev): bump @swc/core from 1.16.0 to 1.16.1 in /superset-frontend (#43541)
     add 2bc96a47a45 chore(deps): bump swagger-ui-react from 5.32.13 to 5.32.14 in /docs (#43540)
     add 450e2edc2b0 chore(deps): bump @swc/core from 1.16.0 to 1.16.1 in /docs (#43539)
     add 5a4900abb1a chore(deps-dev): bump vitest from 4.1.10 to 4.1.11 in /superset-websocket (#43538)
     add 686245a905a chore(deps-dev): bump oxfmt from 0.63.0 to 0.64.0 in /superset-websocket (#43537)
     add e7ca8b8a571 fix(chart): render ECharts charts at full resolution in download-as-image (#43456)
     add 0597f36bb62 chore(deps-dev): bump oxlint from 1.78.0 to 1.79.0 in /superset-frontend (#43543)
     add 455e6603c10 feat(reports): gate retry functionality behind ALERT_REPORTS_RETRY flag (#43553)
     add 70c9203aa9c fix(sqllab): release DB connection before fetching query results from backend (#43371)
     add 434511cb376 fix(mcp): reject unsafe dashboard layout replacements (#43476)
     add 13927f27e2b fix(mcp): raise SDK floor (#43530)
     add b8308a44a30 fix(pivot-table): exclude rollup totals from conditional formatting scale (#43481)
     add a140e74f5f5 fix(excel): handle duplicate column labels in xlsx export (#43561)
     add 371e5e25e83 fix(trino): honor the verify arg for the user impersonation flow (#43534)
     add 6b0aa8714d1 chore(deps): raise Pillow/PyJWT floors to match resolved pins (#43519)
     add 1c66b71e232 feat(plugin-chart-echarts): allow decal patterns in custom ECharts options (#43427)
     add 0e172a6ff3c feat(waterfall): add show/hide toggles for X and Y axes (#42371)
     add b71293acde0 fix(sqllab): stop a database with no extra from breaking SET_DATABASES (#43216)
     add ca63bb532d1 fix(plugin-chart-table): preserve comparison arrow when a column-specific formatter entry is missing (#43494)
     add 7d355a254ea fix(Modal): stop the draggable modal from hijacking text selection (#43498)
     add 0ab64e305c0 chore(deps-dev): bump lerna from 10.0.0 to 10.0.1 in /superset-frontend (#43580)
     add 5ea7d05d985 chore(deps): bump immer from 11.1.17 to 11.1.18 in /superset-frontend (#43581)
     add d1b7a4fdb41 chore(deps): bump dompurify from 3.4.13 to 3.4.14 in /superset-frontend (#43579)
     add 5879994e683 fix(charts): resolve export filenames from the chart, not the form data (#43280)
     add fde0fbd315b fix(ci): unblock lint-frontend after the oxlint 1.79.0 bump (#43587)
     add 905a35d05f7 fix(mcp): resolve dashboard permalinks (#43482)
     add 76151beade2 fix(export): truncate exported filenames to prevent Windows path extraction errors (#42531) (#42541)
     add ff1d9f9e095 chore(deps): bump dawidd6/action-download-artifact from 21 to 24 (#43441)
     add bde1c483b06 chore(deps): group Dependabot security-update PRs per directory (#43604)
     add e8aea6b6dfe fix: remove redundant 'tooltip' tooltip in scoping modal (#43455)
     add c2266f860cb chore(deps-dev): update clickhouse-connect requirement from <2.0,>=1.7.1 to >=1.7.2,<2.0 (#43608)
     add 87c48cc473d feat(echarts): make bar chart label position user-configurable (#38695)
     add d013bc7a21f chore(deps): bump baseline-browser-mapping from 2.11.15 to 2.11.16 in /docs (#43613)
     add 926e0e6a920 fix(chart-data): validate select()'s exclude option instead of raising 500s (#42410)
     add 6d8cbbfe8d9 fix(api): stop export downloads inheriting the one-year Cache-Control (#43185)
     add a3072c0bf68 fix(deckgl): give handlebars tooltips an opaque background (#43195)
     add 22027ec24ce fix(explore): require a value for adhoc filters before save (#43317)
     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 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 e683aadd6e0 chore(build): upgrade `webpack-dev-server` v7 and dependent libs (#43766)
     add 32fe4f66128 fix(echarts): make Bar chart value labels fit-aware and readable (#43144)
     add ba50bdff237 fix(echarts): prevent x-axis time labels from overlapping (#43669)
     add c9f625627dc fix(explore): don't drop stashed control values from saved chart params (#43650)
     add 531587a4b26 fix(sql): catch sqlglot ParseError when parsing RLS predicates (#43651)
     add 794dee80c23 docs: point homepage Release Notes link to GitHub releases (#43780)
     add 69333e87db3 chore(deps): bump browserslist from 4.28.4 to 4.28.8 in /docs in the security group across 1 directory (#43773)
     add 8ad5859fdf8 chore(deps-dev): bump browserslist from 4.28.1 to 4.28.8 in /superset-frontend in the security group across 1 directory (#43775)
     add 38331619157 chore(deps): bump browserslist from 4.28.1 to 4.28.8 in /superset-frontend/cypress-base (#43774)
     add 56944319cb1 chore(deps): bump js-yaml from 5.3.0 to 5.4.0 in /docs (#43748)
     add 45b903b19ad chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /docs (#43745)
     add cf77deb678a fix(sqllab): explain dataset save failures instead of "Fatal error" (#43334)
     add 58f17efa6f5 feat(datasource): headless query API for Explorable datasources (#43527)
     add 9b2bb15ecec fix(themes): apply system default/dark theme changes live without a page refresh (#43778)
     add 0c7a47ef231 chore(deps): bump github/codeql-action/init from 4.37.8 to 4.37.9 (#43790)
     add 7321d4aff6f chore: fix typos in comments and docstrings (#43785)
     add 201a33f68f7 fix(charts): reject non-table datasource_type instead of crashing (#43500)
     add 316f6ad971a chore(lint): scope in-repo eslint plugins under @superset-ui (#43054)
     add b7da5336d35 docs(mcp): document embedded guest-token authentication (#43637)
     add 8c2290fcf45 docs(theming): document resultsGrid* Superset-specific tokens (#43638)
     add 46c8c67a400 fix(semantic_layers): mask write-only config fields, gate flag-off endpoints (#43474)
     add c19879ffff2 chore(translations): updated Slovenian translations (#43735)
     add f5e427083e2 fix(native-filters): keep "Select all" count stable while searching the Value filter (#43460)
     add 3bd437869a6 feat(export): let deployments carry extra fields through asset export/import (#43763)
     add 393b00f38ae chore(deps-dev): bump @typescript-eslint/parser from 8.67.0 to 8.68.0 in /superset-websocket (#43789)
     add 0ea234e9ae1 chore(deps): bump github/codeql-action/analyze from 4.37.8 to 4.37.9 (#43791)
     add e7c42dd8ed8 chore(deps-dev): bump fast-uri from 3.1.5 to 3.1.7 in /superset-embedded-sdk (#43796)
     add b49c1fd7e42 fix(security): handle cached schema/catalog names deserialized as lists (#43800)
     add 64bfbf75a49 feat(chart): list semantic views in the Create Chart datasource picker (#43629)
     add e8540b7c495 feat(dataset): warn about dependent charts and dashboards before purging an archived dataset (#43724)
     add 5b8e50e69db fix(reports): downgrade Slack channel-fetch auth-error logging to WARNING (SC-115301) (#42484)
     add a81c0f67739 fix(gsheets): catch JSONDecodeError in validate_parameters for malformed service_account_info (#43772)
     add 3394097c83a fix(snowflake): refresh rejected OAuth tokens (#43623)
     add 6dd841c35b2 fix(jinja): reuse get_request_json_body in get_dataset_id_from_context (#43556)
     add 52a4cb6314a fix(snowflake): quote case-sensitive lowercase column identifiers in generated SQL (#43312)
     add 07fc3144e5a feat(dataset): expose dataset certification controls (#43633)
     add d82a88f479e fix(dashboard): keep filter config modal within iframe (#43632)
     add d921131c5d9 fix(charts): resolve semantic-view datasource name and link in chart list (#43649)
     add b457280b57a chore(api): regenerate the OpenAPI spec (#43788)
     add 4a18556fdc0 fix(reports): prevent blank dashboard captures (#43784)
     add 18465bad51f perf(dashboard): batch dataset lookups during dashboard export (#43017)
     add bf12a21367c fix(charts): sort chart types by display name (#43634)
     add c185a2c6785 chore(deps-dev): bump @types/node from 26.3.0 to 26.4.0 in /superset-frontend (#43819)
     add 464adba69b8 chore(deps-dev): bump minimizer-webpack-plugin from 5.6.1 to 5.7.0 in /superset-frontend (#43818)
     add 3bd0ad52678 chore(deps): bump react-intersection-observer from 11.0.0 to 11.0.1 in /superset-frontend (#43817)
     add 9d855a4adf9 chore(deps-dev): bump @types/node from 26.2.0 to 26.4.0 in /superset-websocket (#43815)
     add 0398b320f94 chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /docs in the security group across 1 directory (#43798)
     add 669a0cefb49 chore(deps): bump the security group across 1 directory with 2 updates (#43797)
     add d9887fd9286 chore(deps): bump js-yaml from 5.4.0 to 5.4.1 in /docs (#43816)
     add a95c40aa1e4 chore(deps): bump qs from 6.15.2 to 6.16.0 in /superset-websocket/utils/client-ws-app in the security group across 1 directory (#43824)
     add d2d965e009f fix(navbar): use down-chevron icon consistently on all navbar dropdowns (#43531)
     add 28578160ff5 docs(pivot-table): document DB-computed totals/subtotals behavior (#43636)
     add b558f41461e feat(dashboard): convert @import to inline CSS in the dashboard CSS editor (#43667)
     add 9828281e7fd fix(charts): exclude string helpers from post_processing operation allowlist (#43345)
     add dd1a475df62 chore(deps-dev): bump baseline-browser-mapping from 2.11.18 to 2.11.19 in /superset-frontend (#43750)
     add 232ccf66d64 chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-frontend (#43749)
     add c91c9018323 chore(deps): bump baseline-browser-mapping from 2.11.18 to 2.11.19 in /docs (#43747)
     add 5d8ff9181a5 chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#43744)
     add a6cbd7c3b58 chore(deps-dev): bump typescript-eslint from 8.67.0 to 8.68.0 in /superset-websocket (#43742)
     add 0bca5af7a9b fix(table): hide the Time Grain control in raw records mode (#43802)
     add 3258f5fa3f6 fix(security): catch JSONDecodeError on stored query_context in query_context_modified (#43795)
     add 765a4ecca51 chore(deps): bump caniuse-lite from 1.0.30001809 to 1.0.30001810 in /docs (#43746)
     add cceb52e776f fix(embedded): don't let guest-user check turn error responses into 500s (#43834)
     add 93df5bc3620 fix(semantic-layers): classify SemanticLayer/SemanticView in FAB role sets (#43783)
     add 8d0637efadf fix(semantic-layers): serve filter-value suggestions for semantic views (#43777)
     add 2aacf579323 chore(deps): bump antd from 6.6.1 to 6.6.2 in /superset-frontend (#43858)
     add a6a794864bf chore(deps-dev): bump minimizer-webpack-plugin from 5.7.0 to 5.8.0 in /superset-frontend (#43857)
     add 0e01b5fb4ca chore(deps): bump baseline-browser-mapping from 2.11.19 to 2.11.20 in /docs (#43851)
     add 173d2173aaf chore(deps-dev): bump baseline-browser-mapping from 2.11.19 to 2.11.20 in /superset-frontend (#43856)
     add 0fc410eeccd chore(deps-dev): bump @testing-library/react from 15.0.7 to 16.3.3 in /superset-frontend (#43855)
     add 34286883d33 chore(deps): bump postcss from 8.5.23 to 8.5.26 in /superset-frontend (#43854)
     add 0a5eddb18b0 chore(deps): bump morgan from 1.11.0 to 1.12.0 in /superset-websocket/utils/client-ws-app (#43850)
     add a0685173932 chore(deps-dev): bump webpack from 5.109.2 to 5.110.1 in /superset-frontend (#43853)
     add c84c7c4bdd2 chore(ci): optimize Dependabot processes (#43681)
     add e9412576b20 feat(build/websocket): upgrade to Typescript 7 + migrate ESLint to TS7-compatible `oxlint` and`tsgolint` (#43703)
     add 8f6caf4ff94 feat(build): upgrade to Typescript 7, Babel 8, Webpack CLI 7 and JSDOM 30 for `superset-embedded-sdk` (#43702)
     add f63a0e9d9c7 feat(conditional-formatting): add manual min/max color-range bounds (#43820)
     add 31a3a190373 chore(deps-dev): bump @types/node from 25.9.5 to 26.4.0 in /superset-embedded-sdk (#43881)
     add d27124e5f6b chore(deps-dev): bump webpack-cli from 7.2.2 to 7.2.3 in /superset-embedded-sdk (#43882)
     add 3b1e43be5c5 chore(deps-dev): bump css-loader from 7.1.4 to 7.1.5 in /superset-frontend (#43880)
     add bc6ff77af01 feat(ci): broaden usage of fast-startup `ubuntu-slim` runner (#43477)
     add d9b201db74c fix(explore): open version-history forks in a usable tab, not a blank one (#43830)
     add 935ee5f1a65 chore(deps): bump simplejson from 4.1.1 to 4.1.2 (#43874)
     add 592d378c0d6 chore(deps-dev): bump pandas-gbq from 0.35.1 to 0.35.2 (#43873)
     add b925246befb chore(deps): bump click from 8.4.2 to 8.5.0 (#43872)
     add b1c33e54353 chore(deps-dev): bump hdbcli from 2.29.25 to 2.29.27 (#43869)
     add 297b0455f61 chore(deps): bump nh3 from 0.3.6 to 0.3.7 (#43868)
     add db60f25ee9a chore(deps-dev): bump babel-jest from 30.4.1 to 30.5.0 in /superset-frontend (#43879)
     add e1ce6b601c0 chore(deps-dev): bump jest-environment-jsdom from 30.4.1 to 30.5.0 in /superset-frontend (#43878)
     add 635de27b259 fix(explore): prevent editable title over-truncation (#43811)
     add 99a910b81c5 fix(echarts): render Plain Timeseries legends as HTML, not canvas (#43314)
     add 0636ac4b114 fix(examples): correct chart metadata (#43810)
     add 581ef8b7c18 chore(deps): bump antd from 6.6.1 to 6.6.2 in /docs (#43852)
     add c1822666dac ci: fail when the published OpenAPI spec is stale (#43841)
     add 6956da1de5d fix(sql): close StarRocks SQL parsing and mutation-detection gaps (#43809)
     add c3109899e27 fix(dashboard): is_externally_managed still allows edits (#38584)
     add 0d025daaf7e fix(plugin-chart-table): defer search until IME composition ends (#43756)
     add ee03ee17199 test(treemap): pin border-free labels so tiles render without seams (#43890)
     add 9fb02296d85 test(dashboard): migrate tabs resize E2E to Playwright (#41434)
     add 67a417812d3 fix(reports): look up fetched report schedules by the list API id fields (#43365)
     add db0af5c610e fix(embedded): guard guest payload check against scalar control values (#43577)
     add 67605734320 fix(dashboard): show loading state on + Dashboard during the create navigation (#43683)
     add b4325e2ce34 fix(handlebars): separate CSS style block from template with a blank line (#43722)
     add ff90a60b09d fix(partition): normalize ancestor-path array names to leaf values (#43731)
     add c1ca29fe09d fix(core): render duration values instead of NaN:NaN:NaN (#43839)
     add b8cdebcaba2 chore(deps-dev): bump jest from 30.4.2 to 30.5.0 in /superset-frontend (#43877)
     add ccfaa2302a5 chore(deps): bump slack-sdk from 3.43.0 to 3.44.1 (#43871)
     add a49581dd76f chore(deps): bump msgpack from 1.2.1 to 1.2.2 (#43867)
     add fb12d4ae120 fix(importers): catch JSONDecodeError in load_configs masked_encrypted_extra merge (#43261)
     add c77efa77edf fix(sqla): normalize PostgreSQL date trunc metric units (#42095)
     add 01b8eb50a0d feat(semantic-layers): hide Samples tab and disable drill-to-detail for semantic views (#42534)
     add 724d9045c67 chore(api): regenerate the spec for ReportScheduleRestApi.report_format (#43910)
     add ed4d413d77d ci: remove unused submoduled GHA workflows (#43865)
     add 334700fc331 fix(sqla): parenthesize calculated column expressions in SELECT/GROUP BY/ORDER BY and series-limit queries (#43864)
     add 0820a0ac141 fix(sqllab): correct Run dropdown crash and caret color regression (#43849)
     add b2fd72559a7 feat(gunicorn): statsd support (#32487)
     add a3aba2a16a3 ci: show the spec diff when the staleness check fails (#43912)
     add 8fb5b8f2fbc feat: migrate Global Async Queries onto the Global Task Framework (#43407)
     add 630982e2695 fix(dashboard): resolve chart datasources across types in access checks (#43781)
     add 0ac1a6fade3 fix(versioning): keep the dashboard version-history panel inside the viewport (#43836)
     add 8963613e920 fix(versioning): match version-history search on the change author name (#43835)
     add 3b492233c71 fix(versioning): bound dashboard related history by the chart attach window (#43837)
     add 48500822471 fix(dashboard): don't 500 on inconsistent position_json (#43575)
     add 1e76fb60981 chore(deps-dev): update teradatasql requirement from >=20.0.0.66 to >=20.0.0.67 (#43925)
     add 5c4c8b831f9 chore(deps): bump cryptography from 50.0.0 to 50.0.1 (#43923)
     add 9e9a3d06ad8 chore(deps-dev): bump grpcio from 1.83.0 to 1.83.1 (#43922)
     add 974f36f94f7 chore(deps-dev): bump google-cloud-bigquery from 3.43.0 to 3.45.0 (#43926)
     add 1315f5ff6bc chore(deps): bump pydantic from 2.13.4 to 2.13.5 (#43924)
     add 1358543827f fix(sqllab): preserve ClickHouse LIMIT BY when applying the row limit (#43578)
     add fe1b368bcd8 feat: add dashed line support for derived series (timeseries comparison) on MixedTimeseries chart (#34794)
     add 18d277c096d ci(playwright): make embedded and app-root E2E coverage required (#43919)
     add f3896ccf209 fix(explore): say when filter-value suggestions could not be loaded (#43779)
     add c03f3441bd5 feat(mcp): gauge chart type plugin (#43568)
     add 87f138cc80a docs(mcp): add theme management tools to AI/MCP tools reference (#43899)
     add df3abe474c4 docs(theming): document new component sizing tokens and HIDE_NAVBAR_LOGO (#43639)
     add 7d09490bb82 fix(security): grant SQL Lab query authors an explore access bypass (#39296) (#42590)
     add 0db9ca74012 chore(deps): bump @ant-design/icons from 6.3.2 to 6.3.3 in /docs (#43951)
     add 7c9c32651c7 chore(deps): bump react-error-boundary from 6.1.3 to 6.1.4 in /superset-frontend (#43959)
     add 07052752b68 chore(deps-dev): bump tsx from 4.23.12 to 4.23.13 in /superset-frontend (#43958)
     add b8fb5a268c9 chore(deps): bump zod from 4.4.3 to 4.5.4 in /superset-frontend (#43957)
     add e5e6d748195 chore(deps-dev): bump webpack from 5.110.1 to 5.110.2 in /superset-frontend (#43956)
     add a5377541c92 chore(deps): bump zizmorcore/zizmor-action from 0.6.2 to 0.6.3 (#43954)
     add 06913244de4 chore(deps-dev): bump webpack from 5.110.1 to 5.110.2 in /docs (#43952)
     add 4eff13b81e9 chore(deps-dev): bump webpack from 5.110.0 to 5.110.2 in /superset-embedded-sdk (#43953)
     add 92bd2ba0572 chore(deps): bump @ant-design/icons from 6.3.2 to 6.3.3 in /superset-frontend (#43955)
     add 53070fa4c04 fix(dashboard): resolve metric Label in Chart Data (View as table) results grid (#43719)
     add 4440887dc2b fix(security): use self-repository syntax for setup-backend action ref (#43968)
     add 233f6379ae5 fix(ci): use self-repository syntax for supersetbot setup in tag-release (#43965)
     add d22069a7af3 fix(security): use GitHub self-repository syntax for local action refs (#43969)
     add 574d121cd86 fix(security): use self-repository uses syntax in supersetbot workflow (#43962)
     add 8d6044a1475 fix(sqllab): wrap cost-estimate JSON parse to prevent raw JSONDecodeError leak (#43888)
     add 1fb6b989413 fix: downgrade md5 namespace-fallback deprecation log to info (#43884)
     add 1b3758d2a4d ci: add ASF GitHub Actions allowlist check (#43844)
     add bd3ab309073 chore(deps): bump @ant-design/icons from 6.3.3 to 6.3.4 in /superset-frontend (#43982)
     add 89786160f97 chore(deps): bump @ant-design/icons from 6.3.3 to 6.3.4 in /docs (#43981)
     add cdb6c8e0c90 chore(deps-dev): bump the typescript-eslint group in /superset-frontend with 2 updates (#43980)
     add c4e145b071f fix(sql_lab): raise 400 not 500 on malformed Jinja during CSV export access check (#43866)
     add 7d0cf1acfc8 docs(scarf-404): replace dead links by the Scarf homepage (#43973)
     add 7382ee0bfec fix(dashboard): prevent header metadata bar from overlapping action buttons at narrow widths (#43845)
     add ad319bd8a3c fix(docs): unbreak Netlify docs preview build (#44001)
     add 056fd218d44 fix: handle missing table element in downloadAsPivotExcel (#39386)
     add 08694d64cb8 fix(plugin-chart-table): declare DataTable hooks before the early return (#43150)
     add 204ccc7ce7f fix(datasets): apply Schema filter on the combined datasource list (#43829)
     add 33c6df77c99 fix(database): don't reattach stored connection details when the effective destination changes (#44003)
     add c45fc6a31a2 feat(embedded): diagnose guest-token header size budgets (#43944)
     add 57eafd75e0c docs(handlebars): correct helper names that are not registered (#44020)
     add 067a356b6f0 fix(chart): include echart_options in Matrixify render-trigger allowlist (#43946)
     add 3ccab2ea7aa fix(time-format): share DateWithFormatter and stop reading four-digit years as epoch offsets (#43909)
     add a114b4cc468 fix(import): skip redundant has_table check when dataset import has no data URI (#43808)
     add 85ea6e900a4 docs(mcp): document MCP_STATELESS_HTTP and its multi-pod tradeoff (#43902)
     add 60553b4326a docs(ag-grid): document Show summary support for Raw Records mode (#43905)
     add 7029c468c4d fix(reports): bound CSV transport retries and sanitize failures (#43977)
     add bc35151350c docs(handlebars): correct helper names in the 6.1.0 versioned docs (#44024)
     add 04ab089962f chore(deps): bump @swc/html from 1.15.43 to 1.16.2 in /docs in the security group across 1 directory (#44023)
     add 5986fe92c2f fix(rls): roll back db.session after RLS failure in get_from_clause (#43883)
     add e6d088d6b1b fix(mcp): surface rejected filter columns in get_chart_sql (#43680)
     add 10866337c5c docs(helm): document Gateway API HTTPRoute support (#43635)
     add 1339bdc6ce1 ci: bump ASF allowlist-check to v1.0.1 for self-repository syntax support (#44014)
     add 7b65d222050 chore(tags): TAGGING_SYSTEM to True by default (#39888)
     add 83d5d1ccdad fix(security): use GitHub self-repository syntax for local action ref (#43961)
     add 02ea5775c10 fix(ci): use self-repository syntax for local supersetbot action ref (#43963)
     add 9d89dbddc7b fix(security): use self-repository syntax for change-detector action ref (#43971)
     add 0e6170aaa3b fix(security): use self-repository syntax for setup-backend ref in unit-test workflow (#43970)
     add 380675662d8 fix(ci): use self-repository syntax for local actions in presto-hive workflow (#43975)
     add 3564baabf6e fix(security): suppress zizmor self-repository false positive for setup-backend step (#44018)
     add 335a2a78ea8 fix(dashboard): expand clipped scrollable content before screenshot/PDF export (#43979)
     add fa31e9c1c32 fix(security): suppress zizmor self-repository false positive for cached-dependencies (#43972)
     add 362d3509cb0 fix(security): suppress zizmor self-repository false positive for cached-dependencies in presto-hive workflow (#43984)
     add 3828dcb9225 fix(security): suppress zizmor self-repository false positive for cached-dependencies in presto-hive workflow (#43976)
     add 91f4d01ca2c fix(chart-creation): stop antd v6 Steps from doubling the icon-content gap (#43730)
     add c510946df55 fix: BigQuery pivot-table Custom SQL row label with a space drops from GROUPING SETS (#43720)
     add 9de50b85e5a chore(deps): bump the security group across 1 directory with 3 updates (#44029)
     add d0f139c2104 feat(deps): bump `flask-caching` from 2.4.1 to 2.5.0 + bump `flask` from v2 to v3 (#43875)
     add 2875c76d55a chore(deps): bump react-ace from 14.0.1 to 15.0.0 in /superset-frontend (#42833)
     add acb29937aed chore(deps): bump the security group across 1 directory with 3 updates (#44030)
     add 986b648f1ca fix(versioning): resolve dashboard M2M membership by attach/detach windows, not end_transaction_id (#44010)
     add daf41bdf046 fix(security): suppress zizmor self-repository false positive for sqlite install-deps step (#44002)
     add 9669e414711 chore(build): remove legacy re-export shim used for development (#42190)
     add c9965c7bf41 feat(folders): drag and drop visible elements (columns/metrics) of folders in explore view (#42483)
     add 5d771e9f467 fix(dataset): apply the import overwrite permission check to identity-matched datasets (#43058)
     add 50c1504cac4 fix(db_engine_specs): cast VARCHAR before Postgres DATE_TRUNC (#43167)
     add c503f92642a fix(charts): restrict Prophet time grain schema validation to supported Prophet grains (#43585)
     add 613871ed363 fix(native-filters): stabilize DefaultValue's filterState object identity (#43859)
     add 4f26627a6a9 fix(native-filters): stop Date Range calendar popup from clipping in overflow dropdown (#43978)
     add fc110d8428f fix(versioning): enforce is_managed_externally on version restore (#44013)
     add c76e4d98f2c fix(api): advertise only the time grains Prophet can resolve (#43710)
     add 1ab6077e060 fix(filters): clamp filter bar row while remeasuring after items change (#43966)
     add 9079f002ee1 fix(dashboard): scope tab-diff report lookup to the edited dashboard (#43989)
     add de08dc207c0 chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 in /superset-frontend (#44062)
     add 010c7a12edb chore(deps): bump query-string from 9.5.0 to 9.5.1 in /superset-frontend (#44061)
     add 176a50d2544 chore(deps-dev): bump webpack from 5.110.2 to 5.110.3 in /superset-frontend (#44060)
     add cb2188aec3e chore(deps-dev): bump babel-jest from 30.5.0 to 30.5.1 in /superset-frontend (#44059)
     add 638f87de5f7 chore(deps-dev): bump jest from 30.5.0 to 30.5.1 in /superset-frontend (#44058)
     add 677e9189f12 chore(deps-dev): bump oxfmt from 0.65.0 to 0.66.0 in /superset-frontend (#44056)
     add e170822a28d chore(deps-dev): bump oxfmt from 0.65.0 to 0.66.0 in /docs (#44054)
     add ea287c1ab0f chore(deps-dev): bump webpack from 5.110.2 to 5.110.3 in /docs (#44053)
     add 5e99f14ac90 chore(deps-dev): bump oxlint from 1.80.0 to 1.81.0 in /superset-websocket (#44051)
     add 0a412b07cb0 chore(deps-dev): bump webpack from 5.110.2 to 5.110.3 in /superset-embedded-sdk (#44050)
     add d38f20e5ad2 chore(deps): bump query-string from 9.5.0 to 9.5.1 in /superset-frontend (#44061)
     add e43f44e91ed chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 in /superset-embedded-sdk (#44048)
     add df95ab23ec2 chore(deps-dev): bump @types/node from 26.4.0 to 26.4.1 in /superset-websocket (#44046)
     add 49b9347974e fix(charts): preserve dataset conversion when saving SQL Lab charts (#43988)
     add 7b83ed83746 fix(mcp): align execute_sql table-access checks with the SQL Lab path (#43998)
     add 954dbc9ff61 fix(dataset): validate SQL table access on virtual dataset import (#43999)
     add 57a92170bd5 fix(chart): apply the query-context datasource check on create and update (#43997)
     add 4d8dfdd1520 fix(sqllab): restrict TabStateView updates to owned columns and queries (#43992)
     add 97329bb1cf1 fix(reports): detect perceptually blank screenshots (#44034)
     add 08e686b5353 fix(mcp): complete Gauge chart support follow-up (#43943)
     add 07a8f8b9845 chore(deps-dev): bump oxlint from 1.80.0 to 1.81.0 in /docs (#44052)
     add 7f06e4eb605 feat(table): add opt-in migration from Table V1 to Table V2 (#42088)
     add d1ad6aeda63 chore(docker): speed up image builds and the compose dev loop (#43916)
     add 80ebfad0941 fix(security): suppress zizmor self-repository false positive for npm install step (#44076)
     add c442180328f fix(security): use self-repository syntax for chart-testing action ref (#44083)
     add 68528e33086 chore(deps-dev): bump jest-environment-jsdom from 30.5.0 to 30.5.1 in /superset-frontend (#44055)
     add 4686d133796 fix(security): use self-repository syntax for change-detector in Playwright workflow (#44086)
     add 0fe58044cba fix(security): use self-repository syntax for setup-backend in Playwright workflow (#44085)
     add f73ccee7829 fix(couchbase): remove debug prints that emit the connection URI to stdout (#44070)
     add 072a29ddb55 fix(security): suppress zizmor self-repository false positive for playwright build step (#44073)
     add ce700f389c7 fix(security): suppress zizmor self-repository false positive for postgres setup step (#44084)
     add 4aca0d7da41 fix(security): suppress zizmor self-repository false positive for playwright install step (#44074)
     add 09522cc4b89 fix(security): suppress zizmor self-repository false positive for playwright test-data step (#44075)
     add 196fe87c54b fix(security): use self-repository syntax for setup-backend in mysql job (#44066)
     add b1c6401e82c fix(security): suppress zizmor self-repository false positive for mysql setup step (#44067)
     add 9267d8b6669 fix(security): suppress zizmor self-repository false positive for playwright experimental step (#44064)
     add 4dcc800b58c fix(security): use self-repository syntax for change-detector in integration tests (#44065)
     add a78591be60e chore(deps-dev): bump oxfmt from 0.65.0 to 0.66.0 in /superset-websocket (#44049)
     add 078915f4ced docs(contributing): update legacy rst reference (#44087)
     add f66843ef0c7 fix(plugin-chart-table): stop narrowing sticky header/footer width (#43937)
     add 0534d569d03 fix(sqllab): mark early-cancelled query stopped, not stuck running (#43889)
     add 70346a51b69 perf(examples): dedupe dataset imports, right-size chunksize, add timing to load_examples (#43907)
     add 29dd683f801 fix(database): set default catalog on dataset created from file uploads (#43586)
     add b1185d8c05c fix(sql): preserve optimizer hints when formatting semicolon-terminated statements with trailing comments (#43565)
     add e0103fa8896 fix(plugin-chart-echarts): honor per-metric formats in Timeseries tooltips (#43113)
     add 67d170e6119 fix(reports): don't send both chart and dashboard on create (#43137)
     add 3e13b89427e feat(ci): add testcontainers-based db_engine_specs tests (7 dialects) (#43502)
     add 0484f9c2091 fix(database): sync schema_access permissions on import (#43950)
     add f8caa2bc2b4 fix(dashboard): stop duplicate cross-filter chips in FilterBar (#43949)
     add f69023a9c6c fix(dashboard): freeze nested tabs to the top when scrolling down (#43940)
     add 9a02c4b611b chore: deprecate helm chart (#44097)
     add 74eb298eb68 fix(mcp): preserve chart form data on update (#43679)
     add b75f6292862 chore(deps-dev): bump oxlint from 1.80.0 to 1.81.0 in /superset-frontend (#44057)
     add a9424afb4e9 chore(deps-dev): remove unused `globals` from /superset-websocket (#44047)
     add e4440b614c5 fix(database): reject non-dict extra field in extra_validator (#44092)
     add 62fa7a371b8 fix(charts/data): return 400 instead of 500 on reversed date range (SC-118279) (#43517)
     add 3f780c503ec fix(ci): add per-PR concurrency to the Showtime trigger workflow (#44120)
     add bc057813ae7 feat(ci): restore container image vulnerability scanning with Grype (#44035)
     add 4e4cdf421c4 fix(security): suppress zizmor self-repository false positive for hive setup-postgres step (#44037)
     add 71e6c5f3cdc fix(security): suppress zizmor self-repository false positive for postgres setup step (#44038)
     add 37c6037452c fix(security): use self-repository syntax for setup-backend in postgres job (#44040)
     add 638ad7980c1 fix(security): suppress zizmor self-repository false positive for celery worker step (#43986)
     add 09ae6fa3c3f fix(security): suppress zizmor self-repository false positive for sqlite celery worker step (#43996)
     add 2030adb5ce7 fix(security): suppress zizmor self-repository false positive for mysql celery worker step (#44041)
     add 4edf7b10052 fix(deps): cap mcp to <2.0 to match fastmcp 3.x's own constraint (#44039)
     add c915e63aa4f fix(security): suppress zizmor self-repository false positive for playwright mobile step (#44045)
     add 731a97dbe66 fix(security): suppress zizmor self-repository false positive for postgres celery worker step (#44026)
     add af2563f9c3a docs(i18n): document versioned language pack script delivery (#43904)
     add bdae45fee3f docs(mcp): document delete_chart and delete_dashboard tools (#43898)
     add b02c7afa00a feat(resample): Add "Fill the entire time range" option to Resample controls (#42587) (#42609)
     add 1b469831273 fix(sql): detect disallowed functions via AST (#42072)
     add b9407b67b3f fix(ci): skip Showtime jobs for unrelated PR events (#44123)
     add 1820a162dbe fix(maplibre): wire up maplibre-gl 6's worker for plugin-chart-point-cluster-map (#44042)
     add 181ca7d0eb9 fix(country-map): Madagascar's boundaries should have unique ISO (#42471)
     add 64205357d25 fix(rison-filters): only catch ParserException when parsing filters (#43076)
     add e22ce197866 fix(i18n): improve Simplified Chinese translations (#43813)
     add b6ead0d4292 fix(semantic-layers): apply datasource access checks on layer endpoints (#41430)
     add fbd75f00865 fix(dashboard): apply the import overwrite permission check to slug-matched dashboards (#42582)
     add e5c2a3e4f68 fix(datasets): warn about affected charts and dashboards on bulk delete (#43967)
     add 46d40e18b04 fix(mcp): expose resolved query time boundaries (#44105)
     add b20ad093910 feat: add conditional formating to CountryMap plugin (#42941)
     add 7df4bf3f776 fix(country-map): Malawi map - add missing Karonga district, de-duplicate Chitipa (#42842)
     add f490bf5a784 fix(funnel): prevent horizontal legends from overlapping the chart by default (#43112)
     add 3f644427851 fix(docker): install the frontend from the lockfile in docker-frontend.sh (#43168)
     add 12e747437d1 fix(reports): recheck readiness at capture time (#44114)
     add 78e1762255b fix(mcp): honor forwarded active dashboard filters in get_chart_preview and get_chart_info (#44022)
     add 39944ffd470 fix(mcp): make unknown dataset dimension errors actionable (#44106)
     add 13b7bcd6c1e fix(sqllab): wrap raw DBAPI errors in query cost estimation (#43934)
     add 412ab43712b fix(cache): key on resolved bounds when a query has no time_range (#43914)
     add 1b03ad89fb7 feat(mcp): treemap chart type plugin (#43569)
     add 70961a68b9c chore(ci): use self-repository syntax for local action references (#44131)
     add 89565dbb49d fix(explore): surface a toast when pivot Excel export can't find the table (#44031)
     add eb8efaa8f5c chore(deps-dev): bump yeoman-test from 11.6.0 to 11.7.0 in /superset-frontend (#44137)
     add d3d09b9ae7a chore(deps): bump react-map-gl from 8.1.2 to 8.1.3 in /superset-frontend (#44136)
     add be608f7359e chore(deps-dev): bump the storybook group in /superset-frontend with 6 updates (#44135)
     add b415d78ac78 chore(deps): bump the storybook group in /docs with 2 updates (#44134)
     add 06e3a325ae8 chore(deps): bump pymongosql to 0.7.4 (#44166)
     add 0aa445ed0fb chore(deps-dev): bump baseline-browser-mapping from 2.11.20 to 2.11.21 in /superset-frontend (#44164)
     add 789b9055210 chore(deps): bump mapbox-gl from 3.29.0 to 3.30.0 in /superset-frontend (#44163)
     add b3aa8ef796b chore(deps-dev): bump minimizer-webpack-plugin from 5.8.0 to 5.9.0 in /superset-frontend (#44162)
     add f1d1a826cad chore(deps): bump supercluster from 9.0.0 to 9.1.0 in /superset-frontend (#44161)
     add 36361d9d046 chore(deps): bump postcss from 8.5.26 to 8.5.28 in /superset-frontend (#44160)
     add 774a51124ed chore(deps): bump baseline-browser-mapping from 2.11.20 to 2.11.21 in /docs (#44159)
     add 0a4d3ee3aca chore(deps-dev): bump vitest from 4.1.11 to 5.0.0 in /superset-websocket (#44157)
     add 83530957a8d chore(deps-dev): bump vitest from 4.0.18 to 5.0.0 in /superset-embedded-sdk (#44158)
     add 1f9782ee585 docs(versioning): describe the one-time settings-migration history entry (#43776)
     add b366958da31 docs(security): edit-gate version-history and change metadata (#44033)
     add 3d01094d231 feat(docker): batteries-included default image, minimal image to -lean (#44100)
     add 3e7bdec53bb ci(python-unit): run the unit suite in parallel with pytest-xdist (#44178)
     add e41f019fb2d chore(deps-dev): bump pymssql from 2.3.13 to 2.4.0 (#44199)
     add 5f07d383346 chore(deps-dev): bump clickhouse-connect from 1.7.2 to 1.8.0 (#44198)
     add ba606e043c4 chore(deps): bump flask-caching from 2.5.0 to 2.5.1 (#44196)
     add d0bfc671fef chore(deps-dev): update pyathena requirement from <4,>=3.35.4 to >=3.36.0,<4 (#44195)
     add 37229ae474d chore(deps-dev): update databricks-sql-connector requirement from <4.5.0,>=4.4.0 to >=4.5.0,<4.6.0 (#44194)
     add 16fc35667e4 chore(deps): bump cachetools from 7.1.7 to 7.1.8 (#44193)
     add 8e69572025c fix(gantt): prevent y-axis labels from being cut off (#39137)
     add 7aba2d3392b fix(postgres): detect search_path changes via set_config, not only SET (#43060)
     add f51ae6a506d fix(dataset): derive virtual dataset schema from SQL Lab query (#43313)
     add 598d5f723b0 chore(deps-dev): update snowflake-sqlalchemy requirement from <2,>=1.11.0 to >=1.11.1,<2 (#44197)
     add d3bf3c9c250 chore(deps-dev): bump @testing-library/user-event from 12.8.3 to 14.6.5 in /superset-frontend (#43512)
     add f4706c6a0c5 chore(deps): bump sqlglot from 30.17.0 to 30.18.0 (#44192)
     add 0b801d0008a chore(deps): remove unused underscore dependency (#44175)
     add f443a73b157 feat(ag-grid-table): add zebra striping control (#44112)
     add 8e66145cfed feat(build): migrate JS files in `superset-frontend` to ESM (#43686)
     add d9b0cb04538 fix(database): reject non-dict encrypted_extra at schema validation layer (#44145)
     add 0c43a6da94c chore(deps): bump @swc/core from 1.16.1 to 1.16.2 in /docs (#44222)
     add 090fc6bba8a chore(deps): bump swagger-ui-react from 5.32.14 to 5.32.15 in /docs (#44221)
     add ae15827b069 chore(deps): bump react-error-boundary from 6.1.4 to 6.1.5 in /superset-frontend (#44229)
     add e6255fad4c6 chore(deps-dev): bump jest-html-reporter from 4.4.0 to 4.4.2 in /superset-frontend (#44228)
     add 3d4f38b3643 chore(deps): bump yeoman-generator from 8.3.0 to 8.3.1 in /superset-frontend (#44227)
     add 61bbca823dc chore(deps): bump react-window from 2.3.0 to 2.3.1 in /superset-frontend (#44225)
     add b075c5ecfec chore(deps-dev): bump stylelint from 17.14.1 to 17.15.0 in /superset-frontend (#44230)
     add 31856550bcd chore(deps-dev): bump eslint from 10.9.1 to 10.10.0 in /superset-frontend (#44226)
     add f107494efec chore(deps-dev): bump yeoman-test from 11.7.0 to 11.8.1 in /superset-frontend (#44224)
     add a33e0d4cd35 chore(deps-dev): bump minimizer-webpack-plugin from 5.9.0 to 5.10.0 in /superset-frontend (#44233)
     add 749c8aa078b fix: strip extraneous details from datasource access-denied errors (#43458)
     add 47e0abd9608 chore(deps-dev): bump @testing-library/user-event from 14.6.5 to 14.6.7 in /superset-frontend (#44234)
     add 24fe87e5db1 chore(deps): bump dompurify from 3.4.14 to 3.4.15 in /superset-frontend (#44232)
     add 2eccf3bfcba fix(mcp): snapshot chart fields in get_chart_data before session expiry (#44004)
     add d028acd5676 fix(docker): stop CI startup when initialization fails (#44125)
     add 818857d3d98 fix(dataset): refresh the entity under the conditional-write row lock (#44027)
     add 96ef982d24e fix(versioning): close the two retention-interaction races (#44012)
     add 1b08bebf009 fix(security): use self-repository syntax for setup-backend in testcontainers workflow (#44116)
     add 0802fa38884 fix(security): use self-repository syntax for setup-backend in helm workflow (#44117)
     add 20a09bffa78 fix(security): use self-repository syntax in extensions-cli workflow (#44119)
     add 23bd14eede5 refactor(list-view): eliminate any usage in ListView/utils.ts (#44186)
     add f205b16f9fa docs(extensions): point the quick-start closing example at real references (#44098)
     add d4d3e970988 docs: add Savantly to users in the wild (#44108)
     add f35de69de8d fix(reports): remove machine-auth priming navigation that can clobber the session cookie (#44109)
     add d7f658dbdec fix(frontend): dispatch warning toasts in downloadAsPdf/downloadAsImage (#44168)
     add eeafd65b746 chore(deps-dev): bump the swc group across 1 directory with 3 updates (#44223)
     add 42c50468644 feat(deletion-retention): scheduled pruning policy for the purge audit log (#43490)
     add 43a00319956 fix(versioning): edit-gate the version-history and activity endpoints (#44021)
     add ad90bf543f1 test(tags): make humanized-timestamp assertions deterministic (#44260)
     add 6aaa3ed9861 fix(sqla): move process_template inside try block in get_fetch_values_predicate (#44246)
     add 4db78bab99f fix(reports): catch JSONDecodeError in report extra validation (dashboard position_json/json_metadata) (#44204)
     add 0f70666cc13 fix(sql-validate): downgrade log level for undefined Jinja function errors (SC-120409) (#44202)
     add d3906aabf36 fix(mcp): refuse certification changes on externally managed dashboards (#44094)
     add f8abb280d95 fix(versioning): resolve change-record dashboard membership via attachment windows (#44089)
     add 4ece071eb77 fix(versioning): carry affected chart names in the rollup impact payload (#43838)
     add e797f3def68 fix(views): error-response bodies must carry their message (#44090)
     add c83c95faf63 chore(cli): direct tests for the deletion-retention click entry points; non-zero exit on blocked/not-found force-purge (#44252)
     add 7f0ca472e4c fix(versioning): row-lock the live entity during version restore (#44015)
     add 9526ce8082d fix(archive): hide recovery actions from read-only users (#44179)
     add 6b696cb8185 fix(versioning): version-history panel design fidelity (#44181)
     add b4604c320eb refactor(core): let DeleteModal callers supply the confirm button label and style (#44257)
     add 447544ea27e fix(reports): fail closed after capture rejection (#44191)
     add b6de64fce74 fix(migrations): add functional index on ab_user(lower(username)) for case-insensitive login (#43939)
     add ae240a8e6f0 fix(security): use self-repository syntax in frontend workflow (#44118)
     add 7f04959614c chore(deps): bump antd from 6.6.2 to 6.6.3 in /docs (#44295)
     add 3a4aede10da chore(deps-dev): bump oxlint from 1.81.0 to 1.82.0 in /docs (#44296)
     add a42a7df1021 chore(deps-dev): bump @types/node from 26.4.1 to 26.5.0 in /superset-websocket (#44292)
     add b9f75c9ed55 chore(deps-dev): bump oxfmt from 0.66.0 to 0.67.0 in /superset-websocket (#44291)
     add 2b5dce12467 chore(deps-dev): bump @types/node from 26.4.1 to 26.5.0 in /superset-embedded-sdk (#44289)
     add 109402b8d21 fix: handle formatter errors gracefully in table cell rendering (#36189) (#39658)
     add dbccb3bcc7c fix(table): preserve configured server page size when row count is smaller (#42243) (#42248)
     add f3e1470f1a4 chore(deps-dev): bump oxlint from 1.81.0 to 1.82.0 in /superset-websocket (#44290)
     add a184395eca7 chore(deps-dev): bump oxfmt from 0.66.0 to 0.67.0 in /docs (#44294)
     add ef4281d2fcb feat(mcp): add get_dashboard_data for bounded, filter-aware dashboard data (#44113)
     add 4c27cbd007e fix(migrations): merge purge audit and username index heads (#44288)
     add 68c8c7059e3 refactor(versioning): rename charts_attached_to_dashboard to chart_attachment_windows_for_dashboard (#44185)
     add 6cfb3319744 fix(api): enforce is_managed_externally on chart/dashboard/dataset update (#44025)
     add 4f5cf799a28 fix(db): apply the configured default isolation level (set_db_default_isolation was a no-op) (#44247)
     add b1380cf43d2 fix(versioning): withhold related-record change detail from non-editors (#44319)
     add 8f76ff45cd4 refactor(frontend): consolidate stray antd wrappers into superset-ui-core (#44177)
     add 8da299f58c0 docs(explore): document the Line chart Percent change control (#44129)
     add dd60cc27ff4 fix(dashboard): include native filter names in filter_state GET response (#44043)
     add 9976e08333c chore(build): remove `ts-jest` usage for TS7 preparation (#44210)
     add 5dd63ef95b2 chore(deps): bump antd from 6.6.2 to 6.6.3 in /superset-frontend (#44300)
     add 0f021023f3d fix(mcp): advertise typed tool outputs (#43828)
     add 0049f814072 feat(mcp): add typed Gantt chart support (#43737)
     add 23bc3de0ca3 fix(ci): match migration conflicts on filename, not contents_url (#44318)
     add d7516f10388 chore(deps): bump github/codeql-action/analyze from 4.37.9 to 4.38.0 (#44333)
     add 24a79c4bd38 chore(deps): bump github/codeql-action/upload-sarif from 4.37.9 to 4.38.0 (#44332)
     add 1432d7f0c0a chore(deps): bump actions/setup-java from 6.0.0 to 6.0.1 (#44330)
     add 2659660d90a chore(deps): bump apache/infrastructure-actions/allowlist-check from 1.0.1 to 1.0.2 (#44328)
     add 7fbcc0825ca chore(deps): bump zizmorcore/zizmor-action from 0.6.3 to 0.6.4 (#44327)
     add 2c135a5cdce test(semantic-layers): fix mypy call_args error on values endpoint test (#44187)
     add 2db9d6d51c8 fix(theme): do not suppress a dashboard theme when the forwarded config equals the workspace default (#44173)
     add 8233b5e5ae0 chore(deps-dev): update teradatasql requirement from >=20.0.0.67 to >=20.0.0.68 (#44331)
     add 55ee97bb36b chore(deps): bump holidays from 0.103 to 0.104 (#44325)
     add 96d57a97349 chore(deps-dev): bump oxlint from 1.81.0 to 1.82.0 in /superset-frontend (#44301)
     add 79ab1467b52 chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#44293)
     add 9df22ffad35 chore(deps): bump yeoman-generator from 8.3.1 to 8.4.0 in /superset-frontend (#44299)
     add 134263e8d46 chore(deps-dev): bump ydb-sqlalchemy from 0.1.22 to 0.1.24 (#44329)
     add 0db1b47de79 test(dashboard): migrate native filter URL key E2E to Playwright (#41435)
     add a01f5076195 chore(deps-dev): bump @types/node from 26.4.1 to 26.5.0 in /superset-frontend (#44298)
     add bd76e097a2d ci: pin codeql-action init to the same version as analyze (#44354)
     add 637e19f0ca3 fix(embedded): report content height independent of iframe height (#44313)
     add dca54da2421 feat(themes): add per-theme editors (Subject model) (#42404)
     add 22cef7ef007 fix(chart-data): keep non-numeric columns out of contribution post-processing (#43203)
     add 91c1135c054 fix(histogram): compare groupby membership using column labels (#43219)
     add 40f5ab8d0c6 fix(mcp): downgrade synthetic tool ToolError log level to WARNING (SC-120340) (#44171)
     add 2884e4815bd fix(datasets): catch MultipleResultsFound in get_or_create's schema-scoped lookup (#43725)
     add c417e3b6ccf chore(deps-dev): bump yeoman-test from 11.8.1 to 11.8.2 in /superset-frontend (#44302)
     add 7b6dd7597c4 chore(deps-dev): bump oxfmt from 0.66.0 to 0.67.0 in /superset-frontend (#44297)
     add f47f1ced19b feat(semantic layers): derive Explore picker modes from declared semantic view features (#42540)
     add 175c2f1f1cb fix(api): align sort and prophet option schemas with their operations (#43206)
     add baccb68d3b4 fix(chart): include Decimal metrics in contribution totals (#43222)
     add 461fdaa5b95 feat(native-filters): drive cascade dependencies from chart metadata (#43223)
     add 181e9ad3e2b fix(themes): render brand spinner SVG via <img> data URI (#43504)
     add f5c710d1625 refactor(explore): move optional icons outside label element (#43584)
     add 187e7d4d804 fix(security): handle self-referential catalog qualifiers (#43974)
     add 7ee33df6473 fix(rls): match the RLS predicate lookup on case-normalized table identifiers (#43993)
     add ea8aac12739 fix(mcp): bound chart_ids length in the generate-dashboard request (#44071)
     add 3d17fba3624 fix(db): honor connect_args returned by adjust_engine_params (#44078)
     add 82df1ffa61a fix(jinja): escape current_username/current_user_email like sibling macros (#44081)
     add fe7391e85ee fix(sqla): run column metadata probe statement exactly once (#44242)
     add 4c77b0b924a fix(migrations): merge theme editors and purge audit heads (#44364)
     add 2ef8e0c1dee fix(dashboard): require published for the read-gate's datasource fallback (#44093)
     add a68503b84af chore(deps): bump zod from 4.5.4 to 4.6.1 in /superset-frontend (#44383)
     add 5576b73646a chore(deps-dev): bump @types/node from 26.5.0 to 26.5.1 in /superset-websocket (#44374)
     add bb5d138c50e chore(deps): bump apache/infrastructure-actions/allowlist-check from 1.0.2 to 1.0.3 (#44376)
     add 68433b08b5b chore(deps): bump astral-sh/setup-uv from 10.0.1 to 10.1.0 (#44377)
     add dedfe23a805 chore(deps-dev): bump @types/node from 26.5.0 to 26.5.1 in /superset-embedded-sdk (#44375)
     add 91c917e199c feat(ci): flag chart metadata changes via labeler (#33180)
     add 35768da1fdb fix(dashboard): keep Save enabled when the properties modal name is set (#44356)
     add 66e64cc7d89 fix(time-format): stop reading short digit-only strings as epoch offsets (#44352)
     add c28a8942b7e chore(deps): bump the rjsf group in /superset-frontend with 3 updates (#44378)
     add ca0f5cfa8e6 chore(deps-dev): bump @types/node from 26.5.0 to 26.5.1 in /superset-frontend (#44379)
     add 8f4a70cfdf4 chore(deps-dev): bump minimizer-webpack-plugin from 5.10.0 to 5.10.1 in /superset-frontend (#44380)
     add 2ad0053642e chore(deps-dev): bump react-refresh from 0.18.0 to 0.19.0 in /superset-frontend (#44381)
     add e8e10fb85c0 fix(charts): don't auto-migrate table charts to ag-grid-table on import unless enabled (#44151)
     add c426186a2e6 fix(versioning): scope stream_results to the activity SELECTs instead of mutating the session connection (#44261)
     add fc71d0f9e81 fix(dataset): lock the If-Match validator's transaction-id read (#44091)
     add 77dbaafc2af chore(versioning): write-path latency metric for the capture finalizer (#44009)
     add 4c3a890d8b6 chore(deps): bump flask-appbuilder from 5.2.2 to 5.2.3 (#44400)
     add 00c2f22fae2 fix(dashboard): make system default/dark themes assignable to a dashboard (#44361)
     add 678bfae8859 fix(charts): align week-grain time comparison offsets to whole weeks (#43936)
     add 6b80fa7ec29 fix(mypy): narrow chart.uuid before RestoreChartVersionCommand in restore tests (#44394)
     add 3abc3588fab fix(sqla): guard unprotected Jinja template rendering in ExploreMixin (#44172)
     add da1cac85f4d fix(versioning): refuse a version restore whose child history was pruned (sc-120012) (#44251)
     add 30e5745cd74 fix(mcp): return a structured Unsupported marker for semantic-view get_chart_sql (#44267)
     add 795cdf2bf15 fix(mcp): include semantic views in get_dashboard_datasets (#44269)
     add 22ae4405d4e fix(explore): anchor the add column/metric/filter popovers to their trigger (#44274)
     add f1dc56607e2 fix(i18n): make module-level error constants lazy gettext (#44180)
     add 944e92dd578 feat(soft-delete): translate unique collisions with soft-deleted rows into restore guidance (#44184)
     add 20d7a3e9aea fix(table): preserve semantic temporal column references (#44369)
     add 560828d620a fix(dashboard): resolve display-control and drill datasources by type, not id alone (#42539)
     add fc80a14850e feat(mcp): apply native dashboard filters from an MCP client (#44096)
     add 394bca55c79 fix(mcp): preserve dashboard filter values for restricted users (#44107)
     add bd786e2bea2 feat(versioning): render the starting version as the oldest history row for charts and dashboards (#44258)
     add a7dab4a5519 fix(presto): require PyHive 0.7 for SQLAlchemy 2 (#44285)
     add b5ad3964165 fix(query): resolve sub-day "Last <unit>" time_range shorthand (#44254)
     add b8f5b209285 test(frontend): await userEvent calls missed by the user-event v14 migration (#44335)
     add 9bb5a95976a chore(deps-dev): bump the babel group in /superset-embedded-sdk with 3 updates (#44417)
     add 4f1a34446df chore(deps): bump zod from 4.6.1 to 4.6.2 in /superset-frontend (#44419)
     add 282bcb0edd8 chore(deps-dev): bump baseline-browser-mapping from 2.11.21 to 2.11.22 in /superset-frontend (#44421)
     add 79af673bca5 chore(deps-dev): bump webpack-bundle-analyzer from 5.3.2 to 5.3.3 in /superset-frontend (#44422)
     add 16090803bbc chore(deps): bump @googleapis/sheets from 14.0.0 to 17.0.0 in /superset-frontend (#44420)
     add 0599cc2516b fix(mcp): accept a time grain in get_table on semantic views (#44270)
     add b7f1bdd571c fix(mcp): keep the default list_metrics page under the response-token cap (#44266)
     add 4bb51d76694 test(mcp): pin distinct cache keys for semantic-view get_table across time ranges (#44263)
     add e4bbd3973a2 fix(charts): type-aware datasource access parity for the chart list (#43848)
     add 8947d3b3763 fix(semantic-layers): mask nested and union secrets in layer configuration (#43827)
     add 627f32ca625 fix(versioning): mount the dashboard version-history panel inside the content area, below the header (#44255)
     add ae5d8d89a38 fix(datasets): return 400, not 500, for a body-less purge POST; point the database-delete refusal at the purge flow (#44264)
     add 9d4db452551 fix(charts): allow saving charts on semantic views (create/update rejected non-table datasource types) (#44416)
     add 43f85576d99 fix(semantic-layer): mapper honors the SemanticView ABC contract (#43886)
     add 062bf948e59 fix(semantic-layer): preserve independent source permissions (#43887)
     add 2e1cf8a72c4 fix(versioning): map the restore registry guard's LookupError to 422 instead of 500 (#44253)
     add 5ecb19cf92a fix(mcp): pre-validate metric/dimension compatibility in semantic-view get_table (#44265)
     add 128c0c159ab fix(mcp): rebuild full parent chains in dashboard layouts (#44405)
     add 43fee876722 test(versioning): mock the restore locking re-read in the #44253 LookupError tests (fixes red master) (#44445)
     add f170d2670e5 chore(deps): bump baseline-browser-mapping from 2.11.21 to 2.11.22 in /docs (#44418)
     add 253eef33d5d fix(databricks): prefer python-connector spec over legacy Hive spec for unrecognized drivers (#44449)
     add db556ec66eb chore(deps): bump pyjwt from 2.13.0 to 2.14.0 (#44442)
     add 4511c138193 chore(deps-dev): bump psycopg2-binary from 2.9.12 to 2.9.13 (#44444)
     add 6300622dd4a fix(mcp): catch ValueError for reversed date range in query_dataset (#44462)
     add c9fd9bf94f4 fix(bigquery): avoid ESCAPE clause in column-value typeahead search (SC-121408) (#44429)
     add 27935c2c648 chore(deps-dev): bump @testing-library/dom from 10.4.1 to 10.4.2 in /superset-frontend (#44488)
     add 3f924aa1aab chore(deps): bump antd from 6.6.3 to 6.6.4 in /superset-frontend (#44487)
     add 76496b2df61 chore(deps): bump zod from 4.6.2 to 4.6.5 in /superset-frontend (#44485)
     add 41aa1221be0 chore(deps-dev): bump @formatjs/intl-durationformat from 0.10.18 to 0.11.1 in /superset-frontend (#44484)
     add 9bb07f2292a chore(deps-dev): bump baseline-browser-mapping from 2.11.22 to 2.11.23 in /superset-frontend (#44483)
     add 07b28abe82a chore(deps-dev): bump webpack from 5.110.3 to 5.111.0 in /superset-frontend (#44482)
     add 38fac53e55c chore(deps): bump antd from 6.6.3 to 6.6.4 in /docs (#44481)
     add d0739416d50 chore(deps-dev): bump webpack from 5.110.3 to 5.111.0 in /docs (#44480)
     add a82a001fe0a chore(deps): bump js-yaml from 5.4.1 to 5.4.2 in /docs (#44479)
     add caa82d5b102 chore(deps): bump codecov/codecov-action from 7.0.0 to 7.1.0 (#44477)
     add 085e535b8e7 chore(deps-dev): bump webpack from 5.110.3 to 5.111.0 in /superset-embedded-sdk (#44476)
     add 1f1e09c971e chore(deps): bump hot-shots from 17.1.0 to 17.1.1 in /superset-websocket (#44475)
     add b0f7c581db2 chore(deps): bump yeoman-generator from 8.4.0 to 9.1.0 in /superset-frontend (#44489)
     add 7486b7187bf chore(deps): bump morgan from 1.12.0 to 1.12.1 in /superset-websocket/utils/client-ws-app (#44474)
     add fc016454fb0 chore(deps): bump baseline-browser-mapping from 2.11.22 to 2.11.23 in /docs (#44478)
     add c11dc027969 fix(sql): classify ATTACH/DETACH and MySQL REPLACE/RENAME/SET PASSWORD as mutating (#44072)
     add 00b1a353018 fix(shillelagh): disable ATTACH DATABASE on APSW connections (#43991)
     add 8ec8beecffd fix(reports): enable alert retries with execution safeguards (#44336)
     add 2ea9ef6cef7 feat(mcp): search dataset descriptions and add an optional per-role dataset scope (#44146)
     add 8b9b055ef0f fix(mcp): never block a committed update_chart write as ToolError (#44386)
     add 371ad7cac5a refactor(soft-delete): hoist triplicated restore/purge route bodies onto SoftDeleteApiMixin (#44259)
     add 5a7d269580f fix(charts): guard set_related_perm against unknown datasource_type (#43885)
     add 774d83b4d63 fix(sql-lab): remove the ecpg-based PostgreSQL SQL validator (#43020)
     add 322eaeaf991 fix(ci): align Docker image publishing policy (#44250)
     add 782b7ae924c fix(security): skip session checks for health probes (#43786)
     add fe2ed7bb8e7 fix(dashboard): make screenshot completion truthful (#44144)
     add cf39d22f382 fix(mcp): honor extra_form_data time_grain_sqla on Generic Chart Axes charts (#44435)
     add e4eb0591bdb fix(sql lab): keep the real Flask session on synchronous runs (#44428)
     add 75447bc068f fix(pandas_postprocessing): pass string aggregator names to GroupBy.agg to silence FutureWarning (#43259)
     add aaa9390a24a fix(semantic-layer): wrap raw pandas TypeError/DataError from post-processing as QueryObjectValidationError (#44502)
     add d0edf759c90 test(dashboard): migrate native filter cross-filter/dependency E2E to Playwright (#41458)
     add 2f4eb735187 fix(explore): keep edits to a dashboard-inherited filter when saving (#43947)
     add c355f0a21df fix(plugin-chart-table): re-measure sticky layout when the table gains a box (#44430)
     add ed9bb9169d8 fix(dashboard): stop wide table charts bleeding over neighbours in dashboard image export (#44414)
     add f7784b64f46 fix(ci): give the db2 testcontainer boot real wait headroom (#44399)
     add 7e6b25a90b3 fix(row-level-security): allow roles as RLS rule subjects (#43948)
     add 4a7b8b6279c fix(ui): preserve HTTP status in error messages (#44271)
     add 6cc5c0e00ba feat(db_engine_specs): add metadata block to OdpsEngineSpec (#43239)
     add 48dfbcc6527 fix(explore): keep an externally updated TextControl value visible (#43220)
     add afd8dac7c85 fix(sqllab): migrate tabs after database deletion (#43278)
     add b8cc2a769d4 fix(echarts): only reserve left grid padding when a Y-axis title exists (#43299)
     add 53484ac21c9 feat(charts): Clean up "shadow state" in conditional formatting dialog (#43692)
     add ba677f0c5ba feat(mcp): read Explore permalinks in get_chart_info (#44338)
     add cbd5bf85fe7 fix(dataset): render semantic datasource type as a badge (#44398)
     add 3756b7ae2c8 fix(i18n): guard messages.pot against source drift and regenerate it (#44467)
     add 3fd761d1740 fix(ui): preserve default modal resize handles when config is partial (#43806)
     add 5a2a90b38ab feat(mcp): bubble chart type plugin (#43572)
     add 889f9f1751e fix(reports): validate final capture artifacts before delivery (#44465)
     add 298d776ec56 fix(dashboard): include semantic views in the dashboard datasets payload so semantic charts render their errors (#44413)
     add 92482f07f30 fix(echarts): emit no cross-filter for clicks that are not categories (#43192)
     add cf10e894a19 fix(mcp): preserve omitted chart colors and row limits (#44188)
     add 0050b187d78 perf(deletion-retention): scope purge-audit repeat checks with legacy database fallback (#44262)
     add 649a665b482 fix(security): allow schema_access holders to explore SQL Lab queries from other authors (#43994)
     add d45bbdcdf2e fix(sql): use AST for disallowed function checks (#43641)
     add 5745162faf7 docs: point remaining Release Notes links at GitHub releases (#43803)
     add 600db8e5816 fix(matrixify): apply dimension filters to all query-specific adhoc filter collections (#43861)
     add 903a1e1ff3e docs(singlestore): require singlestoredb[sqlalchemy] and update logo (#44170)
     add c666a6400c4 fix(database): allow metadata edits on an unreachable database (#44000)
     add fd5efcbf5ba fix(superset-ui-core): add year to smart_date_verbose tooltip tiers (#44212)
     add 1b8800c84d1 fix(sqllab): restore SQL code folding (#44236)
     add 0382c19ad3b fix: show the server's error message in the publish toggle and user info toasts (#44238)
     add f47fcad3d6e fix(reports): replace stale Selenium references in screenshot messages (#44244)
     add 3e39ba13e34 fix(country-map): correct Karelia boundary (#44273)
     add 3cbee94525d docs: fix internal link guidance examples (#44275)
     add 468936a7e04 fix(sql): preserve literal percents in where_in (#44284)
     add b78585c9715 fix(databricks): select the SQLAlchemy 2 dialect (#44286)
     add 8039aa983d7 test(explore): await the Customize tab click in ControlPanelsContainer test (#44315)
     add 57108b416bf test(explore): await userEvent calls in useExploreAdditionalActionsMenu test (#44323)
     add 7eb9532c0ba fix(chart-controls): keep axis sort available for columns with unknown type (#44344)
     add 770bcfb2e95 fix(extensions-cli): fail build and bundle when the frontend build fails (#44407)
     add 86fb8db31d8 chore(version-history): use typed app dispatch (#44438)
     add 156549ffed3 fix(temporary-cache): forward tab_id on DELETE so contextual cache mappings are cleared (#44451)
     add 22d37f3ed0a chore(deps): bump fast-uri from 3.1.5 to 3.1.8 in /superset-frontend/cypress-base (#44510)
     add 4df9c0ad362 chore(deps): bump qs from 6.15.2 to 6.16.0 in /superset-frontend/cypress-base (#44511)
     add 1428f138d20 chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in /docs (#44518)
     add 1c803d923f3 chore(deps-dev): bump oxfmt from 0.67.0 to 0.68.0 in /superset-websocket (#44516)
     add fc1c7798e9e chore(deps-dev): bump oxfmt from 0.67.0 to 0.68.0 in /docs (#44517)
     add a54e7353a2b chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in /superset-websocket (#44515)
     add d43785a2c22 chore(deps): bump docker/setup-buildx-action from 4.3.0 to 4.4.1 (#44519)
     add 4c229cb66a7 fix(dashboard): import getClientErrorObject; regenerate stale messages.pot (#44513)
     add 4afaf60a4fe feat(build): use latest patch version for Python base image (#44458)
     add c691d768d2f chore(deps-dev): bump oxfmt from 0.67.0 to 0.68.0 in /superset-frontend (#44521)
     add 21db4a5eeef chore(deps): bump @types/d3-selection from 3.0.11 to 3.0.12 in /superset-frontend (#44524)
     add 47fd4f4cbfc fix(matrixify): lazy-load grid cells with dashboard virtualization (#43053)
     add 250a4797bf1 fix(plugin-chart-ag-grid-table): send export column filters as structured filters (#44308)
     add c6d0890f2e0 fix(api): restore three schema fields disabled by a stray trailing comma (#43225)
     add 61a5d0e3348 fix(csrf): recover from an expired CSRF token without a page reload (#43655)
     add d21aa9b4f46 chore(deps): bump yeoman-generator from 9.1.0 to 9.2.0 in /superset-frontend (#44522)
     add 2b5a929523d fix(chart-controls): type post-processing columns as a string-to-string mapping (#43589)
     add a3afedeaab4 fix(core): normalize bare date-only strings to UTC in normalizeTimestamp (#43807)
     add 107a61c4caf feat(databend): add a sqlglot dialect based on Postgres (#43964)
     add c163112f4e2 chore(deps): bump @googleapis/sheets from 17.0.0 to 18.0.0 in /superset-frontend (#44523)
     add 5c1f617740c fix(echarts): apply the bar label legibility floor to manual label positions (#44469)
     add c4943a0ab34 feat(native-filters): add configurable display format for time filters (#44237)
     add cef83b3f8df fix(import): catch KeyError for missing uuid/ssh_tunnel in load_configs (#43305)
     add df6e0d08b35 fix(sqla): wrap TypeError from virtual dataset Jinja rendering as a validation error (#44312)
     add 1788486228c fix(datasets): soften render-time UndefinedError in get_virtual_table_metadata (#44316)
     add ee4b8ddff6e fix(ci): align superset-cache tag consumers with the Dockerfile PY_VER (#44534)
     add 43f0f8876ad chore(ci): make the DB migration conflict bot comment less emoji-heavy and more actionable (#44506)
     add 0fe0662b271 fix(i18n): regenerate messages.pot to match source (#44509)
     add 9f48d0eac9e fix(tests): await userEvent.click in CsrfErrorMessage compact-mode test (#44540)
     add 7024401aef2 fix(mcp): drop tiktoken, size-guard responses by exact byte length (#44508)
     add 9413294b2bd docs(pivot-table): document the "Show values as" percentage display option (#44127)
     add 48795f9a2d4 docs(explore): document show_download param for standalone chart embeds (#43906)
     add 7dd70eaf2d6 fix: tighten object-level and destination checks across four unrelated endpoints (#44036)
     add add97e5d190 fix(embedded): tighten guest-token scoping for annotations, result types, and channels (#43391)
     add ca7cdfcd0ff fix(pinot): require the SQLAlchemy 2 driver extra (#44287)
     add 0f229fda75f fix(security): exempt health blueprint from forced password changes (#44504)
     add 269b9f99fef fix(views): return 401 for NoAuthorizationError in handle_api_exception (SC-121647) (#44533)
     add 50bbcedf13b docs(mcp): document restore_chart and restore_dashboard tools (#44207)
     add ea1ffcf0adb fix: fixed inverseSelection (#40970)
     add 350dd0d60ec fix(security): delete deprecated permissions left over after upgrades (#44142)
     add 7a9fe06762b fix(mcp): stop data tool responses crashing on binary and NaT values (#44495)
     add 9612437a9c8 fix(extensions): preserve chat state across display modes (#44490)
     add 61fffbe0c08 chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in /superset-frontend (#44525)
     add c14ac29f477 fix(mcp): complete Treemap round-trip and previews (#44152)
     add 3b4e5f5d0c6 chore(deps): bump markdown-to-jsx from 9.10.2 to 9.10.3 in /superset-frontend (#44570)
     add 7fe03a536b6 chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in /superset-frontend (#44569)
     add 6403e16fe56 chore(deps-dev): bump vitest from 5.0.0 to 5.0.1 in /superset-embedded-sdk (#44568)
     add d1f395914f1 chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in /superset-embedded-sdk (#44567)
     add 6c9138a6b7c chore(deps-dev): bump baseline-browser-mapping from 2.11.23 to 2.11.24 in /superset-frontend (#44566)
     add 4b180bddad7 chore(deps): bump baseline-browser-mapping from 2.11.23 to 2.11.24 in /docs (#44565)
     add 4290d94d6c9 chore(deps-dev): bump vitest from 5.0.0 to 5.0.1 in /superset-websocket (#44564)
     add 3e80a53e14f chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in /superset-websocket (#44563)
     add f8f293d2666 chore(deps): bump benchmark-action/github-action-benchmark from 1.22.1 to 1.22.2 (#44520)
     add 689ab4a77af fix(translations): regenerate messages.pot after the connection-move reword (#44574)
     add 02dbfd2ab5b fix(dashboard): don't register an active tab for childless TABS components (#44345)
     add 838376dbc28 fix(mongodb): treat the Mongo database as the SQL Lab schema so Data Preview returns rows (#44141)
     add 6323b37f50a fix(dashboard): prevent and repair self-nested layout components (#44303)
     add 7c7b3adf745 fix(export): keep the acting user in streaming CSV exports (#44425)
     add c0c688d3e4b fix(mcp): return a specific error per failure class on tool calls (#44387)
     add a071d23b41f fix(dashboard): guest sessions, pluggable storage, and streamed downloads for the Excel export (#43805)
     add d7a918b814c fix(ci): make check_pot_drift extract from an isolated git snapshot (#44578)
     add 775f7c5a1fd fix(db2): Use DATE_TRUNC to improve timegrain expressions (#43236)
     add 298aa2f0ba4 fix(dataset): bump changed_on on column refresh so chart cache invalidates (#43921)
     add 082961ba168 fix(chart): require edit rights for query-context-only updates (#44494)
     add 3b355b6a854 fix(chart): allow semantic view datasource when saving charts (#44169)
     add 390bf299ff9 fix(i18n): stop f-strings in gettext leaking a bogus msgid on Python 3.12 (#44584)
     add 8141d666d6d fix(dashboard): show loading spinner for charts outside an in-flight auto-refresh batch (#44272)
     add d4370cd46eb chore(deps): bump the rjsf group in /superset-frontend with 3 updates (#44593)
     add 0ad50dc77e7 chore(deps-dev): bump jsdom from 30.0.1 to 30.1.0 in /superset-frontend (#44596)
     add b4cc82b7662 chore(deps-dev): bump jsdom from 30.0.1 to 30.1.0 in /superset-embedded-sdk (#44592)
     add 687dcbc63eb chore(deps): bump swagger-ui-react from 5.32.15 to 5.33.0 in /docs (#44594)
     add ad7fcac11f9 fix(export): stamp ZIP entries with the export time (#44391)
     add 92a3b7d7e33 chore(deps): bump google-auth-library from 11.0.2 to 11.1.0 in /superset-frontend (#44599)
     add 45d76f6abaf chore(deps): bump react-draggable from 4.7.1 to 4.7.2 in /superset-frontend (#44597)
     add 2ac6e2468d5 chore(deps-dev): bump webpack-bundle-analyzer from 5.3.3 to 5.4.0 in /superset-frontend (#44598)
     add 613033b294b chore(build): replace external file-related deps with native Node modules (#42939)
     add 25cb6fc02d2 chore(deps): bump the ag-grid group in /superset-frontend with 2 updates (#44595)
     add 732248e4755 fix(logging): record dashboard_id and slice_id for REST mutation endpoints (#44553)
     add 9ad6917600d chore(cypress): remove dead dashboard drill-to-detail Cypress suite (#44537)
     add f5d663c480d fix(versioning): narrow nullable uuid/description reads flagged by mypy in versioning tests (#44424)
     add e357014559b fix(dashboard): initialize label colors before mounting charts (#44557)
     add e04d38a85f2 fix(mypy): resolve the dataset-scope and datasource-perm errors from the full-repo lint (#44610)
     add 1c7d1f049bc fix(utils): return None from cast_to_num for non-decimal digit strings (#44615)
     add defcd639107 fix(mongodb): route dataset FROM clauses through quote_table so chart queries return rows (#44583)
     add f5487f04a36 fix(db_engine_specs): raise SupersetGenericDBErrorException instead of bare-reraising JSONDecodeError (#44616)
     add 855ca2228cb fix(query_context): raise 422 not 500 on malformed Jinja in Query datasource access check (#44011)
     add 7b716b1838c fix(versioning): clean up history actions and refresh after saves (#44613)
     add 96d31ee3e35 docs(mcp): document deleted_state trash listing for list_charts/list_dashboards (#44128)
     add 599026a0e5a feat(standalone): granular Explore standalone modes and iframe-safe dashboard fullscreen (#44165)
     add 3bd6e103c14 fix(security): apply global guest RLS rules inside adhoc sub-queries (#44645)
     add 1e08d61204f fix(mcp): preserve deduplicated chart tool input schemas (#44575)
     add 02cb1f1a28a fix(table): resolve auto-detected currency on time comparison columns (#44649)
     add 83731ce7b3a test(reports): freeze the clock in the stale retry boundary test (#44651)
     add a9342fa02ab chore(deps-dev): bump oxlint-tsgolint from 7.0.2001 to 7.0.2002 in /superset-websocket (#44634)
     add d65e9fba9c4 chore(deps-dev): bump oxlint-tsgolint from 7.0.2001 to 7.0.2002 in /docs (#44635)
     add d1f903c66ff chore(deps): bump github/codeql-action/analyze from 4.38.0 to 4.38.1 (#44636)
     add a44ab4d9281 chore(deps-dev): bump baseline-browser-mapping from 2.11.24 to 2.11.25 in /superset-frontend (#44641)
     add 5085570fb48 chore(deps): bump apache/infrastructure-actions/allowlist-check from 1.0.3 to 1.0.4 (#44637)
     add 5be35992c56 chore(deps): bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.1 (#44640)
     add 0034601c062 chore(deps): bump github/codeql-action/init from 4.38.0 to 4.38.1 (#44639)
     add 5e8bbc0eb4a chore(deps): bump baseline-browser-mapping from 2.11.24 to 2.11.25 in /docs (#44638)
     add 241d1210152 chore(deps): bump image-size from 2.0.2 to 2.0.4 in /docs in the security group across 1 directory (#44619)
     add be0631858c9 chore(deps): bump mapbox-gl from 3.30.0 to 3.31.0 in /superset-frontend (#44643)
     add 4bce27f12f4 fix(dashboard): shrink row height on chart resize and unblock resize handles above columns (#44359)
     add 5aec4342bb5 fix(database): catch JSONDecodeError in get_oauth2_config (#44658)
     add 10ca640e97e fix(import): downgrade expected validation-failure logs from error to warning (#44655)
     add 181422fc604 fix(mcp): return safe argument validation details (#44591)
     add 05017968378 chore(ci): collapse Playwright experimental workflow into E2E playwright-tests (#44659)
     add a33154a4c49 chore(deps-dev): bump hdbcli from 2.29.27 to 2.30.27 (#44687)
     add 60a0b45b06f chore(deps-dev): bump mysqlclient from 2.2.8 to 2.3.0 (#44689)
     add 1aaa1e6ad1a chore(deps): bump greenlet from 3.5.5 to 3.5.6 (#44691)
     add 1a65f0ec9be chore(deps-dev): bump google-cloud-bigquery from 3.45.0 to 3.45.2 (#44692)
     add b4db7baaff5 chore(deps-dev): bump python-ldap from 3.4.7 to 3.4.8 (#44690)
     add 6e2e7c6c84f chore(deps-dev): update playwright requirement from <2,>=1.62.0 to >=1.63.0,<2 (#44688)
     add 5b9733fd60f fix(versioning): resolve nightly pre-commit (next) failures — mypy UUID-annotation regression and oxfmt version-drift formatting (#44648)
     add eb2ffa28ccf chore(docker): quiet scanner self-match noise, keep OS packages current (#44124)
     add 2e13cfa3e48 fix(charts): stream large CSV exports without executing the query first (#44624)
     add 25e63b54fd8 feat(mcp): add create_dataset_metric and delete_dataset_metric tools (#44580)
     add c54a3315e86 feat(plugin-chart-echarts): add Candlestick Chart (#43863)
     add 891c2ede0b6 feat(dashboard): download the Excel export directly when no export storage is configured (#44082)
     add 35e58506061 fix(charts): guard Slice.form_data against non-dict params JSON (#44731)
     add 8a3b86dccd3 fix: guard the isdigit()-then-int() pattern against non-decimal digits (#44620)
     add 1436035b091 fix(bar-chart): show correct value labels per stack group with stackDimension (#43238)
     add ad24cb86342 fix(embedded): initialize feature flags in embedded dashboard entry point (#37367)
     add 8c4b5ae2085 chore(deps): bump codecov/codecov-action from 7.1.0 to 7.1.1 (#44571)
     add b6be1dd5548 build(dev-deps): use `@hainenber/po2json` as modernized `po2json` fork (#44457)
     add ffe9a00fc42 fix(reports): export full paginated table results (#44218)
     add f3e3c3fefdd fix(security): apply global guest RLS rules to sub-queries in virtual datasets (#44650)
     add 049c9777f03 fix(dashboard): load chart editors and viewers up front (#43990)
     add 5ba3b8d4fc7 fix(security): keep guest RLS on sub-queries beside an unaliased source (#44768)
     add d1307422f17 fix(reports): require a Slack channel id in report recipients (#42850)
     add 4977a2a5347 chore(deps-dev): bump the babel group in /superset-embedded-sdk with 3 updates (#44747)
     add ba6268bddf6 chore(deps-dev): bump jest-environment-jsdom from 30.5.1 to 30.5.2 in /superset-frontend (#44764)
     add a5ae32d3911 chore(deps-dev): bump tsx from 4.23.13 to 4.23.15 in /superset-frontend (#44757)
     add d9df1b3b83d chore(deps): bump astral-sh/setup-uv from 10.1.0 to 10.2.0 (#44750)
     add 1ad6c118003 chore(deps-dev): bump minimizer-webpack-plugin from 5.10.1 to 5.11.0 in /superset-frontend (#44755)
     add ca6fc26fa4a fix(deps): resolve npm security alerts for fflate, image-size, js-yaml and smol-toml (#44740)
     add f6d9b7b94cd fix(mcp): use chart metrics for the preview y axis (#44684)
     add b2d54504537 chore(deps): bump antd from 6.6.4 to 6.6.5 in /superset-frontend (#44766)
     add c217fe4d1e7 chore(deps-dev): bump jest from 30.5.1 to 30.5.2 in /superset-frontend (#44763)
     add 0085640384d chore(deps-dev): bump babel-jest from 30.5.1 to 30.5.2 in /superset-frontend (#44762)
     add e8539f9aff8 chore(deps-dev): bump @types/node from 26.6.1 to 26.6.2 in /superset-frontend (#44761)
     add 7c1979ec542 chore(deps): bump react-error-boundary from 6.1.5 to 6.1.6 in /superset-frontend (#44760)
     add 21ed6880d5e chore(deps-dev): bump webpack from 5.111.0 to 5.111.1 in /superset-frontend (#44756)
     add 6ae6e7b2874 chore(deps-dev): bump webpack from 5.111.0 to 5.111.1 in /docs (#44753)
     add 6de85946c40 chore(deps-dev): bump @babel/eslint-parser from 7.29.7 to 7.29.9 in /superset-frontend in the babel group (#44752)
     add 565f49d9343 chore(deps): bump antd from 6.6.4 to 6.6.5 in /docs (#44751)
     add 1c2e7c2988f chore(deps-dev): bump webpack from 5.111.0 to 5.111.1 in /superset-embedded-sdk (#44749)
     add feb4c4f6227 chore(deps-dev): bump @types/node from 26.6.1 to 26.6.2 in /superset-embedded-sdk (#44748)
     add 60fc9966025 chore(deps-dev): bump @types/node from 26.6.1 to 26.6.2 in /superset-websocket (#44745)
     add 68ccc99e950 fix(dataset): hide Normalize column names for virtual datasets (#44579)
     add 766f46b6e99 fix(deps): pin qs 6.16.0 in docs to resolve Dependabot alerts (#44741)
     add 5af034ff6f8 fix(translations): capture stderr and harden check_pot_drift.py follow-ups from #44578 (#44582)
     add c9455b2c4cc fix(i18n): correct Slovak SQL Lab progress message placeholders (#44587)
     add a629c91929d test(explore): migrate remaining explore e2e coverage to Playwright (#44621)
     add 891dbc424b1 fix(deps): bump anyio to 4.15.1 (CVE-2026-63374) (#44735)
     add 74d9d94aed1 test(dashboard): cover native filter dependency cycles and config modal save gating (#44669)
     add 169514aebd7 test(dashboard): cover dashboard load modes and URL param hydration (#44672)
     add 3667f5bcaa6 test(dashboard): cover color scheme precedence and label color map helpers (#44677)
     add 89bf40ee04e fix(calendar): position Month/Week cells within their own month block (#44601)
     add 0e688a534b6 fix(ci): retry databend testcontainers bring-up past the image's metasrv race (#44729)
     add ff55a99ab73 test(dashboard): cover filter plugin data masks and horizontal overflow (#44676)
     add 78fdd0dafa9 test(dashboard): cover native filter bar key persistence and state hooks (#44675)
     add e5100cd9986 test(dashboard): cover tab switching visibility and hidden chart updates (#44674)
     add 3ae8e2f9bc4 test(dashboard): cover save and refresh interval modals (#44671)
     add 98c74d8d8bf test(dashboard): cover drill to detail payloads and page reset (#44673)
     add 6cad838c823 chore(dev-deps): drop po2json entirely, build .po->Jed JSON on gettext-parser (#44742)
     add 77295721ff9 feat(versioning): gate history APIs and runtime capture (#44514)
     add 6f6e52ba8b1 fix(chart/data): guard against non-dict chart.params in get_data (#44770)
     add 593080e1a2c feat(mcp): add update_dataset, delete_dataset and restore_dataset tools (#44337)
     add 8bd92b7073e fix(databases): surface dataset dependents in the delete confirmation (#44392)
     add 211339b9a78 chore: add @geido and @msyavuz as code owners (#44771)
     add 1e167aedbc0 fix(dashboard): refresh version history after cross-filter scoping save (#44623)
     add 9593bc42c64 fix(ui): normalize BigInt values in memory formatter (#44507)
     add b65d5482b2c feat(dataset): support epoch_us python_date_format (#44500)
     add 697b056909c fix(chart): prevent stacking bars on a logarithmic axis (#44556)
     add a374f847d61 fix(echarts): reserve grid room for Gantt category names (#43189)
     add 95db7730256 fix(timeseries): preserve explicit UTC offsets in normalizeTimestamp (#43960)
     add 506716f2f88 fix(query-context): resolve legacy granularity_sqla for stored queries (#44460)
     add c7821516e39 fix(security): vary SQL Lab ad-hoc query cache key by effective RLS predicates (#43985)
     add 4679a471015 test(dashboard): cover header refresh controls while charts load (#44670)
     add ae11708faab test(dashboard): cover edit-mode drag-and-drop drop rules (#44678)
     add 0fbad0de99d feat(db_engine_specs): add metadata blocks to all remaining incomplete engine specs (#43566)
     add 7cb19e2b50d fix(embedded-sdk): re-authenticate the iframe after a navigation internal to the dashboard (#44470)
     add c67c88fbf1e fix(reports): drop the sign of negative numbers that round to zero in text reports (#44644)
     add 1fdb9171b7b fix(explore): include dataset editors in the Explore datasource payload (#44633)
     add d3f57264890 fix(echarts): stop the zoom controls overlapping the legend selector (#44367)
     add 0e5a3b21215 feat(motherduck): set session_name on user impersonation (#42705)
     add 33d24f496c9 fix(ci): fall back to the lean Dockerfile target when publishing a pre-#44100 release (#44248)
     add b4f79f94f82 fix(d1): support SQLAlchemy 2 with sqlalchemy-d1 0.2.0 (#44505)
     add cfeceedb605 fix(types): preserve shared control registry option types (#44559)
     add 1e91b933774 refactor(dashboard): simplify cross-filter scope resolution (#38762)
     add db87cd2a2b2 fix(dataframe): normalize trusted nonfinite scalars (#44219)
     add e86af4ee954 fix: DashboardAccessFilter to preserve dashboards with empty layouts (#44256)
     add 49e71752e48 fix(excel): keep wall-clock datetimes when exporting timezones (#44360)
     add 19ea6b231c7 fix(mcp): hide internal sanitization warnings from input schemas (#44602)
     add c40eba410b7 fix(kylin): time grains and labels that work on Calcite and Spark pushdown (#44712)
     add ca3d3560895 feat(oracle): support cancelling running queries in SQL Lab (#44704)
     add e7275f15ae0 feat(echarts): double-click chart legend to isolate a series (#44562)
     add 4a51382f819 chore(deps-dev): bump oxfmt from 0.68.0 to 0.70.0 in /superset-frontend (#44785)
     add 983d00165a7 chore(deps-dev): bump jsdom from 30.1.0 to 30.1.1 in /superset-frontend (#44784)
     add f837f839708 chore(deps): bump react-window from 2.3.1 to 2.3.2 in /superset-frontend (#44782)
     add 5150266456a chore(deps-dev): bump oxlint from 1.83.0 to 1.85.0 in /docs (#44781)
     add b8e40175053 chore(deps-dev): bump the typescript-eslint group in /superset-frontend with 2 updates (#44779)
     add 4422cf38776 chore(deps-dev): bump oxfmt from 0.68.0 to 0.70.0 in /superset-websocket (#44778)
     add ce86ac9aefc chore(deps-dev): bump jsdom from 30.1.0 to 30.1.1 in /superset-embedded-sdk (#44777)
     add ef99eeac8ee chore(deps-dev): bump oxlint from 1.83.0 to 1.85.0 in /superset-frontend (#44783)
     add 72c8969ce38 chore(deps-dev): bump oxfmt from 0.68.0 to 0.70.0 in /docs (#44780)
     add 3d436f579c9 chore(deps-dev): bump oxlint from 1.83.0 to 1.85.0 in /superset-websocket (#44776)
     add e65de1fc0f0 fix(chart-data): roll back db.session after swallowed metadata-DB errors (#44653)
     add 45f4dd80092 fix: use database rollups for pivot table subtotals in Actual Values mode (#44631)
     add c51f192be6b fix(sqllab): stringify integer columns that overflow int64 (#44743)
     add 2eb620e7372 fix(databases): validate schema before listing tables (#44683)
     add 27c6f5a8d90 fix(db_engine_specs): restore shared compiler state after loading third-party dialects (#44686)
     add 732e6551e0a fix(cratedb): recognize reflected timestamp types for epoch milliseconds (#44720)
     add 03227878ba3 fix(db_engine_specs): don't fail DDL/DML when the statement has no result set (#44714)
     add 3e9bd8b45b4 fix(dynamodb): map NUMBER columns and order charts by metric expressions (#44711)
     add 2b050596c0b fix(databricks): derive omitted OAuth2 endpoints from the workspace host (#44710)
     add 041f84c6f31 fix(clickhouse): rename SELECT aliases that shadow a source column (#44715)
     add f6a7802c81d fix(database): mask secrets in create and update responses (#44733)
     add f639b22c6c8 fix(api): return 4xx from oauth2 callback errors, not 500 (#44769)
     add cba2574241e fix(i18n): clear 1,188 fuzzy translations with broken placeholders (#44611)
     add afe8b14d794 fix(database): coerce LazyString validation messages to str in validate_parameters (#44802)
     add c6e7bd47a4a fix(dashboard): catch JSONDecodeError on malformed default_filters in set_dash_metadata (#44716)
     add 9a5faa8af5b refactor(db_engine_specs): derive epoch method dispatch from EPOCH_FORMATS (#44772)
     add 63c004fe66c feat(mcp): add a permission-filtered asset catalog tool (#44694)
     add 6b2d3b15116 fix(auth): gate registration UI by auth type, not just the flag (#44368)
     add e1daa2f7e10 chore(deps-dev): bump ip-address from 10.4.0 to 10.7.2 in /superset-frontend in the security group across 1 directory (#44774)
     add 8bd268f9cef docs(versioning): screenshots, retention, and permission guidance for version history and archives (#44190)
     add 14b87366bc7 chore(deps-dev): bump brace-expansion from 5.0.9 to 5.0.12 in /superset-embedded-sdk in the security group across 1 directory (#44812)
     add 1dbb7aaace6 chore(deps): bump fast-uri from 3.1.7 to 3.1.8 in /docs in the security group across 1 directory (#44814)
     add 6d1bfaa4cd4 fix(dashboard): forward clearAllTriggers from vertical filter bar to FilterControls (#44531)
     add df450dc2a24 fix(mypy): narrow nullable uuid before RestoreVersionCommand calls (#44789)
     add 92b0cf82ca9 fix(echarts-timeseries): convert xAxisLabelInterval string '0' to number 0 (#43729)
     add 517e94d1062 fix(echarts): fix sparse sub-daily bar sizing and x-axis mislabeling (#44628)
     add 48a3b02d129 fix(mysql): require TLS when SSL is requested (#44723)
     add 773f976b6de fix(dynamodb): render time bounds as ISO 8601 so sub-day ranges match stored timestamps (#44702)
     add 005eadcacd8 fix(opensearch): page drill-to-detail samples with the OpenSearch SQL response format (#44703)
     add 542e4661837 fix(gsheets): pass the OAuth2 token and delegation subject through connect_args (#44709)
     add 16271bbfbb7 fix(databricks): stop the string-type patch writing SQLAlchemy's shared colspecs (#44707)
     add 7154f2790a9 fix(oracle): map Oracle NUMBER, BINARY_FLOAT/DOUBLE and CLOB column types (#44685)
     add 3e8cec55c4b chore(deps): bump undici from 7.29.0 to 7.30.0 in /superset-frontend in the security group across 1 directory (#44809)
     add 89759eba5d9 chore(deps): bump react-window from 2.3.2 to 2.3.3 in /superset-frontend (#44820)
     add 3e36b242a61 fix(datafusion): render temporal SQL that DataFusion accepts (#44700)
     add 8c3b985c22c fix(db2): set current_schema to the catalog name of the selected schema (#44706)
     add ba62c867258 chore(deps): bump brace-expansion from 5.0.9 to 5.0.12 in /superset-frontend/cypress-base (#44813)
     add 3f8a23622c7 perf(security): memoise the user subject lookup within a request (#44017)
     add 3f408238baa refactor(mcp): one plugin lifecycle contract and compact chart config schemas (#44746)
     add 5668faf18e6 fix(doris): quarter grain, SSL toggle, parameters URI, error mapping and column types (#44718)
     add 929c44097f8 chore(deps): bump the security group across 1 directory with 2 updates (#44824)
     add e93f8ce638c test(semantic-views): wait for views refetches to settle before selecting a view (#44792)
     add 21d46d52dfd chore(build): remove unused dependencies in `docs` and `superset-frontend` (#44697)
     add af794f8c93a chore(deps): bump the security group across 1 directory with 2 updates (#44831)
     add 8a7be3b327b fix: avoid provider calls when rendering datasource access denials (#44432)
     add 3b06cadca4c fix(csv-import): add primary key when MySQL requires one (#44411)
     add 88efac09c67 fix(mcp): align histogram and waterfall query contracts (#44744)
     add 65a6012843b ci(python): run the Python-next canary nightly, bump to 3.13 (#44767)
     add e90b9fb751e chore(deps): bump dompurify from 3.4.15 to 3.4.16 in /superset-frontend in the security group across 1 directory (#44830)
     add 51378f529d8 fix(matrixify): fan metrics-axis selection into multi-query fields (#44629)
     add 883e43ee2da fix(sqllab): ignore non-object template_params in format_sql instead of 500 (#44826)
     add bbf0fa5f42f fix(core): stop discarding API errors that quote an HTML tag (#42489)
     add d80fcfc02a2 fix(i18n): make babel_update.sh .pot normalization actually run (#44395)
     add f02f53df234 fix(sql): reject client-side file-transfer statements in query execution (#44496)
     add fd524f4b217 fix(sqllab): preserve exact decimals in results and exports (#44739)
     add d2101c8dba2 fix(exasol): classify common server errors (#44721)
     add dc0e306a24c fix(elasticsearch): classify byte, short, half_float, scaled_float and unsigned_long columns (#44713)
     add 8baa9c1f2e3 fix(db2): accept sqlglot's parse_mod in the DB2 term parser (#44708)
     add 5cf8213354c fix(databricks): keep the user's OAuth2 token and extra connect_args; re-auth on HTTP 401 (#44705)
     add 855bb4e21c8 fix(gsheets): align service-account validation and serialize upload dates (#44695)
     add bbf00956d46 fix(mcp): prioritize exact tool names in BM25 search (#44682)
     add 90fc4735835 test(embedded-sdk): cross-document test rig for the navigation fix (#44608)
     add e91ce19a606 fix(auth): drain flash messages on the login page (#44605)
     add 924343e3ee6 fix(gantt): prevent y-axis category labels from being clipped (#44321)
     add d2fb52ac83e fix(auth): remove the legacy FAB password reset views and move password resets into the SPA (#44626)
     add 4cdd680f399 fix: increase dataset edit modal size (#38215) (#39257)
     add 4911dbe00b0 fix(doris): offer the connection form by matching the installed driver (#44736)
     add 3109cfaf6d6 chore(deps): bump @googleapis/sheets from 18.0.0 to 18.0.1 in /superset-frontend (#44862)
     add 4f9c22db6dc chore(deps): bump github/codeql-action/analyze from 4.38.1 to 4.38.2 (#44861)
     add 6418473be14 chore(deps): bump github/codeql-action/upload-sarif from 4.38.1 to 4.38.2 (#44859)
     add 8b643519ca0 chore: add sadpandajoe as a codeowner for .asf.yaml (#44855)
     add b98e19f6eb2 chore: drop cypress-matrix-required from required status checks (#44854)
     add 74d885233de chore(deps): bump github/codeql-action/init from 4.38.1 to 4.38.2 (#44860)
     add 8ab7a85a3d7 chore(e2e): remove Cypress infrastructure (#44829)
     add ee39954adb6 fix(oauth2): refresh a token rejected when a connection opens (#44765)
     add e5ec22ab3e9 feat(table): add multi-level column header groups (#43938)
     add a12d1b8e127 fix(mcp): enforce tool deadlines without blocking the server (#44581)
     add 0a0a1974c50 test(playwright): select existing dashboards without creating duplicates (#44856)
     add 33292f249da feat(mcp): support tab-scoped dashboard layouts (#44797)
     add 4ae8fe71225 fix: size 'Drill to detail' table header correctly (#44807)
     add 2c72d4d4fee fix(mcp): use DEFAULT_PAGE_SIZE constant in list_charts test (#44786)
     add 446853004a4 fix(mcp): keep a bubble chart's colors and row limit across updates (#44618)
     add 217e4c0223f fix(frontend): use html2canvas for chart image export on Safari (#44529)
     add c82f97b69d6 chore(deps): bump deck.gl and luma.gl from 9.2.5 to 9.4.0 in /superset-frontend (#42608)
     add abdf2e6c702 fix(home): redirect users without an ID before rendering (#44456)
     add 3f6d4cd6896 chore(deps-dev): update google-cloud-storage requirement from >=1.37 to >=3.14.1 (#44693)
     add 6a832cb2102 fix(mcp): enforce dashboard filter scope on dataset, SQL and chart tool calls (#44800)
     add e7702020344 fix(postprocessing): preserve NULL index values through pivot() (#43547) (#43693)
     add f7badeb095b fix(mcp): execute_sql request limit caps, never raises, an explicit SQL LIMIT (#44604)
     add db56168a861 ci: require babel-extract to pass before merging master (#44543)
     add 342a8f1e4e0 fix(mcp): report a chart's live dataset id and name (#44681)
     add 21b937b59d7 fix(retention): skip models without purge policies before scanning (#44874)
     add 6d97cde59a6 fix(semantic-layers): export/import semantic-view charts by typed reference (#44396)
     add b94f88ffbb4 fix(semantic-layer): require explicit member identity reselection (#44370)
     add 9c7c96fe057 fix(logging): register LogRestApi only once (#44732)
     add edc91b86e5c chore(deps-dev): bump baseline-browser-mapping from 2.11.25 to 2.11.26 in /superset-frontend (#44890)
     add 338e640df93 chore(deps): bump dompurify from 3.4.15 to 3.4.16 in /superset-frontend (#44889)
     add 4a199486599 chore(deps): bump dom-to-image-more from 3.10.2 to 3.11.0 in /superset-frontend (#44888)
     add 6559b483f28 chore(deps): bump maplibre-gl from 6.8.0 to 6.11.2 in /superset-frontend (#44887)
     add dfccc2e1e9c chore(deps-dev): bump minimizer-webpack-plugin from 5.11.0 to 5.12.0 in /superset-frontend (#44886)
     add c43770e12da chore(deps-dev): bump webpack-sources from 3.5.1 to 3.5.3 in /superset-frontend (#44885)
     add 95faf3a6a04 chore(deps-dev): bump oxlint-tsgolint from 7.0.2002 to 7.0.2003 in /docs (#44883)
     add 27c9213cca2 chore(deps-dev): bump oxlint-tsgolint from 7.0.2002 to 7.0.2003 in /superset-websocket (#44882)
     add 25956d6c448 chore(superset-ui-chart-controls): forward-compat fixes for TypeScript 6.0 (#44877)
     add ba3500e0e9a feat(export/import): add annotation layer export/import support for charts and dashboards (#43232)
     add 1b0a37cf223 fix(users): stop update_me setting self-referential changed_by_fk (#44866)
     add 7bb29649416 chore(deps): bump dawidd6/action-download-artifact from 24 to 25 (#44884)
     add 005edd74234 chore(build): de-vendor `helm/chart-testing-action` GHA (#44722)
     add 10d06859b83 fix(ci): floor pyfakefs at 5.7.4 to fix Python 3.13 pytest-cov crash (#44853)
     add 0fdfd6660e0 docs(databases): add ClickHouse Managed Postgres (#44870)
     add e0483898728 test(explore): cover time range frames, comparison labels, and metric popover state (#44847)
     add c1bb129c218 fix(change-detector): classify changed files by language, not directory (#44895)
     add e606cadff7c chore(mcp): fix malformed tool and prompt docstrings (#44572)
     add ef64bacbaa0 feat(chart): cross-filter by x-axis label on charts with dimensions (#44869)
     add b0ac9ef61f6 test(explore): cover color scheme selection, BigNumber subheader/trendline, and WorldMap bubbles (#44846)
     add 8d25777b995 test(plugin-chart-table): cover server-side sort, query mode controls, and sort ordering (#44845)
     add 8849542bda1 test(explore): cover viz switch and control dependency logic (#44842)
     add 03b61cc2d89 test(explore): add fetchTopNValues unit tests (#44841)
     add e32493c9d93 test(explore): add saveModalReducer unit tests (#44839)
     add f6155b9e9ea fix(dashboard): show the configured refresh warning alongside the limit error (#44836)
     add 240a4267f85 test(explore): add datasourcesReducer unit tests (#44840)
     add bc3698b5d64 test(explore): port remaining deleted Cypress explore specs to RTL (#44838)
     add 2872d16ee65 test(frontend): await the userEvent calls that needed restructuring (#44799)
     add 7fea33761b8 fix(chart): wrap raw pandas TypeError/DataError from post-processing as QueryObjectValidationError (#44463)
     add 3f7d01aaafc fix(reports): catch TypeError when validating non-string extra.dashboard.anchor (#44404)
     add ece8b8bd7b2 fix(import): avoid UnboundLocalError when load_yaml fails during load_configs (SC-121288) (#44390)
     add 47ba8fc8014 fix(api): return 401 not 500 for auth errors in CurrentUserRestApi (SC-120417) (#44213)
     add ef2c05c0900 fix(security): guard is_guest_user against NoAuthorizationError on unauthenticated error paths (#43826)
     add f9d67e1a118 fix: downgrade deprecated query_object field warnings to info (#43520)
     add 396030d87e0 docs: remove stale Selenium references after Playwright-only switch (#44243)
     add 3fa06db85b6 fix(mcp): include feature_availability in instance://metadata resource (#44891)
     add 52d8b405c99 fix(echarts): recognize Date and ISO-string temporal x-axis values in getXAxisDomain (#44818)
     add 15bde2a3016 fix(native-filters): keep cascade dependency gate in sync with live filter type (#44366)
     add 11bdbc91f37 feat(ci): add Chromatic visual regression testing for Storybook (#44103)
     add 8d026b4a568 fix(mcp): skip dashboard live updates when websockets are disabled or realtime access is missing (#44796)
     add 7260916b905 test(dashboard): cover "View as table" end-to-end for a view-as-table-only role (#44881)
     add 646de3a46b5 test(clickhouse): cover GROUP BY ALL against a real instance (#40482) (#44879)
     add ba453d3cb43 fix(sec): sanitize HTML text before shown as impact item's label (#43825)
     add 2220f53d9db fix(chart): accept quarter and day in end-of time ranges (#43204)
     add 62ab4cae23d fix(sql-lab): avoid duplicate generated result column names (#44189)
     add 743a27f7ed3 fix(chart): sort Heatmap Y-axis by default when unset (#44588)
     add 87bb752814a fix(select): remove Space wrapper from optionRender to fix option label truncation (#44357)
     add d6689283942 fix(sql-lab): use function valueGetter for GridTable row numbers (#41574)
     add 10356c30edb fix(mcp): stop partial-update tools from advertising null defaults (#44573)
     add 6966c1f6ccb fix(cartodiagram): share Pie colors across locations in Explore (#44794)
     add 81466987cbb fix(mcp): use create_proxy in simple_proxy for fastmcp 4 compatibility (#44787)
     add ea79c63e878 fix(post-processing): stop treating gaps as zero for cumprod, cummin and cummax (#44828)
     add f1ae8909d85 fix(import): remove duplicate config redefinition in load_configs (#44932)
     add afa98f3391a perf(deletion-retention): one window pass for repeat predicate (#44349)
     add 3a9becd5cba chore(deps): bump markdown from 3.10.3 to 3.11 (#44941)
     add a65fe06c513 chore(deps-dev): update google-cloud-storage requirement from >=3.14.1 to >=3.15.0 (#44940)
     add 3960407334b chore(deps): bump cachetools from 7.1.8 to 7.2.0 (#44939)
     add dbd3e28aa3e chore(deps-dev): update databricks-sql-connector requirement from <4.6.0,>=4.5.0 to >=4.6.0,<4.7.0 (#44937)
     add 8ba26679671 chore(deps): bump holidays from 0.104 to 0.105 (#44936)
     add 291d098917b chore(deps): bump sqlglot from 30.18.0 to 30.19.0 (#44935)
     add 98be2d17dad chore(deps-dev): bump clickhouse-connect from 1.8.0 to 1.9.0 (#44934)
     add 549508b340b fix(mcp): preserve calling constraints in compact tool discovery (#44656)
     add f2ff458acde feat: Add GUI for label_colors in Dashboard Properties Modal (#39434)
     add 3fccf299469 test(opensearch): cover pagination and Content-Type regression against a real instance (#44924)
     add acdd390b354 fix(frontend): finish migrating off direct antd imports, enforce it in custom rules (#44927)
     add e72d63b20d8 test(mysql): cover require_mysql_tls fail-closed and verified-TLS paths (#44910)
     add e3bdb3894c0 test(oracle): cover cancel-query against a real running statement (#44908)
     add 5d158e7e795 test(cratedb): cover epoch-ms timestamp decoding against a real instance (#44904)
     add cdafffeacf5 fix(deps): restore dompurify 3.4.16 in frontend lockfile (#44960)
     add ccae7784982 fix(mypy): ignore false-positive union-attr on Slice.uuid.in_() (#44944)
     add 68f19947a80 docs(mcp): document semantic-layer MCP tools (#44130)
     add b5b8a9f3bd0 fix(dataset-editor): preserve edits across sort and sync external SQL changes (#44858)
     add 7a2913e2dbe fix(sqlite): write midnight as a bare date for DATE columns in time filters (#44805)
     add 46b9ba9587e chore(deps): bump dawidd6/action-download-artifact from 25 to 26 (#44977)
     add 3ac856ceb1a chore(deps): bump chromaui/action from 18.7.3 to 18.10.1 (#44973)
     add 7a62b3a6535 chore(deps-dev): bump postcss-styled-syntax from 0.7.2 to 0.7.3 in /superset-frontend (#44980)
     add bc69daa2328 chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in /superset-frontend (#44979)
     add fee8e1b9e52 chore(deps-dev): bump webpack-sources from 3.5.3 to 3.6.0 in /superset-frontend (#44978)
     add 343dcb09353 chore(deps): bump chalk from 6.0.0 to 6.0.1 in /superset-frontend (#44976)
     add d62fc92273b chore(deps-dev): bump vitest from 5.0.1 to 5.0.2 in /superset-embedded-sdk (#44974)
     add c00f6a7aabc chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in /superset-embedded-sdk (#44972)
     add 303a68b8e2c chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in /superset-websocket (#44971)
     add 83ea1d9e6f5 chore(deps-dev): bump vitest from 5.0.1 to 5.0.2 in /superset-websocket (#44970)
     add 31d2d06bba3 chore(deps): bump ws from 8.21.3 to 8.22.0 in /superset-websocket (#44969)
     add 7fecceb6901 chore: remove unused INCLUDE_FIREFOX build arg and dead screenshot config (#44245)
     add 09015bb4bff fix(explore): preserve pending column configuration edits (#44931)
     add 48ac1bf8c69 fix(mcp): return actionable authorized column suggestions (#44603)
     add 0616ba68afe chore(deps-dev): bump the swc group in /superset-frontend with 2 updates (#44975)
     add 13861568aaa chore(build): remove unused `polyline` Python dep (#44961)
     add 895bc203601 fix: full CSV download in AgGrid (#41696)
     add 3e50c2c1287 feat(mcp): support filter_range and filter_timegrain filters (#44893)
     add 0c6373cd9f0 fix(models): silence pandas silent-downcasting FutureWarning in normalize_df (#44897)
     add 2fdf756cf1a fix(mcp): avoid duplicate SQL execution results (#44949)
     add ce39d221aac fix(charts): return 404 when chart export hits an inaccessible dataset (#44900)
     add 13493a3e47f fix(mcp): allow bounding dashboard dataset columns (#44951)
     add 05a3d4b880f feat(mcp): return the Big Number headline from chart and dashboard data (#44948)
     add 8ff884059fd fix(logging): stop logging tracebacks for client-side HTTP errors (#44666)
     add 31e3c9a1944 fix(ag-grid-table): refresh totals when summary aggregation changes (#44612)
     add 71ee07e2e2b feat(ci): conditionally run CodeQL analysis workflows only when there are detected JS/Python file changes (#44699)
     add c30ae9fd12d fix(embedded): refuse guest row-level security on semantic views (#44987)
     add 9a345ad0112 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in /superset-websocket (#45005)
     add 7b463ddee08 feat(ag-grid-table): expand JSON values in table cells (#44907)
     add e0ff1074879 chore(i18n): update pt/pt_BR translations and rebuild translation index (#43022)
     add 6aebcd2452d fix(dashboards): close CSS validation gaps in dashboard import and edits (#43666)
     add 7b3ce2cf368 fix(themes): overwrite-import guard, missing index, dedupe extra_editors (follow-up to #42404) (#44362)
     add bc1abf498d4 feat(bignumber): add an alignment control (#44554)
     add 518bfbc5115 fix(reports): propagate force flag to dashboard-tab permalink report URLs (#44775)
     add 4578ab31ade refactor(list-view): eliminate any usage in ListView.tsx and TableCollection (#44208)
     add 7b3e3ad6f7f fix(dashboard,explore): wire addWarningToast into download callers (#44154)
     add f9e9ece86f5 chore(deps): bump the rjsf group in /superset-frontend with 3 updates (#45004)
     add 9e18d415d92 chore(deps-dev): bump @swc/core from 1.16.2 to 1.16.12 in /superset-frontend in the swc group (#45012)
     add 9d348facce9 chore(deps): bump @swc/core from 1.16.2 to 1.16.12 in /docs (#45008)
     add 457007b2f82 chore(deps-dev): bump source-map-js from 1.2.1 to 1.2.2 in /superset-websocket in the security group across 1 directory (#45028)
     add a5ffac58f44 feat: add global async query playwright tests (#43004)
     add 854d3d59e4d fix(table): omit dormant grains from semantic aggregate requests (#44455)
     add 000297a6f07 fix(semantic-layers): offer valid table ordering choices (#44806)
     add d6c871a57fb fix(semantic-layers): remove child view permissions when a layer is deleted (#44905)
     add 3413a50af05 chore(deps): bump proxy-addr from 2.0.7 to 2.0.8 in /superset-websocket/utils/client-ws-app in the security group across 1 directory (#45027)
     add 3cfc7458670 chore(deps): bump dawidd6/action-download-artifact from 26 to 27 (#45011)
     add 7330ca4c373 chore(deps): bump source-map-js from 1.2.1 to 1.2.2 in /superset-embedded-sdk in the security group across 1 directory (#45024)
     add fcee985241b fix(pivot-table): respect per-metric formatters in result aggregation (#44815)
     add 1473d481345 fix(query-context): match an adhoc granularity_sqla by its expression (#44773)
     add 17f4c215b37 feat(mcp): allow default values on filter_select native filters (#44985)
     add 5a2f4c8e80c feat(mcp): add structured dashboard text component management (#44560)
     add 55e39fc5f76 fix(explore): avoid mutating ZoomConfigControl configs (#44957)
     add 794b243c543 test(frontend): await remaining userEvent calls and lint for un-awaited ones (#44947)
     add 715dc017df1 fix(explore): open SQL Lab in a new tab on Ctrl+click in View query modal (#44933)
     add ac3fc943dd3 chore(deps): bump the security group across 1 directory with 9 updates (#45026)
     add f88b2ef2595 chore(deps): bump the security group across 1 directory with 6 updates (#45025)
     add fc1eeb066af chore(deps-dev): bump wait-on from 9.1.0 to 9.4.0 in /superset-frontend (#45015)
     add fc754d0e814 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in /superset-frontend (#45014)
     add ee7b7fdc908 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in /docs (#45009)
     add 27d5c3655de chore(deps-dev): bump the typescript-eslint group in /superset-frontend with 2 updates (#45007)
     add f3da949f61c chore(deps-dev): bump oxfmt from 0.70.0 to 0.71.0 in /superset-websocket (#45006)
     add a0f0cb8ae3d feat(mcp): support filter-bar dividers in manage_native_filters (#45021)
     add ec1688facd7 fix(mcp): state that dataset tools are SQL-only and point to semantic tools (#44994)
     add 388a10efdb1 fix(dashboards): return 404 when dashboard export hits an inaccessible chart or dataset (#44929)
     add d526ee4bd1f feat(semantic): add optional metadata refresh SDK contract (#44834)
     add 90b0a1a9160 fix(semantic): map layer views as a collection (#44902)
     add 6f6be95995e feat(retention): let a host install purge policies for its own soft-delete roots (#44892)
     add fca6bdad57b fix(semantic): reject SQL clauses on semantic views (#44899)
     add 888795b90f9 fix(security): bind contextual access checks to the datasource type and id (#45002)
     add ae297e910e7 fix(permalink): handle concurrent creation of identical dashboard permalinks (#45059)
     add 86a6d1dcf34 chore(deps-dev): bump @types/ws from 8.18.1 to 8.18.2 in /superset-websocket (#45045)
     add 9b7797f7b21 chore(deps): bump the storybook group in /docs with 2 updates (#45046)
     add 735365e2d18 chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#45047)
     add 11a22e5ceba fix(post-processing): stop duplicating columns in _append_columns (#45018)
     add 001cb574e39 feat(plugin-chart-echarts): add a value axis label control (#43660)
     add c4bc0b1e0cc fix(layout): restore growable app shell so injected content above #app doesn't clip it (#45056)
     add 1cf9569807c feat(pivot-table): collapse row groups by default (#45030)
     add 0cb498d08f2 fix(versioning): refuse a chart restore whose datasource no longer exists (#44925)
     add c1908747b16 fix(semantic): hide and ignore series limits that have no series columns (#44909)
     add 908d688171d fix(async): show the real error for a failed async chart query (#45054)
     add dbd546908a8 feat(semantic-layer): show provider queries from chart results (#44206)
     add 100f51240bd perf(security): batch dashboard fallback datasource resolution (#44993)
     add d27b7344087 fix(mcp): refuse changes to externally managed dashboards in all dashboard tools (#45062)
     add a8a828202f7 fix(versioning): preserve history across savepoint rollback (#45033)
     add 9c4ad2497df fix(cache): evict rejected cached GET requests (#45055)
     add bdbddb76dc7 fix(semantic): return a client error for unsupported time grains (#45053)
     add 0754a86b3e4 chore(deps-dev): bump vitest from 5.0.2 to 5.0.3 in /superset-websocket (#45072)
     add f4c16eb3a4f docs: add DouroECI logo and contributor to In the Wild (#45096)
     add 34b3d65cc20 fix(charts): clear perms of charts whose datasource no longer exists (#44926)
     add 72ee1fd60df fix(date_parser): use pyparsing snake_case API to silence PyparsingDeprecationWarning (#45094)
     add b3d8fdb6061 fix(mcp): don't page MCP_ERROR_HOOK for user-class errors in the last-resort catch (SC-125493) (#45093)
     add 1ebfea28efc feat: SIP-209 Improved Alerts & Reports (#44992)
     add b2bafd64fa2 chore(ci): configure more grouped dep upgrades across npm subprojects  (#44696)
     add b327d57165c fix(explore): skip Ctrl/Cmd+Enter query while controls have errors or chart is loading (#44963)
     add c45391c1689 fix(explore): show 0 zoom, latitude and longitude in the map view extent tag (#44962)
     add 6d090bec82e fix(explore): honor a controlled ControlPopover open prop (#44959)
     add b22144a76d4 fix(native-filters): show a clear error instead of "Network error" when filter values fail to load (#44585)
     add e10e268e992 fix(explore): dispatch datasource metadata fetch (#44958)
     add 489a02e3ea3 fix(semantic-layer): fail incomplete or unverified semantic query results (#44832)
     add e9862fb4ab2 fix(dashboard): refresh semantic metadata across edits (#45052)
     add 2ec20003ed5 chore: Update CODEOWNERS to include @sadpandajoe (#45120)
     add e5c5e918359 feat(mcp): add typed Sunburst chart support (#43771)
     add 4ca736d81c5 fix(semantic-layer): require write access for configuration schema enrichment (#45107)
     add 6efc896e5b9 test(dashboard): wait for async submenu and debounced validation in flaky tests (#45106)
     add 3bc9e9e479f fix(datasets): accept certification fields on dataset column and metric PUT (#45091)
     add cd34cc1019f chore(deps): bump chromaui/action from 18.10.1 to 18.10.2 (#45134)
     add 1b35374fecb fix(semantic-layer): honor provider preferred time dimension (#44997)
     add ffc81d92a2c feat(dashboard): add column allowlist to Group By native filter (#43736)
     add 3fc078abe6b fix(soft-delete): preserve a shared datasource permission on purge (#45034)
     add a4a0899e92c perf(versioning): defer capture policy until versioned work (#44928)
     add 99899bd392f fix(date-parser): reject malformed time ranges instead of scanning everything (#45098)
     add 13c5ff8c87f chore(deps-dev): bump wait-on from 9.4.0 to 9.5.1 in /superset-frontend (#45048)
     add 61df1692584 chore(deps): bump mapbox-gl from 3.31.0 to 3.32.0 in /superset-frontend (#45049)
     add 035ae052525 chore(deps-dev): bump vitest from 5.0.2 to 5.0.3 in /superset-embedded-sdk (#45074)
     add 9635e7f1f91 chore(deps): bump the swc group across 2 directories with 1 update (#45118)
     add 9e7a05e6ed1 chore(deps-dev): bump @types/node in /superset-embedded-sdk (#45121)
     add cda7a1e8189 chore(deps): bump swagger-ui-react from 5.33.0 to 5.33.1 in /docs (#45122)
     add cfb0ed61eb8 chore(deps): bump yargs from 18.1.0 to 18.2.0 in /superset-frontend (#45129)
     add a8fc576cfe3 chore(deps-dev): bump oxfmt in /docs (#45119)
     add cb8ff2885a6 fix(permalink): use a shared lock when re-reading a concurrently created permalink (#45102)
     add ab2c69f29cd fix(column-config): allow commas in D3 number formats (#45145)
     add e538ebfa2c9 feat(mcp): opt-in compact native tools/list and trimmed tool guidance (#45084)
     add 64b02eebed4 fix(mcp): add sort_by option to XYChartConfig (#42627) (#44464)
     add 1267bd1acee test(semantic-layer): pin layer list scoping to accessible layers (#45101)
     add 8aeb2850914 fix(mcp): keep isError through call_tool and test native tool surface parity (#45081)
     add d3c47f6212e chore(deps): bump slack-sdk from 3.44.1 to 3.45.0 (#45116)
     add 0edbccc71a8 chore(deps-dev): bump trino from 0.339.0 to 0.340.0 (#45117)
     add 5e6156a820c chore(deps-dev): bump gevent from 26.8.0 to 26.9.0 (#45115)
     add 461cf9e49af chore(deps): bump sqlalchemy-continuum from 1.7.0 to 1.8.0 (#45114)
     add 97ce269b962 chore(deps): bump cryptography from 50.0.1 to 50.0.2 (#45112)
     add 2918a7b94d1 feat(i18n): extract translator context comments from source (#44397)
     add 82223373a3a chore(deps-dev): update teradatasql requirement from >=20.0.0.68 to >=20.0.0.69 (#45162)
     add d48b8486851 chore(deps): bump msgpack from 1.2.2 to 1.2.3 (#45161)
     add 7e6aa124e1a chore(deps): bump pyjwt from 2.14.0 to 2.15.1 (#45159)
     add 8318398da46 chore(deps): bump the security group across 1 directory with 4 updates (#45143)
     add 5faa58e7d2b chore(deps-dev): bump pymssql from 2.4.1 to 2.4.2 (#45156)
     add b9e8188ad60 chore(deps): bump simplejson from 4.1.2 to 4.2.0 (#45158)
     add d7717743b1f test(utils): add unit test for scalar_to_sequence (#45144)
     add f9f2eb283d3 test(sql): pin Druid JSON_VALUE RETURNING parsing (#45131)
     add a55b236a5be fix(semantic-layer): fetch view metadata once per query (#45104)
     add 76b62d34fba fix(semantic-layer): preserve nullable integer precision in chart data (#45126)
     add 38ad1150ecf feat(retention): cap soft-delete purge and version-history prune per run (#45029)
     add 04db66b0f66 feat(semantic-layer): invalidate metadata caches on configuration save (#45100)
     add fd2740bec1e fix(charts): avoid loading semantic provider metadata before denying chart data access (#45060)
     add e229ea4a543 fix(mcp): resolve saved semantic-view chart sources by type (#45067)
     add af7978ae74d docs(mcp): document dashboard owner/role/certification governance tools (#43900)
     add bae6d10cebc chore(deps): bump react-resize-detector from 7.1.2 to 12.3.0 in /superset-frontend (#45124)
     add db7557a7a58 feat(mcp): add typed geographic chart generation (#44148)
     add 0e50b64263f fix(bigquery): filter __NULL__ and __UNPARTITIONED__ from max partition query (#44156)
     add aef1f70cdfd chore(deps): bump pyparsing from 3.3.2 to 3.3.3 (#45157)
     add 0ad650c507e chore(deps): bump mako from 1.4.1 to 1.4.3 (#45188)
     add 4dc7ba70ef3 chore(deps-dev): bump jsdom from 30.1.1 to 30.1.2 in /superset-embedded-sdk (#45194)
     add 1c116342642 chore(deps-dev): bump jsdom from 30.1.1 to 30.1.2 in /superset-frontend (#45201)
     add 713c41e0ba5 chore(deps-dev): bump stylelint from 17.15.0 to 17.16.0 in /superset-frontend (#45200)
     add 0c201b4dd2c chore(deps-dev): bump minimizer-webpack-plugin from 5.12.0 to 5.13.0 in /superset-frontend (#45196)
     add ea235f25b9e chore(deps-dev): bump google-cloud-bigquery from 3.45.2 to 3.46.1 (#45190)
     add 3579cbc6c68 chore(deps-dev): bump @storybook/test-runner from 0.24.5 to 0.26.0 in /superset-frontend in the storybook group (#45073)
     add 5e9e6beb4ac chore(deps): bump flask-compress from 1.24 to 1.25 (#45193)
     add e2dd50ab340 chore(deps-dev): bump grpcio from 1.83.1 to 1.84.0 (#45192)
     add 6d39864102a chore(deps): bump @googleapis/sheets from 18.0.1 to 18.1.0 in /superset-frontend (#45195)
     add bc98688d5ff docs: Improve README clarity and consistency (#38957)
     add 2c8665f9cbc fix(histogram): normalize before accumulating a cumulative histogram (#44652)
     add 726c1ef67c9 fix(impala): cancel pending SQL Lab operations through the live cursor (#44737)
     add 90dc7ac3289 fix(databricks): enable equality operators for boolean filters (#36765) (#44355)
     add c58db3b704d chore(deps): bump maplibre-gl from 6.11.2 to 6.12.0 in /superset-frontend (#45199)
     add 42bbfa49079 chore(deps-dev): update thrift requirement from <1.0.0,>=0.24.0 to >=0.25.0,<1.0.0 (#45191)
     add f4fe4e13c47 fix(mcp): support custom user models during dashboard and chart operations (#45036)
     add 88a14e9be56 docs(i18n): add a translation guide with shared principles (#45181)
     add a4cf0ff09e7 chore(ci): correct download-artifact version comment to v8.0.1 (#45212)
     add 209bdafc124 fix(tests): narrow nullable uuid before passing it to KeyValueDAO.get_entry (#45171)
     add 2747094d4c2 feat(mcp): add typed Bullet chart support (#43770)
     add 02304af9a99 fix(mypy): narrow nullable uuid/perm reads in chart restore version tests (#45080)
     add cd526f9e97d chore(deps-dev): bump fastmcp from 3.4.7 to 4.0.3 (#44200)
     add ea0687222a5 fix(dashboard): honour DASHBOARD_AUTO_REFRESH_INTERVALS in the refresh dropdown (#44982)
     add 11b6997a488 fix(dashboard): drop missing semantic-view controls on restore (#45130)
     add f923be702a1 fix(semantic-layer): report incompatible dashboard filters on semantic views instead of dropping them (#45105)
     add f774479c990 fix(mcp): allow chart filtering by dataset ID (#44950)
     add 60c66fe8d50 fix(explore): honor chart edit permissions for titles (#45146)
     add 59404f47cd3 feat(mcp): target semantic views in chart tools (#44393)
     add 945d8bbd632 fix(mcp): promote tools whose full names appear in a search query (#45149)
     add 63a7a6e4eca chore(deps): bump chrono-node from 2.10.1 to 2.10.2 in /superset-frontend (#45227)
     add dd1312b3c2b chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#45224)
     add aa321aab31d chore(deps): bump chromaui/action from 18.10.2 to 18.11.0 (#45222)
     add a26c984279c chore(deps-dev): bump oxlint from 1.86.0 to 1.87.0 in /docs (#45226)
     add 962272b6f20 feat(semantic-layer): allow toggling SEMANTIC_LAYERS at runtime (#45061)
     add f154d23a954 fix(dashboard): reconcile position_json against membership on save (#44028)
     add b39e1e0db71 chore(ci): correct upload-artifact version comment to v7.0.1 (#45229)
     add 8f13b2b2e69 chore(ci): correct upload-artifact version comment in translations workflow (#45213)
     add 9c70fa40159 chore(deps-dev): bump oxfmt from 0.71.0 to 0.72.0 in /docs (#45225)
     add 1cedab01e9e chore(deps): bump geostyler-openlayers-parser from 5.7.1 to 5.8.0 in /superset-frontend (#45077)
     add 0f875cadbe0 fix(network): refine address classification (#45230)
     add 1578b8cbc11 fix(semantic-layer): restore value suggestions for semantic view filters (#45109)
     add 6d974e19c51 fix(mcp): keep the saved chart variant when update_chart omits it (#45221)
     add f18c034a689 fix(connection): let SupersetClient.postForm accept an absolute url (#45204)
     add 1caea41f425 docs: give bare relative links an explicit extension (#43170)
     add e7ca70c784e fix(datasource): apply target-table access check on same-database repoint (#44080)
     add 1b10345f3bf docs(semantic-layer): write down member identity, grain, NULL and ordering rules in the SDK (#45108)
     add 61a0fd28ec6 fix(semantic-layer): improve credential entry and connection feedback (#45173)
     add 7aadf35e7d7 feat(mcp): accept a callable for MCP_DATASET_ROLE_ALLOWLIST (#45231)
     add 139a06eee15 chore(ci): correct upload-artifact version comment to v7.0.1 (#45211)
     add 4da3ab9277b refactor(db_engine_specs): dedupe boolean-coercion logic for Databricks/Spark (#45202)
     add 952ff3b22f4 perf(filters): use useDeferredValue in SelectFilterPlugin (#44880)
     add 488810d8395 fix(db-engine): make cachetools import optional in aws_iam (#38269)
     add 8503b6b0b5a fix: clamp table pagination index when filtered data shrinks (#31403) (#39661)
     add fb99e4b530a fix(embedded): fail closed when the guest-user check can't resolve a principal (#43896)
     add bffb5638015 fix(post-processing): raise when a rename would duplicate a column label (#45043)
     add 0cd13e92c1d fix(post-processing): keep the caller's index when parsing geography columns (#45086)
     add 6d4dc0d3363 fix(bigquery): expose STRUCT fields as columns on virtual datasets (#45150)
     add 333b6be7d71 fix(country-map): keep South Africa's islands in frame and fix hover … (#45000)
     add 85aa56420a8 fix(explore): XAxisSortControl follows the value prop (#44956)
     add fe46e76c510 fix(dashboard): remove duplicate spacing above out-of-scope filters section (#44954)
     add 8ace079d8de feat(semantic-layers): add safe containment result cache (#42760)
     add c0b713746b1 fix(mcp): make authlib.jose deprecation filter survive authlib's own simplefilter (#45219)
     add 963031c209f fix(graph): distinguish null categories from literal labels (#44790)
     add 1c4aba2453d docs(databases): refresh ClickHouse guide and support dark-theme logos (#44901)
     add 718572cf29a chore(deps-dev): bump sqlalchemy-hana from 3.0.3 to 5.0.0 (#45189)
     add d6c7ac23183 fix(mypy): silence superset-core mirror-case union-attr/assignment errors (#45138)
     add f7a1c8f33bd docs: fix broken anchor links in intro, README and tasks guide (#45206)
     add 8796ba16ae7 fix(clickhouse): bump Altinity.Cloud's documented clickhouse-connect floor (#45249)
     add 6ded7caa0a9 fix(mcp): refuse an update that would drop a SQL trendline column (#45236)
     add b840a4cef38 feat(plugin-chart-echarts): add cross-filtering to the Bubble chart (#45223)
     add 48eb96aa843 fix(releasing): various release tooling improvements (#45253)
     add f19a71be433 fix(semantic-layer): narrow ValidatedQueryObject.metrics to list[str] (#45185)
     add 3cbdff6b6b7 fix(mcp): reject unknown semantic compatibility selections (#45153)
     add 1fced034d37 fix(semantic-layer): return 4xx for provider validation errors in chart data (#45110)
     add 114d32b12d1 feat(semantic-layer): gate Table pagination on row offset support (#44452)
     add 55cb2eb0df5 fix(mcp): only flag get_catalog pages truncated when entries are held back (#45148)
     add f5404f7eae3 fix(semantic-layer): preserve NULL selections in chart filters (#45133)
     add 8175e0ecc7b fix(semantic-views): hide stale dependent options while they refresh (#44995)
     add d970d634f71 fix(mcp): reject apply_dashboard_filters select values missing from the data (#45242)
     add bf0a9cc3271 fix(semantic-layer): require data access for semantic view edits (#45154)
     add 81d4137b98b fix(semantic-layer): block deletion of sources with dependent assets (#45071)
     add 7f1bfaba4b2 fix(reports): apply the server-pagination row limit to embedded chart data (#45099)
     add f8e8cfe6e43 chore(openapi): regenerate the published spec for the semantic delete 409s (#45262)
     add ffee0a843f1 feat(db_engine_specs): enable MEDIAN/STDDEV_SAMP/VAR_SAMP for Databricks and Snowflake (#44627)
     add 0ce9b6ca46c chore(deps): bump urllib3 to 2.8.0 and werkzeug to 3.1.9 (#45255)
     add 5cf0b8c6046 test(semantic views): finish selected refreshes before test teardown (#45282)
     add bbc61ac3a78 chore(deps-dev): bump the swc group across 1 directory with 2 updates (#45290)
     add b411454508c chore(deps): bump the babel group across 2 directories with 5 updates (#45289)
     add 37c33788f69 fix(dashboard): bind native filter datasources by type so semantic views load (#45069)
     add fa0999745fb fix(explore): raise a validation error instead of asserting when an IN filter has no value (SC-124271) (#44986)
     add b9709c39576 chore(deps): bump js-yaml from 5.4.2 to 5.4.3 in /docs (#45291)
     add 367b6f5cbf5 chore(deps): bump maplibre-gl from 6.12.0 to 6.13.0 in /superset-frontend (#45295)
     add c969ac425d6 chore(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 (#45284)
     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 7ff5709882f fix(candlestick): give OHLC labels their own translatable strings (#45458)
     add 0f376ba9f97 fix(semantic-layers): show per-view errors when adding semantic views (#45524)
     add 190873e9832 fix(version-history): preview banner, history panel layout, scope labels and current-version marking (#45471)
     add 6dc0641c91a fix(reports): keep the first column header in XLSX exports of semantic-view tables (#45527)
     add 4e7e2b7390d fix(tests): narrow Optional StatementResult.data in async result tests (#45517)
     add 836c0f3f95d fix(table): reset default margins on the pagination list (#45365)
     add 8d3ade7e0a8 test(trino): close db_engine_spec test gaps (#45361)
     add 3d902d9eb3a chore(deps): bump the security group across 2 directories with 2 updates (#45542)
     add 527021d5819 chore(deps): bump react-virtualized-auto-sizer from 1.0.26 to 2.0.3 in /superset-frontend (#45197)
     add c11f993af37 fix(auth): close forced-password-change redirect loop and sweep stale legacy password perms from all roles (#44857)
     add 7d0e1c939ee fix(frontend): retry a failed lazy import before surfacing ChunkLoadError (#43215)
     add abc1b50f65d fix(mcp): clean up nits from PNG chart preview review (#45509)
     add b6ef0bf48d8 chore(tags): stop auto-generating type:/editor:/favorited_by: tags (#43471)
     add cb04282f501 chore(deps): bump swagger-ui-react from 5.33.1 to 5.33.2 in /docs (#45567)
     add f1d8161777c chore(deps): bump chromaui/action from 18.12.1 to 18.12.2 (#45564)
     add f9aec7515b4 chore(deps): bump actions/setup-java from 6.0.1 to 6.1.0 in the gh-actions group (#45563)
     add 75be8f981a6 feat(improvements): let deployments withhold assets from list queries and commands (#45451)
     add f9a0d8af493 chore(deps-dev): bump oxlint from 1.87.0 to 1.88.0 in /docs (#45566)
     add fa8a035fcf6 fix(mcp): stop rejecting titles that contain "data:" in prose (#45485)
     add e8824351f19 fix(mcp): isolate dashboard copies and clarify chart evidence (#45504)
     add cdc9430597c fix(db_engine_specs): patch oceanbase_py's dialect for SQLAlchemy 2.0 (#45507)
     add 00688c7871b chore(deps-dev): update pinotdb requirement from <10.0.0,>=8.0.0 to >=9.2.2,<10.0.0 (#45414)
     add 73737afbfbb chore(deps): bump pyarrow from 25.0.1 to 26.0.0 (#45412)
     add 067d536e216 chore(deps-dev): bump fastmcp from 3.4.7 to 4.1.0 (#45415)
     add b7bfbd365e6 chore(deps-dev): bump oxfmt in /docs (#45565)
     add 2b1046959d2 chore: bump pillow, certifi and geopy pins, tidy two small code nits (#45578)
     add 54aaf3ad7d7 fix(mcp): surface missing query_context warning in get_chart_data result (#45250)
     add fdb22260e25 fix(number-format): make the adaptive formatters follow D3_FORMAT (#45241)
     add c3279f01921 ci: skip jobs that cannot complete on forks and private mirrors (#45035)
     add 385844237e6 fix(explore): preserve zero thresholds in contour controls (#44966)
     add 3de22376c5c fix(dashboards): update last modified timestamp when adding chart to dashboard (#44305) (#44358)
     add 77ebc0e55f3 fix(chart): keep dataset_uuid in exports when the dataset is deleted (#44347)
     add 452dea81f23 chore(deps-dev): bump @playwright/test from 1.62.1 to 1.64.0 in /superset-frontend (#45371)
     add bc83e3e6fdb fix(mcp): propose a matching value when a dashboard filter value is rejected (#45547)
     add b129d6a4c12 fix(semantic-layer): narrow Filter|OrFilter unions in test helpers for mypy (#45268)
     add ff214bdfb14 fix(sqllab): clip multi-line result values to their row (#45487)
     add 62d22e0697c fix(semantic-layer): type the E2E stub filters for the full filter union (#45419)
     add 5eaad449f5c fix(import): return 422 instead of 500 for unsafe ZIP import bundles (#45440)
     add 676af61b1c9 fix(jinja): keep filters with 0 or false values in get_filters and fi… (#45437)
     add 47358be13c1 fix(import): return 422 instead of 500 for non-UTF-8 members in import bundles (#45424)
     add b4f8ca407a3 chore(deps-dev): bump vite from 8.3.1 to 8.3.5 in /superset-websocket in the security group across 1 directory (#45590)
     add 7ff7f9048bf fix(semantic-layer): handle absent fetch-values predicate (#45539)
     add 9ce458594fe fix(connection): encode next in the unauthorized login redirect (#45477)
     add 2304d1b80f2 fix(datasets): re-check statement count after query mutation (#45453)
     add 4bfd874c4cb fix(postprocessing): handle Decimal comparisons with zero baselines (#45467)
     add 4e5d0ef8f13 fix(models): keep NULL rows in NOT IN filters without a NULL value (#45305)
     add a0ebed9ff1a docs(auth): add Keycloak PKCE, logout and group-mapping example (#38092)
     add b3471a1369c fix(a11y): WCAG 1.4.1 — add non-color visual cues to status indicators (#39233)
     add 3297c39d94c docs(installation): describe the default image instead of lean in Docker Compose responsibilities (#45582)
     add 47300cf4c2f fix(mcp): pass time_grain as a string and keep annotation DB error classification (#45484)
     add 030f36a00c3 docs(extensions): move Semantic Layers into its own extension point page (#45630)
     add 578d43fef9b fix(listview): prevent table column layout shift on content change (#37299)
     add 97a536f37d9 feat(echarts): allow configuring minInterval on bar and line chart axes (#43515)
     add dfd84bf3d9e fix(mcp): only serve the browser hello page on the MCP endpoint (#45391)
     add 7fceb05c1ce docs(docker): drop redundant packages from custom image example, bump version numbers (#44240)
     add aabddf5b3f5 fix(semantic-layers): cap and time-bound bulk semantic view creation (#45532)
     add 2c275ed0a5b fix(echarts): restore series color markers in sanitized tooltips (#45505)
     add 98fac9104fb fix(datasets): validate metric d3format (#45633)
     add bf18152476a chore: stop forcing .ipynb as a binary attribute (#45602)
     add 87d1abb21e6 chore(frontend): let JEST_MAX_WORKERS cap the Jest worker pool locally (#45594)
     add 5cfcee95b4e fix(import): return 400 instead of 500 on malformed JSON in import form fields (#45579)
     add 44be9b819dd fix(bigquery): return empty extra metadata instead of 500 when table is not found (#45634)
     add 0689df740e2 fix(sql-lab): return 400 instead of 500 when stop_query is missing client_id (#45521)
     add 3b7001836c7 fix(charts): keep large nullable-integer dimensions exact (#45308)
     add 43006c1d054 fix(explore): omit constant Custom SQL dimensions from GROUP BY (#45271)
     add be40309811d fix: filter Sunburst temporal segments by bucket and invert Hours offset in grained filters (#45598)
     add d595becba71 test(explore): cover column config, conditional formatting, and contour controls (#44843)
     add b1c1d41b55f ci(docker): give the CI node image the workspace manifests so jobs stop reinstalling (#45606)
     add 8cd2ab1c2ca chore(deps): bump the security group across 2 directories with 1 update (#45645)
     add 2f6d51e7ae3 chore(deps-dev): bump vitest from 5.0.3 to 5.0.4 in /superset-websocket (#45629)
     add b4e592836a9 chore(deps-dev): bump jsdom from 30.1.2 to 30.1.3 in /superset-frontend (#45628)
     add 30df96241ff chore(deps): bump antd from 6.6.5 to 6.6.6 in /superset-frontend (#45627)
     add f5eaf7c4f7c chore(deps): bump postcss from 8.5.28 to 8.5.30 in /superset-frontend (#45626)
     add c505b8b4916 chore(deps-dev): bump vitest from 5.0.3 to 5.0.4 in /superset-embedded-sdk (#45625)
     add dffb06978cd chore(deps-dev): bump jsdom from 30.1.2 to 30.1.3 in /superset-embedded-sdk (#45624)
     add 6752eef54c3 chore(deps): bump antd from 6.6.5 to 6.6.6 in /docs (#45623)
     add 9b3f66df370 chore(deps): bump zizmorcore/zizmor-action from 0.6.4 to 0.7.1 (#45621)
     add 09edc1a2c6e chore(deps): bump the codeql group with 3 updates (#45620)
     add 0454c5e940c chore(frontend): upgrade to TypeScript 7 (#45603)
     add 3f4f772efef ci(storybook): use every core for story tests and install deps for Chromium only (#45600)
     add 3823c6dc2c5 chore(i18n): sync translation catalogs with messages.pot (#45583)
     add 424c34c695d fix(security): stop dataset editorship from authorizing new SQL (#45342)
     add 3f77b342cb8 fix(explore): persist aliased column config by real key (#44955)
     add 89840862d6f chore(deps-dev): bump vitest from 5.0.4 to 5.0.5 in /superset-websocket (#45669)
     add eeb2fc2ff36 chore(deps-dev): bump vitest from 5.0.4 to 5.0.5 in /superset-embedded-sdk (#45666)
     add 5877cb58db8 chore(deps): bump swagger-ui-react from 5.33.2 to 5.33.3 in /docs (#45665)
     add ff50234bf25 chore(deps): bump js-yaml from 5.4.3 to 5.5.0 in /docs (#45664)
     add d0897f77c93 chore(deps): bump chromaui/action from 18.12.2 to 18.13.0 (#45662)
     add d0116153376 feat(dashboard): expose authorized chart display labels (#45552)
     add c016883970d fix(dataset): preserve pending metric and column edits (#45506)
     add 23f10960f5a feat(plugin-chart-echarts): let users hide legend All/Invert buttons (#45172)
     add 6114b81c928 feat(ci): label PRs/issues from UTSC 2026 students (#45656)
     add 30584517b5b fix(mypy): type-check dataset export in full-tree mypy (#45616)
     add 026ca216cb2 fix(sqllab): implement query cancellation for ClickHouse (Stop button) (#45070)
     add 55801123a82 docs(security): drop deprecated SESSION_USE_SIGNER and dedupe the server-side session example (#45635)
     add 472c3e4afd8 fix(tests): make deep nested sidecar fallback test interpreter-independent (#45657)
     add db8ab20f90c ci(e2e): cache a pg_dump of the loaded examples for the Playwright jobs (#45601)
     add 99b472bef74 fix(dashboard): saving a dashboard that contains an archived chart no longer fails (#45543)
     add eee2c16c8c7 fix(mcp): check chart access before adding dashboard charts (#45535)
     add 8b9767ff263 fix(versioning): retryable error when a dashboard restore races a chart purge (#45551)
     add a0dac704101 feat(dashboard): first-class iframe component with runtime CSP allowlist
     add 4e687917852 docs(sip): add dashboard component contribution-point SIP
     add 0391eec0c41 feat(dashboard): dashboardComponents Extensions contribution point
     add 8ef58728542 feat(dashboard): per-component behavior policy + extension docs
     add c9458533a28 fix(dashboard): drop allow-same-origin from iframe sandbox; add CSP regression test
     add ae69db02075 fix(migrations): rebase csp_allowlist migration onto current head

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (95b0ba80438)
            \
             N -- N -- N   refs/heads/feat/csp-runtime-allowlist-iframe (ae69db02075)

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

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

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |     2 +-
 .codecov.yml                                       |     2 -
 .cursor/rules/dev-standard.mdc                     |     4 +-
 .devcontainer/Dockerfile                           |     2 +-
 .devcontainer/devcontainer-base.json               |     2 +-
 .dockerignore                                      |     1 -
 .envrc.example                                     |     1 -
 .gitattributes                                     |     1 -
 .github/CODEOWNERS                                 |    22 +-
 .github/ISSUE_TEMPLATE/bug-report.yml              |     2 +-
 .github/ISSUE_TEMPLATE/cosmetic.md                 |     2 +-
 .github/actions/change-detector/action.yml         |     8 +
 .github/actions/change-detector/label-draft-pr.yml |    23 -
 .github/actions/chart-testing-action               |     1 -
 .github/actions/comment-on-pr                      |     1 -
 .github/actions/latest-tag                         |     1 -
 .github/actions/setup-backend/action.yml           |    11 +-
 .github/actions/setup-docker/action.yml            |     9 +-
 .github/dependabot.yml                             |   116 +-
 .github/labeler.yml                                |    14 +-
 .github/utsc2026-students.yml                      |    63 +
 .github/workflows/asf-allowlist-check.yml          |    46 +
 .github/workflows/bashlib.sh                       |   339 +-
 .github/workflows/bump-python-package.yml          |     4 +-
 .github/workflows/caches.js                        |     6 -
 .github/workflows/check-db-migration-confict.yml   |    27 +-
 .github/workflows/check-openapi-spec-drift.yml     |    99 +
 .github/workflows/check-python-deps.yml            |     4 +-
 .github/workflows/chromatic.yml                    |   134 +
 .github/workflows/codeql-analysis.yml              |    34 +-
 .github/workflows/dependency-review.yml            |    23 +-
 .github/workflows/docker.yml                       |   407 +-
 .github/workflows/embedded-sdk-release.yml         |     2 +-
 .github/workflows/embedded-sdk-test.yml            |     2 +-
 .../workflows/enforce-single-migration-head.yml    |     2 +-
 .github/workflows/frontend-bundle-size-nightly.yml |     8 +-
 .github/workflows/generate-FOSSA-report.yml        |     2 +-
 .github/workflows/github-action-validator.yml      |    22 +-
 .github/workflows/hold-label-ci-gate.yml           |     4 +-
 .github/workflows/issue-creation.yml               |     2 +-
 .github/workflows/latest-release-tag.yml           |    42 -
 .github/workflows/license-check.yml                |     2 +-
 .github/workflows/mirror-service-images.yml        |     2 +-
 .github/workflows/pr-lint.yml                      |     8 +-
 .github/workflows/pre-commit.yml                   |    20 +-
 .github/workflows/python-nightly-canary.yml        |   103 +
 .github/workflows/release.yml                      |     2 +-
 .../workflows/scheduled-docker-image-refresh.yml   |   187 -
 .../scripts/check-code-scanning-available.sh       |    64 +
 .../scripts/check-code-scanning-available.test.sh  |   118 +
 .github/workflows/showtime-cleanup.yml             |     3 +
 .github/workflows/showtime-trigger.yml             |    26 +-
 .github/workflows/superset-app-cli.yml             |    12 +-
 .github/workflows/superset-docs-deploy.yml         |    19 +-
 .github/workflows/superset-docs-verify.yml         |    11 +-
 .github/workflows/superset-e2e.yml                 |   389 +-
 .github/workflows/superset-extensions-cli.yml      |    10 +-
 .github/workflows/superset-frontend.yml            |    41 +-
 .github/workflows/superset-helm-lint-test.yml      |    15 +-
 .github/workflows/superset-playwright.yml          |   197 -
 .../workflows/superset-python-integrationtest.yml  |   128 +-
 .github/workflows/superset-python-presto-hive.yml  |    54 +-
 .../workflows/superset-python-unittest-report.yml  |     6 +-
 .github/workflows/superset-python-unittest.yml     |    63 +-
 .../workflows/superset-translations-comment.yml    |     4 +-
 .github/workflows/superset-translations.yml        |    42 +-
 .github/workflows/superset-websocket.yml           |     8 +-
 .github/workflows/supersetbot.yml                  |     2 +-
 .github/workflows/tag-release.yml                  |    61 +-
 .github/workflows/tech-debt.yml                    |     2 +-
 .github/workflows/testcontainers.yml               |   191 +
 .github/workflows/utsc2026-labeler.yml             |    57 +
 .gitignore                                         |     2 +
 .gitmodules                                        |     9 -
 .grype.yaml                                        |    39 +
 .pre-commit-config.yaml                            |    61 +-
 .rat-excludes                                      |     1 +
 AGENTS.md                                          |    18 +-
 Dockerfile                                         |   192 +-
 Makefile                                           |     8 -
 README.md                                          |    15 +-
 RELEASING/Dockerfile.from_local_tarball            |    13 +-
 RELEASING/Dockerfile.from_svn_tarball              |    13 +-
 RELEASING/README.md                                |    23 +-
 RELEASING/changelog.py                             |   220 +-
 RELEASING/requirements.txt                         |     2 +
 RESOURCES/INTHEWILD.yaml                           |    18 +-
 RESOURCES/STANDARD_ROLES.md                        |     6 -
 SECURITY.md                                        |    14 +
 UPDATING.md                                        |  1704 +-
 docker-compose-image-tag.yml                       |     2 +-
 docker-compose-light.yml                           |     5 +-
 docker-compose-non-dev.yml                         |    40 +-
 docker-compose.yml                                 |    28 +-
 docker/.env                                        |     9 +-
 docker/.env-local.example                          |     1 -
 docker/apt-install.sh                              |     8 +
 docker/docker-bootstrap.sh                         |     7 -
 docker/docker-entrypoint-initdb.d/cypress-init.sh  |    28 -
 docker/docker-frontend.sh                          |     6 +-
 docker/docker-init.sh                              |    59 +-
 docker/entrypoints/docker-ci.sh                    |     6 +-
 docker/entrypoints/run-server.sh                   |     9 +
 docker/entrypoints/run-websocket.sh                |    44 +
 docker/pythonpath_dev/superset_config.py           |    13 -
 docker/superset-websocket/config.example.json      |     4 +-
 docs/DOCS_CLAUDE.md                                |    23 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |   332 +-
 .../configuration/async-queries-celery.mdx         |     7 +
 docs/admin_docs/configuration/cache.mdx            |   165 +-
 .../configuration/configuring-superset.mdx         |   191 +
 .../admin_docs/configuration/country-map-tools.mdx |     2 +-
 .../configuration/dashboard-performance.mdx        |     4 +-
 docs/admin_docs/configuration/event-logging.mdx    |    27 +-
 docs/admin_docs/configuration/feature-flags.mdx    |    29 +
 docs/admin_docs/configuration/google-sheets.mdx    |    49 +
 .../importing-exporting-datasources.mdx            |    74 +
 docs/admin_docs/configuration/mcp-server.mdx       |  1616 +-
 docs/admin_docs/configuration/theming.mdx          |   178 +
 docs/admin_docs/installation/docker-builds.mdx     |   159 +-
 docs/admin_docs/installation/docker-compose.mdx    |    10 +-
 .../installation/installation-methods.mdx          |     8 +-
 docs/admin_docs/installation/kubernetes.mdx        |   460 +-
 docs/admin_docs/security/oauth.mdx                 |   318 +
 docs/admin_docs/security/securing_superset.mdx     |     8 +-
 docs/admin_docs/security/security.mdx              |   164 +-
 .../version-6.1.0/installation/docker-compose.mdx  |     2 +-
 .../version-6.1.0/installation/kubernetes.mdx      |     2 +-
 .../version-6.1.0/security/securing_superset.mdx   |     3 -
 .../version-6.1.0/security/security.mdx            |    13 +-
 docs/data/countries.json                           |     1 +
 docs/developer_docs/api.mdx                        |    27 +-
 .../contributing/development-setup.md              |    29 +-
 docs/developer_docs/contributing/howtos.md         |   138 +-
 docs/developer_docs/contributing/overview.md       |     2 +-
 .../contributing/translation-guide.md              |   104 +
 .../developer_docs/extensions/components/alert.mdx |     4 +-
 .../developer_docs/extensions/components/index.mdx |     4 +-
 .../extensions/contribution-types.md               |    29 +-
 docs/developer_docs/extensions/development.md      |    37 +
 .../extensions/extension-points/chat.md            |     4 +
 .../extensions/extension-points/semantic-layers.md |   520 +
 docs/developer_docs/extensions/mcp.md              |   121 +
 docs/developer_docs/extensions/overview.md         |    22 +-
 docs/developer_docs/extensions/quick-start.md      |     2 +-
 docs/developer_docs/extensions/tasks.md            |   194 +-
 .../guidelines/frontend-style-guidelines.md        |     2 +-
 docs/developer_docs/semantic-layer-cache-clear.md  |   107 +
 docs/developer_docs/semantic-query-errors.md       |   101 +
 .../developer_docs/semantic-result-completeness.md |    70 +
 docs/developer_docs/sidebars.js                    |     1 +
 docs/developer_docs/testing/backend-testing.md     |     3 +-
 docs/developer_docs/testing/e2e-testing.md         |    28 +-
 docs/developer_docs/testing/overview.md            |     2 +-
 docs/developer_docs/testing/testing-guidelines.md  |    31 +-
 .../version-6.1.0/api.mdx                          |   552 +-
 docs/docs/faq.mdx                                  |    15 +-
 docs/docs/index.mdx                                |     8 +-
 docs/docs/quickstart.mdx                           |     3 +
 .../creating-your-first-dashboard.mdx              |   146 +-
 docs/docs/using-superset/embedding.mdx             |   123 +-
 docs/docs/using-superset/exploring-data.mdx        |   166 +
 .../using-superset/exporting-dashboard-data.mdx    |   178 +-
 docs/docs/using-superset/handlebars-chart.mdx      |    76 +-
 docs/docs/using-superset/number-formatting.mdx     |    18 +-
 docs/docs/using-superset/recently-archived.mdx     |   334 +-
 .../using-superset/semantic-layer-connections.mdx  |    80 +
 .../using-superset/semantic-member-selections.mdx  |   114 +
 docs/docs/using-superset/sql-templating.mdx        |     4 +-
 .../docs/using-superset/using-ai-with-superset.mdx |   288 +-
 docs/docs/using-superset/version-history.mdx       |   279 +-
 docs/docusaurus.config.ts                          |    54 +-
 docs/eslint.config.js                              |    71 -
 docs/netlify.toml                                  |     7 +-
 docs/oxlint.json                                   |   139 +
 docs/package.json                                  |    45 +-
 docs/scripts/fix-openapi-spec.py                   |     1 -
 docs/scripts/generate-api-index.mjs                |     1 -
 docs/scripts/generate-database-docs.mjs            |    91 +-
 docs/sidebarTutorials.js                           |     2 +
 docs/sip/median-stddev-variance-aggregates.md      |   236 +
 docs/sip/pivot-table-aggregation-parity.md         |   112 +
 docs/src/components/databases/DatabaseLogo.tsx     |    62 +
 docs/src/components/databases/DatabaseLogoWall.tsx |     9 +-
 docs/src/components/databases/DatabasePage.tsx     |    59 +-
 docs/src/components/databases/types.ts             |     8 +
 docs/src/data/databases.json                       |   136 +-
 docs/src/pages/community.tsx                       |     2 +-
 docs/src/pages/index.tsx                           |    11 +-
 docs/static/feature-flags.json                     |    51 +-
 docs/static/img/databases/clickhouse-dark.svg      |   Bin 0 -> 4480 bytes
 docs/static/img/databases/clickhouse-mark-dark.svg |   Bin 0 -> 960 bytes
 docs/static/img/databases/clickhouse-mark.svg      |   Bin 0 -> 963 bytes
 docs/static/img/databases/clickhouse.svg           |   Bin 0 -> 4483 bytes
 docs/static/img/databases/singlestore.png          |   Bin 15978 -> 9806 bytes
 docs/static/img/logos/douroeci.png                 |   Bin 0 -> 22657 bytes
 docs/static/img/logos/plum.svg                     |   Bin 0 -> 4215 bytes
 docs/static/img/logos/savantly.png                 |   Bin 0 -> 5787 bytes
 docs/static/img/logos/veremes.svg                  |   Bin 0 -> 5469 bytes
 .../img/version-history/recently-archived.jpg      |   Bin 0 -> 23897 bytes
 .../img/version-history/version-history-panel.jpg  |   Bin 0 -> 19792 bytes
 .../version-history/version-history-preview.jpg    |   Bin 0 -> 64287 bytes
 docs/static/llms.txt                               |     2 +-
 docs/static/resources/openapi.json                 | 29394 +++++++++----------
 docs/tsconfig.json                                 |    29 +-
 .../version-6.0.0/installation/docker-compose.mdx  |     2 +-
 .../version-6.0.0/installation/kubernetes.mdx      |     2 +-
 .../version-6.0.0/intro.md                         |     2 +-
 .../version-6.0.0/security/security.mdx            |     2 -
 .../databases/supported/apache-doris.mdx           |     8 +
 .../version-6.1.0/databases/supported/mysql.mdx    |    18 +
 .../version-6.1.0/index.mdx                        |     2 +-
 .../version-6.1.0/intro.md                         |     2 +-
 .../using-superset/handlebars-chart.mdx            |    76 +-
 docs/yarn.lock                                     |  3641 +--
 helm/superset/Chart.yaml                           |     7 +-
 helm/superset/README.md                            |    11 +-
 helm/superset/README.md.gotmpl                     |     7 +
 helm/superset/values.yaml                          |     5 +-
 pyproject.toml                                     |   230 +-
 pytest.ini                                         |     8 +-
 requirements/base.in                               |    16 +-
 requirements/base.txt                              |    78 +-
 requirements/development.in                        |    45 +-
 requirements/development.txt                       |   335 +-
 scripts/benchmark_migration.py                     |     2 +-
 scripts/change_detector.py                         |    87 +-
 scripts/check-type.js                              |     6 +-
 scripts/cypress_run.py                             |   167 -
 scripts/docker-build-extra-flags.sh                |    49 +-
 scripts/docker-build-plan.sh                       |    50 +
 scripts/docker-compose-up.sh                       |     4 -
 scripts/docker-publish-guard.sh                    |    53 +
 scripts/docker_release_target.py                   |   129 +
 scripts/eslint.sh                                  |    30 -
 scripts/oxfmt.sh                                   |    56 +
 scripts/translations/babel_update.sh               |    22 +-
 scripts/translations/backfill_po.py                |    79 +-
 scripts/translations/check_pot_drift.py            |   301 +
 superset-core/pyproject.toml                       |     5 +-
 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   |    13 +-
 superset-core/src/superset_core/rest_api/api.py    |     3 -
 .../src/superset_core/rest_api/decorators.py       |     3 -
 .../src/superset_core/semantic_layers/__init__.py  |    18 +
 .../src/superset_core/semantic_layers/context.py   |    62 +
 .../src/superset_core/semantic_layers/daos.py      |     3 -
 .../superset_core/semantic_layers/decorators.py    |     3 -
 .../src/superset_core/semantic_layers/errors.py    |    76 +
 .../src/superset_core/semantic_layers/layer.py     |    99 +-
 .../src/superset_core/semantic_layers/models.py    |     3 -
 .../src/superset_core/semantic_layers/testing.py   |    61 +
 .../src/superset_core/semantic_layers/types.py     |   186 +-
 .../src/superset_core/semantic_layers/view.py      |   113 +-
 superset-core/src/superset_core/tasks/daos.py      |     3 -
 .../src/superset_core/tasks/decorators.py          |    15 +-
 superset-core/src/superset_core/tasks/models.py    |    73 +-
 .../src/superset_core/tasks/subscription.py        |   140 +
 superset-core/src/superset_core/tasks/types.py     |    96 +-
 .../tests/semantic_layers/example_provider.py      |   167 +
 superset-core/tests/semantic_layers/test_errors.py |    66 +
 .../semantic_layers/test_execution_context.py      |    71 +
 .../tests/semantic_layers/test_registration.py     |   153 +
 superset-core/tests/semantic_layers/test_view.py   |    96 +
 superset-embedded-sdk/.npmrc                       |     1 +
 superset-embedded-sdk/package-lock.json            |  4607 ++-
 superset-embedded-sdk/package.json                 |    22 +-
 superset-embedded-sdk/src/index.test.ts            |   349 +-
 superset-embedded-sdk/src/index.ts                 |   374 +-
 superset-embedded-sdk/testrig/README.md            |    89 +
 superset-embedded-sdk/testrig/drive.mjs            |   655 +
 superset-embedded-sdk/testrig/embedded.html        |   127 +
 superset-embedded-sdk/testrig/host.html            |   239 +
 superset-embedded-sdk/testrig/server.mjs           |   199 +
 superset-embedded-sdk/tsconfig.json                |     2 +
 superset-extensions-cli/README.md                  |     5 +
 .../src/superset_extensions_cli/cli.py             |    10 +-
 .../templates/frontend/package.json.j2             |     9 +-
 superset-extensions-cli/tests/test_cli_build.py    |   135 +-
 superset-frontend/.gitignore                       |     2 -
 superset-frontend/.npmrc                           |     1 +
 superset-frontend/.storybook/main.mjs              |    33 +-
 .../.storybook/playwright.storybook-ci.config.ts   |    38 +
 superset-frontend/.storybook/setup-stories.test.ts |   156 +
 superset-frontend/.storybook/setup-stories.ts      |   179 +
 superset-frontend/.storybook/stories.spec.ts       |    26 +
 superset-frontend/.storybook/test-runner.ts        |    38 -
 superset-frontend/babel.config.js                  |     6 +-
 superset-frontend/changelog.config.js              |     2 +-
 .../custom-lint-rules/i18n-strings/index.js        |   250 +
 .../i18n-strings/no-eager-t-in-config.test.ts      |    87 +
 .../i18n-strings/no-template-vars.test.ts          |    73 +
 .../custom-lint-rules/i18n-strings/package.json    |    20 +
 superset-frontend/custom-lint-rules/icons/index.js |   113 +
 .../custom-lint-rules/icons/no-fontawesome.test.ts |    73 +
 .../custom-lint-rules/icons/package.json           |    20 +
 .../custom-lint-rules/theme-colors/colors.js       |   175 +
 .../custom-lint-rules/theme-colors/index.js        |   199 +
 .../theme-colors/no-literal-colors.test.ts         |    81 +
 .../custom-lint-rules/theme-colors/package.json    |    20 +
 superset-frontend/cypress-base/.eslintrc           |    41 -
 superset-frontend/cypress-base/.gitignore          |     4 -
 superset-frontend/cypress-base/cypress.config.ts   |    84 -
 .../cypress/e2e/dashboard/drilltodetail.test.ts    |   614 -
 .../e2e/dashboard/shared_dashboard_functions.ts    |   201 -
 .../cypress-base/cypress/e2e/dashboard/utils.ts    |   559 -
 .../cypress-base/cypress/e2e/explore/chart.test.js |   157 -
 .../cypress-base/cypress/e2e/explore/utils.ts      |    76 -
 .../e2e/explore/visualizations/shared.helper.js    |   139 -
 .../cypress-base/cypress/fixtures/charts.json      |    38 -
 .../cypress-base/cypress/fixtures/dashboards.json  |    46 -
 .../cypress-base/cypress/support/directories.ts    |   678 -
 .../cypress-base/cypress/support/e2e.ts            |   455 -
 .../cypress-base/cypress/support/index.d.ts        |    92 -
 .../cypress-base/cypress/utils/index.ts            |   121 -
 .../cypress-base/cypress/utils/parsePostForm.ts    |    60 -
 .../cypress-base/cypress/utils/urls.ts             |    26 -
 .../cypress-base/cypress/utils/vizPlugins.ts       |   104 -
 superset-frontend/cypress-base/package-lock.json   | 15039 ----------
 superset-frontend/cypress-base/package.json        |    51 -
 superset-frontend/cypress-base/tsconfig.json       |    16 -
 superset-frontend/cypress_build.sh                 |    46 -
 .../eslint-plugin-i18n-strings/index.ts            |   232 -
 .../no-eager-t-in-config.test.ts                   |    86 -
 .../no-template-vars.test.ts                       |    71 -
 .../eslint-plugin-i18n-strings/package.json        |    16 -
 .../eslint-rules/eslint-plugin-icons/index.ts      |    94 -
 .../eslint-plugin-icons/no-fontawesome.test.ts     |    68 -
 .../eslint-rules/eslint-plugin-icons/package.json  |    16 -
 .../eslint-plugin-theme-colors/colors.ts           |   174 -
 .../eslint-plugin-theme-colors/index.ts            |   162 -
 .../eslint-plugin-theme-colors/package.json        |    13 -
 superset-frontend/eslint.config.minimal.js         |   131 -
 superset-frontend/jest.config.js                   |    56 +-
 superset-frontend/oxlint.custom-lint-rules.mts     |   121 +
 superset-frontend/oxlint.json                      |    23 +-
 superset-frontend/package-lock.json                | 13284 ++++-----
 superset-frontend/package.json                     |   279 +-
 .../plugin-chart/templates/babel.config.erb        |     1 +
 .../templates/test/__mocks__/mockExportString.js   |     1 +
 .../packages/generator-superset/package.json       |     9 +-
 .../generator-superset/test/plugin-chart.test.ts   |     6 +-
 .../packages/superset-core/package.json            |     8 +-
 .../superset-core/src/theme/GlobalStyles.test.tsx  |    67 +
 .../superset-core/src/theme/GlobalStyles.tsx       |     9 +-
 .../packages/superset-core/src/theme/types.ts      |     6 +
 .../superset-core/src/translation/index.ts         |     4 -
 .../superset-core/src/translation/types/index.ts   |     4 +-
 .../superset-core/src/translation/types/jed.ts     |     2 -
 .../packages/superset-core/tsconfig.json           |    18 +-
 .../superset-ui-chart-controls/package.json        |     4 +-
 .../src/components/MetricOption.tsx                |    16 +-
 .../src/operators/resampleOperator.ts              |     3 +
 .../src/operators/utils/extractExtraMetrics.ts     |     4 +-
 .../src/sections/advancedAnalytics.tsx             |    24 +
 .../src/sections/sections.tsx                      |     7 +
 .../src/sections/timeComparison.tsx                |     6 +
 .../components/RadioButtonControl.tsx              |     9 +-
 .../src/shared-controls/dndControls.tsx            |     1 +
 .../src/shared-controls/matrixifyControls.tsx      |     1 +
 .../src/shared-controls/sharedControls.tsx         |    34 +-
 .../superset-ui-chart-controls/src/types.ts        |    27 +-
 .../src/utils/D3Formatting.ts                      |     1 +
 .../src/utils/getColorFormatters.ts                |   288 +-
 .../src/utils/getTemporalColumns.ts                |     4 +-
 .../src/utils/getTotalsMetrics.test.ts             |    29 +-
 .../src/utils/getTotalsMetrics.ts                  |    42 +-
 .../src/utils/headerGroups.test.ts                 |  1239 +
 .../src/utils/headerGroups.ts                      |   961 +
 .../superset-ui-chart-controls/src/utils/index.ts  |     2 +
 .../src/utils/isServerPaginationUnsupported.ts     |    70 +
 .../src/utils/isSortable.ts                        |    10 +
 .../src/utils/metricColumnFilter.ts                |     4 +-
 .../test/components/MetricOption.test.tsx          |    23 +
 .../test/operators/resampleOperator.test.ts        |    43 +
 .../components/RadioButtonControl.test.tsx         |     6 +-
 .../test/utils/getColorFormatters.test.ts          |   456 +-
 .../test/utils/isSortable.test.ts                  |     9 +
 .../superset-ui-chart-controls/tsconfig.json       |    18 +-
 .../superset-ui-core/__mocks__/mockExportObject.js |     3 +-
 .../superset-ui-core/__mocks__/mockExportString.js |     3 +-
 .../packages/superset-ui-core/package.json         |    34 +-
 .../Matrixify/MatrixifyGridCell.test.tsx           |   273 +-
 .../components/Matrixify/MatrixifyGridCell.tsx     |   127 +-
 .../Matrixify/MatrixifyGridGenerator.test.ts       |   153 +
 .../components/Matrixify/MatrixifyGridGenerator.ts |    71 +-
 .../components/Matrixify/virtualizationEvents.ts   |    82 +
 .../src/chart/components/StatefulChart.test.tsx    |   298 +-
 .../src/chart/components/StatefulChart.tsx         |   108 +-
 .../packages/superset-ui-core/src/chart/index.ts   |     8 +-
 .../src/chart/models/ChartMetadata.ts              |     9 +
 .../src/chart/models/ChartProps.ts                 |    32 +-
 .../superset-ui-core/src/chart/types/Base.ts       |    13 +-
 .../src/chart/types/QueryResponse.ts               |     2 -
 .../src/chart/types/TransformFunction.ts           |     2 -
 .../superset-ui-core/src/chart/types/VizType.ts    |     2 +
 .../components/ActionButton/ActionButton.test.tsx  |    10 +-
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |    88 +
 .../src/components/AsyncAceEditor/index.tsx        |     4 +-
 .../components/CachedLabel/TooltipContent.test.tsx |    25 +
 .../src/components/CachedLabel/TooltipContent.tsx  |    21 +-
 .../src/components/CachedLabel/index.tsx           |    14 +-
 .../src/components/CachedLabel/types.ts            |     3 +
 .../src/components/Checkbox/Checkbox.test.tsx      |     5 +-
 .../components/ConfirmModal/ConfirmModal.test.tsx  |     8 +-
 .../ConfirmStatusChange.test.tsx                   |    41 +
 .../src/components/ConfirmStatusChange/index.tsx   |     6 +
 .../src/components/ConfirmStatusChange/types.ts    |    11 +
 .../src/components/CronPicker/CronPicker.test.tsx  |    28 +-
 .../src/components/CronPicker/index.tsx            |     6 +-
 .../components/DeleteModal/DeleteModal.test.tsx    |   165 +-
 .../src/components/DeleteModal/index.tsx           |    37 +-
 .../src/components/DeleteModal/types.ts            |    29 +-
 .../src/components/Descriptions/index.tsx          |     0
 .../DropdownButton/DropdownButton.test.tsx         |    14 +
 .../DropdownContainer/DropdownContainer.test.tsx   |    99 +
 .../DropdownContainer/DropdownContainer.tsx        |    13 +-
 .../src/components/DropdownContainer/types.ts      |     4 +-
 .../DynamicEditableTitle.regression.test.tsx       |   115 -
 .../DynamicEditableTitle.test.tsx                  |   184 +-
 .../src/components/DynamicEditableTitle/index.tsx  |    23 +-
 .../superset-ui-core/src/components/Form/Form.tsx  |     1 +
 .../Label/reusable/DatasetTypeLabel.test.tsx       |    48 +-
 .../components/Label/reusable/DatasetTypeLabel.tsx |    11 +-
 .../src/components/Loading/Loading.stories.tsx     |     5 +-
 .../components/MetadataBar/MetadataBar.test.tsx    |    40 +-
 .../src/components/MetadataBar/MetadataBar.tsx     |     6 +-
 .../src/components/Modal/Modal.test.tsx            |   244 +
 .../src/components/Modal/Modal.tsx                 |    75 +-
 .../PageHeaderWithActions.stories.tsx              |   102 +
 .../PageHeaderWithActions.test.tsx                 |    19 +-
 .../src/components/PageHeaderWithActions/index.tsx |     6 +-
 .../src/components/SafeMarkdown/SafeMarkdown.tsx   |     2 +-
 .../src/components/Select/AsyncSelect.test.tsx     |   178 +-
 .../src/components/Select/AsyncSelect.tsx          |    21 +-
 .../src/components/Select/Select.test.tsx          |   428 +-
 .../src/components/Select/Select.tsx               |   153 +-
 .../src/components/Select/types.ts                 |    19 +
 .../src/components/Splitter/index.tsx              |     0
 .../src/components/Table/VirtualTable.test.tsx     |    81 +
 .../src/components/Table/VirtualTable.tsx          |    24 +-
 .../cell-renderers/ActionCell/ActionCell.test.tsx  |     6 +-
 .../TableCollection/TableCollection.stories.tsx    |    22 +-
 .../TableCollection/TableCollection.test.tsx       |    89 +
 .../src/components/TableCollection/index.tsx       |    80 +-
 .../src/components/TableCollection/utils.tsx       |    96 +-
 .../superset-ui-core/src/components/Tag/index.tsx  |     1 +
 .../ThemedAgGridReact/ThemedAgGridReact.test.tsx   |    28 +
 .../src/components/ThemedAgGridReact/index.tsx     |    12 +
 .../src/components/TimePicker/index.tsx            |     0
 .../TimezoneSelector.DaylightSavingTime.test.tsx   |     7 +-
 .../TimezoneSelector/TimezoneSelector.test.tsx     |    17 +-
 .../src/components/Typography/index.tsx            |     3 +-
 .../UnsavedChangesModal.test.tsx                   |    14 +-
 .../superset-ui-core/src/components/index.ts       |     9 +-
 .../src/connection/SupersetClientClass.ts          |   118 +-
 .../superset-ui-core/src/connection/constants.ts   |     3 +
 .../superset-ui-core/src/connection/index.ts       |     1 -
 .../superset-ui-core/src/connection/types.ts       |     2 -
 .../superset-ui-core/src/currency-format/utils.ts  |    22 +
 .../superset-ui-core/src/dimension/index.ts        |     1 -
 .../superset-ui-core/src/dimension/types.ts        |     2 -
 .../src/number-format/NumberFormatterRegistry.ts   |    28 +-
 .../factories/createMemoryFormatter.ts             |    29 +-
 .../factories/createSmartNumberFormatter.ts        |    61 +-
 .../superset-ui-core/src/number-format/index.ts    |     2 +
 .../superset-ui-core/src/query/api/legacy/index.ts |     1 -
 .../superset-ui-core/src/query/api/legacy/types.ts |     2 -
 .../superset-ui-core/src/query/api/v1/types.ts     |     3 +
 .../src/query/buildQueryContext.ts                 |    19 +-
 .../superset-ui-core/src/query/buildQueryObject.ts |    10 +-
 .../superset-ui-core/src/query/extractExtras.ts    |    22 +
 .../src/query/extractQueryFields.ts                |     6 +
 .../src/query/getClientErrorObject.ts              |    83 +-
 .../packages/superset-ui-core/src/query/index.ts   |     2 +
 .../superset-ui-core/src/query/processFilters.ts   |     3 +
 .../src/query/semanticSelection.ts                 |    42 +
 .../src/query/types/AdvancedAnalytics.ts           |     2 -
 .../superset-ui-core/src/query/types/Column.ts     |     2 -
 .../superset-ui-core/src/query/types/Dashboard.ts  |     3 +-
 .../superset-ui-core/src/query/types/Datasource.ts |    10 +-
 .../superset-ui-core/src/query/types/Metric.ts     |     7 +-
 .../src/query/types/PostProcessing.ts              |    13 +-
 .../superset-ui-core/src/query/types/Query.ts      |     6 +-
 .../src/query/types/QueryFormData.ts               |    16 +-
 .../src/query/types/QueryResponse.ts               |    10 +-
 .../superset-ui-core/src/query/types/Time.ts       |     2 -
 .../superset-ui-core/src/query/types/index.ts      |    12 -
 .../src/time-comparison/fetchTimeRange.ts          |    29 +-
 .../src/time-format/DateWithFormatter.ts           |    74 +
 .../src/time-format/formatters/smartDateVerbose.ts |    10 +-
 .../superset-ui-core/src/time-format/index.ts      |     5 +
 .../src/time-format/utils/normalizeTimestamp.ts    |    31 +
 .../src/time-format/utils/stringifyTimeInput.ts    |    39 +-
 .../packages/superset-ui-core/src/types/AgGrid.ts  |     1 +
 .../superset-ui-core/src/ui-overrides/types.ts     |    12 +
 .../superset-ui-core/src/utils/featureFlags.ts     |     2 +
 .../superset-ui-core/src/utils/html.test.tsx       |    37 +
 .../packages/superset-ui-core/src/utils/html.tsx   |    27 +-
 .../packages/superset-ui-core/src/utils/tooltip.ts |    31 +
 .../test/chart/models/ChartMetadata.test.ts        |    20 +
 .../test/chart/models/ChartProps.test.ts           |    37 +-
 .../test/connection/SupersetClientClass.test.ts    |    32 +-
 .../connection/SupersetClientCsrfRecovery.test.ts  |   191 +
 .../test/currency-format/utils.test.ts             |    33 +
 .../number-format/NumberFormatterRegistry.test.ts  |    18 +
 .../factories/createMemoryFormatter.test.ts        |    32 +
 .../factories/createSmartNumberFormatter.test.ts   |    20 +
 .../test/query/buildQueryContext.test.ts           |    54 +
 .../test/query/buildQueryObject.test.ts            |    76 +-
 .../test/query/extractExtras.test.ts               |    62 +
 .../test/query/extractQueryFields.test.ts          |    22 +
 .../test/query/getClientErrorObject.test.ts        |   130 +-
 .../test/query/types/PostProcessing.test.ts        |     6 +-
 .../test/time-comparison/fetchTimeRange.test.ts    |    60 +
 .../test/time-format/DateWithFormatter.test.ts     |    41 +
 .../formatters/smartDateVerbose.test.ts            |    57 +-
 .../time-format/utils/normalizeTimestamp.test.ts   |    75 +
 .../time-format/utils/stringifyTimeInput.test.ts   |   109 +
 .../superset-ui-core/test/utils/tooltip.test.ts    |    34 +
 .../packages/superset-ui-core/tsconfig.json        |    18 +-
 .../superset-ui-core/types/ace-builds.d.ts         |     1 +
 .../superset-ui-core/types/react-table-config.d.ts |   149 -
 .../superset-ui-core/types/react-table.d.ts        |    63 +
 .../packages/superset-ui-switchboard/tsconfig.json |    18 +-
 superset-frontend/playwright.config.ts             |    46 +-
 .../playwright/components/core/Menu.ts             |    78 +-
 .../playwright/components/core/Radio.ts            |    69 +
 .../playwright/components/core/Select.ts           |    50 +-
 .../playwright/components/core/index.ts            |     1 +
 .../components/dashboard/DashboardFilterBar.ts     |    36 +-
 .../playwright/components/modals/ConfirmDialog.ts  |     6 +-
 .../components/modals/DrillDetailModal.ts          |   133 +
 .../components/modals/EditDatasetModal.ts          |     7 +-
 .../playwright/components/modals/SaveChartModal.ts |   130 +
 .../playwright/components/modals/index.ts          |     2 +
 .../generators/docs/docs-screenshots.spec.ts       |     3 +
 .../generators/docs/mobile-screenshots.spec.ts     |     3 +
 .../playwright/generators/playwright.config.ts     |     3 +
 .../playwright/helpers/api/assertions.ts           |    16 +-
 superset-frontend/playwright/helpers/api/chart.ts  |    44 +
 .../playwright/helpers/api/dashboard.ts            |    88 +
 .../playwright/helpers/api/semanticLayer.test.ts   |    65 +
 .../playwright/helpers/api/semanticLayer.ts        |   136 +
 .../playwright/helpers/embeddedAppServer.ts        |   133 +
 .../playwright/helpers/fixtures/testAssets.ts      |    25 +-
 .../playwright/pages/DashboardPage.ts              |   179 +
 superset-frontend/playwright/pages/ExplorePage.ts  |   118 +-
 .../playwright/tests/chart/chart-list.spec.ts      |     4 +-
 .../playwright/tests/chart/chart-test-helpers.ts   |    24 +-
 .../tests/chart/handlebars-format-date.spec.ts     |     2 +-
 .../tests/dashboard/clear-all-filters.spec.ts      |   112 +
 .../dashboard/dashboard-drill-to-detail.spec.ts    |   744 +
 .../tests/dashboard/dashboard-list.spec.ts         |     4 +-
 .../dashboard-native-filter-url-key.spec.ts        |   140 +
 .../tests/dashboard/dashboard-tabs.spec.ts         |   222 +
 .../tests/dashboard/dashboard-test-helpers.ts      |   537 +-
 .../tests/dashboard/featured-charts-render.spec.ts |   234 +
 .../tests/dashboard/gauge-interval-colors.spec.ts  |     2 +-
 .../global-async-query-resilience.spec.ts          |   600 +
 .../tests/dashboard/global-async-query.spec.ts     |   462 +
 .../mixed-chart-dashboard-filters.spec.ts          |     2 +-
 .../tests/dashboard/native-filters.spec.ts         |   438 +
 .../dashboard/version-history-placement.spec.ts    |   209 +
 .../playwright/tests/dataset/dataset-list.spec.ts  |     4 +-
 .../tests/embedded/embedded-dashboard.spec.ts      |   129 +-
 .../tests/embedded/embedded-iframe-sizing.spec.ts  |   433 +
 .../tests/embedded/pivot-collapse-state.spec.ts    |    95 +-
 .../playwright/tests/experimental/README.md        |   123 -
 .../experimental/explore/results-tab-reuse.spec.ts |   123 -
 .../explore/cross-referenced-dashboards.spec.ts    |   194 +
 .../tests/explore/explore-download-image.spec.ts   |    65 +
 .../tests/explore/explore-no-results.spec.ts       |    59 +
 .../playwright/tests/explore/explore-save.spec.ts  |   135 +
 .../tests/explore/explore-test-helpers.ts          |    50 +
 .../tests/explore/results-tab-reuse.spec.ts        |   119 +
 .../tests/mobile/mobile-dashboard.spec.ts          |    65 +-
 .../tests/recently-archived/delete-modal.spec.ts   |    58 -
 .../recently-archived/recently-archived.spec.ts    |    62 +-
 .../semantic-view/semantic-view-dashboard.spec.ts  |   204 +
 .../tests/sqllab/global-async-query-sqllab.spec.ts |    78 +
 .../tests/version-history/activity-log.spec.ts     |   141 +-
 superset-frontend/playwright/utils/constants.ts    |    18 +
 .../plugin-chart-ag-grid-table/package.json        |     2 +-
 .../src/AgGridTable/components/CustomHeader.tsx    |     3 +-
 .../components/TimeComparisonVisibility.tsx        |     3 +-
 .../src/AgGridTable/index.tsx                      |   640 +-
 .../src/AgGridTableChart.tsx                       |   400 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |   183 +-
 .../plugin-chart-ag-grid-table/src/consts.ts       |     8 +
 .../src/controlPanel.tsx                           |   288 +-
 .../plugin-chart-ag-grid-table/src/index.ts        |     4 +-
 .../src/renderers/JsonCellRenderer.tsx             |   600 +
 .../src/renderers/NumericCellRenderer.tsx          |    12 +-
 .../src/renderers/TextCellRenderer.tsx             |    59 +-
 .../src/renderers/jsonCellRowHeight.ts             |    61 +
 .../src/renderers/parseJsonCellValue.ts            |   234 +
 .../src/stateConversion.ts                         |   320 +-
 .../src/styles/index.tsx                           |    37 +
 .../src/transformProps.ts                          |   175 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |    20 +-
 .../src/utils/DateWithFormatter.ts                 |    55 -
 .../src/utils/agGridFilterConverter.ts             |    73 +-
 .../src/utils/externalAPIs.ts                      |    14 +
 .../src/utils/formatValue.ts                       |    41 +-
 .../src/utils/getCellStyle.ts                      |   100 +-
 .../src/utils/getScrollBarSize.ts                  |    48 +
 .../src/utils/getTimeRangeFromGranularity.ts       |    80 +
 .../src/utils/isEqualColumns.ts                    |    79 +-
 .../src/utils/isJsonCellActionTarget.ts            |    56 +
 .../src/utils/mainComparison.ts                    |    41 +
 .../src/utils/useColDefs.ts                        |    96 +-
 .../src/utils/useTableTheme.ts                     |    42 -
 .../test/AgGridTableChart.test.tsx                 |   470 +-
 .../test/JsonCellRenderer.test.tsx                 |   674 +
 .../test/NumericCellRenderer.test.tsx              |    59 +
 .../test/buildQuery.test.ts                        |   335 +-
 .../test/cellSelectionWiring.test.tsx              |    88 +
 .../test/controlPanel.test.ts                      |   240 +
 .../test/controlPanel.test.tsx                     |   462 +-
 .../test/drillToDetail.test.tsx                    |   290 +
 .../test/formatValue.test.ts                       |   172 +
 .../test/memoization.test.ts                       |    13 +-
 .../test/stateConversion.test.ts                   |    83 +-
 .../test/transformProps.test.ts                    |   625 +-
 .../test/utils/agGridFilterConverter.test.ts       |    55 +-
 .../test/utils/filterStateManager.test.ts          |     2 +-
 .../test/utils/formatDurationValue.test.ts         |    39 +
 .../test/utils/getCellStyle.test.ts                |    82 +
 .../test/utils/mainComparison.test.ts              |    43 +
 .../test/utils/useColDefs.test.ts                  |   175 +
 .../plugin-chart-ag-grid-table/tsconfig.json       |    18 +-
 .../plugins/plugin-chart-calendar/src/utils.ts     |     8 +
 .../src/vendor/cal-heatmap.ts                      |    69 +-
 .../plugin-chart-calendar/test/cal-heatmap.test.ts |    70 +
 .../plugin-chart-calendar/test/utils.test.ts       |    25 +-
 .../plugins/plugin-chart-calendar/tsconfig.json    |    18 +-
 .../src/components/OlChartMap.tsx                  |    18 +-
 .../src/util/layerUtil.tsx                         |    27 +-
 .../src/util/transformPropsUtil.ts                 |     8 +
 .../test/components/OlChartMap.test.tsx            |   108 +
 .../test/util/layerUtil.test.ts                    |    47 +-
 .../test/util/pieColors.test.ts                    |   203 +
 .../plugin-chart-cartodiagram/tsconfig.json        |    18 +-
 .../plugin-chart-cartodiagram/types/external.d.ts  |     2 +
 .../plugins/plugin-chart-chord/tsconfig.json       |    18 +-
 .../scripts/Country Map GeoJSON Generator.ipynb    |  2218 +-
 .../plugin-chart-country-map/src/CountryMap.ts     |    53 +-
 .../src/ReactCountryMap.tsx                        |     5 +-
 .../plugin-chart-country-map/src/controlPanel.ts   |    66 +
 .../plugin-chart-country-map/src/countries.ts      |     5 +
 .../src/countries/afghanistan.geojson              |   Bin 116233 -> 116055 bytes
 .../src/countries/algeria.geojson                  |   Bin 72436 -> 72143 bytes
 .../src/countries/angola.geojson                   |   Bin 91061 -> 90836 bytes
 .../src/countries/antarctica.geojson               |   Bin 249319 -> 245701 bytes
 .../src/countries/argentina.geojson                |   Bin 92396 -> 91982 bytes
 .../src/countries/central_african_republic.geojson |   Bin 76367 -> 76280 bytes
 .../src/countries/chad.geojson                     |   Bin 59200 -> 59068 bytes
 .../src/countries/chile.geojson                    |   Bin 155583 -> 152109 bytes
 .../src/countries/colombia.geojson                 |   Bin 172825 -> 172427 bytes
 .../src/countries/cook_islands.geojson             |   Bin 4932 -> 4793 bytes
 .../democratic_republic_of_the_congo.geojson       |   Bin 60598 -> 60421 bytes
 .../src/countries/ecuador.geojson                  |   Bin 72252 -> 71984 bytes
 .../src/countries/egypt.geojson                    |   Bin 63171 -> 62737 bytes
 .../src/countries/ethiopia.geojson                 |   Bin 74208 -> 74123 bytes
 .../src/countries/fiji.geojson                     |   Bin 16252 -> 14845 bytes
 .../src/countries/finland.geojson                  |   Bin 131137 -> 130221 bytes
 .../src/countries/france.geojson                   |   Bin 293310 -> 292411 bytes
 .../src/countries/france_overseas.geojson          |   Bin 319676 -> 318427 bytes
 .../src/countries/france_regions.geojson           |   Bin 125649 -> 125270 bytes
 .../src/countries/french_polynesia.geojson         |   Bin 23524 -> 21933 bytes
 .../src/countries/greenland.geojson                |   Bin 183222 -> 180051 bytes
 .../src/countries/iran.geojson                     |   Bin 134537 -> 134537 bytes
 .../src/countries/italy.geojson                    |   Bin 239052 -> 238139 bytes
 .../src/countries/italy_regions.geojson            |   Bin 107344 -> 106568 bytes
 .../italy_regions_and_autonomous_provinces.geojson |   Bin 0 -> 108915 bytes
 .../src/countries/japan.geojson                    |   Bin 125219 -> 123030 bytes
 .../src/countries/kazakhstan.geojson               |   Bin 97047 -> 96827 bytes
 .../src/countries/kenya.geojson                    |   Bin 160739 -> 155742 bytes
 .../src/countries/libya.geojson                    |   Bin 44004 -> 43958 bytes
 .../src/countries/madagascar.geojson               |   Bin 301722 -> 437184 bytes
 .../src/countries/malawi.geojson                   |   Bin 153706 -> 153706 bytes
 .../src/countries/malaysia.geojson                 |   Bin 61681 -> 61384 bytes
 .../src/countries/mexico.geojson                   |   Bin 155798 -> 153935 bytes
 .../src/countries/mongolia.geojson                 |   Bin 66140 -> 66008 bytes
 .../src/countries/mozambique.geojson               |   Bin 70273 -> 70096 bytes
 .../src/countries/myanmar.geojson                  |   Bin 122123 -> 121555 bytes
 .../src/countries/namibia.geojson                  |   Bin 51744 -> 51566 bytes
 .../src/countries/new_zealand.geojson              |   Bin 51553 -> 50769 bytes
 .../src/countries/niger.geojson                    |   Bin 24447 -> 24404 bytes
 .../src/countries/nigeria.geojson                  |   Bin 132145 -> 131937 bytes
 .../src/countries/norway.geojson                   |   Bin 193186 -> 190978 bytes
 .../src/countries/pakistan.geojson                 |   Bin 71260 -> 71132 bytes
 .../src/countries/papua_new_guinea.geojson         |   Bin 93153 -> 92488 bytes
 .../src/countries/peru.geojson                     |   Bin 121913 -> 121731 bytes
 .../src/countries/philippines.geojson              |   Bin 201029 -> 199021 bytes
 .../src/countries/philippines_regions.geojson      |   Bin 137441 -> 135628 bytes
 .../src/countries/portugal.geojson                 |   Bin 54433 -> 54121 bytes
 .../src/countries/russia.geojson                   |   Bin 747442 -> 678517 bytes
 .../src/countries/saudi_arabia.geojson             |   Bin 49793 -> 49541 bytes
 .../src/countries/somalia.geojson                  |   Bin 17724 -> 17637 bytes
 .../src/countries/south_africa.geojson             |   Bin 57043 -> 57075 bytes
 .../src/countries/spain.geojson                    |   Bin 197369 -> 196796 bytes
 .../src/countries/sudan.geojson                    |   Bin 50604 -> 50472 bytes
 .../src/countries/sweden.geojson                   |   Bin 122167 -> 121208 bytes
 .../src/countries/tanzania.geojson                 |   Bin 108762 -> 108542 bytes
 .../src/countries/thailand.geojson                 |   Bin 206445 -> 205568 bytes
 .../src/countries/turkey.geojson                   |   Bin 204184 -> 203614 bytes
 .../src/countries/turkey_regions.geojson           |   Bin 107486 -> 107269 bytes
 .../src/countries/turkmenistan.geojson             |   Bin 34959 -> 34870 bytes
 .../src/countries/uk.geojson                       |   Bin 478985 -> 477503 bytes
 .../src/countries/ukraine.geojson                  |   Bin 173452 -> 173064 bytes
 .../united_states_minor_outlying_islands.geojson   |   Bin 3957 -> 3552 bytes
 .../src/countries/usa.geojson                      |   Bin 540974 -> 514889 bytes
 .../src/countries/uzbekistan.geojson               |   Bin 50378 -> 50250 bytes
 .../src/countries/venezuela.geojson                |   Bin 119692 -> 118980 bytes
 .../src/countries/vietnam.geojson                  |   Bin 138908 -> 138005 bytes
 .../src/normalizeRegions.ts                        |   129 +
 .../plugin-chart-country-map/src/regions.ts        |   383 +
 .../plugin-chart-country-map/src/transformProps.ts |    58 +-
 .../test/CountryMap.test.tsx                       |   277 +
 .../test/controlPanel.test.ts                      |    43 +
 .../test/countries.test.ts                         |    58 +
 .../test/geographicRendering.test.tsx              |   296 +
 .../test/iran.geojson.test.ts                      |    69 +
 .../test/normalizeRegions.test.ts                  |   251 +
 .../test/russia.geojson.test.ts                    |    87 +
 .../test/south_africa.geojson.test.ts              |    57 +
 .../test/transformProps.test.ts                    |   152 +
 .../plugins/plugin-chart-country-map/tsconfig.json |    18 +-
 .../plugins/plugin-chart-echarts/package.json      |     2 +-
 .../BigNumberPeriodOverPeriod/transformProps.ts    |     6 +-
 .../BigNumber/BigNumberTotal/controlPanel.test.ts  |    10 +
 .../src/BigNumber/BigNumberTotal/controlPanel.ts   |     2 +
 .../BigNumberTotal/transformProps.test.ts          |     2 +
 .../src/BigNumber/BigNumberTotal/transformProps.ts |     8 +-
 .../src/BigNumber/BigNumberViz.test.tsx            |   338 +-
 .../src/BigNumber/BigNumberViz.tsx                 |    23 +-
 .../BigNumberWithTrendline/controlPanel.tsx        |    23 +
 .../BigNumberWithTrendline/transformProps.test.ts  |    74 +
 .../BigNumberWithTrendline/transformProps.ts       |     8 +-
 .../src/BigNumber/sharedControls.ts                |    19 +
 .../plugin-chart-echarts/src/BigNumber/types.ts    |     4 +
 .../plugin-chart-echarts/src/BigNumber/utils.ts    |    10 +-
 .../src/Bubble/EchartsBubble.tsx                   |   151 +-
 .../plugin-chart-echarts/src/Bubble/constants.ts   |     3 +-
 .../plugin-chart-echarts/src/Bubble/crossFilter.ts |   226 +
 .../plugin-chart-echarts/src/Bubble/index.ts       |     8 +-
 .../src/Bubble/transformProps.ts                   |    73 +-
 .../plugin-chart-echarts/src/Bubble/types.ts       |     9 +-
 .../src/Butterfly/Butterfly.tsx                    |    77 +
 .../src/Butterfly/buildQuery.ts                    |    52 +
 .../src/Butterfly/constants.ts                     |    29 +
 .../src/Butterfly/controlPanel.tsx                 |   242 +
 .../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
 .../plugin-chart-echarts/src/Butterfly/index.ts    |    65 +
 .../src/Butterfly/transformProps.ts                |   365 +
 .../plugin-chart-echarts/src/Butterfly/types.ts    |    57 +
 .../src/Candlestick/EchartsCandlestick.tsx         |   174 +
 .../src/Candlestick/buildQuery.ts                  |    51 +
 .../src/Candlestick/constants.ts                   |    65 +
 .../src/Candlestick/controlPanel.tsx               |   417 +
 .../src/Candlestick/images/example1-dark.png       |   Bin 0 -> 55933 bytes
 .../src/Candlestick/images/example1.png            |   Bin 0 -> 56139 bytes
 .../src/Candlestick/images/thumbnail-dark.png      |   Bin 0 -> 31389 bytes
 .../src/Candlestick/images/thumbnail.png           |   Bin 0 -> 31318 bytes
 .../plugin-chart-echarts/src/Candlestick/index.ts  |    65 +
 .../src/Candlestick/transformProps.ts              |   773 +
 .../plugin-chart-echarts/src/Candlestick/types.ts  |    84 +
 .../plugin-chart-echarts/src/Candlestick/utils.ts  |    91 +
 .../src/Funnel/EchartsFunnel.tsx                   |    19 +-
 .../src/Funnel/controlPanel.tsx                    |    13 +-
 .../src/Funnel/transformProps.ts                   |    33 +-
 .../src/Gantt/EchartsGantt.tsx                     |    23 +-
 .../plugin-chart-echarts/src/Gantt/constants.ts    |     9 +
 .../src/Gantt/transformProps.ts                    |    70 +-
 .../src/Graph/EchartsGraph.tsx                     |     8 +
 .../src/Graph/transformProps.ts                    |    65 +-
 .../src/Heatmap/controlPanel.tsx                   |    12 +-
 .../src/Heatmap/transformProps.ts                  |    17 +-
 .../plugin-chart-echarts/src/Heatmap/types.ts      |     6 +
 .../src/Histogram/Histogram.tsx                    |    17 +-
 .../src/Histogram/controlPanel.tsx                 |     7 +-
 .../src/Histogram/transformProps.ts                |    22 +-
 .../plugin-chart-echarts/src/Histogram/types.ts    |     1 +
 .../src/MixedTimeseries/EchartsMixedTimeseries.tsx |     9 +
 .../src/MixedTimeseries/controlPanel.tsx           |    31 +
 .../src/MixedTimeseries/transformProps.ts          |   280 +-
 .../src/MixedTimeseries/types.ts                   |    21 +
 .../plugin-chart-echarts/src/Pie/EchartsPie.tsx    |    19 +-
 .../plugin-chart-echarts/src/Pie/transformProps.ts |    22 +-
 .../src/Radar/EchartsRadar.tsx                     |    19 +-
 .../src/Radar/controlPanel.tsx                     |    10 +-
 .../src/Radar/transformProps.ts                    |    18 +-
 .../plugin-chart-echarts/src/Radar/utils.ts        |    16 +-
 .../src/Sunburst/EchartsSunburst.tsx               |    99 +-
 .../src/Sunburst/transformProps.ts                 |    36 +-
 .../plugin-chart-echarts/src/Sunburst/types.ts     |     4 +
 .../plugin-chart-echarts/src/Sunburst/utils.ts     |   190 +
 .../src/Timeseries/Area/controlPanel.tsx           |     6 +
 .../src/Timeseries/EchartsTimeseries.test.tsx      |   992 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |   378 +-
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |    48 +-
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |    25 +
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |     6 +
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |     6 +
 .../src/Timeseries/Step/controlPanel.tsx           |     6 +
 .../src/Timeseries/TimeseriesLegend.tsx            |   196 +
 .../src/Timeseries/buildQuery.ts                   |     7 +-
 .../src/Timeseries/constants.ts                    |    10 +
 .../src/Timeseries/transformProps.ts               |   666 +-
 .../src/Timeseries/transformers.ts                 |   434 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    45 +
 .../src/Waterfall/EchartsWaterfall.tsx             |    16 +-
 .../src/Waterfall/controlPanel.tsx                 |    38 +
 .../src/Waterfall/transformProps.ts                |    10 +-
 .../plugin-chart-echarts/src/Waterfall/types.ts    |     4 +
 .../src/components/Echart.test.tsx                 |     4 +-
 .../plugin-chart-echarts/src/components/Echart.tsx |     7 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |    41 +-
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   142 +-
 .../plugins/plugin-chart-echarts/src/index.ts      |     4 +
 .../plugins/plugin-chart-echarts/src/types.ts      |     3 +-
 .../src/utils/eChartOptionsSchema.ts               |    62 +-
 .../src/utils/eventHandlers.ts                     |    25 +-
 .../plugin-chart-echarts/src/utils/forecast.ts     |    35 +-
 .../plugin-chart-echarts/src/utils/formatters.ts   |   193 +
 .../src/utils/legendEventHandlers.test.ts          |   275 +
 .../src/utils/legendEventHandlers.ts               |   131 +
 .../src/utils/mergeCustomEChartOptions.test.ts     |    67 +
 .../src/utils/mergeCustomEChartOptions.ts          |    17 +
 .../src/utils/safeEChartOptionsParser.test.ts      |   161 +
 .../plugin-chart-echarts/src/utils/series.ts       |   410 +-
 .../src/utils/xAxisDrillByFilter.ts                |    37 +-
 .../test/BigNumber/chartDisplayLabels.test.ts      |   196 +
 .../test/BoxPlot/buildQuery.test.ts                |    20 +
 .../test/Bubble/EchartsBubble.test.tsx             |   335 +
 .../test/Bubble/crossFilter.test.ts                |   129 +
 .../test/Bubble/transformProps.test.ts             |   134 +
 .../test/Bullet/buildQuery.test.ts                 |    15 +
 .../test/Bullet/transformProps.test.ts             |   172 +-
 .../test/Butterfly/Butterfly.test.tsx              |   232 +
 .../test/Butterfly/buildQuery.test.ts              |    85 +
 .../test/Butterfly/controlPanel.test.ts            |    83 +
 .../test/Butterfly/transformProps.test.ts          |   341 +
 .../test/Candlestick/EchartsCandlestick.test.tsx   |   325 +
 .../test/Candlestick/buildQuery.test.ts            |    57 +
 .../test/Candlestick/controlPanel.test.ts          |   267 +
 .../test/Candlestick/transformProps.test.ts        |  1288 +
 .../test/Candlestick/utils.test.ts                 |    53 +
 .../test/Funnel/transformProps.test.ts             |    35 +
 .../test/Gantt/transformProps.test.ts              |   266 +
 .../test/Graph/categoryIdentity.test.ts            |   398 +
 .../test/Graph/transformProps.test.ts              |    38 +
 .../test/Heatmap/transformProps.test.ts            |    67 +-
 .../test/Histogram/buildQuery.test.ts              |     1 +
 .../test/Histogram/transformProps.test.ts          |   124 +
 .../test/MixedTimeseries/buildQuery.test.ts        |    33 +
 .../test/MixedTimeseries/controlPanel.test.ts      |   109 +
 .../test/MixedTimeseries/transformProps.test.ts    |   626 +-
 .../plugin-chart-echarts/test/Radar/utils.test.ts  |    38 +
 .../test/Rose/buildQuery.test.ts                   |    24 +-
 .../test/Sunburst/EchartsSunburst.test.tsx         |   474 +
 .../test/Sunburst/transformProps.test.ts           |   149 +-
 .../test/Sunburst/utils.test.ts                    |    52 +
 .../test/Timeseries/Bar/controlPanel.test.ts       |   130 +-
 .../Bar/sparseSubDailyBarGeometry.test.ts          |   505 +
 .../test/Timeseries/Bar/transformProps.test.ts     |   341 +-
 .../test/Timeseries/EchartsTimeseries.test.tsx     |   702 +-
 .../test/Timeseries/Line/controlPanel.test.ts      |    42 +
 .../test/Timeseries/buildQuery.test.ts             |    22 +
 .../test/Timeseries/helpers.ts                     |     1 +
 .../test/Timeseries/transformProps.test.ts         |  2395 +-
 .../test/Timeseries/transformers.test.ts           |   784 +-
 .../test/Treemap/EchartsTreemap.test.tsx           |   123 +
 .../test/Treemap/transformProps.test.ts            |    44 +
 .../test/Waterfall/transformProps.test.ts          |    53 +
 .../test/utils/eventHandlers.test.ts               |   173 +
 .../test/utils/forecast.test.ts                    |    96 +-
 .../test/utils/formatters.test.ts                  |   155 +
 .../plugin-chart-echarts/test/utils/series.test.ts |   528 +-
 .../plugins/plugin-chart-echarts/tsconfig.json     |    18 +-
 .../plugins/plugin-chart-handlebars/package.json   |     4 +-
 .../plugin-chart-handlebars/src/Handlebars.tsx     |    13 +-
 .../src/components/Handlebars/HandlebarsViewer.tsx |    51 +-
 .../test/Handlebars.test.tsx                       |   194 +
 .../plugins/plugin-chart-handlebars/tsconfig.json  |    18 +-
 .../plugin-chart-horizon/test/buildQuery.test.ts   |    11 +
 .../plugins/plugin-chart-horizon/tsconfig.json     |    18 +-
 .../plugin-chart-paired-t-test/tsconfig.json       |    18 +-
 .../src/transformProps.ts                          |     2 +-
 .../test/transformProps.test.ts                    |    41 +
 .../tsconfig.json                                  |    18 +-
 .../plugins/plugin-chart-partition/package.json    |     2 +-
 .../plugin-chart-partition/src/Partition.ts        |    29 +-
 .../plugin-chart-partition/test/buildQuery.test.ts |    13 +
 .../plugins/plugin-chart-partition/tsconfig.json   |    18 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     6 +-
 .../src/PivotTableChart.tsx                        |     5 +
 .../src/plugin/buildQuery.ts                       |    35 +-
 .../src/plugin/controlPanel.tsx                    |    82 +-
 .../src/plugin/resultAggregation.ts                |   121 +
 .../src/plugin/transformProps.ts                   |    58 +-
 .../src/plugin/utilities.ts                        |    42 +-
 .../src/react-pivottable/Styles.ts                 |    98 +-
 .../src/react-pivottable/TableRenderers.tsx        |   248 +-
 .../src/react-pivottable/utilities.ts              |   755 +-
 .../plugins/plugin-chart-pivot-table/src/types.ts  |     6 +
 .../test/PivotTableChart.test.tsx                  |    22 +
 .../test/plugin/buildQuery.test.ts                 |    70 +
 .../test/plugin/transformProps.test.ts             |   229 +
 .../test/plugin/utilities.test.ts                  |    64 +-
 .../test/react-pivottable/Styles.test.tsx          |   328 +
 .../test/react-pivottable/tableRenders.test.tsx    |   596 +-
 .../test/react-pivottable/utilities.test.ts        |  1075 +-
 .../plugin-chart-pivot-table/test/testData.ts      |    68 +
 .../plugins/plugin-chart-pivot-table/tsconfig.json |    18 +-
 .../plugin-chart-point-cluster-map/package.json    |    10 +-
 .../src/MapLibre.tsx                               |   108 +-
 .../src/mapLibreDefaults.ts                        |    24 +
 .../src/transformProps.ts                          |     2 +-
 .../test/MapLibre.test.tsx                         |   133 +-
 .../plugin-chart-point-cluster-map/tsconfig.json   |    16 +-
 .../types/external.d.ts                            |     2 +
 .../types/global.d.ts                              |    23 +
 .../plugins/plugin-chart-table/package.json        |     2 +-
 .../plugin-chart-table/src/DataTable/DataTable.tsx |   204 +-
 .../src/DataTable/components/GlobalFilter.tsx      |    33 +-
 .../src/DataTable/hooks/useSticky.tsx              |    65 +-
 .../plugins/plugin-chart-table/src/Styles.tsx      |     9 +
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   303 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |    86 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   174 +-
 .../plugins/plugin-chart-table/src/index.ts        |     2 -
 .../plugin-chart-table/src/transformProps.ts       |    98 +-
 .../plugins/plugin-chart-table/src/types.ts        |     7 +-
 .../src/utils/DateWithFormatter.ts                 |    55 -
 .../plugin-chart-table/src/utils/formatValue.ts    |    16 +-
 .../plugin-chart-table/src/utils/headerGroups.ts   |    32 +
 .../plugin-chart-table/src/utils/isEqualColumns.ts |     8 +
 .../test/DataTable/DataTable.test.tsx              |   208 +
 .../test/DataTable/hooks/useSticky.test.tsx        |   289 +
 .../test/DataTable/utils/getScrollBarSize.test.ts  |     6 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |  1087 +-
 .../plugin-chart-table/test/buildQuery.test.ts     |   543 +-
 .../plugin-chart-table/test/controlPanel.test.ts   |   314 +
 .../plugin-chart-table/test/controlPanel.test.tsx  |   668 +-
 .../plugin-chart-table/test/headerGroups.test.ts   |   301 +
 .../test/transformProps.test.tsx                   |    58 +
 .../test/utils/formatDurationValue.test.ts         |    39 +
 .../test/utils/formatValue.test.ts                 |    44 +
 .../plugins/plugin-chart-table/tsconfig.json       |    18 +-
 .../test/ColorSchemeControl.test.tsx               |     4 +-
 .../plugins/plugin-chart-word-cloud/tsconfig.json  |    18 +-
 .../plugins/plugin-chart-world-map/src/WorldMap.ts |    38 +-
 .../plugin-chart-world-map/src/controlPanel.ts     |     2 +
 .../plugin-chart-world-map/src/countries.ts        |    36 +-
 .../plugin-chart-world-map/src/transformData.ts    |    49 +-
 .../plugin-chart-world-map/src/transformProps.ts   |    20 +-
 .../plugin-chart-world-map/src/worldGeometry.ts    |   198 +
 .../plugin-chart-world-map/test/WorldMap.test.ts   |   119 +
 .../test/controlPanel.test.ts                      |    43 +
 .../test/transformData.test.ts                     |   169 +
 .../test/transformProps.test.ts                    |    52 +
 .../plugins/plugin-chart-world-map/tsconfig.json   |    18 +-
 .../plugins/preset-chart-deckgl/package.json       |    31 +-
 .../src/CategoricalDeckGLContainer.test.tsx        |   213 +-
 .../src/CategoricalDeckGLContainer.tsx             |    73 +-
 .../src/DeckGLContainer.test.tsx                   |   123 +-
 .../preset-chart-deckgl/src/DeckGLContainer.tsx    |    28 +-
 .../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 +
 .../src/Multi/transformProps.ts                    |    32 +
 .../src/components/DeckGLOverlayMapLibre.test.tsx  |    80 +
 .../src/components/DeckGLOverlayMapLibre.tsx       |     8 +-
 .../src/components/Tooltip.test.tsx                |    64 +
 .../preset-chart-deckgl/src/components/Tooltip.tsx |    26 +-
 .../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/Contour/Contour.test.ts             |    56 +
 .../src/layers/Contour/Contour.tsx                 |     4 +-
 .../src/layers/Geojson/Geojson.test.tsx            |    22 +
 .../src/layers/Polygon/Polygon.test.tsx            |   100 +
 .../src/layers/Polygon/Polygon.tsx                 |    22 +
 .../src/layers/Scatter/buildQuery.test.ts          |    24 +
 .../src/layers/Scatter/buildQuery.ts               |     7 +-
 .../src/layers/Scatter/controlPanel.test.ts        |    43 +
 .../src/layers/Scatter/controlPanel.ts             |     2 +
 .../src/layers/Scatter/transformProps.test.ts      |   324 +-
 .../src/layers/Scatter/transformProps.ts           |   102 +-
 .../preset-chart-deckgl/src/layers/spatialUtils.ts |     7 +-
 .../src/layers/utils/metricUtils.ts                |    17 +
 .../plugins/preset-chart-deckgl/tsconfig.json      |    16 +-
 .../preset-chart-deckgl/types/external.d.ts        |     2 +
 .../plugins/preset-chart-deckgl/types/global.d.ts  |    23 +
 superset-frontend/scripts/build.js                 |    30 +-
 superset-frontend/scripts/bundle-size-summary.js   |    58 +-
 superset-frontend/scripts/check-custom-rules.js    |   232 +-
 .../scripts/check-storybook-coverage.js            |     9 +-
 superset-frontend/scripts/commitlint.js            |     2 +-
 superset-frontend/scripts/copyAssets.js            |    56 -
 .../scripts/internal/bundle-size-summary.js        |    82 +
 .../scripts/internal/oxlint-metrics-uploader.js    |   287 +
 .../scripts/oxlint-metrics-uploader.js             |   267 +-
 superset-frontend/scripts/po2json-cli.js           |    41 +
 superset-frontend/scripts/po2json.js               |    96 +
 superset-frontend/scripts/po2json.sh               |     6 +-
 .../spec/__mocks__/mockExportObject.js             |     3 +-
 .../spec/__mocks__/mockExportString.js             |     3 +-
 .../fixtures/mockSemanticDashboardDatasources.ts   |   177 +
 .../spec/helpers/geographicControlPanel.ts         |    75 +
 superset-frontend/spec/helpers/runStopButton.ts    |    55 +
 superset-frontend/spec/helpers/setup.ts            |     7 +
 superset-frontend/spec/helpers/shim.tsx            |     2 +
 .../spec/helpers/sourceTreeScanner.ts              |     1 -
 superset-frontend/spec/helpers/testing-library.tsx |     1 +
 .../spec/scripts/bundle-size-summary.test.js       |   110 -
 .../spec/scripts/bundle-size-summary.test.ts       |   110 +
 .../spec/scripts/oxlint-metrics-uploader.test.js   |    58 -
 .../spec/scripts/oxlint-metrics-uploader.test.ts   |   335 +
 superset-frontend/spec/scripts/po2json.test.ts     |   130 +
 .../src/SqlLab/actions/sqlLab.test.ts              |   426 +
 superset-frontend/src/SqlLab/actions/sqlLab.ts     |   188 +-
 .../SqlLab/components/AppLayout/AppLayout.test.tsx |     2 +-
 .../src/SqlLab/components/AppLayout/index.tsx      |     3 +-
 .../ExploreCtasResultsButton.test.tsx              |    11 +-
 .../components/QueryHistory/QueryHistory.test.tsx  |   243 +-
 .../src/SqlLab/components/QueryHistory/index.tsx   |    41 +-
 .../QueryHistory/mergeQueryStatus.test.ts          |   151 +
 .../components/QueryHistory/mergeQueryStatus.ts    |    71 +
 .../QueryLimitSelect/QueryLimitSelect.test.tsx     |     8 +-
 .../SqlLab/components/ResultSet/ResultSet.test.tsx |    13 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |    14 +-
 .../RunQueryActionButton.test.tsx                  |   569 +-
 .../components/RunQueryActionButton/index.tsx      |    43 +-
 .../SaveDatasetActionButton.test.tsx               |    43 +-
 .../components/SaveDatasetActionButton/index.tsx   |     9 +-
 .../SaveDatasetModal/SaveDatasetModal.test.tsx     |    65 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |    16 +-
 .../SqlLab/components/SaveQuery/SaveQuery.test.tsx |   142 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |    16 +-
 .../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx     |     6 +-
 .../SqlLab/components/SouthPane/SouthPane.test.tsx |     2 +-
 .../SqlLab/components/SqlEditor/SqlEditor.test.tsx |    66 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |    21 +-
 .../SqlEditorLeftBar/SqlEditorLeftBar.test.tsx     |     2 +-
 .../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx |    30 +-
 .../TableExploreTree/TableExploreTree.test.tsx     |    13 +-
 .../SqlLab/components/TableExploreTree/index.tsx   |    10 +-
 .../components/TablePreview/TablePreview.test.tsx  |    13 +-
 .../src/SqlLab/components/TablePreview/index.tsx   |     8 +-
 .../src/SqlLab/reducers/sqlLab.test.ts             |    47 +
 superset-frontend/src/SqlLab/reducers/sqlLab.ts    |    23 +-
 .../DynamicGroupBy/DynamicGroupByPlugin.test.tsx   |    58 +-
 .../DynamicGroupBy/DynamicGroupByPlugin.tsx        |    52 +-
 .../DynamicGroupBy/columnAllowlist.test.ts         |    67 +
 .../components/DynamicGroupBy/columnAllowlist.ts   |   105 +
 .../components/DynamicGroupBy/types.ts             |     5 +
 .../AlteredSliceTag/AlteredSliceTag.test.tsx       |     8 +-
 .../src/components/Chart/Chart.test.tsx            |   119 +
 superset-frontend/src/components/Chart/Chart.tsx   |    19 +-
 .../src/components/Chart/ChartContainer.tsx        |    13 +-
 .../ChartContextMenu/ChartContextMenu.test.tsx     |   198 +-
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |    45 +-
 .../Chart/ChartContextMenu/useContextMenu.test.tsx |    25 +-
 .../components/Chart/ChartErrorMessage.test.tsx    |     2 +-
 .../src/components/Chart/ChartErrorMessage.tsx     |     3 +-
 .../Chart/ChartRenderer.refresh.test.tsx           |   302 +
 .../src/components/Chart/ChartRenderer.test.tsx    |   105 +-
 .../src/components/Chart/ChartRenderer.tsx         |   146 +-
 .../components/Chart/DrillBy/DrillByModal.test.tsx |    28 +-
 .../src/components/Chart/DrillBy/DrillByModal.tsx  |    17 +-
 .../Chart/DrillBy/DrillBySubmenu.test.tsx          |    20 +-
 .../components/Chart/DrillBy/DrillBySubmenu.tsx    |     2 +-
 .../Chart/DrillBy/DrillByTemporalFilters.test.tsx  |   256 +
 .../Chart/DrillBy/useResultsTableView.test.ts      |     2 +-
 .../Chart/DrillDetail/DrillDetailModal.test.tsx    |     6 +-
 .../Chart/DrillDetail/DrillDetailPane.test.tsx     |   120 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |     7 +-
 .../DrillDetail/DrillDetailTableControls.test.tsx  |     8 +-
 .../components/Chart/MenuItemWithTruncation.tsx    |     5 +-
 .../src/components/Chart/chartAction.ts            |   222 +-
 .../src/components/Chart/chartActions.test.ts      |   179 +-
 .../src/components/Chart/chartReducer.ts           |     5 +
 .../src/components/Chart/chartReducers.test.ts     |    16 +
 .../useDrillDetailMenuItems.test.tsx               |    38 +-
 .../CopyToClipboard/CopyToClipboard.test.tsx       |    10 +-
 .../DatabaseSelector/DatabaseSelector.test.tsx     |     4 +-
 .../Datasource/ChangeDatasourceModal/index.tsx     |     2 +-
 .../DatasourceModal.pendingEdits.test.tsx          |   196 +
 .../DatasourceModal/DatasourceModal.test.tsx       |   245 +-
 .../DatasourceModal.useModal.test.tsx              |     4 +
 .../Datasource/DatasourceModal/index.tsx           |   129 +-
 .../FoldersEditor/FoldersEditor.test.tsx           |    17 +-
 .../components/Datasource/FoldersEditor/index.tsx  |    12 +-
 .../CollectionTable.debounce.test.tsx              |   287 +
 .../CollectionTable/CollectionTable.test.tsx       |   236 +-
 .../components/CollectionTable/index.tsx           |   266 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |   406 +-
 .../DatasourceEditor/datasetCertification.ts       |   111 +
 .../tests/DatasourceEditor.test.tsx                |    39 +-
 .../tests/DatasourceEditorCurrency.test.tsx        |     4 +-
 .../DatasourceEditorDatasetCertification.test.tsx  |   109 +
 .../DatasourceEditorMetricFormatWarning.test.tsx   |   210 +
 ...atasourceEditorNormalizeColumnsWarning.test.tsx |   146 +
 .../tests/datasetCertification.test.ts             |   169 +
 .../tests/hydrateMetricExtra.test.ts               |    96 +
 .../Datasource/components/Fieldset/index.tsx       |    20 +-
 .../src/components/Datasource/index.ts             |     1 +
 .../src/components/Datasource/types.ts             |    16 +-
 .../src/components/Datasource/utils/index.ts       |    39 +-
 .../src/components/Datasource/utils/utils.test.tsx |    28 +-
 .../ErrorMessage/CsrfErrorMessage.test.tsx         |    79 +
 .../components/ErrorMessage/CsrfErrorMessage.tsx   |    49 +
 .../ErrorMessage/DatabaseErrorMessage.test.tsx     |    16 +-
 .../DatasourceSecurityAccessErrorMessage.test.tsx  |    64 +-
 .../DatasourceSecurityAccessErrorMessage.tsx       |    37 +-
 .../components/ErrorMessage/ErrorAlert.test.tsx    |    41 +
 .../ErrorMessageWithStackTrace.test.tsx            |     8 +-
 .../FrontendNetworkErrorMessage.test.tsx           |     4 +-
 .../ErrorMessage/ParameterErrorMessage.test.tsx    |    12 +-
 .../ErrorMessage/PreformattedErrorDescription.tsx  |    32 +
 .../ErrorMessage/TimeoutErrorMessage.test.tsx      |    16 +-
 .../src/components/ErrorMessage/index.tsx          |     1 +
 .../FilterableTable/FilterableTable.test.tsx       |    40 +-
 .../FilterableTable/exactDecimals.test.tsx         |    92 +
 .../src/components/FilterableTable/index.tsx       |    43 +-
 .../components/FilterableTable/sortResults.test.ts |   238 +
 .../src/components/FilterableTable/sortResults.ts  |   180 +
 .../src/components/FilterableTable/utils.test.tsx  |    29 +
 .../src/components/FilterableTable/utils.tsx       |     6 +-
 .../src/components/GridTable/GridTable.test.tsx    |    46 +-
 .../src/components/GridTable/HeaderMenu.test.tsx   |    61 +-
 .../src/components/GridTable/index.tsx             |    29 +-
 .../src/components/JsonModal/JsonModal.test.tsx    |    18 +
 .../src/components/JsonModal/utils.ts              |    10 +-
 .../src/components/ListView/CardCollection.tsx     |    32 +-
 .../src/components/ListView/ListView.test.tsx      |     2 -
 .../src/components/ListView/ListView.tsx           |    35 +-
 superset-frontend/src/components/ListView/types.ts |     2 +
 superset-frontend/src/components/ListView/utils.ts |    75 +-
 .../src/components/MessageToasts/Toast.test.tsx    |    34 +-
 .../src/components/MessageToasts/Toast.tsx         |    16 +-
 .../src/components/MessageToasts/actions.ts        |     2 +
 .../src/components/MessageToasts/types.ts          |     3 +
 .../RowCountLabel/RowCountLabel.test.tsx           |    34 +-
 .../src/components/RowCountLabel/index.tsx         |    16 +-
 superset-frontend/src/components/Tag/index.tsx     |     8 +-
 superset-frontend/src/components/Tag/utils.tsx     |    16 +-
 superset-frontend/src/constants.test.ts            |    31 +
 superset-frontend/src/constants.ts                 |     1 +
 superset-frontend/src/core/chat/ChatHost.tsx       |    20 +-
 .../actions/chartCustomizationActions.test.ts      |    20 +-
 .../dashboard/actions/chartCustomizationActions.ts |     4 +-
 .../src/dashboard/actions/dashboardInfo.test.ts    |    71 +
 .../src/dashboard/actions/dashboardInfo.ts         |   105 +-
 .../src/dashboard/actions/dashboardLayout.ts       |     2 +-
 .../src/dashboard/actions/dashboardState.test.ts   |   217 +-
 .../src/dashboard/actions/dashboardState.ts        |    84 +-
 .../src/dashboard/actions/datasources.test.ts      |   114 +
 .../src/dashboard/actions/datasources.ts           |    41 +-
 .../src/dashboard/actions/hydrate.test.ts          |   265 +-
 superset-frontend/src/dashboard/actions/hydrate.ts |    60 +-
 .../components/AddSliceCard/AddSliceCard.test.tsx  |     2 +-
 .../components/AnchorLink/AnchorLink.test.tsx      |     2 +-
 .../src/dashboard/components/Dashboard.test.tsx    |    13 +
 .../DashboardBuilder/DashboardBuilder.test.tsx     |   415 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |   260 +-
 .../DashboardBuilder/DashboardContainer.test.tsx   |   145 +-
 .../DashboardBuilder/DashboardContainer.tsx        |    19 +-
 .../DashboardBuilder/DashboardWrapper.tsx          |     4 +-
 .../src/dashboard/components/DashboardGrid.tsx     |     3 +-
 .../DetailsPanel/DetailsPanel.test.tsx             |    31 +-
 .../components/FiltersBadge/DetailsPanel/index.tsx |    22 +
 .../FilterIndicator/FilterIndicator.test.tsx       |    10 +-
 .../components/FiltersBadge/FiltersBadge.test.tsx  |    40 +
 .../dashboard/components/FiltersBadge/index.tsx    |    20 +-
 .../dashboard/components/Header/Header.test.tsx    |   312 +-
 .../src/dashboard/components/Header/index.tsx      |     4 +-
 .../Header/useHeaderActionsDropdownMenu.tsx        |    10 +-
 .../Header/useHeaderAutoRefresh.test.tsx           |    58 +-
 .../components/Header/useHeaderAutoRefresh.ts      |     2 +-
 .../PropertiesModal.lateFieldMount.test.tsx        |    94 +
 .../PropertiesModal.manyCharts.test.tsx            |   107 +
 .../PropertiesModal/PropertiesModal.test.tsx       |    48 +-
 .../dashboard/components/PropertiesModal/index.tsx |   113 +-
 .../PropertiesModal/sections/AccessSection.tsx     |     9 +-
 .../PropertiesModal/sections/AdvancedSection.tsx   |    60 +-
 .../sections/AsyncModeSection.test.tsx             |    48 +
 .../PropertiesModal/sections/AsyncModeSection.tsx  |    60 +
 .../sections/LabelColorMapping.test.tsx            |   111 +
 .../PropertiesModal/sections/LabelColorMapping.tsx |   494 +
 .../sections/StylingSection.test.tsx               |   211 +-
 .../PropertiesModal/sections/StylingSection.tsx    |   106 +-
 .../components/PropertiesModal/sections/index.ts   |     1 +
 .../PublishedStatus/PublishedStatus.test.tsx       |    10 +-
 .../RefreshFrequencySelect.test.tsx                |   358 +
 .../RefreshFrequency/RefreshFrequencySelect.tsx    |   164 +-
 .../dashboard/components/RefreshFrequency/index.ts |     3 +
 .../components/RefreshIntervalModal.test.tsx       |   194 +
 .../dashboard/components/RefreshIntervalModal.tsx  |     2 +-
 .../src/dashboard/components/SaveModal.test.tsx    |   178 +
 .../src/dashboard/components/SliceAdder.test.tsx   |     2 +-
 .../src/dashboard/components/SliceAdder.tsx        |     8 +-
 .../components/SliceHeader/SliceHeader.test.tsx    |   248 +-
 .../components/SliceHeader/SliceInfo.test.tsx      |    64 +
 .../dashboard/components/SliceHeader/SliceInfo.tsx |    45 +
 .../src/dashboard/components/SliceHeader/index.tsx |    40 +-
 .../SliceHeaderControls.subdirectory.test.tsx      |    15 +-
 .../SliceHeaderControls.test.tsx                   |   489 +-
 .../components/SliceHeaderControls/Styles.tsx      |    18 +-
 .../ViewAsTableRendering.test.tsx                  |   309 +
 .../components/SliceHeaderControls/index.tsx       |    48 +-
 .../components/SliceHeaderControls/types.ts        |     1 +
 .../URLShortLinkButton/URLShortLinkButton.test.tsx |     8 +-
 .../components/dnd/dragDroppableConfig.test.ts     |   270 +
 .../dashboard/components/dnd/handleDrop.test.ts    |   346 +
 .../components/filterscope/FilterScope.test.tsx    |    34 +-
 .../filterscope/FilterScopeSelector.test.tsx       |    12 +-
 .../components/gridComponents/Chart/Chart.test.tsx |   442 +-
 .../components/gridComponents/Chart/Chart.tsx      |   121 +-
 .../ChartHolder/ChartHolder.test.tsx               |     4 +-
 .../gridComponents/ChartHolder/ChartHolder.tsx     |    18 +-
 .../gridComponents/Divider/Divider.test.tsx        |     4 +-
 .../components/gridComponents/Header/Header.tsx    |     2 +-
 .../gridComponents/Markdown/Markdown.test.tsx      |    20 +-
 .../components/gridComponents/Row/Row.test.tsx     |    43 +-
 .../components/gridComponents/Row/Row.tsx          |   124 +-
 .../components/gridComponents/Tab/Tab.test.tsx     |    16 +-
 .../components/gridComponents/Tabs/Tabs.test.tsx   |   165 +-
 .../components/gridComponents/Tabs/Tabs.tsx        |    22 +-
 .../TabsRenderer/StickyTabsOffsetContext.ts        |    36 +
 .../TabsRenderer/TabsRenderer.test.tsx             |   171 +-
 .../gridComponents/TabsRenderer/TabsRenderer.tsx   |   181 +-
 .../gridComponents/TabsRenderer/index.ts           |     1 +
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |   861 +-
 .../components/menu/DownloadMenuItems/index.tsx    |   341 +-
 .../dashboard/components/menu/HoverMenu.test.tsx   |     6 +-
 .../src/dashboard/components/menu/HoverMenu.tsx    |     4 +-
 .../menu/ShareMenuItems/ShareMenuItems.test.tsx    |    28 +-
 .../ConfigModal/SharedStyles.test.tsx              |    45 +
 .../nativeFilters/ConfigModal/SharedStyles.tsx     |    12 +-
 .../FilterBar/ActionButtons/ActionButtons.test.tsx |    11 +-
 .../FilterBar/CrossFilters/CrossFilterTag.test.tsx |     4 +-
 .../ScopingModal/ChartsScopingListPanel.test.tsx   |    10 +-
 .../ScopingModal/ScopingModal.test.tsx             |    24 +-
 .../CrossFilters/ScopingModal/ScopingTreePanel.tsx |    13 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   343 +-
 .../FilterBarSettings/FilterBarSettings.test.tsx   |    42 +-
 .../FilterConfigurationLink.test.tsx               |     4 +-
 .../FilterControls/FilterControl.test.tsx          |    26 +
 .../FilterBar/FilterControls/FilterControl.tsx     |     4 +-
 .../FilterControls/FilterControlShared.test.tsx    |     2 +-
 .../FilterControls.overflow.test.tsx               |   541 +-
 .../FilterControls/FilterControls.test.tsx         |    65 +
 .../FilterBar/FilterControls/FilterControls.tsx    |    95 +-
 .../FilterControls/FilterDivider.test.tsx          |     2 +-
 .../FilterBar/FilterControls/FilterValue.test.tsx  |   267 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   165 +-
 .../FilterControls/GroupByFilterCard.test.tsx      |   491 +-
 .../FilterBar/FilterControls/GroupByFilterCard.tsx |   233 +-
 .../FilterBar/FiltersDropdownContent/index.tsx     |    21 +-
 .../nativeFilters/FilterBar/Header/Header.test.tsx |     4 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |    82 +-
 .../components/nativeFilters/FilterBar/index.tsx   |    16 +-
 .../nativeFilters/FilterBar/keyValue.test.ts       |   147 +
 .../nativeFilters/FilterBar/state.test.ts          |   220 +
 .../nativeFilters/FilterBar/utils.test.ts          |   125 +
 .../components/nativeFilters/FilterBar/utils.ts    |    27 +-
 .../nativeFilters/FilterCard/FilterCard.test.tsx   |     6 +-
 .../FiltersConfigModal/FilterConfigPane.test.tsx   |     8 +-
 .../FiltersConfigForm/CollapsibleControl.test.tsx  |     5 +-
 .../ColumnSelect.requestLifetime.test.tsx          |   155 +
 .../FiltersConfigForm/ColumnSelect.test.tsx        |    43 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |   151 +-
 .../FiltersConfigForm/DatasetSelect.test.tsx       |    30 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |    48 +-
 .../FiltersConfigForm/DefaultValue.test.tsx        |   118 +
 .../FiltersConfigForm/DefaultValue.tsx             |    25 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |   719 +-
 .../GroupByColumnAllowlist.test.tsx                |   429 +
 .../FiltersConfigForm/getControlItemsMap.test.tsx  |    41 +-
 .../FiltersConfigForm/getControlItemsMap.tsx       |     6 +-
 .../FiltersConfigForm/utils.test.ts                |   198 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |    94 +-
 .../FiltersConfigModal.semanticDefault.test.tsx    |  1173 +
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |   229 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |     4 +-
 .../FiltersConfigModal/NativeFiltersModal.test.tsx |     9 +
 .../FiltersConfigModal/hooks/index.ts              |     5 +-
 .../hooks/useFilterOperations.test.ts              |   441 +
 .../hooks/useFilterOperations.ts                   |    46 +-
 .../hooks/useItemStateManager.ts                   |    28 +-
 .../hooks/useModalSaveLogic.test.ts                |   118 +
 .../transformers/buildTarget.test.ts               |    44 +-
 .../FiltersConfigModal/transformers/buildTarget.ts |    37 +-
 .../transformers/customizationTransformer.test.ts  |   109 +
 .../transformers/customizationTransformer.ts       |    67 +-
 .../transformers/filterTransformer.ts              |    10 +-
 .../nativeFilters/FiltersConfigModal/types.ts      |    10 +
 .../nativeFilters/FiltersConfigModal/utils.test.ts |    42 +
 .../components/nativeFilters/selectors.test.ts     |    71 +
 .../components/nativeFilters/selectors.ts          |     8 +-
 .../useDisplayControlDatasource.test.ts            |   192 +
 .../nativeFilters/useDisplayControlDatasource.ts   |   168 +
 .../components/nativeFilters/utils.test.ts         |    40 +
 .../dashboard/components/nativeFilters/utils.ts    |    13 +
 .../components/resizable/ResizableContainer.tsx    |     3 +-
 superset-frontend/src/dashboard/constants.ts       |     6 +
 .../dashboard/containers/DashboardPage.test.tsx    |   153 +-
 .../src/dashboard/containers/DashboardPage.tsx     |    86 +-
 .../dashboard/contexts/AutoRefreshContext.test.tsx |    69 +
 .../src/dashboard/contexts/AutoRefreshContext.tsx  |    31 +-
 .../dashboard/contexts/DashboardDatasetsContext.ts |    28 +
 .../dashboard/hooks/useDownloadScreenshot.test.ts  |   118 +-
 .../src/dashboard/hooks/useDownloadScreenshot.ts   |    67 +-
 .../src/dashboard/reducers/dashboardInfo.test.ts   |   327 +
 .../src/dashboard/reducers/dashboardInfo.ts        |   170 +
 .../src/dashboard/reducers/dashboardLayout.test.ts |    62 +
 .../src/dashboard/reducers/dashboardLayout.ts      |    26 +
 .../src/dashboard/reducers/dashboardState.test.ts  |    23 +
 .../src/dashboard/reducers/dashboardState.ts       |     2 +
 superset-frontend/src/dashboard/types.ts           |    18 +-
 .../src/dashboard/useDashboardFilterSync.test.tsx  |   272 +
 .../src/dashboard/useDashboardFilterSync.ts        |   118 +
 .../util/activeAllDashboardFilters.test.ts         |    60 +
 .../dashboard/util/activeAllDashboardFilters.ts    |    13 +-
 .../src/dashboard/util/chartStateConverter.ts      |    12 +-
 .../util/charts/getFormDataWithExtraFilters.ts     |   170 +-
 .../src/dashboard/util/crossFilters.test.ts        |    75 +
 .../src/dashboard/util/crossFilters.ts             |    23 +-
 .../src/dashboard/util/embeddedLayout.ts           |    32 +
 .../src/dashboard/util/getDropPosition.test.ts     |    83 +
 .../src/dashboard/util/getDropPosition.ts          |    13 +
 .../util/getFormDataWithExtraFilters.test.ts       |   461 +-
 .../src/dashboard/util/getRelatedCharts.ts         |    32 +-
 .../src/dashboard/util/permissionUtils.test.ts     |    16 +
 .../src/dashboard/util/permissionUtils.ts          |     7 +-
 .../util/removeUnreachableComponents.test.ts       |   283 +
 .../dashboard/util/removeUnreachableComponents.ts  |   225 +
 .../src/dashboard/util/resolveCssImports.test.ts   |   210 +
 .../src/dashboard/util/resolveCssImports.ts        |   280 +
 .../util/updateComponentParentsList.test.ts        |    17 +
 .../dashboard/util/updateComponentParentsList.ts   |     7 +-
 .../dashboard/util/withChartDisplayLabels.test.ts  |   153 +
 .../src/dashboard/util/withChartDisplayLabels.ts   |    61 +
 superset-frontend/src/dataMask/reducer.test.ts     |   156 +
 superset-frontend/src/dataMask/reducer.ts          |    35 +-
 superset-frontend/src/embedded/api.test.ts         |    84 +
 superset-frontend/src/embedded/api.tsx             |    65 +-
 .../src/embedded/guestTokenDiagnostics.test.ts     |   101 +
 .../src/embedded/guestTokenDiagnostics.ts          |    71 +
 superset-frontend/src/embedded/index.test.tsx      |   191 +-
 superset-frontend/src/embedded/index.tsx           |    51 +-
 .../src/explore/actions/exploreActions.test.ts     |   219 +-
 .../src/explore/actions/exploreActions.ts          |    54 +-
 .../src/explore/actions/hydrateExplore.test.ts     |    76 +-
 .../src/explore/actions/hydrateExplore.ts          |    34 +-
 .../src/explore/actions/saveModalActions.test.ts   |   485 +-
 .../src/explore/actions/saveModalActions.ts        |   124 +-
 .../components/ChartPills.behavior.test.tsx        |   158 +
 .../src/explore/components/ChartPills.test.tsx     |   134 +
 .../src/explore/components/ChartPills.tsx          |    36 +-
 .../src/explore/components/Control.test.tsx        |   113 +-
 .../src/explore/components/Control.tsx             |    24 +-
 .../src/explore/components/ControlHeader.test.tsx  |   216 +
 .../src/explore/components/ControlHeader.tsx       |    92 +-
 .../components/ControlPanelsContainer.test.tsx     |   479 +-
 .../explore/components/ControlPanelsContainer.tsx  |   112 +-
 .../CopyToClipboardButton.test.tsx                 |     4 +-
 .../DataTableControl/FilterInput.test.tsx          |     2 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |    26 +-
 .../components/DataTableControls.tsx               |    15 +-
 .../components/ResultsPaneOnDashboard.tsx          |    26 +-
 .../DataTablesPane/components/SamplesPane.tsx      |    30 +-
 .../components/SingleQueryResultPane.tsx           |     4 +
 .../components/useGridResultTable.tsx              |     6 +-
 .../DataTablesPane/components/useResultsPane.tsx   |    20 +-
 .../DataTablesPane/test/DataTableControls.test.tsx |    94 +
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    36 +-
 .../test/ResultsPaneOnDashboard.test.tsx           |    61 +
 .../DataTablesPane/test/SamplesPane.test.tsx       |    49 +-
 .../test/getStaleResultsTabFallback.test.ts        |     2 +-
 .../DataTablesPane/test/useResultsPane.test.tsx    |    61 +-
 .../src/explore/components/DataTablesPane/types.ts |    10 +
 .../src/explore/components/DataTablesPane/utils.ts |    54 +
 .../DatasourcePanel.real-autosizer.test.tsx        |     7 +-
 .../DatasourcePanel/DatasourcePanel.test.tsx       |    29 +-
 .../DatasourcePanelDragOption.test.tsx             |    74 +
 .../DatasourcePanelDragOption/index.tsx            |    33 +-
 .../DatasourcePanel/DatasourcePanelItem.test.tsx   |    94 +-
 .../DatasourcePanel/DatasourcePanelItem.tsx        |   128 +-
 .../DatasourcePanel/compatibility.test.ts          |    57 +
 .../components/DatasourcePanel/compatibility.ts    |    70 +
 .../components/DatasourcePanel/folderDrag.test.ts  |    88 +
 .../components/DatasourcePanel/folderDrag.ts       |    68 +
 .../explore/components/DatasourcePanel/index.tsx   |    10 +-
 .../src/explore/components/DndItemType.ts          |     3 +
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |   635 +-
 .../components/ExploreChartHeader/index.tsx        |    37 +-
 .../ExploreChartPanel/ExploreChartPanel.test.tsx   |    41 +-
 .../StandaloneDownloadControl.test.tsx             |    14 +-
 .../explore/components/ExploreChartPanel/index.tsx |    23 +-
 .../ExploreContainer/ExploreDndContext.test.tsx    |   138 +
 .../ExploreContainer/ExploreDndContext.tsx         |   129 +-
 .../ExploreViewContainer.test.tsx                  |   514 +-
 .../components/ExploreViewContainer/index.tsx      |    72 +-
 .../ExportToCSVDropdown.test.tsx                   |    16 +-
 .../components/LegacyAggregationAlert.test.tsx     |   302 +
 .../explore/components/LegacyAggregationAlert.tsx  |   115 +
 .../explore/components/PropertiesModal/index.tsx   |    58 +-
 .../RunQueryButton/RunQueryButton.test.tsx         |   381 +-
 .../explore/components/RunQueryButton/index.tsx    |     6 +-
 .../src/explore/components/SaveModal.test.tsx      |   191 +-
 .../src/explore/components/SaveModal.tsx           |    49 +-
 .../AnnotationLayer.subdirectory.test.tsx          |     2 +-
 .../AnnotationLayer.test.tsx                       |    64 +-
 .../AnnotationLayerControl/AnnotationLayer.tsx     |     2 +-
 .../controls/AnnotationLayerControl/index.test.tsx |    84 +-
 .../components/controls/BoundsControl.test.tsx     |    10 +-
 .../components/controls/CheckboxControl.test.tsx   |   150 +-
 .../components/controls/CheckboxControl.tsx        |    73 +-
 .../CollectionControl/CollectionControl.test.tsx   |    20 +-
 .../ColorBreakpointOption.test.tsx                 |    29 +-
 .../ColorBreakpointOption.tsx                      |    17 +-
 .../ColorBreakpointPopoverControl.test.tsx         |    48 +-
 .../ColorBreakpointPopoverTrigger.test.tsx         |    30 +-
 .../ColorBreakpointPopoverTrigger.tsx              |     7 +-
 .../ColorBreakpointsControl.test.tsx               |    22 +-
 .../components/controls/ColorPickerControl.tsx     |     2 +-
 .../ColorSchemeControl/ColorSchemeControl.test.tsx |   100 +-
 .../ColorSchemeControl/ColorSchemeLabel.test.tsx   |    14 +
 .../ColorSchemeControl/ColorSchemeLabel.tsx        |     3 +
 .../ColumnConfigConstants.test.tsx                 |    25 +-
 .../ColumnConfigControl.popover.test.tsx           |   293 +
 .../ColumnConfigControl.test.tsx                   |   161 +
 .../ColumnConfigControl/ColumnConfigControl.tsx    |    40 +-
 .../ControlForm/ControlForm.debounce.test.tsx      |   124 +
 .../ControlForm/ControlForm.test.tsx               |   158 +
 .../ColumnConfigControl/ControlForm/index.tsx      |    50 +-
 .../controls/ColumnConfigControl/constants.tsx     |     5 +-
 .../controls/ColumnConfigControl/index.tsx         |     1 -
 .../controls/ColumnConfigControl/types.ts          |     7 +-
 .../controls/ComparisonRangeLabel.test.tsx         |   286 +
 .../components/controls/ComparisonRangeLabel.tsx   |    90 +-
 .../ConditionalFormattingControl.test.tsx          |   331 +-
 .../ConditionalFormattingControl.tsx               |    18 +-
 .../FormattingPopover.tsx                          |     4 +
 .../FormattingPopoverContent.test.tsx              |   978 +-
 .../FormattingPopoverContent.tsx                   |   517 +-
 .../ConditionalFormattingControl/constants.ts      |    17 +-
 .../controls/ConditionalFormattingControl/types.ts |    22 +
 .../ContourControl/ContourControl.test.tsx         |   128 +
 .../controls/ContourControl/ContourOption.test.tsx |   111 +
 .../controls/ContourControl/ContourOption.tsx      |     8 +-
 .../ContourPopoverControl-unused-fields.test.tsx   |    60 +
 .../ContourControl/ContourPopoverControl.test.tsx  |   277 +
 .../ContourControl/ContourPopoverControl.tsx       |    21 +-
 .../ContourControl/ContourPopoverTrigger.test.tsx  |   133 +
 .../ContourControl/ContourPopoverTrigger.tsx       |     7 +-
 .../controls/ContourControl/index.test.tsx         |   212 +
 .../ControlPopover/ControlPopover.test.tsx         |    86 +-
 .../controls/ControlPopover/ControlPopover.tsx     |    39 +-
 .../ControlPopover/PopoverTriggerAnchors.test.tsx  |    53 +
 .../controls/CustomListItem/index.test.tsx         |    48 +
 .../DatasourceControl/DatasourceControl.test.tsx   |    18 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |   145 +-
 .../DateFilterControl/components/CustomFrame.tsx   |    18 +-
 .../components/DateFunctionTooltip.tsx             |     2 +-
 .../DateFilterControl/tests/AdvancedFrame.test.tsx |     8 +-
 .../DateFilterControl/tests/CommonFrame.test.tsx   |    72 +
 .../DateFilterControl/tests/CustomFrame.test.tsx   |    62 +-
 .../tests/DateFilterLabel.test.tsx                 |   483 +-
 .../DateFilterControl/tests/DateLabel.test.tsx     |    73 +
 .../components/controls/DateFilterControl/types.ts |     7 +
 .../ColumnSelectPopover.test.tsx                   |   692 +-
 .../DndColumnSelectControl/ColumnSelectPopover.tsx |   323 +-
 .../ColumnSelectPopoverTrigger.test.tsx            |     4 +-
 .../ColumnSelectPopoverTrigger.tsx                 |    28 +-
 .../DndAdhocFilterOption.tsx                       |     5 +-
 .../DndColumnMetricSelect.test.tsx                 |   281 +-
 .../DndColumnMetricSelect.tsx                      |    50 +-
 .../DndColumnSelect.test.tsx                       |   334 +-
 .../DndColumnSelectControl/DndColumnSelect.tsx     |    50 +-
 .../DndFilterSelect.test.tsx                       |   187 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |     6 +
 .../DndMetricSelect.test.tsx                       |   289 +-
 .../DndColumnSelectControl/DndMetricSelect.tsx     |   108 +-
 .../DndColumnSelectControl/DndSelectLabel.test.tsx |   118 +-
 .../DndColumnSelectControl/DndSelectLabel.tsx      |    53 +-
 .../DndColumnSelectControl/Option.test.tsx         |     2 +-
 .../createAdhocMetricFromColumn.test.ts            |    49 +
 .../DndColumnSelectControl/dndTestUtils.ts         |    18 +
 .../utils/pickerCapabilities.test.ts               |   101 +
 .../utils/pickerCapabilities.ts                    |    82 +
 .../FilterControl/AdhocFilter/AdhocFilter.test.ts  |    60 +
 .../controls/FilterControl/AdhocFilter/index.ts    |    16 +-
 .../AdhocFilterControl/AdhocFilterControl.test.tsx |   102 +-
 .../FilterControl/AdhocFilterControl/index.tsx     |    15 +-
 .../AdhocFilterEditPopover.test.tsx                |    78 +-
 .../FilterControl/AdhocFilterEditPopover/index.tsx |     3 +
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   694 +-
 .../index.tsx                                      |   362 +-
 .../AdhocFilterEditPopoverSqlTabContent.test.tsx   |     4 +-
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |    20 +-
 .../FilterControl/AdhocFilterOption/index.tsx      |     5 +-
 .../AdhocFilterPopoverTrigger.test.tsx             |     4 +-
 .../AdhocFilterPopoverTrigger/index.tsx            |    13 +-
 .../controls/FilterControl/utils/translateToSQL.ts |    34 +-
 .../FixedOrMetricControl.test.tsx                  |    23 +-
 .../controls/FixedOrMetricControl/index.tsx        |     2 +-
 .../HeaderGroupsControl/HeaderGroupEditor.tsx      |   567 +
 .../HeaderGroupsControl.test.tsx                   |   906 +
 .../HeaderGroupsControl/HeaderGroupsControl.tsx    |   289 +
 .../controls/HeaderGroupsControl/index.ts          |    26 +
 .../controls/HeaderGroupsControl/types.ts          |    46 +
 .../controls/HeaderGroupsControl/utils.test.ts     |   388 +
 .../controls/HeaderGroupsControl/utils.ts          |   215 +
 .../components/controls/JSEditorControl.test.tsx   |     9 +-
 .../components/controls/JSEditorControl.tsx        |    10 +-
 .../LayerConfigsControl.test.tsx                   |   271 +
 .../controls/MapViewControl/ExtentTag.test.tsx     |    68 +
 .../controls/MapViewControl/ExtentTag.tsx          |    13 +-
 .../MapViewControl/MapViewControl.test.tsx         |   134 +
 .../MapViewControl/MapViewPopoverContent.test.tsx  |    78 +
 .../components/controls/MapViewControl/types.ts    |     6 +-
 .../MatrixifyControl/utils/fetchTopNValues.test.ts |   165 +
 .../controls/MatrixifyDimensionControl.test.tsx    |   209 +-
 .../controls/MatrixifyDimensionControl.tsx         |    51 +-
 .../controls/MetricControl/AdhocMetric.test.ts     |    39 +
 .../controls/MetricControl/AdhocMetric.ts          |    13 +
 .../AdhocMetricEditPopover.test.tsx                |    96 +-
 .../MetricControl/AdhocMetricEditPopover/index.tsx |    10 +-
 .../AdhocMetricEditPopoverTitle.test.tsx           |     7 +-
 .../MetricControl/AdhocMetricOption.test.tsx       |    29 +-
 .../AdhocMetricPopoverTrigger.test.tsx             |   278 +
 .../MetricControl/AdhocMetricPopoverTrigger.tsx    |    10 +-
 .../MetricControl/MetricDefinitionOption.test.tsx  |     2 +-
 .../controls/MetricControl/MetricsControl.test.tsx |    18 +-
 .../controls/NumberControl/NumberControl.test.tsx  |    16 +-
 .../SelectAsyncControl/SelectAsyncControl.test.tsx |     4 +-
 .../components/controls/SelectControl.test.tsx     |    84 +-
 .../controls/SemanticRequestView.test.tsx          |   111 +
 .../components/controls/SemanticRequestView.tsx    |    71 +
 .../components/controls/SliderControl.test.tsx     |    71 +
 .../components/controls/SwitchControl.test.tsx     |    57 +
 .../components/controls/TextAreaControl.test.tsx   |   103 +
 .../components/controls/TextAreaControl.tsx        |   169 +-
 .../controls/TextControl/TextControl.test.tsx      |    15 +
 .../components/controls/TextControl/index.tsx      |    16 +-
 .../controls/TimeRangeControl/index.test.tsx       |    55 +
 .../components/controls/TimeRangeControl/index.tsx |     2 +-
 .../TimeSeriesColumnControl.test.tsx               |   137 +-
 .../controls/VerticalRadioControl.test.tsx         |    83 +
 .../components/controls/ViewQueryModal.test.tsx    |   300 +-
 .../explore/components/controls/ViewQueryModal.tsx |    98 +-
 .../controls/ViewQueryModalFooter.test.tsx         |   141 +
 .../components/controls/ViewQueryModalFooter.tsx   |     7 +-
 .../components/controls/ViewportControl.test.tsx   |     8 +-
 .../VizTypeControl/VizTypeControl.test.tsx         |    92 +-
 .../controls/VizTypeControl/VizTypeGallery.tsx     |    84 +-
 .../components/controls/XAxisSortControl.test.tsx  |    80 +
 .../components/controls/XAxisSortControl.tsx       |    10 +-
 .../ZoomConfigControl/ZoomConfigControl.test.tsx   |   142 +
 .../ZoomConfigControl/ZoomConfigControl.tsx        |    36 +-
 .../ZoomConfigControl/ZoomConfigsChart.test.tsx    |   178 +
 .../src/explore/components/controls/index.ts       |     2 +
 .../useExploreAdditionalActionsMenu/index.tsx      |   142 +-
 .../useExploreAdditionalActionsMenu.test.tsx       |   162 +-
 superset-frontend/src/explore/constants.ts         |    29 +-
 .../src/explore/controlPanels/sections.tsx         |     7 +
 .../controlUtils/getSectionsToRender.test.ts       |   179 +
 .../controlUtils/standardizedFormData.test.ts      |    30 +
 .../explore/controlUtils/standardizedFormData.ts   |     5 +
 superset-frontend/src/explore/controls.tsx         |     8 +-
 .../src/explore/exploreUtils/exploreUtils.test.tsx |    57 +
 .../src/explore/exploreUtils/index.ts              |    33 +-
 .../exploreUtils/legacyAggregationTag.test.ts      |   137 +
 .../explore/exploreUtils/legacyAggregationTag.ts   |    93 +
 .../explore/reducers/datasourcesReducer.test.ts    |   171 +
 .../src/explore/reducers/exploreReducer.test.ts    |   479 +-
 .../src/explore/reducers/exploreReducer.ts         |    85 +-
 .../src/explore/reducers/saveModalReducer.test.ts  |   184 +
 .../src/explore/reducers/saveModalReducer.ts       |    15 +-
 .../src/explore/selectors/compatibility.test.ts    |    67 +
 .../src/explore/selectors/compatibility.ts         |    55 +
 superset-frontend/src/explore/types.ts             |    48 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |  2160 +-
 .../src/features/alerts/AlertReportModal.tsx       |  1368 +-
 .../alerts/ReportConfigurationModal.test.tsx       |   409 +
 .../features/alerts/ReportConfigurationModal.tsx   |   488 +
 .../alerts/components/AlertStatusIcon.test.tsx     |    20 +-
 .../features/alerts/components/AlertStatusIcon.tsx |     1 +
 .../alerts/components/NotificationMethod.test.tsx  |     8 +-
 .../alerts/hooks/useReportConfiguration.ts         |    64 +
 superset-frontend/src/features/alerts/types.ts     |    34 +-
 .../src/features/charts/ChartCard.test.tsx         |   199 +
 .../src/features/charts/ChartCard.tsx              |    58 +-
 .../src/features/dashboards/DashboardCard.test.tsx |    98 +-
 .../src/features/dashboards/DashboardCard.tsx      |    26 +-
 .../DatabaseConnectionForm/CommonParameters.tsx    |     2 +
 .../databases/DatabaseModal/ExtraOptions.tsx       |     7 +-
 .../databases/DatabaseModal/ModalHeader.tsx        |     2 +-
 .../DatabaseModal/SSHTunnelSwitch.test.tsx         |     6 +-
 .../databases/DatabaseModal/index.test.tsx         |   139 +-
 .../src/features/databases/DatabaseModal/index.tsx |     2 +-
 .../UploadDataModel/UploadDataModal.test.tsx       |    12 +-
 .../AddDataset/DatasetPanel/DatasetPanel.test.tsx  |     9 +-
 .../DatasetPanel/DatasetPanelWrapper.test.tsx      |     9 +-
 .../datasets/AddDataset/Footer/Footer.test.tsx     |    15 +-
 .../AddDataset/LeftPanel/LeftPanel.test.tsx        |    28 +-
 .../features/datasets/DatasetSelectLabel/index.tsx |     9 +-
 .../features/datasets/fetchDatasourceList.test.ts  |    75 +
 .../src/features/datasets/fetchDatasourceList.ts   |   113 +
 superset-frontend/src/features/datasets/types.ts   |     3 +
 .../src/features/home/ActivityTable.test.tsx       |     2 +-
 .../src/features/home/ChartTable.test.tsx          |     6 +-
 .../src/features/home/DashboardTable.test.tsx      |    66 +-
 .../src/features/home/DashboardTable.tsx           |    38 +-
 .../src/features/home/LanguagePicker.test.tsx      |    12 +-
 .../src/features/home/LanguagePicker.tsx           |     2 +-
 superset-frontend/src/features/home/Menu.test.tsx  |    51 +-
 superset-frontend/src/features/home/Menu.tsx       |    10 +
 .../src/features/home/RightMenu.test.tsx           |   116 +-
 superset-frontend/src/features/home/RightMenu.tsx  |    26 +
 .../src/features/home/SubMenu.test.tsx             |     4 +-
 .../HeaderReportDropdown/index.test.tsx            |    45 +-
 .../reports/ReportModal/ReportModal.test.tsx       |   495 +-
 .../src/features/reports/ReportModal/actions.ts    |     2 +
 .../src/features/reports/ReportModal/index.tsx     |   125 +-
 .../features/reports/ReportModal/reducer.test.ts   |    82 +-
 .../src/features/reports/ReportModal/reducer.ts    |    12 +-
 superset-frontend/src/features/reports/types.ts    |     4 +
 .../features/rls/RowLevelSecurityModal.test.tsx    |    30 +-
 .../src/features/roles/RoleFormItems.tsx           |     6 +
 .../semanticLayers/MultiEnumControl.test.tsx       |    36 +
 .../semanticLayers/SemanticLayerModal.test.tsx     |   540 +-
 .../features/semanticLayers/SemanticLayerModal.tsx |   172 +-
 .../semanticLayers/jsonFormsAntdRenderers.test.tsx |   269 +
 .../features/semanticLayers/jsonFormsHelpers.tsx   |   139 +-
 .../semanticViews/AddSemanticViewModal.test.tsx    |  1226 +-
 .../semanticViews/AddSemanticViewModal.tsx         |   411 +-
 .../semanticViews/SemanticViewEditModal.test.tsx   |   178 +-
 .../semanticViews/SemanticViewEditModal.tsx        |    71 +-
 .../src/features/semanticViews/creationResult.ts   |    90 +
 .../subjects/SubjectPicker/SubjectPicker.test.tsx  |     2 +-
 superset-frontend/src/features/tags/tags.ts        |     2 +-
 .../src/features/tasks/LiveDuration.test.tsx       |   100 +
 .../src/features/tasks/LiveDuration.tsx            |    57 +
 .../tasks/TaskDependenciesPopover.test.tsx         |    83 +
 .../src/features/tasks/TaskDependenciesPopover.tsx |   141 +
 .../src/features/tasks/TaskPayloadPopover.test.tsx |    74 +
 .../src/features/tasks/TaskPayloadPopover.tsx      |    45 +-
 .../src/features/tasks/timeUtils.test.ts           |    12 +-
 superset-frontend/src/features/tasks/timeUtils.ts  |    59 +-
 superset-frontend/src/features/tasks/types.ts      |   104 +-
 .../src/features/themes/ThemeModal.test.tsx        |   198 +-
 .../src/features/themes/ThemeModal.tsx             |   179 +-
 superset-frontend/src/features/themes/types.ts     |     3 +
 .../src/features/userInfo/UserInfoModal.test.tsx   |   162 +
 .../src/features/userInfo/UserInfoModal.tsx        |    37 +-
 .../src/features/users/UserListModal.test.tsx      |   178 +
 .../src/features/users/UserListModal.tsx           |   108 +-
 superset-frontend/src/features/users/utils.ts      |     8 +-
 .../src/features/versionHistory/ActionRow.tsx      |   115 +-
 .../versionHistory/ChartVersionPreview.test.tsx    |    21 +-
 .../versionHistory/ChartVersionPreview.tsx         |    22 +-
 .../versionHistory/CurrentVersionSection.tsx       |    12 +-
 .../DashboardVersionHistory.test.tsx               |   144 +-
 .../versionHistory/DashboardVersionHistory.tsx     |    49 +-
 .../versionHistory/ExploreVersionHistory.test.tsx  |   344 +-
 .../versionHistory/ExploreVersionHistory.tsx       |    54 +-
 .../features/versionHistory/PreviewBanner.test.tsx |    17 +
 .../src/features/versionHistory/PreviewBanner.tsx  |    33 +-
 .../versionHistory/RelatedUpdateRow.test.tsx       |   177 +
 .../features/versionHistory/RelatedUpdateRow.tsx   |   108 +-
 .../features/versionHistory/SaveGroupItem.test.tsx |   372 +
 .../src/features/versionHistory/SaveGroupItem.tsx  |   101 +-
 .../versionHistory/VersionHistoryPanel.test.tsx    |   171 +-
 .../versionHistory/VersionHistoryPanel.tsx         |    63 +-
 .../src/features/versionHistory/display.test.ts    |   102 +
 .../src/features/versionHistory/display.ts         |    79 +-
 .../src/features/versionHistory/grouping.test.ts   |    36 +
 .../src/features/versionHistory/grouping.ts        |     7 +
 .../features/versionHistory/normalization.test.ts  |   108 +
 .../src/features/versionHistory/normalization.ts   |   158 +
 .../src/features/versionHistory/reducer.test.ts    |    56 +
 .../src/features/versionHistory/reducer.ts         |   133 +-
 .../versionHistory/sessionLogMiddleware.test.ts    |    46 +-
 .../versionHistory/sessionLogMiddleware.ts         |    85 +-
 .../src/features/versionHistory/types.ts           |    66 +-
 .../versionHistory/useDashboardVersionPreview.ts   |     5 +-
 .../versionHistory/useVersionActions.test.tsx      |     6 +-
 .../features/versionHistory/useVersionActions.tsx  |     5 +-
 .../versionHistory/useVersionActivity.test.ts      |     4 +-
 .../filters/components/Range/RangeChart.test.tsx   |   115 +
 .../components/Range/RangeFilterPlugin.test.tsx    |   485 +-
 .../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          |     3 +
 .../filters/components/Range/isSemanticRange.ts    |    32 +
 .../src/filters/components/Range/transformProps.ts |     2 +-
 .../components/Select/SelectFilterPlugin.test.tsx  |   762 +-
 .../components/Select/SelectFilterPlugin.tsx       |   248 +-
 .../filters/components/Select/buildQuery.test.ts   |    32 +
 .../src/filters/components/Select/buildQuery.ts    |     9 +-
 .../src/filters/components/Select/index.ts         |     1 +
 .../components/Time/TimeFilterPlugin.test.tsx      |   133 +
 .../filters/components/Time/TimeFilterPlugin.tsx   |     1 +
 .../src/filters/components/Time/controlPanel.ts    |    17 +
 .../src/filters/components/Time/index.ts           |     1 +
 .../src/filters/components/Time/types.ts           |     1 +
 .../TimeColumn/TimeColumnFilterPlugin.test.tsx     |   110 +
 .../src/filters/components/TimeColumn/index.ts     |     1 +
 .../src/filters/components/TimeGrain/index.ts      |     1 +
 superset-frontend/src/filters/utils.ts             |     9 +-
 .../src/hooks/apiResources/dashboards.test.ts      |    62 +
 .../src/hooks/apiResources/dashboards.ts           |    29 +-
 .../src/hooks/apiResources/datasets.cache.test.ts  |    48 +
 .../src/hooks/apiResources/datasets.test.ts        |   290 +-
 .../src/hooks/apiResources/datasets.ts             |   138 +-
 superset-frontend/src/hooks/usePermissions.ts      |     1 +
 superset-frontend/src/hooks/useRunStopButton.ts    |   181 +
 superset-frontend/src/hooks/useTabId.test.ts       |   153 +
 superset-frontend/src/hooks/useTabId.ts            |   166 +-
 .../src/hooks/useThemeMenuItems.test.tsx           |    10 +
 .../src/middleware/asyncEvent.test.ts              |  1636 +-
 superset-frontend/src/middleware/asyncEvent.ts     |   884 +-
 .../src/middleware/asyncQueryError.ts              |   118 +
 superset-frontend/src/middleware/realtime.test.ts  |   390 +
 superset-frontend/src/middleware/realtime.ts       |   451 +
 .../src/pages/ActionLog/ActionLog.test.tsx         |   166 +
 superset-frontend/src/pages/ActionLog/index.tsx    |    70 +-
 .../pages/AlertReportList/AlertReportList.test.tsx |    43 +
 .../src/pages/AlertReportList/index.tsx            |    22 +
 .../ArchivedList/ArchivedDatasetPurgeModal.tsx     |   217 +
 .../src/pages/ArchivedList/ArchivedList.test.tsx   |   505 +-
 superset-frontend/src/pages/ArchivedList/index.tsx |   271 +-
 superset-frontend/src/pages/ArchivedList/types.ts  |    38 +
 superset-frontend/src/pages/Chart/Chart.test.tsx   |   237 +-
 superset-frontend/src/pages/Chart/index.tsx        |    54 +-
 .../src/pages/ChartCreation/ChartCreation.test.tsx |   374 +-
 .../src/pages/ChartCreation/index.tsx              |   141 +-
 .../pages/ChartList/ChartList.listview.test.tsx    |    76 +-
 .../pages/ChartList/ChartList.permissions.test.tsx |    27 +-
 .../src/pages/ChartList/ChartList.test.tsx         |   254 +
 superset-frontend/src/pages/ChartList/index.tsx    |   265 +-
 .../DashboardList/DashboardList.behavior.test.tsx  |    30 +
 .../DashboardList/DashboardList.cardview.test.tsx  |    77 +-
 .../DashboardList.permissions.test.tsx             |    34 +-
 .../src/pages/DashboardList/index.tsx              |    50 +-
 .../DatabaseList.datasetDependents.test.tsx        |   289 +
 .../DatabaseList.semanticLayerDelete.test.tsx      |   589 +
 superset-frontend/src/pages/DatabaseList/index.tsx |   421 +-
 .../DatasetList/DatasetList.behavior.test.tsx      |   101 +
 .../DatasetList.connectionPermissions.test.tsx     |    70 +
 .../DatasetList/DatasetList.integration.test.tsx   |   197 +
 .../DatasetList/DatasetList.listview.test.tsx      |     6 +
 .../DatasetList/DatasetList.permissions.test.tsx   |    30 +
 .../src/pages/DatasetList/DatasetList.test.tsx     |    52 +
 .../pages/DatasetList/DatasetList.testHelpers.tsx  |    15 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |   448 +-
 .../pages/ForgotPassword/ForgotPassword.test.tsx   |   157 +
 .../src/pages/ForgotPassword/index.tsx             |   168 +
 superset-frontend/src/pages/Home/Home.test.tsx     |    51 +-
 superset-frontend/src/pages/Home/index.tsx         |    20 +-
 superset-frontend/src/pages/Login/Login.test.tsx   |   191 +-
 superset-frontend/src/pages/Login/index.tsx        |    84 +-
 superset-frontend/src/pages/Login/styles.ts        |    42 +
 .../src/pages/ResetPassword/ResetPassword.test.tsx |   301 +
 .../src/pages/ResetPassword/index.tsx              |   285 +
 .../RowLevelSecurityList.test.tsx                  |     2 +-
 .../pages/SavedQueryList/SavedQueryList.test.tsx   |   141 +-
 .../src/pages/SavedQueryList/index.tsx             |    22 +-
 .../src/pages/SqlLab/LocationContext.test.tsx      |    66 +
 .../src/pages/SqlLab/LocationContext.tsx           |     6 +-
 .../src/pages/TaskList/TaskList.test.tsx           |    24 +-
 superset-frontend/src/pages/TaskList/index.tsx     |   217 +-
 .../src/pages/ThemeList/ThemeList.test.tsx         |   439 +
 superset-frontend/src/pages/ThemeList/index.tsx    |   115 +-
 superset-frontend/src/pages/UserInfo/index.tsx     |     3 +-
 superset-frontend/src/preamble.test.ts             |    29 +-
 superset-frontend/src/preamble.ts                  |    10 +-
 superset-frontend/src/setup/setupApp.ts            |    16 +-
 superset-frontend/src/setup/setupErrorMessages.ts  |     5 +
 superset-frontend/src/setup/setupFormatters.ts     |     2 +-
 superset-frontend/src/theme/ThemeController.ts     |   142 +-
 superset-frontend/src/theme/ThemeProvider.tsx      |     7 +
 .../src/theme/tests/ThemeController.test.ts        |   431 +
 .../src/theme/tests/ThemeProvider.test.tsx         |    15 +
 superset-frontend/src/types/Chart.ts               |    11 +
 superset-frontend/src/types/Dashboard.ts           |     2 +
 superset-frontend/src/types/bootstrapTypes.ts      |     9 +-
 superset-frontend/src/types/react-table.d.ts       |    87 +
 superset-frontend/src/types/yaml.d.ts              |    28 +
 superset-frontend/src/utils/asyncMode.test.ts      |    91 +
 superset-frontend/src/utils/asyncMode.ts           |    69 +
 superset-frontend/src/utils/cacheWrapper.test.ts   |    54 +
 superset-frontend/src/utils/cacheWrapper.ts        |     6 +
 .../src/utils/cachedSupersetGet.test.ts            |    20 +
 superset-frontend/src/utils/colorScheme.test.ts    |   230 +
 superset-frontend/src/utils/common.ts              |     3 +
 .../src/utils/downloadAsImage.test.ts              |   852 +-
 superset-frontend/src/utils/downloadAsImage.tsx    |   274 +-
 superset-frontend/src/utils/downloadAsPdf.test.ts  |   128 +
 superset-frontend/src/utils/downloadAsPdf.ts       |    25 +-
 .../src/utils/downloadAsPivotExcel.test.ts         |   154 +
 .../src/utils/downloadAsPivotExcel.ts              |    68 +-
 superset-frontend/src/utils/downloadUtils.test.ts  |    76 +-
 superset-frontend/src/utils/downloadUtils.ts       |    21 +-
 .../utils/getChartRequiredFieldsMissingMessage.ts  |     1 +
 superset-frontend/src/utils/lazyWithRetry.test.tsx |   140 +
 superset-frontend/src/utils/lazyWithRetry.ts       |   135 +
 .../src/utils/navigationUtils.test.ts              |   155 +
 superset-frontend/src/utils/navigationUtils.ts     |    31 +-
 .../src/utils/semanticViewStructure.test.ts        |   144 +
 .../src/utils/semanticViewStructure.ts             |   128 +
 superset-frontend/src/utils/softDeleteCopy.test.ts |    29 +-
 superset-frontend/src/utils/softDeleteCopy.ts      |    35 +-
 superset-frontend/src/utils/textUtils.ts           |    42 +-
 superset-frontend/src/utils/urlUtils.test.ts       |    23 +
 superset-frontend/src/utils/urlUtils.ts            |    17 +
 superset-frontend/src/views/App.test.tsx           |   135 +
 superset-frontend/src/views/App.tsx                |    42 +-
 superset-frontend/src/views/CRUD/hooks.test.tsx    |   490 +
 superset-frontend/src/views/CRUD/hooks.ts          |   164 +-
 superset-frontend/src/views/CRUD/types.ts          |     2 +
 superset-frontend/src/views/CRUD/utils.test.tsx    |    60 +
 superset-frontend/src/views/CRUD/utils.tsx         |    18 +-
 superset-frontend/src/views/routePaths.ts          |     2 +
 superset-frontend/src/views/routes.test.tsx        |    10 +
 superset-frontend/src/views/routes.tsx             |   100 +-
 .../components/LeftCell/LeftCell.test.tsx          |    55 +
 .../TimeTable/components/LeftCell/LeftCell.tsx     |     3 +-
 .../TimeTable/config/buildQuery.test.ts            |    14 +
 .../src/visualizations/presets/MainPreset.ts       |     8 +
 superset-frontend/stylelint.config.js              |     3 +-
 superset-frontend/test-runner-jest.config.js       |    33 -
 .../tools/webpack.proxy-config.test.js             |    14 +-
 superset-frontend/tsconfig.json                    |    20 +-
 superset-frontend/webpack.config.js                |   133 +-
 superset-frontend/webpack.proxy-config.js          |    16 +-
 superset-websocket/.npmrc                          |     1 +
 superset-websocket/.oxfmtrc.json                   |     1 -
 superset-websocket/Dockerfile                      |     8 +-
 superset-websocket/README.md                       |   297 +-
 superset-websocket/config.example.json             |    14 +-
 superset-websocket/config.test.json                |     4 +-
 superset-websocket/eslint.config.mjs               |    50 -
 superset-websocket/oxlint.json                     |   146 +
 superset-websocket/package-lock.json               |  3581 +--
 superset-websocket/package.json                    |    37 +-
 superset-websocket/spec/config.test.ts             |    72 +
 superset-websocket/spec/index.test.ts              |  1334 +-
 superset-websocket/src/config.ts                   |   151 +-
 superset-websocket/src/index.ts                    |   887 +-
 superset-websocket/utils/README.md                 |     6 +-
 superset-websocket/utils/client-ws-app/app.js      |    18 +-
 superset-websocket/utils/client-ws-app/bin/www     |    20 +-
 .../utils/client-ws-app/package-lock.json          |   240 +-
 .../utils/client-ws-app/package.json               |     5 +-
 .../utils/client-ws-app/public/javascripts/app.js  |     2 +-
 .../utils/client-ws-app/routes/index.js            |    26 +-
 superset-websocket/utils/loadtest.js               |    74 +-
 superset/__init__.py                               |    10 -
 superset/annotation_layers/schemas.py              |    21 +
 superset/app.py                                    |    39 +-
 superset/async_events/api.py                       |   179 -
 superset/async_events/async_query_manager.py       |   468 -
 .../async_events/async_query_manager_factory.py    |    35 -
 superset/async_events/cache_backend.py             |   369 -
 superset/charts/api.py                             |   314 +-
 superset/charts/client_processing.py               |   797 +-
 superset/charts/data/api.py                        |   351 +-
 superset/charts/data/dashboard_filter_context.py   |    28 +-
 superset/charts/data/form_data.py                  |     2 +-
 superset/charts/data/query_context_cache_loader.py |    30 -
 superset/charts/filters.py                         |    67 +-
 superset/charts/schemas.py                         |   380 +-
 superset/cli/deletion_retention.py                 |    26 +-
 superset/cli/examples.py                           |    19 +-
 superset/cli/importexport.py                       |     8 +-
 superset/cli/test_db.py                            |     3 -
 superset/cli/update.py                             |    34 +-
 superset/cli/viz_migrations.py                     |     5 +-
 superset/commands/annotation_layer/exceptions.py   |     5 +
 superset/commands/annotation_layer/export.py       |   109 +
 .../annotation_layer/importers}/__init__.py        |     0
 .../annotation_layer/importers/dispatcher.py       |    74 +
 .../annotation_layer/importers/v1/__init__.py      |    54 +
 .../annotation_layer/importers/v1/utils.py         |    73 +
 superset/commands/chart/create.py                  |    18 +-
 .../chart/data/create_async_job_command.py         |    43 -
 superset/commands/chart/data/get_data_command.py   |    41 +-
 superset/commands/chart/delete.py                  |    60 +-
 superset/commands/chart/exceptions.py              |     4 +
 superset/commands/chart/export.py                  |   302 +-
 superset/commands/chart/importers/v1/__init__.py   |   110 +-
 superset/commands/chart/importers/v1/utils.py      |   401 +-
 superset/commands/chart/restore_version.py         |    17 +
 superset/commands/chart/update.py                  |   169 +-
 superset/commands/chart/utils.py                   |   131 +
 superset/commands/chart/warm_up_cache.py           |    26 +-
 superset/commands/dashboard/create.py              |    16 +
 superset/commands/dashboard/exceptions.py          |    30 +-
 superset/commands/dashboard/export.py              |   147 +-
 superset/commands/dashboard/export_example.py      |    31 +
 superset/commands/dashboard/filter_state/get.py    |    49 +-
 .../commands/dashboard/importers/dispatcher.py     |    12 +-
 .../commands/dashboard/importers/v1/__init__.py    |    95 +-
 superset/commands/dashboard/importers/v1/utils.py  |    30 +-
 superset/commands/dashboard/permalink/create.py    |    43 +-
 superset/commands/dashboard/restore.py             |   132 +
 superset/commands/dashboard/restore_version.py     |    42 +
 superset/commands/dashboard/update.py              |   242 +-
 superset/commands/database/exceptions.py           |    75 +-
 superset/commands/database/export.py               |     6 +-
 superset/commands/database/importers/v1/utils.py   |   105 +-
 superset/commands/database/oauth2.py               |    27 +-
 superset/commands/database/tables.py               |    41 +-
 superset/commands/database/test_connection.py      |    41 +-
 superset/commands/database/update.py               |   197 +-
 superset/commands/database/uploaders/base.py       |    22 +-
 superset/commands/database/utils.py                |   170 +-
 superset/commands/database/validate.py             |    47 +-
 superset/commands/database/validate_sql.py         |    24 +-
 superset/commands/dataset/create.py                |   191 +-
 superset/commands/dataset/duplicate.py             |    48 +-
 superset/commands/dataset/exceptions.py            |    46 +
 superset/commands/dataset/export.py                |    63 +-
 superset/commands/dataset/importers/dispatcher.py  |    12 +-
 superset/commands/dataset/importers/v1/utils.py    |   282 +-
 superset/commands/dataset/refresh.py               |    11 +
 superset/commands/dataset/update.py                |   162 +-
 superset/commands/datasource/list.py               |   112 +-
 superset/commands/deletion_retention/audit.py      |   177 +-
 .../commands/deletion_retention/force_purge.py     |    12 +-
 .../commands/deletion_retention/prune_audit.py     |  1264 +
 .../commands/deletion_retention/purge_cascade.py   |    59 +-
 .../commands/deletion_retention/purge_impact.py    |   128 +
 .../commands/deletion_retention/purge_policy.py    |  1305 +-
 superset/commands/deletion_retention/window.py     |    77 +-
 superset/commands/distributed_lock/acquire.py      |    41 +-
 superset/commands/distributed_lock/base.py         |    17 +-
 superset/commands/distributed_lock/release.py      |    77 +-
 superset/commands/explore/get.py                   |    62 +-
 superset/commands/explore/permalink/create.py      |     7 +-
 superset/commands/explore/permalink/get.py         |     7 +-
 superset/commands/export/assets.py                 |    85 +-
 superset/commands/export/models.py                 |    73 +-
 superset/commands/importers/v1/__init__.py         |    16 +-
 superset/commands/importers/v1/assets.py           |    80 +-
 superset/commands/importers/v1/examples.py         |    35 +-
 superset/commands/importers/v1/utils.py            |   269 +-
 superset/commands/purge.py                         |   115 +-
 superset/commands/query/export.py                  |    42 +-
 superset/commands/query/importers/v1/utils.py      |    42 +-
 superset/commands/report/alert.py                  |    64 +-
 superset/commands/report/base.py                   |   279 +-
 superset/commands/report/chart_data.py             |   194 +
 superset/commands/report/create.py                 |    48 +-
 superset/commands/report/exceptions.py             |   155 +-
 superset/commands/report/execute.py                |   896 +-
 superset/commands/report/execution_claim.py        |   199 +
 superset/commands/report/update.py                 |   349 +-
 superset/commands/report/update_config.py          |   145 +
 superset/commands/restore.py                       |     7 +-
 superset/commands/security/exceptions.py           |    15 +
 superset/commands/security/password_recovery.py    |   315 +
 superset/commands/security/reset.py                |    23 +-
 superset/commands/semantic_layer/create.py         |    71 +-
 superset/commands/semantic_layer/delete.py         |   253 +-
 superset/commands/semantic_layer/exceptions.py     |    28 +-
 superset/commands/semantic_layer/update.py         |   166 +-
 superset/commands/semantic_layer/utils.py          |    56 +
 superset/commands/soft_delete_collisions.py        |   165 +
 superset/commands/sql_lab/estimate.py              |    34 +-
 superset/commands/sql_lab/execute.py               |    38 +
 superset/commands/sql_lab/export.py                |    24 +
 superset/commands/sql_lab/permalink/get.py         |    23 +-
 superset/commands/sql_lab/results.py               |    12 +
 superset/commands/streaming_export/base.py         |   118 +-
 superset/commands/tag/create.py                    |    35 +-
 superset/commands/tag/delete.py                    |    77 +-
 superset/commands/tag/exceptions.py                |    25 +
 superset/commands/tag/export.py                    |     4 +-
 superset/commands/tag/update.py                    |     7 +-
 superset/commands/tag/utils.py                     |    21 -
 superset/commands/tasks/cancel.py                  |   117 +-
 superset/commands/tasks/exceptions.py              |     7 +
 superset/commands/tasks/internal_update.py         |    43 +-
 superset/commands/tasks/reap.py                    |   187 +
 superset/commands/tasks/submit.py                  |   292 +-
 superset/commands/theme/create.py                  |    62 +
 superset/commands/theme/delete.py                  |     8 +
 superset/commands/theme/exceptions.py              |    27 +-
 superset/commands/theme/export.py                  |     6 +-
 superset/commands/theme/import_themes.py           |    59 +-
 superset/commands/theme/update.py                  |    35 +
 superset/commands/utils.py                         |    45 +
 superset/commands/version_restore.py               |   113 +-
 superset/common/chart_data.py                      |     1 +
 superset/common/db_query_status.py                 |     6 +
 superset/common/form_data_query_context.py         |  1633 +-
 superset/common/query_actions.py                   |    79 +-
 superset/common/query_context.py                   |    35 +-
 superset/common/query_context_factory.py           |   132 +-
 superset/common/query_context_processor.py         |   395 +-
 superset/common/query_object.py                    |   211 +-
 superset/common/query_object_factory.py            |    44 +-
 superset/common/query_serialization.py             |   131 +
 superset/common/tabular_query.py                   |   443 +
 superset/common/tags.py                            |   496 -
 superset/common/utils/dataframe_utils.py           |    72 +-
 superset/common/utils/query_cache_manager.py       |    27 +-
 superset/common/utils/time_grain_utils.py          |    41 +
 superset/common/utils/time_range_utils.py          |    32 +-
 superset/config.py                                 |   773 +-
 superset/connectors/sqla/models.py                 |   578 +-
 superset/connectors/sqla/utils.py                  |    83 +-
 superset/constants.py                              |    82 +-
 superset/coordination/__init__.py                  |    37 +
 superset/coordination/base.py                      |   567 +
 superset/coordination/cache_backend.py             |   444 +
 superset/coordination/exceptions.py                |    31 +
 superset/coordination/types.py                     |    85 +
 superset/core/mcp/core_mcp_injection.py            |   135 +-
 superset/daos/base.py                              |    69 +-
 superset/daos/chart.py                             |     7 +-
 superset/daos/dashboard.py                         |   605 +-
 superset/daos/database.py                          |    63 +-
 superset/daos/dataset.py                           |    46 +-
 superset/daos/datasource.py                        |    46 +-
 superset/daos/key_value.py                         |    40 +-
 superset/daos/query.py                             |    19 +-
 superset/daos/report.py                            |   240 +-
 superset/daos/semantic_layer.py                    |     6 +-
 superset/daos/tag.py                               |    18 +-
 superset/daos/tasks.py                             |   521 +-
 superset/daos/version.py                           |     4 +
 superset/dashboards/api.py                         |  1098 +-
 superset/dashboards/excel_export/download_link.py  |   160 +
 superset/dashboards/excel_export/email.py          |    46 +-
 superset/dashboards/excel_export/storage.py        |    81 +
 superset/dashboards/excel_export/sync_budget.py    |   272 +
 superset/dashboards/excel_export/workbook.py       |   333 +
 superset/dashboards/filter_state/api.py            |    38 +-
 superset/dashboards/filters.py                     |    49 +-
 superset/dashboards/layout.py                      |   269 +
 superset/dashboards/schemas.py                     |    67 +-
 superset/databases/api.py                          |    99 +-
 superset/databases/filters.py                      |     2 +-
 superset/databases/schemas.py                      |    36 +-
 superset/dataframe.py                              |   137 +-
 superset/datasets/api.py                           |   526 +-
 superset/datasets/schemas.py                       |   203 +-
 superset/datasource/api.py                         |   728 +-
 superset/datasource/schemas.py                     |   128 +-
 superset/db_engine_specs/README.md                 |     9 +-
 superset/db_engine_specs/__init__.py               |    41 +-
 superset/db_engine_specs/aurora.py                 |    79 +
 superset/db_engine_specs/aws_iam.py                |    42 +-
 superset/db_engine_specs/base.py                   |   381 +-
 superset/db_engine_specs/bigquery.py               |   137 +-
 superset/db_engine_specs/clickhouse.py             |   334 +-
 superset/db_engine_specs/cockroachdb.py            |    14 +-
 superset/db_engine_specs/couchbase.py              |     2 -
 superset/db_engine_specs/crate.py                  |    35 +-
 superset/db_engine_specs/d1.py                     |   122 +-
 superset/db_engine_specs/databend.py               |     2 +-
 superset/db_engine_specs/databricks.py             |   655 +-
 superset/db_engine_specs/datafusion.py             |    34 +-
 superset/db_engine_specs/db2.py                    |    39 +-
 superset/db_engine_specs/doris.py                  |   140 +-
 superset/db_engine_specs/duckdb.py                 |    55 +-
 superset/db_engine_specs/dynamodb.py               |    24 +-
 superset/db_engine_specs/elasticsearch.py          |    84 +-
 superset/db_engine_specs/exasol.py                 |    76 +
 superset/db_engine_specs/greenplum.py              |    10 +
 superset/db_engine_specs/gsheets.py                |   160 +-
 superset/db_engine_specs/hana.py                   |     8 +-
 superset/db_engine_specs/hive.py                   |    18 +-
 superset/db_engine_specs/hologres.py               |    10 +
 superset/db_engine_specs/ibmi.py                   |    45 +
 superset/db_engine_specs/impala.py                 |   159 +-
 superset/db_engine_specs/kusto.py                  |    35 +
 superset/db_engine_specs/kylin.py                  |    50 +-
 superset/db_engine_specs/lib.py                    |    33 +-
 superset/db_engine_specs/mongodb.py                |    72 +-
 superset/db_engine_specs/mssql.py                  |   124 +-
 superset/db_engine_specs/mysql.py                  |   437 +-
 superset/db_engine_specs/netezza.py                |     9 +
 superset/db_engine_specs/oceanbase.py              |    95 +-
 superset/db_engine_specs/odps.py                   |    34 +-
 superset/db_engine_specs/oracle.py                 |   118 +-
 superset/db_engine_specs/pinot.py                  |    11 +
 superset/db_engine_specs/postgres.py               |   159 +-
 superset/db_engine_specs/presto.py                 |    15 +-
 superset/db_engine_specs/redshift.py               |    22 +-
 superset/db_engine_specs/risingwave.py             |    10 +
 superset/db_engine_specs/shillelagh.py             |    57 +-
 superset/db_engine_specs/singlestore.py            |     4 +-
 superset/db_engine_specs/snowflake.py              |   231 +-
 superset/db_engine_specs/spark.py                  |     6 +-
 superset/db_engine_specs/sqlite.py                 |    38 +-
 superset/db_engine_specs/starrocks.py              |    21 +-
 superset/db_engine_specs/trino.py                  |    69 +-
 superset/db_engine_specs/vertica.py                |     9 +
 superset/db_engine_specs/yugabytedb.py             |    10 +
 superset/distributed_lock/__init__.py              |     7 +-
 superset/embedded/view.py                          |    15 +-
 superset/errors.py                                 |     2 +
 superset/examples/birth_names.py                   |    69 +-
 .../data/cleaned_sales_data.parquet                |   Bin 91814 -> 0 bytes
 .../datasets/cleaned_sales_data.yaml               |   348 -
 .../datasets/project_management.yaml               |     2 +-
 superset/examples/generic_loader.py                |    13 +-
 .../misc_charts/data/wb_health_population.parquet  |   Bin 15010872 -> 0 bytes
 .../misc_charts/datasets/wb_health_population.yaml |  4319 ---
 .../charts/Quarterly_Sales_By_Product_Line.yaml    |     2 +-
 .../charts/Revenue_by_Deal_Size.yaml               |     2 +-
 .../charts/Messages_per_Channel.yaml               |     2 +-
 .../usa_births_names/charts/Boy_Name_Cloud.yaml    |     2 +-
 .../examples/usa_births_names/charts/Boys.yaml     |     4 +-
 .../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    |     4 +-
 .../usa_births_names/charts/Participants.yaml      |     2 +-
 .../usa_births_names/charts/Pivot_Table_v2.yaml    |     2 +-
 .../charts/Top_10_Boy_Name_Share.yaml              |     4 +-
 .../charts/Top_10_Girl_Name_Share.yaml             |     4 +-
 .../examples/usa_births_names/charts/Trends.yaml   |     2 +-
 superset/examples/utils.py                         |     2 +-
 ...op_10_Games_Proportion_of_Sales_in_Markets.yaml |     2 +-
 .../Total_Sales_per_Market_Grouped_by_Genre.yaml   |     2 +-
 superset/examples/world_bank.py                    |    25 +-
 .../examples/world_health/charts/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/exceptions.py                             |   115 +-
 superset/explorables/base.py                       |    10 +
 superset/explore/api.py                            |     8 +
 superset/explore/form_data/api.py                  |    17 +-
 superset/explore/permalink/api.py                  |     6 +
 superset/explore/utils.py                          |    41 +-
 superset/extensions/__init__.py                    |    12 +-
 superset/extensions/metadb.py                      |    89 +-
 superset/extensions/metastore_cache.py             |   115 +-
 superset/importexport/api.py                       |    64 +-
 superset/initialization/__init__.py                |   311 +-
 superset/jinja_context.py                          |   128 +-
 superset/key_value/types.py                        |    45 +-
 superset/key_value/utils.py                        |     6 +-
 superset/mcp_service/CLAUDE.md                     |    45 +-
 superset/mcp_service/PRODUCTION.md                 |     2 +-
 superset/mcp_service/README.md                     |    64 +-
 superset/mcp_service/SECURITY.md                   |     2 +-
 superset/mcp_service/__init__.py                   |    10 +
 superset/mcp_service/__main__.py                   |    52 +-
 superset/mcp_service/annotation_layer/schemas.py   |    78 +-
 .../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                        |    93 +-
 superset/mcp_service/auth.py                       |   170 +-
 superset/mcp_service/caching.py                    |   113 +-
 .../mcp_service/catalog}/__init__.py               |     0
 superset/mcp_service/catalog/schemas.py            |   137 +
 superset/mcp_service/catalog/tool/__init__.py      |    22 +
 superset/mcp_service/catalog/tool/get_catalog.py   |   453 +
 superset/mcp_service/chart/big_number_headline.py  |   388 +
 superset/mcp_service/chart/chart_helpers.py        |  1009 +-
 superset/mcp_service/chart/chart_utils.py          |  3129 +-
 superset/mcp_service/chart/compile.py              |   727 +-
 superset/mcp_service/chart/datasource_resolver.py  |   412 +
 superset/mcp_service/chart/plugin.py               |   486 +-
 superset/mcp_service/chart/plugins/__init__.py     |    35 +
 superset/mcp_service/chart/plugins/big_number.py   |   116 +-
 superset/mcp_service/chart/plugins/box_plot.py     |     2 +-
 superset/mcp_service/chart/plugins/bubble.py       |   176 +
 superset/mcp_service/chart/plugins/bullet.py       |   596 +
 superset/mcp_service/chart/plugins/gantt.py        |   345 +
 superset/mcp_service/chart/plugins/gauge.py        |   292 +
 superset/mcp_service/chart/plugins/geographic.py   |   836 +
 superset/mcp_service/chart/plugins/handlebars.py   |     6 +-
 superset/mcp_service/chart/plugins/histogram.py    |   139 +-
 .../mcp_service/chart/plugins/interactive_pivot.py |   235 +
 .../mcp_service/chart/plugins/mixed_timeseries.py  |    84 +-
 superset/mcp_service/chart/plugins/pie.py          |     2 +-
 superset/mcp_service/chart/plugins/pivot_table.py  |     6 +-
 superset/mcp_service/chart/plugins/sunburst.py     |   288 +
 superset/mcp_service/chart/plugins/table.py        |    48 +-
 superset/mcp_service/chart/plugins/treemap.py      |   288 +
 superset/mcp_service/chart/plugins/waterfall.py    |    54 +-
 superset/mcp_service/chart/plugins/xy.py           |   242 +-
 superset/mcp_service/chart/preview_utils.py        |  2541 +-
 .../chart/prompts/create_chart_guided.py           |    12 +-
 superset/mcp_service/chart/query_result.py         |  2221 ++
 superset/mcp_service/chart/registry.py             |    82 +-
 .../mcp_service/chart/resources/chart_configs.py   |   215 +-
 superset/mcp_service/chart/response_preflight.py   |   204 +
 superset/mcp_service/chart/schemas.py              |  6226 +++-
 superset/mcp_service/chart/sunburst.py             |   436 +
 superset/mcp_service/chart/tool/delete_chart.py    |    14 +-
 superset/mcp_service/chart/tool/generate_chart.py  |   433 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |  1388 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |   422 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   526 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |   378 +-
 .../chart/tool/get_chart_type_schema.py            |   219 +-
 superset/mcp_service/chart/tool/list_charts.py     |   135 +-
 superset/mcp_service/chart/tool/restore_chart.py   |    62 +-
 superset/mcp_service/chart/tool/update_chart.py    |   885 +-
 .../mcp_service/chart/tool/update_chart_preview.py |   464 +-
 superset/mcp_service/chart/treemap_preview.py      |   297 +
 .../chart/validation/dataset_validator.py          |   708 +-
 superset/mcp_service/chart/validation/pipeline.py  |    81 +-
 .../validation/runtime/chart_type_suggester.py     |    13 +-
 .../chart/validation/runtime/format_validator.py   |     9 +-
 .../chart/validation/schema_validator.py           |    20 +-
 superset/mcp_service/common/pagination_schemas.py  |     3 +-
 superset/mcp_service/common/schema_discovery.py    |     9 +-
 .../mcp_service/common/time_range_validation.py    |   103 +-
 superset/mcp_service/composite_token_verifier.py   |    26 +-
 superset/mcp_service/constants.py                  |    31 +-
 superset/mcp_service/dashboard/constants.py        |     4 +
 superset/mcp_service/dashboard/layout_placement.py |   318 +
 .../mcp_service/dashboard/layout_validation.py     |   375 +
 superset/mcp_service/dashboard/permalink.py        |   262 +
 superset/mcp_service/dashboard/schemas.py          |  2103 +-
 superset/mcp_service/dashboard/tool/__init__.py    |     6 +
 .../tool/add_chart_to_existing_dashboard.py        |   285 +-
 .../dashboard/tool/apply_dashboard_filters.py      |   985 +
 .../mcp_service/dashboard/tool/delete_dashboard.py |    78 +-
 .../dashboard/tool/duplicate_dashboard.py          |    51 +-
 .../dashboard/tool/generate_dashboard.py           |    69 +-
 .../dashboard/tool/get_dashboard_data.py           |   368 +
 .../dashboard/tool/get_dashboard_datasets.py       |    35 +-
 .../dashboard/tool/get_dashboard_info.py           |   223 +-
 .../dashboard/tool/get_dashboard_layout.py         |   205 +-
 .../mcp_service/dashboard/tool/governance_utils.py |    15 +-
 .../mcp_service/dashboard/tool/list_dashboards.py  |    19 +-
 .../tool/manage_dashboard_certification.py         |    25 +
 .../dashboard/tool/manage_dashboard_markdown.py    |   512 +
 .../dashboard/tool/manage_dashboard_owners.py      |    14 +-
 .../dashboard/tool/manage_dashboard_roles.py       |    34 +-
 .../dashboard/tool/manage_native_filters.py        |   563 +-
 .../dashboard/tool/remove_chart_from_dashboard.py  |    91 +-
 .../dashboard/tool/restore_dashboard.py            |   120 +-
 .../mcp_service/dashboard/tool/update_dashboard.py |    38 +-
 superset/mcp_service/dashboard_scope.py            |  1366 +
 superset/mcp_service/dashboard_scope_sql.py        |   531 +
 superset/mcp_service/database/schemas.py           |     8 +-
 .../mcp_service/database/tool/get_database_info.py |     1 +
 .../mcp_service/database/tool/list_databases.py    |     1 +
 superset/mcp_service/dataset/dataset_utils.py      |     5 +
 superset/mcp_service/dataset/schemas.py            |   702 +-
 superset/mcp_service/dataset/tool/__init__.py      |    10 +
 .../mcp_service/dataset/tool/create_dataset.py     |    13 +-
 .../dataset/tool/create_dataset_metric.py          |   172 +
 .../dataset/tool/create_virtual_dataset.py         |    20 +-
 .../mcp_service/dataset/tool/delete_dataset.py     |   217 +
 .../dataset/tool/delete_dataset_metric.py          |   246 +
 .../mcp_service/dataset/tool/get_dataset_info.py   |    29 +-
 superset/mcp_service/dataset/tool/list_datasets.py |    90 +-
 superset/mcp_service/dataset/tool/query_dataset.py |   295 +-
 .../mcp_service/dataset/tool/restore_dataset.py    |   258 +
 .../mcp_service/dataset/tool/update_dataset.py     |   350 +
 .../dataset/tool/update_dataset_metric.py          |    58 +-
 superset/mcp_service/dataset_scope.py              |   389 +
 superset/mcp_service/explore/schemas.py            |     5 +-
 .../explore/tool/generate_explore_link.py          |   163 +-
 superset/mcp_service/flask_singleton.py            |    11 +
 superset/mcp_service/jwt_verifier.py               |    28 +-
 superset/mcp_service/mcp_config.py                 |   303 +-
 superset/mcp_service/middleware.py                 |  1297 +-
 superset/mcp_service/privacy.py                    |     1 +
 superset/mcp_service/query/tool/get_query_info.py  |     1 +
 superset/mcp_service/query/tool/list_queries.py    |     1 +
 superset/mcp_service/report/schemas.py             |    22 +-
 .../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/schemas.py               |    19 +-
 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 +
 superset/mcp_service/semantic_layer/schemas.py     |   122 +-
 .../tool/get_compatible_dimensions.py              |    51 +-
 .../semantic_layer/tool/get_compatible_metrics.py  |    54 +-
 .../mcp_service/semantic_layer/tool/get_table.py   |   438 +-
 .../semantic_layer/tool/list_metrics.py            |    26 +-
 superset/mcp_service/server.py                     |   517 +-
 superset/mcp_service/simple_proxy.py               |     6 +-
 superset/mcp_service/sql_lab/schemas.py            |    64 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   132 +-
 .../sql_lab/tool/open_sql_lab_with_context.py      |    86 +-
 .../mcp_service/sql_lab/tool/save_sql_query.py     |     2 +
 superset/mcp_service/system/prompts/quickstart.py  |     4 +-
 .../system/resources/instance_metadata.py          |    37 +-
 superset/mcp_service/system/schemas.py             |    28 +-
 superset/mcp_service/system/system_utils.py        |    33 +-
 superset/mcp_service/system/tool/find_users.py     |    13 +-
 .../mcp_service/system/tool/generate_bug_report.py |     1 +
 .../mcp_service/system/tool/get_instance_info.py   |    39 +-
 superset/mcp_service/system/tool/get_schema.py     |     8 +-
 superset/mcp_service/system/tool/health_check.py   |     6 +-
 superset/mcp_service/tag/schemas.py                |    32 +-
 superset/mcp_service/tag/tool/get_tag_info.py      |     7 +-
 superset/mcp_service/tag/tool/list_tags.py         |     7 +-
 superset/mcp_service/task/schemas.py               |    11 +-
 superset/mcp_service/task/tool/get_task_info.py    |     1 +
 superset/mcp_service/task/tool/list_tasks.py       |     1 +
 superset/mcp_service/theme/schemas.py              |    50 +-
 superset/mcp_service/theme/tool/create_theme.py    |    51 +-
 superset/mcp_service/theme/tool/get_theme_info.py  |     1 +
 superset/mcp_service/theme/tool/list_themes.py     |     1 +
 superset/mcp_service/user/schemas.py               |    30 +-
 superset/mcp_service/user/tool/get_user_info.py    |     1 +
 superset/mcp_service/user/tool/list_users.py       |     1 +
 superset/mcp_service/utils/__init__.py             |     2 -
 superset/mcp_service/utils/cache_utils.py          |    32 +-
 superset/mcp_service/utils/error_builder.py        |   115 +-
 superset/mcp_service/utils/query_utils.py          |    53 +-
 superset/mcp_service/utils/response_size_utils.py  |  1368 +
 superset/mcp_service/utils/response_utils.py       |   295 +-
 superset/mcp_service/utils/sanitization.py         |   260 +-
 superset/mcp_service/utils/schema_utils.py         |    46 +-
 superset/mcp_service/utils/serialization.py        |   256 +
 superset/mcp_service/utils/token_utils.py          |  1018 -
 superset/mcp_service/utils/validation.py           |   303 +
 superset/mcp_service/worker.py                     |   897 +
 superset/migrations/shared/catalogs.py             |     4 +-
 superset/migrations/shared/constraints.py          |     6 +-
 superset/migrations/shared/migrate_viz/base.py     |   127 +-
 .../migrations/shared/migrate_viz/processors.py    |   329 +
 .../shared/migrate_viz/query_functions.py          |    11 +-
 superset/migrations/shared/security_converge.py    |    34 +
 superset/migrations/shared/utils.py                |     2 +-
 ..._08-54_c3a8f8611885_materializing_permission.py |     2 +-
 ...d8bc074f7aad_add_new_field_is_restricted_to_.py |     2 +-
 ...06-27_08-43_27ae655e4247_make_creator_owners.py |     2 +-
 ...-09-07_23-50_33d996bcc382_update_slice_model.py |     4 +-
 ...2_11-31_eca4694defa7_sqllab_setting_defaults.py |     2 +-
 ...4_12-31_db0c65b146bd_update_slice_model_json.py |     2 +-
 ...7c195a_rewriting_url_from_shortner_with_new_.py |     2 +-
 ...-08_08-19_67a6ac9b727b_update_spatial_params.py |     2 +-
 ...2-17_11-06_21e88bc06c02_annotation_migration.py |     4 +-
 .../2018-02-13_08-07_e866bd2d4976_smaller_grid.py  |     4 +-
 ...-04-03_08-19_130915240929_is_sqllab_viz_flow.py |     2 +-
 ...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py |     2 +-
 ...018-06-04_11-12_c5756bec8b47_time_grain_sqla.py |     4 +-
 ...6-07_09-52_afb7730f6a9c_remove_empty_filters.py |     2 +-
 ...13_10-20_4451805bbaa1_remove_double_percents.py |     4 +-
 .../2018-06-13_14-54_bddc498dd179_adhoc_filters.py |     4 +-
 ...4_14-31_80a67c5192fa_single_pie_chart_metric.py |     4 +-
 ...1c4c6_migrate_num_period_compare_and_period_.py |     4 +-
 .../2018-07-19_23-41_c617da68de7d_form_nullable.py |     2 +-
 ...07-20_15-31_7f2635b51f5d_update_base_columns.py |     2 +-
 ...07-20_15-57_e9df189e5c7e_update_base_metrics.py |     2 +-
 ..._bebcf3fed1fe_convert_dashboard_v1_positions.py |     2 +-
 .../versions/2018-08-01_11-47_7fcdcde0761c_.py     |     2 +-
 ...08545_migrate_time_range_for_default_filters.py |     2 +-
 ...2018-12-11_22-03_fb13d49b72f9_better_filters.py |     4 +-
 ...e1b21cd94a4_change_owner_to_m2m_relation_on_.py |     2 +-
 .../2019-03-21_10-22_d94d33dbe938_form_strip.py    |     2 +-
 ...a3f04bc82_add_parent_ids_in_dashboard_layout.py |     4 +-
 .../2019-06-28_13-17_ab8c66efdd01_resample.py      |     4 +-
 ...ng_unique_constraint_on_dashboard_slices_tbl.py |     2 +-
 ...5afa9079866a_serialize_schema_permissions_py.py |     2 +-
 ...e_form_strip_leading_and_trailing_whitespace.py |     2 +-
 .../2019-10-10_13-52_1495eb914ad3_time_range.py    |     4 +-
 ...127d0d1d_reconvert_legacy_filters_into_adhoc.py |     2 +-
 ..._14-13_3325d4caccc8_dashboard_scoped_filters.py |     2 +-
 ...10-42_f9a30386bd74_cleanup_time_grainularity.py |     2 +-
 ...29_09-24_620241d1153f_update_time_grain_sqla.py |     2 +-
 ...978245563a02_migrate_iframe_to_dash_markdown.py |     2 +-
 ...654_fix_data_access_permissions_for_virtual_.py |     2 +-
 ...b56500de1855_add_uuid_column_to_import_mixin.py |     4 +-
 ...208f_collapse_alerting_models_into_a_single_.py |     4 +-
 ...6e99fb176a0_add_import_mixing_to_saved_query.py |     4 +-
 ...e38177dbf641_security_converge_saved_queries.py |     4 +-
 ...15-25_40f16acf1ba7_security_converge_reports.py |     4 +-
 ...8ee129739cf9_security_converge_css_templates.py |     4 +-
 ..._14-13_ccb74baaa89b_security_converge_charts.py |     4 +-
 ...5-05_45731db65d9c_security_converge_datasets.py |     4 +-
 ...45_1f6dca87d1a2_security_converge_dashboards.py |     4 +-
 ...2_c25cb2c78727_security_converge_annotations.py |     4 +-
 ...-49_42b4c9e01447_security_converge_databases.py |     4 +-
 ...14_13-40_4b84f97828aa_security_converge_logs.py |     4 +-
 ...12-15_e37912a26567_security_converge_queries.py |     4 +-
 ...60bf0649a77_migrate_x_dateunit_in_time_range.py |     2 +-
 ...2fdb_add_granularity_to_charts_where_missing.py |     2 +-
 ...-10_12-32_41ce8799acc3_rename_pie_label_type.py |     4 +-
 ...1412ec1e5a7b_legacy_force_directed_to_echart.py |     4 +-
 ...8_09-13_c501b7c653a3_add_missing_uuid_column.py |     2 +-
 ...989bbe479899_rename_filter_configuration_in_.py |     4 +-
 ...ea61c5e7_remove_dataset_health_check_message.py |     2 +-
 ...88938_country_map_use_lowercase_country_name.py |     4 +-
 ...3a3a8ff221_migrate_filter_sets_to_new_format.py |     4 +-
 ...ed7ec95_migrate_native_filters_to_new_schema.py |     4 +-
 ...3605f370a_fix_schemas_allowed_for_csv_upload.py |     2 +-
 ...15da_migrate_pivot_table_v2_heatmaps_to_new_.py |     2 +-
 ..._17-16_f6196627326f_update_chart_permissions.py |     4 +-
 ...13dd52_change_fetch_values_predicate_to_text.py |     2 +-
 ...4fbb_add_type_to_native_filter_configuration.py |     4 +-
 ...453f4e2e_migrate_timeseries_limit_metric_to_.py |     2 +-
 ...12_11-15_32646df09c64_update_time_grain_sqla.py |     2 +-
 ...e5f1dacd_rename_to_schemas_allowed_for_file_.py |     4 +-
 ...aa3ff_add_force_screenshot_to_alerts_reports.py |     2 +-
 ...5b9441_rename_big_viz_total_form_data_fields.py |     4 +-
 ...d1d2_move_pivot_table_v2_legacy_order_by_to_.py |     4 +-
 ...d8e252_fix_query_and_saved_query_null_schema.py |     2 +-
 ...b0ca7944_change_adhoc_filter_b_from_none_to_.py |     4 +-
 ...14-38_a9422eeaae74_new_dataset_models_take_2.py |     2 +-
 ...d0249074e4_deprecate_time_range_endpoints_v2.py |     2 +-
 ...07e4fdbaba_rm_time_range_endpoints_from_qc_3.py |     2 +-
 ...-39_cbe71abde154_fix_report_schedule_and_log.py |     2 +-
 ...8_16-07_e786798587de_delete_none_permissions.py |     2 +-
 ..._16-17_f3afaf1f11f0_add_unique_name_desc_rls.py |     2 +-
 ...59_7fb8bca906d2_permalink_rename_filterstate.py |     4 +-
 ...5-48_409c7b420ab0_add_created_by_fk_as_owner.py |     2 +-
 ..._13-00_c747c78868b6_migrating_legacy_treemap.py |     4 +-
 ...-07_14-00_06e1e70058c7_migrating_legacy_area.py |     4 +-
 ...665d_fix_table_chart_conditional_formatting_.py |     2 +-
 ...1_4ce1d9b25135_remove_filter_bar_orientation.py |     2 +-
 ...4-46_c0a3ea245b61_remove_show_native_filters.py |     2 +-
 ...ac08bb5b83_invert_horizontal_bar_chart_order.py |     4 +-
 ...7_13-24_b5ea9d343307_bar_chart_stack_options.py |     4 +-
 ...03-27_12-30_7e67aecbf3f1_chart_ds_constraint.py |     2 +-
 ...2a5681ddfd_convert_key_value_entries_to_json.py |     4 +-
 ...-41_4ea966691069_cross_filter_global_scoping.py |     4 +-
 ...02_9ba2ce3086e5_migrate_pivot_table_v1_to_v2.py |     4 +-
 ...-08_10-22_4c5da39be729_migrate_treemap_chart.py |     4 +-
 ...e58e1e58e5c_migrate_dual_line_to_mixed_chart.py |     4 +-
 ...delete_obsolete_druid_nosql_slice_parameters.py |     2 +-
 ...6f8b1280_cleanup_erroneous_parent_filter_ids.py |     2 +-
 ...9_17-54_ee179a490af9_deckgl_path_width_units.py |     2 +-
 ...23_0769ef90fddd_fix_schema_perm_for_datasets.py |     2 +-
 ...086c2676_add_normalize_columns_to_sqla_model.py |     2 +-
 ...317970b4400c_added_time_secondary_column_to_.py |     2 +-
 ...ff00fe8_add_percent_calculation_type_funnel_.py |     4 +-
 ...18_14-41_a32e0c4d8646_migrate_sunburst_chart.py |     4 +-
 ...d09c9_migrate_filter_boxes_to_native_filters.py |     2 +-
 ...d83218_migrate_can_view_and_drill_permission.py |     4 +-
 ...47_be1b217cd8cd_big_number_kpi_single_metric.py |     4 +-
 ...8_15-43_5ad7321c2169_mig_new_csv_upload_perm.py |     4 +-
 ...14-04_d60591c5515f_mig_new_excel_upload_perm.py |     4 +-
 ...36_4a33124c18ad_mig_new_columnar_upload_perm.py |     4 +-
 ...9123a_update_charts_with_old_time_comparison.py |     4 +-
 ...09-34_d482d51c15ca_remove_legacy_plugins_5_0.py |     4 +-
 ...-34_74ad1125881c_converge_upload_permissions.py |     4 +-
 ...fdba9f_merge_x_axis_sort_series_with_x_axis_.py |     4 +-
 ...2_convert_metric_currencies_from_str_to_json.py |     2 +-
 ...8d8526_fix_form_data_string_in_query_context.py |     2 +-
 ...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py |     4 +-
 ...a1b2c3d4e5f6_add_granular_export_permissions.py |     4 +-
 ...-00_b4a3f2e1d0c9_fix_security_view_menu_case.py |     2 +-
 ...23_a7d3f1b9c2e4_cleanup_stale_can_import_pvm.py |     4 +-
 ...6_12-00_4a50792bd265_add_csp_allowlist_table.py |    83 -
 ...rip_metricsqlexpressions_from_ag_grid_params.py |     2 +-
 ...4_00-00_f7e8d9c0b1a2_add_theme_editors_table.py |   142 +
 ...941d5352_restore_pivot_table_percent_display.py |     2 +-
 ...0-00_c4a1b8e2d739_databend_secure_to_sslmode.py |     2 +-
 ..._add_uuid_to_annotation_layer_and_annotation.py |   144 +
 ..._7e2c9a4f1b83_create_task_dependencies_table.py |   195 +
 ...0_39097d124752_add_reason_to_purge_audit_log.py |    60 +
 ...15-50_a6c21e5b4d93_index_purge_audit_pruning.py |    46 +
 ..._c7f53d184ea2_coordinate_purge_audit_pruning.py |    60 +
 ...f31c5d726ab_index_dataset_dependency_lookups.py |    51 +
 ...retire_semantic_layer_views_connections_pvms.py |   114 +
 ...a339627c_merge_add_theme_editors_table_with_.py |    35 +
 ...00_88a01c781622_index_ab_user_lower_username.py |   145 +
 ...f655c0a6_merge_task_dependencies_with_theme_.py |    35 +
 ...4fb8bfc1_delete_deprecated_permissions_33272.py |   153 +
 ...a4572f8a_rename_deprecated_permissions_33272.py |   193 +
 ...0_merge_purge_audit_and_username_index_heads.py |    35 +
 ..._93d1b4a76c02_add_report_execution_ownership.py |    55 +
 ...0fab727cd0a_add_theme_editors_theme_id_index.py |    64 +
 ...ae6_merge_deprecated_permissions_with_master.py |    35 +
 ...11_merge_theme_editors_and_purge_audit_heads.py |    35 +
 ..._merge_deprecated_permissions_with_master_v2.py |    35 +
 ..._merge_deprecated_permissions_with_master_v3.py |    35 +
 ...141b8ada7731_tag_pivot_tables_with_restored_.py |   334 +
 ...ep_legacy_password_view_perms_from_all_roles.py |   120 +
 ...00_e4a7c2b9d1f3_add_run_as_and_report_config.py |   178 +
 ...179af013f48_add_semantic_layer_cache_version.py |    42 +
 ...3_12-00_4a50792bd265_add_csp_allowlist_table.py |    83 +
 superset/models/annotations.py                     |    19 +-
 superset/models/core.py                            |   306 +-
 superset/models/dashboard.py                       |   538 +-
 superset/models/helpers.py                         |  1518 +-
 superset/models/purge_audit_log.py                 |    40 +-
 superset/models/slice.py                           |   257 +-
 superset/models/sql_lab.py                         |    67 +-
 superset/models/task_dependencies.py               |    69 +
 superset/models/task_subscribers.py                |    38 +-
 superset/models/tasks.py                           |   139 +-
 superset/queries/api.py                            |    18 +-
 superset/queries/saved_queries/api.py              |    52 +-
 superset/queries/schemas.py                        |     2 +-
 superset/realtime/__init__.py                      |    17 +
 superset/realtime/publish.py                       |    68 +
 superset/reports/api.py                            |   211 +-
 superset/reports/filters.py                        |    67 +-
 superset/reports/logs/api.py                       |     8 +
 superset/reports/models.py                         |    51 +-
 superset/reports/notifications/base.py             |     1 +
 superset/reports/notifications/email.py            |    30 +-
 superset/reports/notifications/slack_mixin.py      |    10 +-
 superset/reports/notifications/webhook.py          |   149 +-
 superset/reports/schemas.py                        |   313 +-
 superset/reports/types.py                          |    20 +-
 superset/reports/utils.py                          |   183 +
 superset/result_set.py                             |    23 +
 superset/security/api.py                           |   266 +-
 superset/security/guest_token.py                   |    19 +
 superset/security/manager.py                       |  1875 +-
 superset/security/password_change.py               |   164 +-
 superset/security/password_recovery.py             |   316 +
 superset/security/session_invalidation.py          |    16 +-
 superset/semantic_layers/access.py                 |    50 +
 superset/semantic_layers/api.py                    |   380 +-
 superset/semantic_layers/bundle_schemas.py         |    36 +
 superset/semantic_layers/cache.py                  |   496 +
 superset/semantic_layers/cache_coordination.py     |   240 +
 superset/semantic_layers/cache_host.py             |   241 +
 superset/semantic_layers/cache_identity.py         |   336 +
 superset/semantic_layers/cache_policy.py           |   427 +
 superset/semantic_layers/cache_repository.py       |   463 +
 superset/semantic_layers/cache_transform.py        |   283 +
 superset/semantic_layers/cache_types.py            |   133 +
 superset/semantic_layers/completeness.py           |    44 +
 superset/semantic_layers/dimension_resolution.py   |   117 +
 superset/semantic_layers/exceptions.py             |   127 +
 superset/semantic_layers/execution.py              |   286 +
 superset/semantic_layers/import_export.py          |   240 +
 superset/semantic_layers/labels.py                 |     7 +-
 superset/semantic_layers/mapper.py                 |   797 +-
 superset/semantic_layers/masking.py                |   481 +
 superset/semantic_layers/members.py                |    52 +
 superset/semantic_layers/models.py                 |   519 +-
 superset/semantic_layers/ordering.py               |    59 +
 superset/sql/dialects/__init__.py                  |     4 +
 superset/sql/dialects/databend.py                  |   604 +
 superset/sql/dialects/db2.py                       |    81 +-
 superset/sql/dialects/postgres.py                  |    79 +
 superset/sql/dialects/starrocks.py                 |   818 +
 superset/sql/execution/cancellation.py             |   170 +
 superset/sql/execution/celery_task.py              |   557 +-
 superset/sql/execution/executor.py                 |   537 +-
 superset/sql/execution/serialization.py            |   130 +
 superset/sql/execution/utils.py                    |   260 +
 superset/sql/metric_normalization.py               |   181 +
 superset/sql/parse.py                              |  1589 +-
 superset/sql_lab.py                                |   272 +-
 superset/sql_validators/__init__.py                |     3 +-
 superset/sql_validators/postgres.py                |    59 -
 superset/sqllab/api.py                             |    11 +-
 superset/sqllab/query_render.py                    |     9 +-
 superset/subjects/models.py                        |    19 +
 superset/subjects/utils.py                         |    59 +-
 superset/superset_typing.py                        |    27 +-
 superset/tags/api.py                               |    58 +
 superset/tags/core.py                              |    98 +-
 superset/tags/models.py                            |   284 +-
 superset/tasks/api.py                              |   133 +-
 superset/tasks/async_queries.py                    |   531 +-
 superset/tasks/context.py                          |   394 +-
 superset/tasks/cron_util.py                        |    45 +
 superset/tasks/decorators.py                       |   326 +-
 superset/tasks/deletion_retention.py               |   585 +-
 superset/tasks/dependencies.py                     |   126 +
 superset/tasks/export_dashboard_excel.py           |   564 +-
 superset/tasks/filters.py                          |    20 +-
 superset/tasks/guest.py                            |    86 +
 superset/tasks/heartbeat.py                        |   167 +
 superset/tasks/locks.py                            |    84 +-
 superset/tasks/manager.py                          |   888 +-
 superset/tasks/query_cancel.py                     |   170 +
 superset/tasks/registry.py                         |    36 +-
 superset/tasks/retention_cap.py                    |    32 +
 superset/tasks/scheduler.py                        |   326 +-
 superset/tasks/schemas.py                          |   173 +-
 superset/tasks/subscription.py                     |    84 +
 superset/tasks/thumbnails.py                       |    67 +-
 superset/tasks/types.py                            |     7 +-
 superset/tasks/utils.py                            |   280 +-
 superset/tasks/version_history_retention.py        |   327 +-
 superset/templates/superset/spa.html               |    13 +-
 superset/temporary_cache/api.py                    |     3 +-
 superset/themes/api.py                             |   162 +-
 superset/themes/schemas.py                         |    14 +
 superset/thumbnails/digest.py                      |    13 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |  3808 ++-
 superset/translations/ca/LC_MESSAGES/messages.po   |  3637 ++-
 superset/translations/cs/LC_MESSAGES/messages.po   |  3589 ++-
 superset/translations/de/LC_MESSAGES/messages.po   |  3355 ++-
 superset/translations/en/LC_MESSAGES/messages.po   |  3234 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  3440 ++-
 superset/translations/fa/LC_MESSAGES/messages.po   |  3683 ++-
 superset/translations/fi/LC_MESSAGES/messages.po   |  3941 ++-
 superset/translations/fr/LC_MESSAGES/messages.po   |  4155 ++-
 superset/translations/it/LC_MESSAGES/messages.po   |  5784 ++--
 superset/translations/ja/LC_MESSAGES/messages.po   |  3281 ++-
 superset/translations/ko/LC_MESSAGES/messages.po   |  4106 ++-
 superset/translations/lv/LC_MESSAGES/messages.po   |  3604 ++-
 superset/translations/messages.pot                 |  4883 +--
 superset/translations/mi/LC_MESSAGES/messages.po   |  3630 ++-
 superset/translations/nl/LC_MESSAGES/messages.po   |  3718 ++-
 superset/translations/pl/LC_MESSAGES/messages.po   |  3765 ++-
 superset/translations/pt/LC_MESSAGES/messages.po   | 11132 ++++---
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  7331 +++--
 superset/translations/ro/LC_MESSAGES/messages.po   |  3400 ++-
 superset/translations/ru/LC_MESSAGES/messages.po   |  3373 ++-
 superset/translations/sk/LC_MESSAGES/messages.po   |  3599 ++-
 superset/translations/sl/LC_MESSAGES/messages.po   |  7867 +++--
 superset/translations/sr/LC_MESSAGES/messages.po   |  3499 ++-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |  3491 ++-
 superset/translations/ta/LC_MESSAGES/messages.po   |  6740 +++--
 superset/translations/th/LC_MESSAGES/messages.po   |  3885 ++-
 superset/translations/tr/LC_MESSAGES/messages.po   |  3351 ++-
 superset/translations/uk/LC_MESSAGES/messages.po   |  3618 ++-
 superset/translations/zh/LC_MESSAGES/messages.po   |  3720 ++-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  3697 ++-
 superset/utils/cache.py                            |    46 +-
 superset/utils/cache_manager.py                    |    25 +-
 superset/utils/core.py                             |   166 +-
 superset/utils/csv.py                              |    33 +-
 superset/utils/database.py                         |   112 +-
 superset/utils/date_parser.py                      |   136 +-
 superset/utils/dates.py                            |    22 +-
 superset/utils/dict_import_export.py               |     7 +
 superset/utils/error_sanitization.py               |   150 +-
 superset/utils/excel.py                            |   210 +-
 superset/utils/export_storage.py                   |    76 +
 superset/utils/feature_flag_manager.py             |    64 +-
 superset/utils/file.py                             |    71 +-
 superset/utils/filters.py                          |   205 +-
 superset/utils/gcs.py                              |   101 +
 superset/utils/geographic.py                       |   105 +
 superset/utils/geographic_regions.py               |   385 +
 superset/utils/geographic_world.py                 |   205 +
 superset/utils/json.py                             |     8 +-
 superset/utils/log.py                              |   101 +-
 superset/utils/machine_auth.py                     |    11 +-
 superset/utils/network.py                          |   138 +-
 superset/utils/number_format.py                    |   104 +-
 superset/utils/oauth2.py                           |   315 +-
 superset/utils/pandas_postprocessing/__init__.py   |    27 +
 superset/utils/pandas_postprocessing/compare.py    |    14 +-
 .../utils/pandas_postprocessing/contribution.py    |    70 +-
 superset/utils/pandas_postprocessing/cum.py        |     7 +-
 superset/utils/pandas_postprocessing/geography.py  |     8 +-
 superset/utils/pandas_postprocessing/histogram.py  |    29 +-
 superset/utils/pandas_postprocessing/pivot.py      |   246 +-
 superset/utils/pandas_postprocessing/prophet.py    |    15 +
 superset/utils/pandas_postprocessing/rename.py     |    11 +-
 superset/utils/pandas_postprocessing/resample.py   |   197 +-
 superset/utils/pandas_postprocessing/rolling.py    |    15 +
 superset/utils/pandas_postprocessing/select.py     |    29 +-
 superset/utils/pandas_postprocessing/utils.py      |    48 +-
 superset/utils/pandas_sqlalchemy_compat.py         |    80 -
 superset/utils/report_execution.py                 |   131 +
 superset/utils/rison_filters.py                    |     6 +-
 superset/utils/rls.py                              |   269 +-
 superset/utils/s3.py                               |   124 +-
 superset/utils/schema.py                           |    86 +-
 superset/utils/screenshot_utils.py                 |  1173 +-
 superset/utils/screenshots.py                      |   476 +-
 superset/utils/slack.py                            |    28 +-
 superset/utils/webdriver.py                        |   612 +-
 superset/versioning/activity/creation.py           |   173 +
 superset/versioning/activity/impact.py             |   256 +-
 superset/versioning/activity/orchestrator.py       |    53 +-
 superset/versioning/activity/queries.py            |    82 +-
 superset/versioning/activity/render.py             |    54 +-
 superset/versioning/activity/scope.py              |     4 +-
 superset/versioning/activity/visibility.py         |    84 +-
 superset/versioning/activity/windows.py            |    66 +
 superset/versioning/api_helpers.py                 |   292 +-
 superset/versioning/baseline/__init__.py           |     2 +
 superset/versioning/baseline/insertion.py          |    39 +-
 superset/versioning/baseline/listener.py           |     5 +-
 superset/versioning/baseline/shadow.py             |     5 +
 superset/versioning/changes/__init__.py            |     4 +
 superset/versioning/changes/listener.py            |   241 +-
 superset/versioning/changes/normalization.py       |   300 +
 superset/versioning/changes/shadow_queries.py      |   164 +-
 superset/versioning/changes/state.py               |    14 +
 superset/versioning/creation_kinds.py              |    29 +
 superset/versioning/db_errors.py                   |   115 +
 superset/versioning/diff.py                        |   124 +-
 superset/versioning/etag.py                        |    44 +
 superset/versioning/membership.py                  |   102 +
 superset/versioning/metrics.py                     |    37 +-
 superset/versioning/queries.py                     |   221 +-
 superset/versioning/restore.py                     |   718 +-
 superset/versioning/savepoints.py                  |   149 +
 superset/versioning/schemas.py                     |    66 +-
 superset/versioning/snapshot.py                    |   275 +
 superset/versioning/unit_of_work.py                |   159 +
 superset/versioning/utils.py                       |    40 +-
 superset/views/api.py                              |     9 +-
 superset/views/archived_assets.py                  |    18 +-
 superset/views/auth.py                             |    29 +-
 superset/views/base.py                             |    50 +-
 superset/views/base_api.py                         |   107 +-
 superset/views/core.py                             |    43 +-
 superset/views/dashboard/mixin.py                  |     1 +
 superset/views/datasource/views.py                 |   330 +-
 superset/views/error_handling.py                   |    64 +-
 superset/views/filters.py                          |    75 +-
 superset/views/sql_lab/views.py                    |    65 +-
 superset/views/users/api.py                        |    29 +-
 superset/views/users/schemas.py                    |    39 +-
 superset/views/utils.py                            |    14 +-
 superset/websocket/__init__.py                     |    22 +
 superset/websocket/channel.py                      |   234 +
 superset/websocket/permissions.py                  |    34 +
 tests/common/assert_utils.py                       |     2 +-
 .../src/superset_e2e_semantic_stub/__init__.py     |   294 +
 .../semantic_stub/dist/manifest.json               |    10 +
 .../annotation_layers/commands_tests.py            |   750 +
 tests/integration_tests/async_events/api_tests.py  |   210 -
 tests/integration_tests/base_tests.py              |    33 +-
 tests/integration_tests/charts/api_tests.py        |   321 +-
 tests/integration_tests/charts/commands_tests.py   |  1750 +-
 tests/integration_tests/charts/data/api_tests.py   |   187 +-
 .../charts/semantic_metadata_authz_tests.py        |   647 +
 .../charts/semantic_save_tests.py                  |   266 +
 .../integration_tests/charts/soft_delete_tests.py  |     5 +-
 .../charts/version_restore_tests.py                |   216 +
 tests/integration_tests/commands_test.py           |    58 +
 tests/integration_tests/core_tests.py              |    80 +-
 tests/integration_tests/dao/conftest.py            |     3 +-
 tests/integration_tests/dashboard_tests.py         |     3 +-
 tests/integration_tests/dashboards/api_tests.py    |  4581 ++-
 .../integration_tests/dashboards/commands_tests.py |   692 +
 tests/integration_tests/dashboards/dao_tests.py    |   120 +-
 .../dashboards/filter_state/api_tests.py           |   710 +-
 .../dashboards/security/security_dataset_tests.py  |     5 +-
 .../dashboards/soft_delete_tests.py                |     7 +
 .../dashboards/test_theme_integration.py           |     6 +
 .../dashboards/version_restore_tests.py            |   596 +
 tests/integration_tests/databases/api_tests.py     |   273 +-
 .../databases/commands/upload_test.py              |    30 +
 .../integration_tests/databases/commands_tests.py  |    27 +-
 tests/integration_tests/datasets/api_tests.py      |   508 +-
 .../datasets/soft_delete_tests.py                  |   161 +-
 tests/integration_tests/datasource/api_tests.py    |   549 +-
 tests/integration_tests/datasource_tests.py        |    10 +-
 .../db_engine_specs/base_engine_spec_tests.py      |     7 +-
 .../db_engine_specs/postgres_tests.py              |     5 +-
 .../integration_tests/deletion_retention/_base.py  |    21 +
 .../deletion_retention/audit_tests.py              |   300 +-
 .../deletion_retention/force_purge_tests.py        |    45 +-
 .../deletion_retention/prune_audit_tests.py        |  1212 +
 .../deletion_retention/purge_tests.py              |   328 +-
 tests/integration_tests/embedded/test_view.py      |    40 +-
 .../explore/form_data/commands_tests.py            |   186 +-
 .../extensions/metastore_cache_test.py             |    80 +
 tests/integration_tests/fixtures/datasource.py     |     4 +-
 tests/integration_tests/fixtures/importexport.py   |   104 +
 tests/integration_tests/fixtures/public_role.py    |    47 +-
 tests/integration_tests/fixtures/tags.py           |    21 +-
 .../composite_pk_association_tables__tests.py      |     2 +-
 .../migrations/composite_pk_round_trip__tests.py   |     4 +-
 tests/integration_tests/model_tests.py             |     8 +-
 tests/integration_tests/queries/api_tests.py       |    59 +-
 .../queries/saved_queries/api_tests.py             |     3 -
 tests/integration_tests/query_context_tests.py     |   125 +
 tests/integration_tests/reports/alert_tests.py     |    46 +-
 tests/integration_tests/reports/api_tests.py       |   418 +-
 .../commands/execute_dashboard_report_tests.py     |    20 +-
 tests/integration_tests/reports/commands_tests.py  |   357 +-
 tests/integration_tests/reports/config_tests.py    |   104 +
 .../reports/execution_claim_tests.py               |    32 +
 tests/integration_tests/reports/utils.py           |    11 +-
 tests/integration_tests/security/api_tests.py      |    28 +
 .../security/public_role_tests.py                  |    93 +
 .../security/row_level_security_tests.py           |   212 +
 tests/integration_tests/security_tests.py          |   133 +-
 .../semantic_layers/api_flag_test.py               |   423 +
 .../semantic_layers/cache_coordination_tests.py    |   200 +
 tests/integration_tests/sql_lab/commands_tests.py  |   157 +-
 tests/integration_tests/sql_validator_tests.py     |    36 -
 tests/integration_tests/sqla_models_tests.py       |    59 +-
 tests/integration_tests/sqllab_tests.py            |    42 +-
 tests/integration_tests/superset_test_config.py    |     1 -
 .../integration_tests/superset_test_config_gaq.py  |    59 +
 .../superset_test_config_semantic.py               |    42 +
 tests/integration_tests/tagging_tests.py           |   294 -
 tests/integration_tests/tags/api_tests.py          |    63 +-
 tests/integration_tests/tags/commands_tests.py     |    50 +-
 tests/integration_tests/tags/dao_tests.py          |    94 +-
 tests/integration_tests/tags/race_tests.py         |    94 +
 tests/integration_tests/tasks/api_tests.py         |   436 +-
 .../integration_tests/tasks/async_queries_tests.py |   155 -
 .../tasks/commands/test_cancel.py                  |   174 +-
 .../integration_tests/tasks/commands/test_reap.py  |   170 +
 .../tasks/commands/test_submit.py                  |    54 +
 .../integration_tests/tasks/test_sync_join_wait.py |     6 +-
 tests/integration_tests/themes/api_tests.py        |     7 +
 .../themes/test_theme_api_permissions.py           |    89 +-
 .../integration_tests/themes/test_theme_editors.py |   291 +
 .../integration_tests/utils/machine_auth_tests.py  |    10 +-
 .../versioning/activity_view_tests.py              |   118 +-
 .../versioning/activity_write_after_read_tests.py  |   133 +
 .../versioning/change_records_tests.py             |   137 +
 .../versioning/conditional_token_lock_tests.py     |   367 +
 .../versioning/conditional_write_lock_tests.py     |   225 +
 .../versioning/creation_row_tests.py               |   323 +
 .../versioning/restore_fails_closed_tests.py       |   634 +
 .../versioning/retention_prune_tests.py            |    67 +-
 .../versioning/versions_api_tests.py               |   311 +-
 tests/mypy_fixtures/__init__.py                    |    16 +
 tests/mypy_fixtures/uuid_mixin_nullable.py         |    44 +
 {scripts => tests/testcontainers}/__init__.py      |     0
 .../testcontainers/db_engine_specs}/__init__.py    |     0
 .../db_engine_specs/_bigquery_container.py         |    79 +
 tests/testcontainers/db_engine_specs/_driver.py    |    47 +
 .../testcontainers/db_engine_specs/_pagination.py  |    68 +
 .../db_engine_specs/test_bigquery.py               |   183 +
 .../db_engine_specs/test_clickhouse.py             |   291 +
 .../db_engine_specs/test_cockroachdb.py            |    97 +
 tests/testcontainers/db_engine_specs/test_crate.py |   147 +
 .../db_engine_specs/test_databend.py               |   143 +
 tests/testcontainers/db_engine_specs/test_db2.py   |   109 +
 .../db_engine_specs/test_elasticsearch.py          |   107 +
 .../db_engine_specs/test_firebird.py               |   146 +
 .../testcontainers/db_engine_specs/test_mariadb.py |   117 +
 .../testcontainers/db_engine_specs/test_monetdb.py |   127 +
 .../testcontainers/db_engine_specs/test_mongodb.py |   141 +
 tests/testcontainers/db_engine_specs/test_mssql.py |    93 +
 tests/testcontainers/db_engine_specs/test_mysql.py |   360 +
 .../db_engine_specs/test_oceanbase.py              |   147 +
 .../db_engine_specs/test_opensearch.py             |   155 +
 .../testcontainers/db_engine_specs/test_oracle.py  |   202 +
 .../db_engine_specs/test_postgres.py               |   789 +
 .../db_engine_specs/test_risingwave.py             |   127 +
 .../db_engine_specs/test_starrocks.py              |   156 +
 .../db_engine_specs/test_timescaledb.py            |    98 +
 tests/testcontainers/db_engine_specs/test_trino.py |   104 +
 tests/testcontainers/db_engine_specs/test_ydb.py   |   148 +
 .../db_engine_specs/test_yugabytedb.py             |   119 +
 tests/unit_tests/async_events/__init__.py          |    16 -
 .../async_events/async_query_manager_tests.py      |   535 -
 .../unit_tests/async_events/test_cache_backend.py  |   148 -
 .../charts/commands/data/test_get_data_command.py  |    78 +-
 .../charts/commands/importers/v1/import_test.py    |    78 +-
 .../charts/commands/importers/v1/utils_test.py     |    97 +-
 tests/unit_tests/charts/dao/dao_tests.py           |    13 +-
 .../charts/data/malformed_adhoc_metric_test.py     |   217 +
 .../charts/data/streaming_filename_test.py         |    18 +-
 .../charts/data/test_empty_query_context.py        |     7 +
 .../unit_tests/charts/data/test_non_dict_params.py |   116 +
 .../charts/data/test_time_range_validation.py      |    48 +
 .../charts/semantic_view_chart_filter_test.py      |   486 +
 tests/unit_tests/charts/test_chart_data_api.py     |   873 +-
 .../charts/test_chart_list_datasource.py           |   144 +
 tests/unit_tests/charts/test_client_processing.py  |  1495 +-
 .../charts/test_exact_integer_chart_data.py        |   824 +
 tests/unit_tests/charts/test_export_api.py         |    44 +
 tests/unit_tests/charts/test_filters.py            |   208 +-
 tests/unit_tests/charts/test_schemas.py            |   440 +-
 tests/unit_tests/cli/deletion_retention_test.py    |   409 +
 tests/unit_tests/cli/update_test.py                |    38 +
 .../chart/create_async_job_command_test.py         |    51 -
 tests/unit_tests/commands/chart/create_test.py     |   554 +
 .../commands/chart/delete_message_test.py          |    63 +
 tests/unit_tests/commands/chart/export_test.py     |   576 +
 .../commands/chart/semantic_export_test.py         |   127 +
 .../chart/streaming_export_command_test.py         |    97 +
 .../commands/chart/test_warm_up_cache.py           |   135 +
 tests/unit_tests/commands/chart/update_test.py     |   588 +-
 .../dashboard/export_example_semantic_test.py      |   175 +
 tests/unit_tests/commands/dashboard/export_test.py |   293 +-
 .../commands/dashboard/permalink_create_test.py    |   131 +
 .../dashboard/restore_semantic_filters_test.py     |   363 +
 .../unit_tests/commands/dashboard/restore_test.py  |     3 +
 .../commands/dashboard/slug_collision_test.py      |   246 +
 tests/unit_tests/commands/dashboard/update_test.py |   301 +
 .../databases/importers/v1/command_test.py         |    52 +
 tests/unit_tests/commands/databases/oauth2_test.py |    73 +-
 tests/unit_tests/commands/databases/tables_test.py |   165 +
 .../commands/databases/test_connection_test.py     |    60 +
 tests/unit_tests/commands/databases/update_test.py |   618 +
 .../commands/databases/upload_command_test.py      |    61 +
 tests/unit_tests/commands/databases/utils_test.py  |    58 +
 .../commands/databases/validate_sql_test.py        |    99 +-
 .../unit_tests/commands/databases/validate_test.py |   205 +
 tests/unit_tests/commands/dataset/refresh_test.py  |    37 +-
 tests/unit_tests/commands/dataset/test_create.py   |   626 +-
 .../unit_tests/commands/dataset/test_duplicate.py  |   136 +-
 tests/unit_tests/commands/dataset/update_test.py   |   548 +-
 tests/unit_tests/commands/datasource/list_test.py  |   224 +
 .../deletion_retention/test_prune_audit.py         |  1184 +
 .../deletion_retention/test_purge_chart_detach.py  |   301 +
 .../deletion_retention/test_purge_impact.py        |    99 +
 .../deletion_retention/test_purge_policy.py        |  1632 +-
 .../deletion_retention/test_reason_codes.py        |   182 +
 .../commands/explore/permalink}/__init__.py        |     0
 .../commands/explore/permalink/test_create.py      |    45 +
 .../commands/explore/permalink/test_get.py         |    57 +
 .../explore/test_get_query_authorship_bypass.py    |   187 +
 tests/unit_tests/commands/export_test.py           |    51 +
 .../unit_tests/commands/extra_asset_fields_test.py |    96 +
 .../commands/importers/v1/assets_test.py           |     7 +-
 .../commands/importers/v1/examples_test.py         |   116 +
 .../commands/importers/v1/import_models_test.py    |    93 +
 .../importers/v1/import_saved_query_test.py        |   126 +
 .../importers/v1/test_find_existing_for_import.py  |   134 +-
 .../unit_tests/commands/importers/v1/utils_test.py |   702 +-
 tests/unit_tests/commands/report/alert_test.py     |    58 +-
 tests/unit_tests/commands/report/base_test.py      |   259 +-
 .../unit_tests/commands/report/chart_data_test.py  |   298 +
 tests/unit_tests/commands/report/conftest.py       |    23 +
 tests/unit_tests/commands/report/create_test.py    |    86 +
 tests/unit_tests/commands/report/execute_test.py   |  1899 +-
 .../commands/report/execution_claim_test.py        |   415 +
 .../report/execution_ownership_migration_test.py   |    87 +
 tests/unit_tests/commands/report/executor_test.py  |   621 +
 tests/unit_tests/commands/report/run_as_test.py    |  1340 +
 .../commands/report/semantic_view_report_test.py   |   232 +
 .../commands/report/update_config_test.py          |   223 +
 tests/unit_tests/commands/report/update_test.py    |    61 +-
 tests/unit_tests/commands/security/reset_test.py   |    62 +
 .../commands/semantic_layer/create_test.py         |   418 +-
 .../commands/semantic_layer/delete_test.py         |   847 +-
 .../commands/semantic_layer/update_test.py         |   435 +-
 .../semantic_layer/view_data_access_test.py        |   148 +
 tests/unit_tests/commands/sql_lab/export_test.py   |   113 +
 .../commands/sql_lab/permalink_get_test.py         |    87 +
 .../sql_lab/streaming_export_command_test.py       |    74 +
 tests/unit_tests/commands/sql_lab/test_estimate.py |   191 +-
 tests/unit_tests/commands/sql_lab/test_execute.py  |   253 +
 .../commands/streaming_export}/__init__.py         |     0
 .../commands/streaming_export/base_test.py         |    51 +
 .../unit_tests/commands/tasks}/__init__.py         |     0
 .../commands/tasks/test_internal_update.py         |    65 +
 .../commands/test_base_restore_version_command.py  |   183 +
 .../commands/test_restore_version_concurrency.py   |   167 +
 .../commands/test_update_managed_externally.py     |   403 +
 tests/unit_tests/commands/test_utils.py            |    59 +
 .../commands/theme/test_import_themes.py           |   282 +
 .../unit_tests/common/test_async_min_cache_ttl.py  |    67 +
 tests/unit_tests/common/test_dataframe_utils.py    |    53 +
 .../common/test_form_data_query_context.py         |   321 +-
 tests/unit_tests/common/test_query_actions.py      |   128 +-
 .../unit_tests/common/test_query_cache_manager.py  |    56 +
 .../common/test_query_context_factory.py           |   282 +-
 .../common/test_query_context_processor.py         |   849 +-
 .../common/test_query_context_processor_timing.py  |    86 +-
 .../unit_tests/common/test_query_object_factory.py |    23 +
 .../unit_tests/common/test_query_serialization.py  |   193 +
 tests/unit_tests/common/test_tabular_query.py      |   500 +
 .../common/test_time_column_offset_repro.py        |   204 +
 tests/unit_tests/common/test_time_range_utils.py   |    27 +
 tests/unit_tests/common/test_time_shifts.py        |   672 +-
 tests/unit_tests/config_test.py                    |   292 +-
 tests/unit_tests/conftest.py                       |   117 +-
 tests/unit_tests/connectors/sqla/models_test.py    |   906 +-
 tests/unit_tests/connectors/sqla/test_utils.py     |    33 +
 tests/unit_tests/connectors/sqla/utils_test.py     |   251 +-
 .../unit_tests/coordination}/__init__.py           |     0
 .../unit_tests/coordination/test_cache_backend.py  |   406 +
 tests/unit_tests/coordination/test_service.py      |   458 +
 tests/unit_tests/dao/base_dao_test.py              |   154 +-
 tests/unit_tests/dao/dashboard_test.py             |  1624 +-
 tests/unit_tests/dao/datasource_test.py            |    31 +
 tests/unit_tests/dao/key_value_test.py             |    43 +
 tests/unit_tests/dao/queries_test.py               |    21 +-
 tests/unit_tests/dao/query_stop_isolation_test.py  |   126 +
 .../dao/test_copy_dashboard_legacy_ids.py          |   282 +
 tests/unit_tests/dao/test_query_stop_race.py       |  1321 +
 tests/unit_tests/daos/test_chart_dao.py            |    59 +
 tests/unit_tests/daos/test_dataset_dao.py          |    34 +
 tests/unit_tests/daos/test_query_dao.py            |   619 +
 tests/unit_tests/daos/test_report_dao.py           |    57 +-
 tests/unit_tests/daos/test_tasks.py                |   424 +
 tests/unit_tests/dashboards/api_test.py            |   195 +
 .../commands/importers/dispatcher_test.py          |    32 +
 .../commands/importers/v1/import_command_test.py   |     9 +-
 .../commands/importers/v1/import_test.py           |    54 +
 tests/unit_tests/dashboards/dao_tests.py           |    11 +-
 tests/unit_tests/dashboards/datasets_test.py       |  1813 ++
 .../unit_tests/dashboards/filter_state_api_test.py |   122 +
 tests/unit_tests/dashboards/layout_test.py         |   325 +
 tests/unit_tests/dashboards/schema_tests.py        |    37 +-
 .../dashboards/semantic_view_access_test.py        |  1278 +
 .../dashboards/test_excel_export_download_link.py  |    65 +
 .../dashboards/test_excel_export_email.py          |    19 +
 .../dashboards/test_excel_export_storage.py        |   178 +
 .../dashboards/test_excel_export_sync_budget.py    |   610 +
 .../dashboards/test_excel_export_workbook.py       |   146 +
 tests/unit_tests/dashboards/test_export_api.py     |    55 +
 tests/unit_tests/databases/api_test.py             |   386 +-
 tests/unit_tests/databases/commands/delete_test.py |    21 +-
 .../databases/commands/importers/v1/import_test.py |   445 +
 tests/unit_tests/databases/commands/utils_test.py  |   128 +-
 .../databases/dao/related_objects_test.py          |   122 +
 .../unit_tests/databases/error_provenance_test.py  |     2 +-
 tests/unit_tests/databases/filters_test.py         |     6 +-
 tests/unit_tests/databases/oauth2_api_test.py      |    32 +-
 tests/unit_tests/databases/schema_tests.py         |    78 +
 tests/unit_tests/dataframe_test.py                 |   344 +-
 tests/unit_tests/datasets/api_tests.py             |   577 +-
 .../datasets/commands/importers/dispatcher_test.py |    32 +
 .../datasets/commands/importers/v1/import_test.py  |  1097 +-
 tests/unit_tests/datasets/dao/dao_tests.py         |    65 +
 tests/unit_tests/datasets/schema_tests.py          |   293 +
 tests/unit_tests/datasource/dao_tests.py           |    59 +
 tests/unit_tests/datasource/test_compatible_api.py |    98 +
 tests/unit_tests/datasource/test_query_api.py      |   293 +
 tests/unit_tests/db_engine_specs/test_aurora.py    |    37 +
 tests/unit_tests/db_engine_specs/test_aws_iam.py   |    61 +
 tests/unit_tests/db_engine_specs/test_base.py      |   580 +-
 tests/unit_tests/db_engine_specs/test_bigquery.py  |   493 +-
 .../unit_tests/db_engine_specs/test_clickhouse.py  |   344 +-
 tests/unit_tests/db_engine_specs/test_crate.py     |    83 +-
 tests/unit_tests/db_engine_specs/test_crdb.py      |    16 +
 tests/unit_tests/db_engine_specs/test_d1.py        |   291 +
 .../unit_tests/db_engine_specs/test_databricks.py  |   547 +-
 .../db_engine_specs/test_databricks_multi_cloud.py |     4 +
 .../unit_tests/db_engine_specs/test_datafusion.py  |    32 +-
 tests/unit_tests/db_engine_specs/test_db2.py       |    87 +-
 tests/unit_tests/db_engine_specs/test_doris.py     |   381 +-
 tests/unit_tests/db_engine_specs/test_duckdb.py    |   204 +
 tests/unit_tests/db_engine_specs/test_dynamodb.py  |    88 +-
 .../db_engine_specs/test_elasticsearch.py          |   185 +-
 tests/unit_tests/db_engine_specs/test_exasol.py    |   191 +
 .../test_extended_aggregations_unverified.py       |    72 +
 tests/unit_tests/db_engine_specs/test_gsheets.py   |   566 +-
 tests/unit_tests/db_engine_specs/test_ibmi.py      |    76 +
 tests/unit_tests/db_engine_specs/test_impala.py    |   109 +
 .../db_engine_specs/test_impala_pending.py         |   401 +
 tests/unit_tests/db_engine_specs/test_init.py      |   228 +
 tests/unit_tests/db_engine_specs/test_kylin.py     |    50 +
 tests/unit_tests/db_engine_specs/test_lib.py       |   113 +
 tests/unit_tests/db_engine_specs/test_mariadb.py   |   118 +
 tests/unit_tests/db_engine_specs/test_mongodb.py   |   241 +-
 tests/unit_tests/db_engine_specs/test_mssql.py     |   438 +
 tests/unit_tests/db_engine_specs/test_mysql.py     |   872 +-
 tests/unit_tests/db_engine_specs/test_oceanbase.py |   228 +
 tests/unit_tests/db_engine_specs/test_ocient.py    |    15 +-
 tests/unit_tests/db_engine_specs/test_odps.py      |    19 +
 tests/unit_tests/db_engine_specs/test_oracle.py    |   111 +-
 tests/unit_tests/db_engine_specs/test_pinot.py     |    41 +-
 tests/unit_tests/db_engine_specs/test_postgres.py  |   433 +
 tests/unit_tests/db_engine_specs/test_presto.py    |   935 +-
 tests/unit_tests/db_engine_specs/test_redshift.py  |    62 +
 .../unit_tests/db_engine_specs/test_shillelagh.py  |   113 +
 tests/unit_tests/db_engine_specs/test_snowflake.py |   419 +-
 tests/unit_tests/db_engine_specs/test_sqlite.py    |    87 +-
 tests/unit_tests/db_engine_specs/test_starrocks.py |    73 +-
 .../unit_tests/db_engine_specs/test_timescaledb.py |    37 +
 tests/unit_tests/db_engine_specs/test_trino.py     |  1321 +-
 .../distributed_lock/distributed_lock_tests.py     |   269 +-
 tests/unit_tests/docker_ci_entrypoint_test.py      |   142 +
 tests/unit_tests/examples/utils_test.py            |    20 +
 tests/unit_tests/exceptions_test.py                |    46 +
 tests/unit_tests/explore/api_test.py               |    44 +
 tests/unit_tests/explore/form_data_api_test.py     |    80 +
 tests/unit_tests/explore/utils_test.py             |   248 +-
 .../unit_tests/extensions/metastore_cache_test.py  |    93 +
 tests/unit_tests/extensions/test_sqlalchemy.py     |   506 +-
 tests/unit_tests/feature_flag_test.py              |    82 +
 .../frontend_bundle_size_workflow_test.py          |    51 +
 tests/unit_tests/importexport/api_test.py          |   141 +-
 .../check_async_query_secret_test.py               |   140 -
 .../initialization/check_encryption_engine_test.py |     2 +-
 .../initialization/check_websocket_secret_test.py  |    68 +
 tests/unit_tests/initialization/init_views_test.py |   113 +
 tests/unit_tests/initialization_test.py            |   314 +-
 tests/unit_tests/jinja_context_test.py             |   381 +-
 tests/unit_tests/key_value/utils_test.py           |    12 +-
 .../tool/test_annotation_layer_tools.py            |    55 +-
 .../unit_tests/mcp_service/catalog}/__init__.py    |     0
 .../mcp_service/catalog/tool}/__init__.py          |     0
 .../mcp_service/catalog/tool/test_get_catalog.py   |  1168 +
 .../mcp_service/chart/query_result_fixtures.py     |   165 +
 ...test_axis_offset_and_spatial_query_contracts.py |   474 +
 .../mcp_service/chart/test_big_number_headline.py  |   665 +
 .../mcp_service/chart/test_bubble_chart.py         |   471 +
 .../mcp_service/chart/test_bullet_chart.py         |  5316 ++++
 .../mcp_service/chart/test_bullet_tool_paths.py    |  2347 ++
 .../chart/test_chart_config_coercion.py            |    16 +
 .../mcp_service/chart/test_chart_examples.py       |   108 +
 .../mcp_service/chart/test_chart_helpers.py        |  1305 +-
 .../chart/test_chart_plugin_contract.py            |  1005 +
 .../mcp_service/chart/test_chart_schemas.py        |   307 +-
 .../mcp_service/chart/test_chart_target_schemas.py |   213 +
 .../mcp_service/chart/test_chart_utils.py          |  1179 +
 tests/unit_tests/mcp_service/chart/test_compile.py |  1053 +-
 .../chart/test_dashboard_time_binding.py           |    90 +
 .../mcp_service/chart/test_datasource_resolver.py  |   622 +
 .../mcp_service/chart/test_gantt_chart.py          |  2869 ++
 .../mcp_service/chart/test_gauge_chart.py          |  1278 +
 .../mcp_service/chart/test_gauge_render.py         |   106 +
 .../mcp_service/chart/test_geographic_chart.py     |  2199 ++
 .../chart/test_histogram_boxplot_charts.py         |    64 +-
 .../chart/test_interactive_pivot_chart.py          |   449 +
 .../chart/test_live_chart_datasource.py            |   711 +
 ..._metric_aggregation_and_comparison_contracts.py |   379 +
 .../chart/test_native_chart_regressions.py         |   375 +
 ...ative_form_data_and_dataset_rebind_contracts.py |  1328 +
 .../mcp_service/chart/test_new_chart_types.py      |    30 +-
 .../mcp_service/chart/test_preview_utils.py        |   604 +-
 .../mcp_service/chart/test_query_result.py         |  2090 ++
 .../unit_tests/mcp_service/chart/test_registry.py  |    89 +-
 .../mcp_service/chart/test_registry_filters.py     |    24 +-
 .../mcp_service/chart/test_response_preflight.py   |   488 +
 .../test_review_query_and_preview_regressions.py   |   533 +
 .../mcp_service/chart/test_sunburst_chart.py       |  5584 ++++
 .../chart/test_time_grain_generic_axes.py          |   536 +
 .../mcp_service/chart/test_treemap_chart.py        |   176 +
 .../mcp_service/chart/test_treemap_completeness.py |  1459 +
 .../chart/tool/test_column_suggestions.py          |   617 +
 .../mcp_service/chart/tool/test_generate_chart.py  |   395 +-
 .../tool/test_generate_chart_semantic_view.py      |   412 +
 .../mcp_service/chart/tool/test_get_chart_data.py  |  7111 ++++-
 .../mcp_service/chart/tool/test_get_chart_info.py  |   260 +-
 .../chart/tool/test_get_chart_info_permalink.py    |   454 +
 .../chart/tool/test_get_chart_preview.py           |  1376 +-
 .../mcp_service/chart/tool/test_get_chart_sql.py   |   995 +-
 .../chart/tool/test_get_chart_type_schema.py       |    72 +
 .../mcp_service/chart/tool/test_list_charts.py     |   152 +-
 .../mcp_service/chart/tool/test_restore_chart.py   |   120 +-
 .../chart/tool/test_saved_chart_datasource.py      |   432 +
 .../mcp_service/chart/tool/test_update_chart.py    |  1186 +-
 .../chart/tool/test_update_chart_preview.py        |   683 +-
 .../chart/tool/test_update_chart_rebind.py         |  1006 +
 .../validation/test_column_name_normalization.py   |    86 +
 .../chart/validation/test_dataset_validator.py     |   493 +
 .../common/test_list_scope_validation.py           |   105 +
 .../common/test_time_range_validation.py           |   123 +-
 tests/unit_tests/mcp_service/conftest.py           |    27 +
 .../dashboard/test_dashboard_schemas.py            |   513 +-
 .../mcp_service/dashboard/test_layout_placement.py |   101 +
 .../dashboard/test_layout_validation.py            |   575 +
 .../mcp_service/dashboard/test_permalink.py        |   531 +
 .../tool/test_add_chart_to_existing_dashboard.py   |   204 +-
 .../dashboard/tool/test_apply_dashboard_filters.py |  3580 +++
 .../tool/test_chart_access_query_count.py          |   174 +
 .../dashboard/tool/test_dashboard_generation.py    |   458 +-
 .../dashboard/tool/test_dashboard_tools.py         |   675 +-
 .../dashboard/tool/test_delete_dashboard.py        |     1 +
 .../dashboard/tool/test_duplicate_dashboard.py     |   236 +-
 .../dashboard/tool/test_get_dashboard_data.py      |  1031 +
 .../dashboard/tool/test_get_dashboard_datasets.py  |   570 +-
 .../dashboard/tool/test_get_dashboard_layout.py    |   883 +-
 .../dashboard/tool/test_list_dashboards.py         |    85 +
 .../tool/test_manage_dashboard_certification.py    |    84 +-
 .../tool/test_manage_dashboard_markdown.py         |  1279 +
 .../dashboard/tool/test_manage_dashboard_owners.py |    19 +-
 .../dashboard/tool/test_manage_dashboard_roles.py  |     2 +
 .../dashboard/tool/test_manage_native_filters.py   |  2060 +-
 .../tool/test_managed_dashboard_refusal.py         |   356 +
 .../tool/test_remove_chart_from_dashboard.py       |    44 +
 .../dashboard/tool/test_restore_dashboard.py       |   125 +-
 .../dashboard/tool/test_update_dashboard.py        |   213 +-
 .../database/tool/test_database_tools.py           |     2 +-
 .../dataset/tool/test_create_dataset.py            |     1 +
 .../dataset/tool/test_dataset_metric_mutations.py  |   542 +
 .../mcp_service/dataset/tool/test_dataset_tools.py |   334 +-
 .../dataset/tool/test_delete_dataset.py            |   340 +
 .../tool/test_list_datasets_deleted_state.py       |   206 +
 .../mcp_service/dataset/tool/test_query_dataset.py |  1499 +-
 .../dataset/tool/test_restore_dataset.py           |   384 +
 .../dataset/tool/test_sql_dataset_guidance.py      |   181 +
 .../dataset/tool/test_update_dataset.py            |   574 +
 .../dataset/tool/test_update_dataset_metric.py     |   219 +-
 .../explore/tool/test_generate_explore_link.py     |   527 +
 .../test_generate_explore_link_semantic_view.py    |   245 +
 .../mcp_service/native_tool_inventory.json         |  1289 +
 .../mcp_service/query/tool/test_query_tools.py     |     2 +-
 .../mcp_service/report/tool/test_report_tools.py   |    38 +-
 .../mcp_service/role/tool/test_role_tools.py       |    30 +-
 .../saved_query/tool/test_saved_query_tools.py     |     2 +-
 .../mcp_service/semantic_layer/test_flag_off.py    |   203 +
 .../test_compatibility_selection_validation.py     |   144 +
 .../tool/test_get_compatible_dimensions.py         |    12 +
 .../tool/test_get_compatible_metrics.py            |    25 +-
 .../semantic_layer/tool/test_get_table.py          |  2017 +-
 .../semantic_layer/tool/test_list_metrics.py       |   265 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   385 +-
 .../sql_lab/tool/test_execute_sql_response.py      |   127 +
 .../sql_lab/tool/test_open_sql_lab_with_context.py |    77 +-
 .../sql_lab/tool/test_save_sql_query.py            |    19 +-
 .../system/resources/test_instance_metadata.py     |   144 +
 .../system/resources/test_schema_discovery.py      |     2 +-
 .../mcp_service/system/tool/test_find_users.py     |    65 +-
 .../system/tool/test_get_current_user.py           |     6 +-
 .../mcp_service/system/tool/test_get_schema.py     |    11 +
 .../mcp_service/tag/tool/test_tag_tools.py         |    13 +-
 .../mcp_service/task/tool/test_task_tools.py       |    15 +-
 .../mcp_service/test_auth_user_resolution.py       |    78 +-
 .../mcp_service/test_browser_hello_middleware.py   |   126 +
 .../mcp_service/test_chart_tool_inventory.py       |   361 +
 .../mcp_service/test_composite_token_verifier.py   |   105 +-
 .../unit_tests/mcp_service/test_dashboard_scope.py |  1511 +
 .../mcp_service/test_dashboard_scope_sql.py        |   749 +
 tests/unit_tests/mcp_service/test_dataset_scope.py |   747 +
 .../mcp_service/test_error_classification.py       |   678 +
 .../mcp_service/test_guest_token_auth.py           |    21 +-
 .../test_isdigit_isdecimal_regression.py           |   149 +
 .../unit_tests/mcp_service/test_main_entrypoint.py |   126 +
 tests/unit_tests/mcp_service/test_mcp_caching.py   |   165 +-
 tests/unit_tests/mcp_service/test_mcp_config.py    |   103 +-
 .../mcp_service/test_mcp_config_hs256_guard.py     |   150 +
 .../unit_tests/mcp_service/test_mcp_docstrings.py  |   128 +
 tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py |   151 +-
 tests/unit_tests/mcp_service/test_mcp_server.py    |   315 +-
 .../mcp_service/test_mcp_tool_registration.py      |   509 +
 tests/unit_tests/mcp_service/test_middleware.py    |  1289 +-
 .../mcp_service/test_middleware_logging.py         |   156 +-
 .../mcp_service/test_native_tool_surface.py        |  1146 +
 .../mcp_service/test_rbac_tool_enforcement.py      |    38 +-
 .../mcp_service/test_response_serialization.py     |   321 +
 .../mcp_service/test_result_value_contract.py      |   211 +
 .../test_sanitization_warning_inputs.py            |   526 +
 tests/unit_tests/mcp_service/test_simple_proxy.py  |    47 +
 .../test_tool_description_constraints.py           |   700 +
 .../unit_tests/mcp_service/test_tool_inventory.py  |   280 +
 .../mcp_service/test_tool_search_transform.py      |  1110 +-
 .../mcp_service/test_validation_contract.py        |   595 +
 tests/unit_tests/mcp_service/test_worker.py        |   878 +
 .../mcp_service/test_worker_metadata_pool.py       |  1004 +
 .../mcp_service/theme/tool/test_create_theme.py    |   103 +-
 .../mcp_service/theme/tool/test_get_theme_info.py  |    10 +-
 tests/unit_tests/mcp_service/user/test_schemas.py  |    12 +-
 .../mcp_service/user/tool/test_user_tools.py       |    42 +-
 .../mcp_service/utils/test_cache_utils.py          |    32 +-
 .../mcp_service/utils/test_response_size_utils.py  |  1205 +
 .../mcp_service/utils/test_response_utils.py       |   270 +
 .../mcp_service/utils/test_sanitization.py         |   498 +-
 .../mcp_service/utils/test_serialization.py        |   362 +
 .../mcp_service/utils/test_token_utils.py          |   854 -
 .../composite_pk_association_tables_test.py        |     2 +-
 .../migrations/shared/security_converge_test.py    |   218 +
 .../test_add_deleted_at_to_dashboards.py           |     2 +-
 .../migrations/test_add_deleted_at_to_slices.py    |     2 +-
 .../migrations/test_add_deleted_at_to_tables.py    |     2 +-
 .../test_add_run_as_and_report_config.py           |   274 +
 .../migrations/test_add_theme_editors.py           |   166 +
 .../test_add_theme_editors_theme_id_index.py       |    90 +
 .../migrations/test_databend_secure_to_sslmode.py  |    16 +-
 .../test_deprecated_permissions_33272.py           |   420 +
 .../test_enforce_oauth2_token_uniqueness.py        |     2 +-
 .../migrations/test_purge_audit_coordination.py    |    78 +
 .../test_restore_pivot_table_percent_display.py    |     8 +-
 .../migrations/test_single_migration_head.py       |    29 +
 ...rip_metricsqlexpressions_from_ag_grid_params.py |     8 +-
 .../test_sweep_legacy_password_view_perms.py       |   190 +
 ...t_tag_pivot_tables_with_restored_aggregation.py |   461 +
 .../unit_tests/migrations/viz/table_v1_v2_test.py  |   473 +
 tests/unit_tests/models/core_test.py               |   662 +-
 tests/unit_tests/models/dashboard_test.py          |   803 +-
 .../models/groupby_literal_column_test.py          |   288 +
 .../unit_tests/models/helpers_rls_rollback_test.py |    80 +
 tests/unit_tests/models/helpers_test.py            |  2252 +-
 .../models/normalize_df_large_integer_test.py      |   307 +
 .../models/owner_association_tables_test.py        |     2 +-
 .../models/select_alias_shadowing_test.py          |   184 +
 tests/unit_tests/models/slice_test.py              |   345 +-
 tests/unit_tests/models/sql_lab_test.py            |    62 +-
 tests/unit_tests/models/template_params_test.py    |    68 +
 .../unit_tests/models/test_certification_mixin.py  |    76 +
 .../models/test_hours_offset_bound_truncation.py   |  1174 +
 tests/unit_tests/models/test_multivalue_filter.py  |   138 +
 .../models/test_virtual_dataset_format.py          |   115 +-
 .../pandas_postprocessing/test_aggregate.py        |    21 +
 .../pandas_postprocessing/test_compare.py          |   109 +
 .../pandas_postprocessing/test_contribution.py     |   106 +
 tests/unit_tests/pandas_postprocessing/test_cum.py |    74 +
 .../pandas_postprocessing/test_geography.py        |   122 +
 .../pandas_postprocessing/test_histogram.py        |    57 +-
 .../unit_tests/pandas_postprocessing/test_pivot.py |   764 +
 .../pandas_postprocessing/test_prophet.py          |    64 +
 .../pandas_postprocessing/test_rename.py           |    96 +
 .../pandas_postprocessing/test_resample.py         |   321 +
 .../pandas_postprocessing/test_rolling.py          |    17 +
 .../pandas_postprocessing/test_select.py           |    29 +
 .../unit_tests/pandas_postprocessing/test_utils.py |    88 +
 tests/unit_tests/queries/query_object_test.py      |   360 +-
 tests/unit_tests/reports/api_test.py               |    71 +-
 tests/unit_tests/reports/config_api_test.py        |   135 +
 tests/unit_tests/reports/config_dao_test.py        |   359 +
 tests/unit_tests/reports/filters_test.py           |   119 +
 tests/unit_tests/reports/logs_api_test.py          |    37 +
 .../reports/notifications/email_tests.py           |    47 +-
 .../reports/notifications/slack_tests.py           |    38 +-
 .../reports/notifications/webhook_tests.py         |   270 +-
 tests/unit_tests/reports/schemas_test.py           |   207 +
 tests/unit_tests/reports/utils_test.py             |   222 +
 tests/unit_tests/result_set_test.py                |   135 +-
 .../scheduled_docker_image_refresh_test.py         |    65 -
 tests/unit_tests/scripts/change_detector_test.py   |   139 +
 tests/unit_tests/scripts/docker_cache_ref_test.py  |    90 +
 .../scripts/docker_release_target_test.py          |   177 +
 .../scripts/translations/babel_update_test.py      |   388 +
 .../scripts/translations/backfill_po_test.py       |   226 +-
 .../scripts/translations/check_pot_drift_test.py   |   429 +
 tests/unit_tests/security/api_test.py              |    33 +-
 .../security/exclude_users_filter_test.py          |    10 +-
 tests/unit_tests/security/guest_rls_test.py        |   369 +-
 .../unit_tests/security/guest_token_audit_test.py  |    87 +
 tests/unit_tests/security/manager_test.py          |  3818 ++-
 .../unit_tests/security/semantic_guest_rls_test.py |   401 +
 .../security/test_dashboard_chart_labels.py        |   207 +
 .../security/test_guest_token_dataset_allowlist.py |     6 +-
 .../security/test_guest_token_empty_filter.py      |   115 +
 tests/unit_tests/security/test_password_change.py  |   227 +-
 .../unit_tests/security/test_password_recovery.py  |  1073 +
 .../security/test_password_recovery_rate_limit.py  |    71 +
 .../security/test_permission_instructions_link.py  |    85 +-
 .../test_realtime_notification_permissions.py      |    61 +
 .../security/test_session_invalidation.py          |    18 +
 .../test_superset_user_api_subject_sync.py         |    23 +
 .../security/typed_datasource_access_test.py       |   381 +
 tests/unit_tests/semantic_layers/api_test.py       |  1384 +-
 .../semantic_layers/cache_coordination_test.py     |   525 +
 .../unit_tests/semantic_layers/cache_host_test.py  |   375 +
 .../semantic_layers/cache_identity_test.py         |   285 +
 .../semantic_layers/cache_integration_test.py      |   998 +
 .../semantic_layers/cache_or_filters_test.py       |   220 +
 .../semantic_layers/cache_policy_test.py           |   964 +
 .../semantic_layers/cache_repository_test.py       |   929 +
 tests/unit_tests/semantic_layers/cache_test.py     |   956 +
 .../semantic_layers/cache_transform_test.py        |   229 +
 tests/unit_tests/semantic_layers/conftest.py       |   263 +
 .../semantic_layers/connections_access_test.py     |   402 +
 .../semantic_layers/default_order_test.py          |   376 +
 .../semantic_layers/dimension_resolution_test.py   |   161 +
 .../semantic_layers/e2e_stub_extension_test.py     |   246 +
 .../semantic_layers/execution_context_test.py      |  1141 +
 .../fixtures/snowflake_configuration.json          |   172 +
 .../semantic_layers/grain_validation_test.py       |   129 +
 .../semantic_layers/import_export_test.py          |   945 +
 .../semantic_layers/integer_precision_test.py      |   372 +
 tests/unit_tests/semantic_layers/labels_test.py    |    13 +
 .../semantic_layers/layer_list_scope_test.py       |   215 +
 tests/unit_tests/semantic_layers/layer_test.py     |    91 +
 tests/unit_tests/semantic_layers/mapper_test.py    |  1764 +-
 tests/unit_tests/semantic_layers/masking_test.py   |   870 +
 tests/unit_tests/semantic_layers/members_test.py   |    83 +
 .../semantic_layers/metadata_contract_test.py      |   114 +
 .../semantic_layers/metric_filter_test.py          |   459 +
 tests/unit_tests/semantic_layers/models_test.py    |  1936 +-
 .../semantic_layers/null_filters_test.py           |   339 +
 .../semantic_layers/provider_masking_test.py       |   107 +
 .../semantic_layers/query_errors_test.py           |   846 +
 .../semantic_layers/result_completeness_test.py    |    86 +
 .../semantic_layers/selection_identity_test.py     |   293 +
 .../semantic_layers/simple_cache_clear_test.py     |   715 +
 tests/unit_tests/semantic_layers/test_access.py    |    42 +
 .../semantic_layers/test_runtime_flag.py           |   216 +
 .../semantic_layers/values_endpoint_test.py        |   791 +
 .../unit_tests/soft_delete}/__init__.py            |     0
 .../soft_delete/test_restore_purge_hoist.py        |   281 +
 .../sql/dialects/databend_function_catalogue.txt   |   741 +
 tests/unit_tests/sql/dialects/databend_tests.py    |  1553 +
 tests/unit_tests/sql/dialects/db2_tests.py         |    20 +
 tests/unit_tests/sql/execution/conftest.py         |     9 +-
 .../unit_tests/sql/execution/test_async_results.py |  1507 +
 .../unit_tests/sql/execution/test_cancellation.py  |   165 +
 tests/unit_tests/sql/execution/test_celery_task.py |  2400 +-
 tests/unit_tests/sql/execution/test_executor.py    |  1217 +-
 tests/unit_tests/sql/execution/test_utils.py       |   207 +
 tests/unit_tests/sql/metric_normalization_tests.py |   255 +
 tests/unit_tests/sql/parse_tests.py                |  2060 +-
 tests/unit_tests/sql_lab_test.py                   |  2167 +-
 tests/unit_tests/sqllab/api_test.py                |    69 +-
 .../subjects/test_creator_group_call_sites.py      |    22 +-
 tests/unit_tests/subjects/test_filters.py          |    25 +
 tests/unit_tests/subjects/test_raise_for_access.py |   242 +-
 .../subjects/test_report_executor_remediation.py   |   148 +
 tests/unit_tests/subjects/test_security.py         |    21 +
 tests/unit_tests/subjects/test_utils.py            |    80 +
 tests/unit_tests/tags/api_test.py                  |   164 +
 tests/unit_tests/tags/commands/create_test.py      |    88 +-
 tests/unit_tests/tags/commands/delete_test.py      |   302 +
 tests/unit_tests/tags/commands/update_test.py      |   162 +-
 tests/unit_tests/tags/models_test.py               |     6 +-
 tests/unit_tests/tags/race_test.py                 |    84 +
 tests/unit_tests/tasks/test_async_queries.py       |   915 +-
 tests/unit_tests/tasks/test_context.py             |    92 +
 tests/unit_tests/tasks/test_cron_util.py           |    56 +-
 tests/unit_tests/tasks/test_decorators.py          |   126 +-
 tests/unit_tests/tasks/test_deletion_retention.py  |  1268 +-
 tests/unit_tests/tasks/test_dependencies.py        |   499 +
 .../tasks/test_export_dashboard_excel.py           |   797 +-
 tests/unit_tests/tasks/test_filters.py             |    61 +
 tests/unit_tests/tasks/test_guest.py               |   127 +
 tests/unit_tests/tasks/test_handlers.py            |   161 +-
 tests/unit_tests/tasks/test_heartbeat.py           |   157 +
 tests/unit_tests/tasks/test_locks.py               |   111 +
 tests/unit_tests/tasks/test_manager.py             |   881 +-
 tests/unit_tests/tasks/test_models.py              |    73 +
 tests/unit_tests/tasks/test_query_cancel.py        |   207 +
 tests/unit_tests/tasks/test_reap.py                |   193 +
 tests/unit_tests/tasks/test_scheduler_executor.py  |   185 +
 .../tasks/test_scheduler_soft_timeout.py           |    61 +-
 tests/unit_tests/tasks/test_schemas.py             |   151 +-
 tests/unit_tests/tasks/test_submit.py              |   126 +
 tests/unit_tests/tasks/test_subscription.py        |    68 +
 tests/unit_tests/tasks/test_thumbnails.py          |    75 +
 tests/unit_tests/tasks/test_timeout.py             |   335 +-
 tests/unit_tests/tasks/test_utils.py               |   116 +-
 .../tasks/test_version_history_retention.py        |   860 +-
 tests/unit_tests/test_app_reinitialization.py      |   114 +
 .../test_clock_reading_driver_preload.py           |    57 +
 tests/unit_tests/test_mcp_simple_proxy.py          |    45 +
 tests/unit_tests/test_realtime_publish.py          |   124 +
 tests/unit_tests/test_sqllab_error_stacktrace.py   |    17 +-
 tests/unit_tests/themes/api_test.py                |    39 +
 tests/unit_tests/themes/commands_test.py           |    71 +-
 tests/unit_tests/thumbnails/test_digest.py         |    88 +-
 .../sk_sql_lab_progress_message_test.py            |    64 +
 tests/unit_tests/utils/cache_test.py               |   138 +
 tests/unit_tests/utils/core_override_user_test.py  |    71 +
 tests/unit_tests/utils/create_zip_tests.py         |    84 +
 tests/unit_tests/utils/csv_tests.py                |    41 +-
 tests/unit_tests/utils/date_parser_tests.py        |   223 +
 tests/unit_tests/utils/excel_tests.py              |   190 +-
 tests/unit_tests/utils/filters_test.py             |   313 +-
 tests/unit_tests/utils/gcs_tests.py                |   120 +
 tests/unit_tests/utils/geographic_world_test.py    |    37 +
 tests/unit_tests/utils/json_tests.py               |    21 +
 tests/unit_tests/utils/log_tests.py                |   150 +-
 tests/unit_tests/utils/map_type_tests.py           |    15 +
 tests/unit_tests/utils/number_format_test.py       |    57 +
 tests/unit_tests/utils/oauth2_tests.py             |   447 +
 .../utils/pandas_sqlalchemy_compat_test.py         |    67 -
 tests/unit_tests/utils/rls_test.py                 |    36 +
 tests/unit_tests/utils/s3_tests.py                 |   102 +-
 tests/unit_tests/utils/screenshot_test.py          |   443 +
 tests/unit_tests/utils/send_export_zip_tests.py    |    69 +
 tests/unit_tests/utils/slack_test.py               |    56 +
 tests/unit_tests/utils/test_cache_manager.py       |    39 +-
 tests/unit_tests/utils/test_core.py                |   103 +-
 tests/unit_tests/utils/test_database.py            |   110 +-
 tests/unit_tests/utils/test_error_sanitization.py  |   233 +-
 tests/unit_tests/utils/test_file.py                |   188 +-
 tests/unit_tests/utils/test_network.py             |   110 +-
 tests/unit_tests/utils/test_report_execution.py    |    83 +
 tests/unit_tests/utils/test_rison_filters.py       |    25 +
 tests/unit_tests/utils/test_schema.py              |   138 +
 .../unit_tests/utils/test_screenshot_cache_fix.py  |    79 +
 tests/unit_tests/utils/test_screenshot_utils.py    |  1497 +-
 tests/unit_tests/utils/webdriver_test.py           |  1080 +-
 tests/unit_tests/versioning/test_activity.py       |   796 +-
 .../unit_tests/versioning/test_api_feature_flag.py |   167 +
 .../versioning/test_capture_gap_restore.py         |   809 +
 .../versioning/test_dataset_child_extra.py         |   148 +
 tests/unit_tests/versioning/test_db_errors.py      |   268 +-
 .../versioning/test_diff_save_defaults.py          |   264 +
 tests/unit_tests/versioning/test_endpoint_gate.py  |   216 +
 tests/unit_tests/versioning/test_etag.py           |   109 +
 tests/unit_tests/versioning/test_listener.py       |   652 +-
 tests/unit_tests/versioning/test_lock_entity.py    |    97 +
 .../versioning/test_normalization_changes.py       |   186 +
 tests/unit_tests/versioning/test_restore.py        |   542 +-
 .../versioning/test_restore_datasource_race.py     |   189 +
 .../versioning/test_restore_missing_datasource.py  |   305 +
 .../unit_tests/versioning/test_retention_races.py  |   357 +
 .../unit_tests/versioning/test_runtime_capture.py  |   776 +
 tests/unit_tests/versioning/test_shadow_queries.py |   329 +
 .../versioning/test_version_info_locking.py        |   108 +
 tests/unit_tests/views/datasource/views_test.py    |  1130 +-
 tests/unit_tests/views/test_archived_assets.py     |    86 +
 tests/unit_tests/views/test_auth_login.py          |    77 +
 tests/unit_tests/views/test_base.py                |   159 +-
 tests/unit_tests/views/test_base_theme_helpers.py  |    62 +
 tests/unit_tests/views/test_bootstrap_auth.py      |    20 +
 tests/unit_tests/views/test_current_user_api.py    |   126 +-
 .../views/test_current_user_auth_errors.py         |   122 +
 tests/unit_tests/views/test_error_bodies.py        |   212 +
 tests/unit_tests/views/test_error_handling.py      |   505 +-
 tests/unit_tests/views/test_i18n_constants.py      |   640 +
 .../unit_tests/views/test_parse_json_form_field.py |    54 +
 tests/unit_tests/views/test_soft_delete_filter.py  |     2 +-
 .../views/test_sql_lab_tab_state_views.py          |   203 +-
 tests/unit_tests/views/test_utils.py               |    69 +-
 .../unit_tests/websocket}/__init__.py              |     0
 tests/unit_tests/websocket/test_channel.py         |   319 +
 3508 files changed, 648464 insertions(+), 130409 deletions(-)
 delete mode 100644 .github/actions/change-detector/label-draft-pr.yml
 delete mode 160000 .github/actions/chart-testing-action
 delete mode 160000 .github/actions/comment-on-pr
 delete mode 160000 .github/actions/latest-tag
 create mode 100644 .github/utsc2026-students.yml
 create mode 100644 .github/workflows/asf-allowlist-check.yml
 create mode 100644 .github/workflows/check-openapi-spec-drift.yml
 create mode 100644 .github/workflows/chromatic.yml
 delete mode 100644 .github/workflows/latest-release-tag.yml
 create mode 100644 .github/workflows/python-nightly-canary.yml
 delete mode 100644 .github/workflows/scheduled-docker-image-refresh.yml
 create mode 100755 .github/workflows/scripts/check-code-scanning-available.sh
 create mode 100755 .github/workflows/scripts/check-code-scanning-available.test.sh
 delete mode 100644 .github/workflows/superset-playwright.yml
 create mode 100644 .github/workflows/testcontainers.yml
 create mode 100644 .github/workflows/utsc2026-labeler.yml
 create mode 100644 .grype.yaml
 delete mode 100755 docker/docker-entrypoint-initdb.d/cypress-init.sh
 create mode 100755 docker/entrypoints/run-websocket.sh
 create mode 100644 docs/admin_docs/configuration/google-sheets.mdx
 create mode 100644 docs/admin_docs/security/oauth.mdx
 create mode 100644 docs/developer_docs/contributing/translation-guide.md
 create mode 100644 docs/developer_docs/extensions/extension-points/semantic-layers.md
 create mode 100644 docs/developer_docs/semantic-layer-cache-clear.md
 create mode 100644 docs/developer_docs/semantic-query-errors.md
 create mode 100644 docs/developer_docs/semantic-result-completeness.md
 create mode 100644 docs/docs/using-superset/semantic-layer-connections.mdx
 create mode 100644 docs/docs/using-superset/semantic-member-selections.mdx
 delete mode 100644 docs/eslint.config.js
 create mode 100644 docs/oxlint.json
 create mode 100644 docs/sip/median-stddev-variance-aggregates.md
 create mode 100644 docs/sip/pivot-table-aggregation-parity.md
 create mode 100644 docs/src/components/databases/DatabaseLogo.tsx
 create mode 100644 docs/static/img/databases/clickhouse-dark.svg
 create mode 100644 docs/static/img/databases/clickhouse-mark-dark.svg
 create mode 100644 docs/static/img/databases/clickhouse-mark.svg
 create mode 100644 docs/static/img/databases/clickhouse.svg
 create mode 100644 docs/static/img/logos/douroeci.png
 create mode 100644 docs/static/img/logos/plum.svg
 create mode 100644 docs/static/img/logos/savantly.png
 create mode 100644 docs/static/img/logos/veremes.svg
 create mode 100644 docs/static/img/version-history/recently-archived.jpg
 create mode 100644 docs/static/img/version-history/version-history-panel.jpg
 create mode 100644 docs/static/img/version-history/version-history-preview.jpg
 delete mode 100644 scripts/cypress_run.py
 create mode 100644 scripts/docker-build-plan.sh
 create mode 100644 scripts/docker-publish-guard.sh
 create mode 100644 scripts/docker_release_target.py
 delete mode 100755 scripts/eslint.sh
 create mode 100755 scripts/oxfmt.sh
 create mode 100644 scripts/translations/check_pot_drift.py
 create mode 100644 superset-core/src/superset_core/semantic_layers/__init__.py
 create mode 100644 superset-core/src/superset_core/semantic_layers/context.py
 create mode 100644 superset-core/src/superset_core/semantic_layers/errors.py
 create mode 100644 superset-core/src/superset_core/semantic_layers/testing.py
 create mode 100644 superset-core/src/superset_core/tasks/subscription.py
 create mode 100644 superset-core/tests/semantic_layers/example_provider.py
 create mode 100644 superset-core/tests/semantic_layers/test_errors.py
 create mode 100644 superset-core/tests/semantic_layers/test_execution_context.py
 create mode 100644 superset-core/tests/semantic_layers/test_registration.py
 create mode 100644 superset-core/tests/semantic_layers/test_view.py
 create mode 120000 superset-embedded-sdk/.npmrc
 create mode 100644 superset-embedded-sdk/testrig/README.md
 create mode 100644 superset-embedded-sdk/testrig/drive.mjs
 create mode 100644 superset-embedded-sdk/testrig/embedded.html
 create mode 100644 superset-embedded-sdk/testrig/host.html
 create mode 100644 superset-embedded-sdk/testrig/server.mjs
 create mode 100644 superset-frontend/.npmrc
 create mode 100644 superset-frontend/.storybook/playwright.storybook-ci.config.ts
 create mode 100644 superset-frontend/.storybook/setup-stories.test.ts
 create mode 100644 superset-frontend/.storybook/setup-stories.ts
 create mode 100644 superset-frontend/.storybook/stories.spec.ts
 delete mode 100644 superset-frontend/.storybook/test-runner.ts
 create mode 100644 superset-frontend/custom-lint-rules/i18n-strings/index.js
 create mode 100644 superset-frontend/custom-lint-rules/i18n-strings/no-eager-t-in-config.test.ts
 create mode 100644 superset-frontend/custom-lint-rules/i18n-strings/no-template-vars.test.ts
 create mode 100644 superset-frontend/custom-lint-rules/i18n-strings/package.json
 create mode 100644 superset-frontend/custom-lint-rules/icons/index.js
 create mode 100644 superset-frontend/custom-lint-rules/icons/no-fontawesome.test.ts
 create mode 100644 superset-frontend/custom-lint-rules/icons/package.json
 create mode 100644 superset-frontend/custom-lint-rules/theme-colors/colors.js
 create mode 100644 superset-frontend/custom-lint-rules/theme-colors/index.js
 create mode 100644 superset-frontend/custom-lint-rules/theme-colors/no-literal-colors.test.ts
 create mode 100644 superset-frontend/custom-lint-rules/theme-colors/package.json
 delete mode 100644 superset-frontend/cypress-base/.eslintrc
 delete mode 100644 superset-frontend/cypress-base/.gitignore
 delete mode 100644 superset-frontend/cypress-base/cypress.config.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/drilltodetail.test.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/shared_dashboard_functions.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/utils.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/chart.test.js
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/utils.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/shared.helper.js
 delete mode 100644 superset-frontend/cypress-base/cypress/fixtures/charts.json
 delete mode 100644 superset-frontend/cypress-base/cypress/fixtures/dashboards.json
 delete mode 100644 superset-frontend/cypress-base/cypress/support/directories.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/support/e2e.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/support/index.d.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/utils/index.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/utils/parsePostForm.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/utils/urls.ts
 delete mode 100644 superset-frontend/cypress-base/cypress/utils/vizPlugins.ts
 delete mode 100644 superset-frontend/cypress-base/package-lock.json
 delete mode 100644 superset-frontend/cypress-base/package.json
 delete mode 100644 superset-frontend/cypress-base/tsconfig.json
 delete mode 100755 superset-frontend/cypress_build.sh
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-i18n-strings/index.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-i18n-strings/no-eager-t-in-config.test.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-i18n-strings/no-template-vars.test.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-i18n-strings/package.json
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-icons/index.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-icons/no-fontawesome.test.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-icons/package.json
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-theme-colors/colors.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-theme-colors/index.ts
 delete mode 100644 superset-frontend/eslint-rules/eslint-plugin-theme-colors/package.json
 delete mode 100644 superset-frontend/eslint.config.minimal.js
 create mode 100644 superset-frontend/oxlint.custom-lint-rules.mts
 create mode 100644 superset-frontend/packages/superset-core/src/theme/GlobalStyles.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.ts
 create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/isServerPaginationUnsupported.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/virtualizationEvents.ts
 rename superset-frontend/{ => packages/superset-ui-core}/src/components/Descriptions/index.tsx (100%)
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/DynamicEditableTitle.regression.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/PageHeaderWithActions/PageHeaderWithActions.stories.tsx
 rename superset-frontend/{ => packages/superset-ui-core}/src/components/Splitter/index.tsx (100%)
 rename superset-frontend/{ => packages/superset-ui-core}/src/components/TimePicker/index.tsx (100%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/query/semanticSelection.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/time-format/DateWithFormatter.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/connection/SupersetClientCsrfRecovery.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/time-format/DateWithFormatter.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/time-format/utils/stringifyTimeInput.test.ts
 delete mode 100644 superset-frontend/packages/superset-ui-core/types/react-table-config.d.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/types/react-table.d.ts
 create mode 100644 superset-frontend/playwright/components/core/Radio.ts
 create mode 100644 superset-frontend/playwright/components/modals/DrillDetailModal.ts
 create mode 100644 superset-frontend/playwright/components/modals/SaveChartModal.ts
 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/helpers/embeddedAppServer.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/dashboard-drill-to-detail.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/dashboard-native-filter-url-key.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/dashboard-tabs.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/featured-charts-render.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/global-async-query-resilience.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/global-async-query.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/native-filters.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/version-history-placement.spec.ts
 create mode 100644 superset-frontend/playwright/tests/embedded/embedded-iframe-sizing.spec.ts
 delete mode 100644 superset-frontend/playwright/tests/experimental/README.md
 delete mode 100644 superset-frontend/playwright/tests/experimental/explore/results-tab-reuse.spec.ts
 create mode 100644 superset-frontend/playwright/tests/explore/cross-referenced-dashboards.spec.ts
 create mode 100644 superset-frontend/playwright/tests/explore/explore-download-image.spec.ts
 create mode 100644 superset-frontend/playwright/tests/explore/explore-no-results.spec.ts
 create mode 100644 superset-frontend/playwright/tests/explore/explore-save.spec.ts
 create mode 100644 superset-frontend/playwright/tests/explore/explore-test-helpers.ts
 create mode 100644 superset-frontend/playwright/tests/explore/results-tab-reuse.spec.ts
 delete mode 100644 superset-frontend/playwright/tests/recently-archived/delete-modal.spec.ts
 create mode 100644 superset-frontend/playwright/tests/semantic-view/semantic-view-dashboard.spec.ts
 create mode 100644 superset-frontend/playwright/tests/sqllab/global-async-query-sqllab.spec.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/JsonCellRenderer.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/jsonCellRowHeight.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/parseJsonCellValue.ts
 delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/DateWithFormatter.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getScrollBarSize.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getTimeRangeFromGranularity.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/isJsonCellActionTarget.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/mainComparison.ts
 delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/JsonCellRenderer.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/NumericCellRenderer.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/drillToDetail.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/formatValue.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/formatDurationValue.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/mainComparison.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/test/components/OlChartMap.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/test/util/pieColors.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/src/countries/italy_regions_and_autonomous_provinces.geojson
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/src/normalizeRegions.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/src/regions.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/countries.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/geographicRendering.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/iran.geojson.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/normalizeRegions.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/russia.geojson.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/south_africa.geojson.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Bubble/crossFilter.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/Butterfly.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/buildQuery.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/constants.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/controlPanel.tsx
 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
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/index.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/transformProps.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/types.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/EchartsCandlestick.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/buildQuery.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/constants.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/controlPanel.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/images/example1-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/images/example1.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/images/thumbnail.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/index.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/transformProps.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/types.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Candlestick/utils.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/utils.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/TimeseriesLegend.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/utils/legendEventHandlers.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/utils/legendEventHandlers.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/chartDisplayLabels.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Bubble/EchartsBubble.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Bubble/crossFilter.test.ts
 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/plugins/plugin-chart-echarts/test/Candlestick/EchartsCandlestick.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Candlestick/buildQuery.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Candlestick/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Candlestick/transformProps.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Candlestick/utils.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Graph/categoryIdentity.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Histogram/transformProps.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/EchartsSunburst.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/utils.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Bar/sparseSubDailyBarGeometry.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Treemap/EchartsTreemap.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-handlebars/test/Handlebars.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-parallel-coordinates/test/transformProps.test.ts
 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/plugin-chart-point-cluster-map/src/mapLibreDefaults.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/types/global.d.ts
 delete mode 100644 superset-frontend/plugins/plugin-chart-table/src/utils/DateWithFormatter.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-table/src/utils/headerGroups.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-table/test/DataTable/DataTable.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-table/test/DataTable/hooks/useSticky.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-table/test/headerGroups.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-table/test/transformProps.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-table/test/utils/formatDurationValue.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-world-map/src/worldGeometry.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-world-map/test/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/Multi/transformProps.test.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/Multi/transformProps.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.test.tsx
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/components/Tooltip.test.tsx
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/factory.test.tsx
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.test.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Scatter/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/types/global.d.ts
 delete mode 100644 superset-frontend/scripts/copyAssets.js
 create mode 100644 superset-frontend/scripts/internal/bundle-size-summary.js
 create mode 100644 superset-frontend/scripts/internal/oxlint-metrics-uploader.js
 create mode 100644 superset-frontend/scripts/po2json-cli.js
 create mode 100644 superset-frontend/scripts/po2json.js
 create mode 100644 superset-frontend/spec/fixtures/mockSemanticDashboardDatasources.ts
 create mode 100644 superset-frontend/spec/helpers/geographicControlPanel.ts
 create mode 100644 superset-frontend/spec/helpers/runStopButton.ts
 delete mode 100644 superset-frontend/spec/scripts/bundle-size-summary.test.js
 create mode 100644 superset-frontend/spec/scripts/bundle-size-summary.test.ts
 delete mode 100644 superset-frontend/spec/scripts/oxlint-metrics-uploader.test.js
 create mode 100644 superset-frontend/spec/scripts/oxlint-metrics-uploader.test.ts
 create mode 100644 superset-frontend/spec/scripts/po2json.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/chartCustomizations/components/DynamicGroupBy/columnAllowlist.test.ts
 create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/columnAllowlist.ts
 create mode 100644 superset-frontend/src/components/Chart/ChartRenderer.refresh.test.tsx
 create mode 100644 superset-frontend/src/components/Chart/DrillBy/DrillByTemporalFilters.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/DatasourceModal/DatasourceModal.pendingEdits.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/CollectionTable/CollectionTable.debounce.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/datasetCertification.ts
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorDatasetCertification.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorMetricFormatWarning.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorNormalizeColumnsWarning.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/datasetCertification.test.ts
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/hydrateMetricExtra.test.ts
 create mode 100644 superset-frontend/src/components/ErrorMessage/CsrfErrorMessage.test.tsx
 create mode 100644 superset-frontend/src/components/ErrorMessage/CsrfErrorMessage.tsx
 create mode 100644 superset-frontend/src/components/ErrorMessage/PreformattedErrorDescription.tsx
 create mode 100644 superset-frontend/src/components/FilterableTable/exactDecimals.test.tsx
 create mode 100644 superset-frontend/src/components/FilterableTable/sortResults.test.ts
 create mode 100644 superset-frontend/src/components/FilterableTable/sortResults.ts
 create mode 100644 superset-frontend/src/constants.test.ts
 create mode 100644 superset-frontend/src/dashboard/actions/dashboardInfo.test.ts
 create mode 100644 superset-frontend/src/dashboard/actions/datasources.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.lateFieldMount.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.manyCharts.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/sections/AsyncModeSection.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/sections/AsyncModeSection.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/sections/LabelColorMapping.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/sections/LabelColorMapping.tsx
 create mode 100644 superset-frontend/src/dashboard/components/RefreshIntervalModal.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/SaveModal.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/SliceHeader/SliceInfo.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/SliceHeader/SliceInfo.tsx
 create mode 100644 superset-frontend/src/dashboard/components/SliceHeaderControls/ViewAsTableRendering.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/dnd/dragDroppableConfig.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/dnd/handleDrop.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/gridComponents/TabsRenderer/StickyTabsOffsetContext.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/SharedStyles.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/keyValue.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/state.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.requestLifetime.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DefaultValue.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/GroupByColumnAllowlist.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.semanticDefault.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useFilterOperations.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/hooks/useModalSaveLogic.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/useDisplayControlDatasource.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/useDisplayControlDatasource.ts
 create mode 100644 superset-frontend/src/dashboard/contexts/DashboardDatasetsContext.ts
 create mode 100644 superset-frontend/src/dashboard/useDashboardFilterSync.test.tsx
 create mode 100644 superset-frontend/src/dashboard/useDashboardFilterSync.ts
 create mode 100644 superset-frontend/src/dashboard/util/embeddedLayout.ts
 create mode 100644 superset-frontend/src/dashboard/util/removeUnreachableComponents.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/removeUnreachableComponents.ts
 create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.ts
 create mode 100644 superset-frontend/src/dashboard/util/withChartDisplayLabels.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/withChartDisplayLabels.ts
 create mode 100644 superset-frontend/src/embedded/guestTokenDiagnostics.test.ts
 create mode 100644 superset-frontend/src/embedded/guestTokenDiagnostics.ts
 create mode 100644 superset-frontend/src/explore/components/ChartPills.behavior.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ChartPills.test.tsx
 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/explore/components/DatasourcePanel/compatibility.test.ts
 create mode 100644 superset-frontend/src/explore/components/DatasourcePanel/compatibility.ts
 create mode 100644 superset-frontend/src/explore/components/DatasourcePanel/folderDrag.test.ts
 create mode 100644 superset-frontend/src/explore/components/DatasourcePanel/folderDrag.ts
 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/ColumnConfigControl/ColumnConfigControl.popover.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.debounce.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ComparisonRangeLabel.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/ContourControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/ContourOption.test.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/ContourControl/ContourPopoverControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/index.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ControlPopover/PopoverTriggerAnchors.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/CustomListItem/index.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DateFilterControl/tests/CommonFrame.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateLabel.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/createAdhocMetricFromColumn.test.ts
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/utils/pickerCapabilities.test.ts
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/utils/pickerCapabilities.ts
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupEditor.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupsControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupsControl.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/index.ts
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/types.ts
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/utils.test.ts
 create mode 100644 superset-frontend/src/explore/components/controls/HeaderGroupsControl/utils.ts
 create mode 100644 superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/ExtentTag.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/MatrixifyControl/utils/fetchTopNValues.test.ts
 create mode 100644 superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/SemanticRequestView.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/SemanticRequestView.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/ViewQueryModalFooter.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/XAxisSortControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigControl.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigsChart.test.tsx
 create mode 100644 superset-frontend/src/explore/controlUtils/getSectionsToRender.test.ts
 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/explore/reducers/datasourcesReducer.test.ts
 create mode 100644 superset-frontend/src/explore/reducers/saveModalReducer.test.ts
 create mode 100644 superset-frontend/src/explore/selectors/compatibility.test.ts
 create mode 100644 superset-frontend/src/explore/selectors/compatibility.ts
 create mode 100644 superset-frontend/src/features/alerts/ReportConfigurationModal.test.tsx
 create mode 100644 superset-frontend/src/features/alerts/ReportConfigurationModal.tsx
 create mode 100644 superset-frontend/src/features/alerts/hooks/useReportConfiguration.ts
 create mode 100644 superset-frontend/src/features/charts/ChartCard.test.tsx
 create mode 100644 superset-frontend/src/features/datasets/fetchDatasourceList.test.ts
 create mode 100644 superset-frontend/src/features/datasets/fetchDatasourceList.ts
 create mode 100644 superset-frontend/src/features/semanticViews/creationResult.ts
 create mode 100644 superset-frontend/src/features/tasks/LiveDuration.test.tsx
 create mode 100644 superset-frontend/src/features/tasks/LiveDuration.tsx
 create mode 100644 superset-frontend/src/features/tasks/TaskDependenciesPopover.test.tsx
 create mode 100644 superset-frontend/src/features/tasks/TaskDependenciesPopover.tsx
 create mode 100644 superset-frontend/src/features/tasks/TaskPayloadPopover.test.tsx
 create mode 100644 superset-frontend/src/features/userInfo/UserInfoModal.test.tsx
 create mode 100644 superset-frontend/src/features/users/UserListModal.test.tsx
 create mode 100644 superset-frontend/src/features/versionHistory/RelatedUpdateRow.test.tsx
 create mode 100644 superset-frontend/src/features/versionHistory/SaveGroupItem.test.tsx
 create mode 100644 superset-frontend/src/features/versionHistory/normalization.test.ts
 create mode 100644 superset-frontend/src/features/versionHistory/normalization.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
 create mode 100644 superset-frontend/src/filters/components/Range/isSemanticRange.ts
 create mode 100644 superset-frontend/src/filters/components/Time/TimeFilterPlugin.test.tsx
 create mode 100644 superset-frontend/src/filters/components/TimeColumn/TimeColumnFilterPlugin.test.tsx
 create mode 100644 superset-frontend/src/hooks/apiResources/datasets.cache.test.ts
 create mode 100644 superset-frontend/src/hooks/useRunStopButton.ts
 create mode 100644 superset-frontend/src/hooks/useTabId.test.ts
 create mode 100644 superset-frontend/src/middleware/asyncQueryError.ts
 create mode 100644 superset-frontend/src/middleware/realtime.test.ts
 create mode 100644 superset-frontend/src/middleware/realtime.ts
 create mode 100644 superset-frontend/src/pages/ActionLog/ActionLog.test.tsx
 create mode 100644 superset-frontend/src/pages/ArchivedList/ArchivedDatasetPurgeModal.tsx
 create mode 100644 superset-frontend/src/pages/DatabaseList/DatabaseList.datasetDependents.test.tsx
 create mode 100644 superset-frontend/src/pages/DatabaseList/DatabaseList.semanticLayerDelete.test.tsx
 create mode 100644 superset-frontend/src/pages/DatasetList/DatasetList.connectionPermissions.test.tsx
 create mode 100644 superset-frontend/src/pages/ForgotPassword/ForgotPassword.test.tsx
 create mode 100644 superset-frontend/src/pages/ForgotPassword/index.tsx
 create mode 100644 superset-frontend/src/pages/Login/styles.ts
 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-frontend/src/pages/SqlLab/LocationContext.test.tsx
 create mode 100644 superset-frontend/src/types/react-table.d.ts
 create mode 100644 superset-frontend/src/types/yaml.d.ts
 create mode 100644 superset-frontend/src/utils/asyncMode.test.ts
 create mode 100644 superset-frontend/src/utils/asyncMode.ts
 create mode 100644 superset-frontend/src/utils/colorScheme.test.ts
 create mode 100644 superset-frontend/src/utils/downloadAsPdf.test.ts
 create mode 100644 superset-frontend/src/utils/downloadAsPivotExcel.test.ts
 create mode 100644 superset-frontend/src/utils/lazyWithRetry.test.tsx
 create mode 100644 superset-frontend/src/utils/lazyWithRetry.ts
 create mode 100644 superset-frontend/src/utils/semanticViewStructure.test.ts
 create mode 100644 superset-frontend/src/utils/semanticViewStructure.ts
 create mode 100644 superset-frontend/src/views/App.test.tsx
 delete mode 100644 superset-frontend/test-runner-jest.config.js
 create mode 120000 superset-websocket/.npmrc
 delete mode 100644 superset-websocket/eslint.config.mjs
 create mode 100644 superset-websocket/oxlint.json
 delete mode 100644 superset/async_events/api.py
 delete mode 100644 superset/async_events/async_query_manager.py
 delete mode 100644 superset/async_events/async_query_manager_factory.py
 delete mode 100644 superset/async_events/cache_backend.py
 delete mode 100644 superset/charts/data/query_context_cache_loader.py
 create mode 100644 superset/commands/annotation_layer/export.py
 rename superset/{async_events => commands/annotation_layer/importers}/__init__.py (100%)
 create mode 100644 superset/commands/annotation_layer/importers/dispatcher.py
 create mode 100644 superset/commands/annotation_layer/importers/v1/__init__.py
 create mode 100644 superset/commands/annotation_layer/importers/v1/utils.py
 delete mode 100644 superset/commands/chart/data/create_async_job_command.py
 create mode 100644 superset/commands/chart/utils.py
 create mode 100644 superset/commands/deletion_retention/prune_audit.py
 create mode 100644 superset/commands/deletion_retention/purge_impact.py
 create mode 100644 superset/commands/report/chart_data.py
 create mode 100644 superset/commands/report/execution_claim.py
 create mode 100644 superset/commands/report/update_config.py
 create mode 100644 superset/commands/security/password_recovery.py
 create mode 100644 superset/commands/semantic_layer/utils.py
 create mode 100644 superset/commands/soft_delete_collisions.py
 create mode 100644 superset/commands/tasks/reap.py
 create mode 100644 superset/commands/theme/create.py
 create mode 100644 superset/common/query_serialization.py
 create mode 100644 superset/common/tabular_query.py
 delete mode 100644 superset/common/tags.py
 create mode 100644 superset/common/utils/time_grain_utils.py
 create mode 100644 superset/coordination/__init__.py
 create mode 100644 superset/coordination/base.py
 create mode 100644 superset/coordination/cache_backend.py
 create mode 100644 superset/coordination/exceptions.py
 create mode 100644 superset/coordination/types.py
 create mode 100644 superset/dashboards/excel_export/download_link.py
 create mode 100644 superset/dashboards/excel_export/storage.py
 create mode 100644 superset/dashboards/excel_export/sync_budget.py
 create mode 100644 superset/dashboards/excel_export/workbook.py
 create mode 100644 superset/dashboards/layout.py
 delete mode 100644 superset/examples/featured_charts/data/cleaned_sales_data.parquet
 delete mode 100644 superset/examples/featured_charts/datasets/cleaned_sales_data.yaml
 delete mode 100644 superset/examples/misc_charts/data/wb_health_population.parquet
 delete mode 100644 superset/examples/misc_charts/datasets/wb_health_population.yaml
 copy {scripts => superset/mcp_service/catalog}/__init__.py (100%)
 create mode 100644 superset/mcp_service/catalog/schemas.py
 create mode 100644 superset/mcp_service/catalog/tool/__init__.py
 create mode 100644 superset/mcp_service/catalog/tool/get_catalog.py
 create mode 100644 superset/mcp_service/chart/big_number_headline.py
 create mode 100644 superset/mcp_service/chart/datasource_resolver.py
 create mode 100644 superset/mcp_service/chart/plugins/bubble.py
 create mode 100644 superset/mcp_service/chart/plugins/bullet.py
 create mode 100644 superset/mcp_service/chart/plugins/gantt.py
 create mode 100644 superset/mcp_service/chart/plugins/gauge.py
 create mode 100644 superset/mcp_service/chart/plugins/geographic.py
 create mode 100644 superset/mcp_service/chart/plugins/interactive_pivot.py
 create mode 100644 superset/mcp_service/chart/plugins/sunburst.py
 create mode 100644 superset/mcp_service/chart/plugins/treemap.py
 create mode 100644 superset/mcp_service/chart/query_result.py
 create mode 100644 superset/mcp_service/chart/response_preflight.py
 create mode 100644 superset/mcp_service/chart/sunburst.py
 create mode 100644 superset/mcp_service/chart/treemap_preview.py
 create mode 100644 superset/mcp_service/dashboard/layout_placement.py
 create mode 100644 superset/mcp_service/dashboard/layout_validation.py
 create mode 100644 superset/mcp_service/dashboard/permalink.py
 create mode 100644 superset/mcp_service/dashboard/tool/apply_dashboard_filters.py
 create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_data.py
 create mode 100644 superset/mcp_service/dashboard/tool/manage_dashboard_markdown.py
 create mode 100644 superset/mcp_service/dashboard_scope.py
 create mode 100644 superset/mcp_service/dashboard_scope_sql.py
 create mode 100644 superset/mcp_service/dataset/tool/create_dataset_metric.py
 create mode 100644 superset/mcp_service/dataset/tool/delete_dataset.py
 create mode 100644 superset/mcp_service/dataset/tool/delete_dataset_metric.py
 create mode 100644 superset/mcp_service/dataset/tool/restore_dataset.py
 create mode 100644 superset/mcp_service/dataset/tool/update_dataset.py
 create mode 100644 superset/mcp_service/dataset_scope.py
 create mode 100644 superset/mcp_service/utils/response_size_utils.py
 create mode 100644 superset/mcp_service/utils/serialization.py
 delete mode 100644 superset/mcp_service/utils/token_utils.py
 create mode 100644 superset/mcp_service/utils/validation.py
 create mode 100644 superset/mcp_service/worker.py
 delete mode 100644 superset/migrations/versions/2026-06-26_12-00_4a50792bd265_add_csp_allowlist_table.py
 create mode 100644 superset/migrations/versions/2026-07-24_00-00_f7e8d9c0b1a2_add_theme_editors_table.py
 create mode 100644 superset/migrations/versions/2026-08-17_18-38_884a2115ebd3_add_uuid_to_annotation_layer_and_annotation.py
 create mode 100644 superset/migrations/versions/2026-08-21_12-00_7e2c9a4f1b83_create_task_dependencies_table.py
 create mode 100644 superset/migrations/versions/2026-08-24_12-00_39097d124752_add_reason_to_purge_audit_log.py
 create mode 100644 superset/migrations/versions/2026-08-24_15-50_a6c21e5b4d93_index_purge_audit_pruning.py
 create mode 100644 superset/migrations/versions/2026-08-24_16-20_c7f53d184ea2_coordinate_purge_audit_pruning.py
 create mode 100644 superset/migrations/versions/2026-08-25_18-00_8f31c5d726ab_index_dataset_dependency_lookups.py
 create mode 100644 superset/migrations/versions/2026-09-03_00-00_b3e9c1a75d24_retire_semantic_layer_views_connections_pvms.py
 create mode 100644 superset/migrations/versions/2026-09-04_19-03_aa5fa339627c_merge_add_theme_editors_table_with_.py
 create mode 100644 superset/migrations/versions/2026-09-05_00-00_88a01c781622_index_ab_user_lower_username.py
 create mode 100644 superset/migrations/versions/2026-09-09_00-00_0884f655c0a6_merge_task_dependencies_with_theme_.py
 create mode 100644 superset/migrations/versions/2026-09-10_00-00_1f5f4fb8bfc1_delete_deprecated_permissions_33272.py
 create mode 100644 superset/migrations/versions/2026-09-10_00-01_3ce9a4572f8a_rename_deprecated_permissions_33272.py
 create mode 100644 superset/migrations/versions/2026-09-15_06-50_e2f3a1b9c640_merge_purge_audit_and_username_index_heads.py
 create mode 100644 superset/migrations/versions/2026-09-16_00-00_93d1b4a76c02_add_report_execution_ownership.py
 create mode 100644 superset/migrations/versions/2026-09-16_00-01_00fab727cd0a_add_theme_editors_theme_id_index.py
 create mode 100644 superset/migrations/versions/2026-09-16_00-01_2ce579e91ae6_merge_deprecated_permissions_with_master.py
 create mode 100644 superset/migrations/versions/2026-09-16_22-55_60f94cd6cd11_merge_theme_editors_and_purge_audit_heads.py
 create mode 100644 superset/migrations/versions/2026-09-17_00-00_53a7abc31422_merge_deprecated_permissions_with_master_v2.py
 create mode 100644 superset/migrations/versions/2026-09-23_00-00_95d8a99c822e_merge_deprecated_permissions_with_master_v3.py
 create mode 100644 superset/migrations/versions/2026-09-25_00-00_141b8ada7731_tag_pivot_tables_with_restored_.py
 create mode 100644 superset/migrations/versions/2026-09-30_00-00_d623a0cb6bb0_sweep_legacy_password_view_perms_from_all_roles.py
 create mode 100644 superset/migrations/versions/2026-10-05_12-00_e4a7c2b9d1f3_add_run_as_and_report_config.py
 create mode 100644 superset/migrations/versions/2026-10-08_00-00_c179af013f48_add_semantic_layer_cache_version.py
 create mode 100644 superset/migrations/versions/2026-10-23_12-00_4a50792bd265_add_csp_allowlist_table.py
 create mode 100644 superset/models/task_dependencies.py
 create mode 100644 superset/realtime/__init__.py
 create mode 100644 superset/realtime/publish.py
 create mode 100644 superset/reports/utils.py
 create mode 100644 superset/security/password_recovery.py
 create mode 100644 superset/semantic_layers/access.py
 create mode 100644 superset/semantic_layers/bundle_schemas.py
 create mode 100644 superset/semantic_layers/cache.py
 create mode 100644 superset/semantic_layers/cache_coordination.py
 create mode 100644 superset/semantic_layers/cache_host.py
 create mode 100644 superset/semantic_layers/cache_identity.py
 create mode 100644 superset/semantic_layers/cache_policy.py
 create mode 100644 superset/semantic_layers/cache_repository.py
 create mode 100644 superset/semantic_layers/cache_transform.py
 create mode 100644 superset/semantic_layers/cache_types.py
 create mode 100644 superset/semantic_layers/completeness.py
 create mode 100644 superset/semantic_layers/dimension_resolution.py
 create mode 100644 superset/semantic_layers/exceptions.py
 create mode 100644 superset/semantic_layers/execution.py
 create mode 100644 superset/semantic_layers/import_export.py
 create mode 100644 superset/semantic_layers/masking.py
 create mode 100644 superset/semantic_layers/members.py
 create mode 100644 superset/semantic_layers/ordering.py
 create mode 100644 superset/sql/dialects/databend.py
 create mode 100644 superset/sql/dialects/postgres.py
 create mode 100644 superset/sql/dialects/starrocks.py
 create mode 100644 superset/sql/execution/cancellation.py
 create mode 100644 superset/sql/execution/serialization.py
 create mode 100644 superset/sql/execution/utils.py
 create mode 100644 superset/sql/metric_normalization.py
 delete mode 100644 superset/sql_validators/postgres.py
 create mode 100644 superset/tasks/dependencies.py
 create mode 100644 superset/tasks/guest.py
 create mode 100644 superset/tasks/heartbeat.py
 create mode 100644 superset/tasks/query_cancel.py
 create mode 100644 superset/tasks/retention_cap.py
 create mode 100644 superset/tasks/subscription.py
 create mode 100644 superset/utils/export_storage.py
 create mode 100644 superset/utils/gcs.py
 create mode 100644 superset/utils/geographic.py
 create mode 100644 superset/utils/geographic_regions.py
 create mode 100644 superset/utils/geographic_world.py
 delete mode 100644 superset/utils/pandas_sqlalchemy_compat.py
 create mode 100644 superset/versioning/activity/creation.py
 create mode 100644 superset/versioning/changes/normalization.py
 create mode 100644 superset/versioning/creation_kinds.py
 create mode 100644 superset/versioning/membership.py
 create mode 100644 superset/versioning/savepoints.py
 create mode 100644 superset/versioning/snapshot.py
 create mode 100644 superset/versioning/unit_of_work.py
 create mode 100644 superset/websocket/__init__.py
 create mode 100644 superset/websocket/channel.py
 create mode 100644 superset/websocket/permissions.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
 create mode 100644 tests/integration_tests/annotation_layers/commands_tests.py
 delete mode 100644 tests/integration_tests/async_events/api_tests.py
 create mode 100644 tests/integration_tests/charts/semantic_metadata_authz_tests.py
 create mode 100644 tests/integration_tests/charts/semantic_save_tests.py
 create mode 100644 tests/integration_tests/deletion_retention/prune_audit_tests.py
 create mode 100644 tests/integration_tests/reports/config_tests.py
 create mode 100644 tests/integration_tests/reports/execution_claim_tests.py
 create mode 100644 tests/integration_tests/security/public_role_tests.py
 create mode 100644 tests/integration_tests/semantic_layers/api_flag_test.py
 create mode 100644 tests/integration_tests/semantic_layers/cache_coordination_tests.py
 create mode 100644 tests/integration_tests/superset_test_config_gaq.py
 create mode 100644 tests/integration_tests/superset_test_config_semantic.py
 delete mode 100644 tests/integration_tests/tagging_tests.py
 create mode 100644 tests/integration_tests/tags/race_tests.py
 delete mode 100644 tests/integration_tests/tasks/async_queries_tests.py
 create mode 100644 tests/integration_tests/tasks/commands/test_reap.py
 create mode 100644 tests/integration_tests/themes/test_theme_editors.py
 create mode 100644 tests/integration_tests/versioning/activity_write_after_read_tests.py
 create mode 100644 tests/integration_tests/versioning/conditional_token_lock_tests.py
 create mode 100644 tests/integration_tests/versioning/conditional_write_lock_tests.py
 create mode 100644 tests/integration_tests/versioning/creation_row_tests.py
 create mode 100644 tests/integration_tests/versioning/restore_fails_closed_tests.py
 create mode 100644 tests/mypy_fixtures/__init__.py
 create mode 100644 tests/mypy_fixtures/uuid_mixin_nullable.py
 copy {scripts => tests/testcontainers}/__init__.py (100%)
 copy {scripts => tests/testcontainers/db_engine_specs}/__init__.py (100%)
 create mode 100644 tests/testcontainers/db_engine_specs/_bigquery_container.py
 create mode 100644 tests/testcontainers/db_engine_specs/_driver.py
 create mode 100644 tests/testcontainers/db_engine_specs/_pagination.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_bigquery.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_clickhouse.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_cockroachdb.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_crate.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_databend.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_db2.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_elasticsearch.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_firebird.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_mariadb.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_monetdb.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_mongodb.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_mssql.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_mysql.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_oceanbase.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_opensearch.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_oracle.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_postgres.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_risingwave.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_starrocks.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_timescaledb.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_trino.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_ydb.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_yugabytedb.py
 delete mode 100644 tests/unit_tests/async_events/__init__.py
 delete mode 100644 tests/unit_tests/async_events/async_query_manager_tests.py
 delete mode 100644 tests/unit_tests/async_events/test_cache_backend.py
 create mode 100644 tests/unit_tests/charts/data/malformed_adhoc_metric_test.py
 create mode 100644 tests/unit_tests/charts/data/test_non_dict_params.py
 create mode 100644 tests/unit_tests/charts/data/test_time_range_validation.py
 create mode 100644 tests/unit_tests/charts/semantic_view_chart_filter_test.py
 create mode 100644 tests/unit_tests/charts/test_chart_list_datasource.py
 create mode 100644 tests/unit_tests/charts/test_exact_integer_chart_data.py
 create mode 100644 tests/unit_tests/charts/test_export_api.py
 create mode 100644 tests/unit_tests/cli/deletion_retention_test.py
 create mode 100644 tests/unit_tests/cli/update_test.py
 delete mode 100644 tests/unit_tests/commands/chart/create_async_job_command_test.py
 create mode 100644 tests/unit_tests/commands/chart/create_test.py
 create mode 100644 tests/unit_tests/commands/chart/delete_message_test.py
 create mode 100644 tests/unit_tests/commands/chart/export_test.py
 create mode 100644 tests/unit_tests/commands/chart/semantic_export_test.py
 create mode 100644 tests/unit_tests/commands/chart/test_warm_up_cache.py
 create mode 100644 tests/unit_tests/commands/dashboard/export_example_semantic_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/permalink_create_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/restore_semantic_filters_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/slug_collision_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/update_test.py
 create mode 100644 tests/unit_tests/commands/deletion_retention/test_prune_audit.py
 create mode 100644 tests/unit_tests/commands/deletion_retention/test_purge_chart_detach.py
 create mode 100644 tests/unit_tests/commands/deletion_retention/test_purge_impact.py
 create mode 100644 tests/unit_tests/commands/deletion_retention/test_reason_codes.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/commands/explore/test_get_query_authorship_bypass.py
 create mode 100644 tests/unit_tests/commands/extra_asset_fields_test.py
 create mode 100644 tests/unit_tests/commands/importers/v1/import_models_test.py
 create mode 100644 tests/unit_tests/commands/importers/v1/import_saved_query_test.py
 create mode 100644 tests/unit_tests/commands/report/chart_data_test.py
 create mode 100644 tests/unit_tests/commands/report/conftest.py
 create mode 100644 tests/unit_tests/commands/report/execution_claim_test.py
 create mode 100644 tests/unit_tests/commands/report/execution_ownership_migration_test.py
 create mode 100644 tests/unit_tests/commands/report/executor_test.py
 create mode 100644 tests/unit_tests/commands/report/run_as_test.py
 create mode 100644 tests/unit_tests/commands/report/semantic_view_report_test.py
 create mode 100644 tests/unit_tests/commands/report/update_config_test.py
 create mode 100644 tests/unit_tests/commands/security/reset_test.py
 create mode 100644 tests/unit_tests/commands/semantic_layer/view_data_access_test.py
 create mode 100644 tests/unit_tests/commands/sql_lab/export_test.py
 create mode 100644 tests/unit_tests/commands/sql_lab/permalink_get_test.py
 create mode 100644 tests/unit_tests/commands/sql_lab/test_execute.py
 copy {scripts => tests/unit_tests/commands/streaming_export}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/streaming_export/base_test.py
 copy {scripts => tests/unit_tests/commands/tasks}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/tasks/test_internal_update.py
 create mode 100644 tests/unit_tests/commands/test_base_restore_version_command.py
 create mode 100644 tests/unit_tests/commands/test_restore_version_concurrency.py
 create mode 100644 tests/unit_tests/commands/test_update_managed_externally.py
 create mode 100644 tests/unit_tests/commands/theme/test_import_themes.py
 create mode 100644 tests/unit_tests/common/test_async_min_cache_ttl.py
 create mode 100644 tests/unit_tests/common/test_query_serialization.py
 create mode 100644 tests/unit_tests/common/test_tabular_query.py
 create mode 100755 tests/unit_tests/common/test_time_column_offset_repro.py
 copy {scripts => tests/unit_tests/coordination}/__init__.py (100%)
 create mode 100644 tests/unit_tests/coordination/test_cache_backend.py
 create mode 100644 tests/unit_tests/coordination/test_service.py
 create mode 100644 tests/unit_tests/dao/query_stop_isolation_test.py
 create mode 100644 tests/unit_tests/dao/test_copy_dashboard_legacy_ids.py
 create mode 100644 tests/unit_tests/dao/test_query_stop_race.py
 create mode 100644 tests/unit_tests/daos/test_chart_dao.py
 create mode 100644 tests/unit_tests/daos/test_dataset_dao.py
 create mode 100644 tests/unit_tests/daos/test_query_dao.py
 create mode 100644 tests/unit_tests/dashboards/commands/importers/dispatcher_test.py
 create mode 100644 tests/unit_tests/dashboards/datasets_test.py
 create mode 100644 tests/unit_tests/dashboards/filter_state_api_test.py
 create mode 100644 tests/unit_tests/dashboards/layout_test.py
 create mode 100644 tests/unit_tests/dashboards/semantic_view_access_test.py
 create mode 100644 tests/unit_tests/dashboards/test_excel_export_download_link.py
 create mode 100644 tests/unit_tests/dashboards/test_excel_export_storage.py
 create mode 100644 tests/unit_tests/dashboards/test_excel_export_sync_budget.py
 create mode 100644 tests/unit_tests/dashboards/test_excel_export_workbook.py
 create mode 100644 tests/unit_tests/dashboards/test_export_api.py
 create mode 100644 tests/unit_tests/databases/dao/related_objects_test.py
 create mode 100644 tests/unit_tests/datasets/commands/importers/dispatcher_test.py
 create mode 100644 tests/unit_tests/datasource/test_compatible_api.py
 create mode 100644 tests/unit_tests/datasource/test_query_api.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_d1.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_exasol.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_extended_aggregations_unverified.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_ibmi.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_impala_pending.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_lib.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_mariadb.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_shillelagh.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_timescaledb.py
 create mode 100644 tests/unit_tests/docker_ci_entrypoint_test.py
 create mode 100644 tests/unit_tests/exceptions_test.py
 create mode 100644 tests/unit_tests/explore/form_data_api_test.py
 create mode 100644 tests/unit_tests/extensions/metastore_cache_test.py
 create mode 100644 tests/unit_tests/frontend_bundle_size_workflow_test.py
 delete mode 100644 tests/unit_tests/initialization/check_async_query_secret_test.py
 create mode 100644 tests/unit_tests/initialization/check_websocket_secret_test.py
 create mode 100644 tests/unit_tests/initialization/init_views_test.py
 copy {scripts => tests/unit_tests/mcp_service/catalog}/__init__.py (100%)
 copy {scripts => tests/unit_tests/mcp_service/catalog/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/catalog/tool/test_get_catalog.py
 create mode 100644 tests/unit_tests/mcp_service/chart/query_result_fixtures.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_axis_offset_and_spatial_query_contracts.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_big_number_headline.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_bubble_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_bullet_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_bullet_tool_paths.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_examples.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_plugin_contract.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_target_schemas.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_datasource_resolver.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_gantt_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_gauge_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_gauge_render.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_geographic_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_interactive_pivot_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_live_chart_datasource.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_metric_aggregation_and_comparison_contracts.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_native_chart_regressions.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_native_form_data_and_dataset_rebind_contracts.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_query_result.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_response_preflight.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_review_query_and_preview_regressions.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_sunburst_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_time_grain_generic_axes.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_treemap_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_treemap_completeness.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_column_suggestions.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_generate_chart_semantic_view.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_info_permalink.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_saved_chart_datasource.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_update_chart_rebind.py
 create mode 100644 tests/unit_tests/mcp_service/chart/validation/test_dataset_validator.py
 create mode 100644 tests/unit_tests/mcp_service/common/test_list_scope_validation.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_layout_placement.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_layout_validation.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_permalink.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_apply_dashboard_filters.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_chart_access_query_count.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_data.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_list_dashboards.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_manage_dashboard_markdown.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_managed_dashboard_refusal.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_dataset_metric_mutations.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_delete_dataset.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_list_datasets_deleted_state.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_restore_dataset.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_sql_dataset_guidance.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_update_dataset.py
 create mode 100644 tests/unit_tests/mcp_service/explore/tool/test_generate_explore_link_semantic_view.py
 create mode 100644 tests/unit_tests/mcp_service/native_tool_inventory.json
 create mode 100644 tests/unit_tests/mcp_service/semantic_layer/test_flag_off.py
 create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_compatibility_selection_validation.py
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/tool/test_execute_sql_response.py
 create mode 100644 tests/unit_tests/mcp_service/system/resources/test_instance_metadata.py
 create mode 100644 tests/unit_tests/mcp_service/test_browser_hello_middleware.py
 create mode 100644 tests/unit_tests/mcp_service/test_chart_tool_inventory.py
 create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope.py
 create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope_sql.py
 create mode 100644 tests/unit_tests/mcp_service/test_dataset_scope.py
 create mode 100644 tests/unit_tests/mcp_service/test_error_classification.py
 create mode 100644 tests/unit_tests/mcp_service/test_isdigit_isdecimal_regression.py
 create mode 100644 tests/unit_tests/mcp_service/test_main_entrypoint.py
 create mode 100644 tests/unit_tests/mcp_service/test_mcp_config_hs256_guard.py
 create mode 100644 tests/unit_tests/mcp_service/test_mcp_docstrings.py
 create mode 100644 tests/unit_tests/mcp_service/test_native_tool_surface.py
 create mode 100644 tests/unit_tests/mcp_service/test_response_serialization.py
 create mode 100644 tests/unit_tests/mcp_service/test_result_value_contract.py
 create mode 100644 tests/unit_tests/mcp_service/test_sanitization_warning_inputs.py
 create mode 100644 tests/unit_tests/mcp_service/test_simple_proxy.py
 create mode 100644 tests/unit_tests/mcp_service/test_tool_description_constraints.py
 create mode 100644 tests/unit_tests/mcp_service/test_tool_inventory.py
 create mode 100644 tests/unit_tests/mcp_service/test_validation_contract.py
 create mode 100644 tests/unit_tests/mcp_service/test_worker.py
 create mode 100644 tests/unit_tests/mcp_service/test_worker_metadata_pool.py
 create mode 100644 tests/unit_tests/mcp_service/utils/test_response_size_utils.py
 create mode 100644 tests/unit_tests/mcp_service/utils/test_serialization.py
 delete mode 100644 tests/unit_tests/mcp_service/utils/test_token_utils.py
 create mode 100644 tests/unit_tests/migrations/shared/security_converge_test.py
 create mode 100644 tests/unit_tests/migrations/test_add_run_as_and_report_config.py
 create mode 100644 tests/unit_tests/migrations/test_add_theme_editors.py
 create mode 100644 tests/unit_tests/migrations/test_add_theme_editors_theme_id_index.py
 create mode 100644 tests/unit_tests/migrations/test_deprecated_permissions_33272.py
 create mode 100644 tests/unit_tests/migrations/test_purge_audit_coordination.py
 create mode 100644 tests/unit_tests/migrations/test_single_migration_head.py
 create mode 100644 tests/unit_tests/migrations/test_sweep_legacy_password_view_perms.py
 create mode 100644 tests/unit_tests/migrations/test_tag_pivot_tables_with_restored_aggregation.py
 create mode 100644 tests/unit_tests/migrations/viz/table_v1_v2_test.py
 create mode 100644 tests/unit_tests/models/groupby_literal_column_test.py
 create mode 100644 tests/unit_tests/models/helpers_rls_rollback_test.py
 create mode 100644 tests/unit_tests/models/normalize_df_large_integer_test.py
 create mode 100644 tests/unit_tests/models/select_alias_shadowing_test.py
 create mode 100644 tests/unit_tests/models/template_params_test.py
 create mode 100644 tests/unit_tests/models/test_certification_mixin.py
 create mode 100644 tests/unit_tests/models/test_hours_offset_bound_truncation.py
 create mode 100644 tests/unit_tests/reports/config_api_test.py
 create mode 100644 tests/unit_tests/reports/config_dao_test.py
 create mode 100644 tests/unit_tests/reports/logs_api_test.py
 create mode 100644 tests/unit_tests/reports/utils_test.py
 delete mode 100644 tests/unit_tests/scheduled_docker_image_refresh_test.py
 create mode 100644 tests/unit_tests/scripts/docker_cache_ref_test.py
 create mode 100644 tests/unit_tests/scripts/docker_release_target_test.py
 create mode 100644 tests/unit_tests/scripts/translations/babel_update_test.py
 create mode 100644 tests/unit_tests/scripts/translations/check_pot_drift_test.py
 create mode 100644 tests/unit_tests/security/semantic_guest_rls_test.py
 create mode 100644 tests/unit_tests/security/test_dashboard_chart_labels.py
 create mode 100644 tests/unit_tests/security/test_guest_token_empty_filter.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/security/test_realtime_notification_permissions.py
 create mode 100644 tests/unit_tests/security/typed_datasource_access_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_coordination_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_host_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_identity_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_integration_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_or_filters_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_policy_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_repository_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_test.py
 create mode 100644 tests/unit_tests/semantic_layers/cache_transform_test.py
 create mode 100644 tests/unit_tests/semantic_layers/conftest.py
 create mode 100644 tests/unit_tests/semantic_layers/connections_access_test.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/semantic_layers/fixtures/snowflake_configuration.json
 create mode 100644 tests/unit_tests/semantic_layers/grain_validation_test.py
 create mode 100644 tests/unit_tests/semantic_layers/import_export_test.py
 create mode 100644 tests/unit_tests/semantic_layers/integer_precision_test.py
 create mode 100644 tests/unit_tests/semantic_layers/layer_list_scope_test.py
 create mode 100644 tests/unit_tests/semantic_layers/layer_test.py
 create mode 100644 tests/unit_tests/semantic_layers/masking_test.py
 create mode 100644 tests/unit_tests/semantic_layers/members_test.py
 create mode 100644 tests/unit_tests/semantic_layers/metadata_contract_test.py
 create mode 100644 tests/unit_tests/semantic_layers/metric_filter_test.py
 create mode 100644 tests/unit_tests/semantic_layers/null_filters_test.py
 create mode 100644 tests/unit_tests/semantic_layers/provider_masking_test.py
 create mode 100644 tests/unit_tests/semantic_layers/query_errors_test.py
 create mode 100644 tests/unit_tests/semantic_layers/result_completeness_test.py
 create mode 100644 tests/unit_tests/semantic_layers/selection_identity_test.py
 create mode 100644 tests/unit_tests/semantic_layers/simple_cache_clear_test.py
 create mode 100644 tests/unit_tests/semantic_layers/test_access.py
 create mode 100644 tests/unit_tests/semantic_layers/test_runtime_flag.py
 create mode 100644 tests/unit_tests/semantic_layers/values_endpoint_test.py
 copy {scripts => tests/unit_tests/soft_delete}/__init__.py (100%)
 create mode 100644 tests/unit_tests/soft_delete/test_restore_purge_hoist.py
 create mode 100644 tests/unit_tests/sql/dialects/databend_function_catalogue.txt
 create mode 100644 tests/unit_tests/sql/dialects/databend_tests.py
 create mode 100644 tests/unit_tests/sql/execution/test_async_results.py
 create mode 100644 tests/unit_tests/sql/execution/test_cancellation.py
 create mode 100644 tests/unit_tests/sql/execution/test_utils.py
 create mode 100644 tests/unit_tests/sql/metric_normalization_tests.py
 create mode 100644 tests/unit_tests/subjects/test_report_executor_remediation.py
 create mode 100644 tests/unit_tests/tags/api_test.py
 create mode 100644 tests/unit_tests/tags/commands/delete_test.py
 create mode 100644 tests/unit_tests/tags/race_test.py
 create mode 100644 tests/unit_tests/tasks/test_context.py
 create mode 100644 tests/unit_tests/tasks/test_dependencies.py
 create mode 100644 tests/unit_tests/tasks/test_guest.py
 create mode 100644 tests/unit_tests/tasks/test_heartbeat.py
 create mode 100644 tests/unit_tests/tasks/test_locks.py
 create mode 100644 tests/unit_tests/tasks/test_models.py
 create mode 100644 tests/unit_tests/tasks/test_query_cancel.py
 create mode 100644 tests/unit_tests/tasks/test_reap.py
 create mode 100644 tests/unit_tests/tasks/test_scheduler_executor.py
 create mode 100644 tests/unit_tests/tasks/test_submit.py
 create mode 100644 tests/unit_tests/tasks/test_subscription.py
 create mode 100644 tests/unit_tests/test_app_reinitialization.py
 create mode 100644 tests/unit_tests/test_clock_reading_driver_preload.py
 create mode 100644 tests/unit_tests/test_mcp_simple_proxy.py
 create mode 100644 tests/unit_tests/test_realtime_publish.py
 create mode 100644 tests/unit_tests/translations/sk_sql_lab_progress_message_test.py
 create mode 100644 tests/unit_tests/utils/core_override_user_test.py
 create mode 100644 tests/unit_tests/utils/create_zip_tests.py
 create mode 100644 tests/unit_tests/utils/gcs_tests.py
 create mode 100644 tests/unit_tests/utils/geographic_world_test.py
 delete mode 100644 tests/unit_tests/utils/pandas_sqlalchemy_compat_test.py
 create mode 100644 tests/unit_tests/utils/send_export_zip_tests.py
 create mode 100644 tests/unit_tests/utils/test_schema.py
 create mode 100644 tests/unit_tests/versioning/test_api_feature_flag.py
 create mode 100644 tests/unit_tests/versioning/test_capture_gap_restore.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/versioning/test_endpoint_gate.py
 create mode 100644 tests/unit_tests/versioning/test_etag.py
 create mode 100644 tests/unit_tests/versioning/test_lock_entity.py
 create mode 100644 tests/unit_tests/versioning/test_normalization_changes.py
 create mode 100644 tests/unit_tests/versioning/test_restore_datasource_race.py
 create mode 100644 tests/unit_tests/versioning/test_restore_missing_datasource.py
 create mode 100644 tests/unit_tests/versioning/test_retention_races.py
 create mode 100644 tests/unit_tests/versioning/test_runtime_capture.py
 create mode 100644 tests/unit_tests/versioning/test_shadow_queries.py
 create mode 100644 tests/unit_tests/versioning/test_version_info_locking.py
 create mode 100644 tests/unit_tests/views/test_archived_assets.py
 create mode 100644 tests/unit_tests/views/test_auth_login.py
 create mode 100644 tests/unit_tests/views/test_current_user_auth_errors.py
 create mode 100644 tests/unit_tests/views/test_error_bodies.py
 create mode 100644 tests/unit_tests/views/test_i18n_constants.py
 create mode 100644 tests/unit_tests/views/test_parse_json_form_field.py
 copy {scripts => tests/unit_tests/websocket}/__init__.py (100%)
 create mode 100644 tests/unit_tests/websocket/test_channel.py