You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by el...@apache.org on 2026/10/05 22:04:03 UTC

(superset) branch sc-120996-databricks-odbc-migration updated (a09f0b16f0f -> 6903831a6ef)

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

eschutho pushed a change to branch sc-120996-databricks-odbc-migration
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit a09f0b16f0f feat(databricks): migrate ODBC connections to the connector driver
     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 6903831a6ef feat(databricks): migrate ODBC connections to the connector driver

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   (a09f0b16f0f)
            \
             N -- N -- N   refs/heads/sc-120996-databricks-odbc-migration (6903831a6ef)

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 +-
 .cursor/rules/dev-standard.mdc                     |     4 +-
 .devcontainer/Dockerfile                           |     2 +-
 .devcontainer/devcontainer-base.json               |     2 +-
 .dockerignore                                      |     1 -
 .envrc.example                                     |     1 -
 .github/CODEOWNERS                                 |    16 +-
 .github/actions/change-detector/action.yml         |     5 +
 .github/actions/chart-testing-action               |     1 -
 .github/actions/setup-backend/action.yml           |    11 +-
 .github/actions/setup-docker/action.yml            |     3 +
 .github/dependabot.yml                             |     3 +-
 .github/labeler.yml                                |    14 +-
 .github/workflows/asf-allowlist-check.yml          |     2 +-
 .github/workflows/bashlib.sh                       |   138 +-
 .github/workflows/bump-python-package.yml          |     2 +-
 .github/workflows/caches.js                        |     6 -
 .github/workflows/check-db-migration-confict.yml   |    27 +-
 .github/workflows/chromatic.yml                    |   134 +
 .github/workflows/codeql-analysis.yml              |     4 +-
 .github/workflows/docker.yml                       |   303 +-
 .github/workflows/frontend-bundle-size-nightly.yml |     2 +-
 .github/workflows/generate-FOSSA-report.yml        |     2 +-
 .github/workflows/github-action-validator.yml      |     2 +-
 .github/workflows/license-check.yml                |     2 +-
 .github/workflows/mirror-service-images.yml        |     2 +-
 .github/workflows/python-nightly-canary.yml        |    94 +
 .../workflows/scheduled-docker-image-refresh.yml   |   195 -
 .github/workflows/superset-docs-deploy.yml         |     6 +-
 .github/workflows/superset-docs-verify.yml         |     2 +-
 .github/workflows/superset-e2e.yml                 |   225 +-
 .github/workflows/superset-extensions-cli.yml      |     2 +-
 .github/workflows/superset-frontend.yml            |     4 +-
 .github/workflows/superset-helm-lint-test.yml      |    19 +-
 .github/workflows/superset-playwright.yml          |   222 -
 .../workflows/superset-python-integrationtest.yml  |     6 +-
 .github/workflows/superset-python-presto-hive.yml  |     4 +-
 .github/workflows/superset-python-unittest.yml     |    12 +-
 .github/workflows/superset-translations.yml        |    13 +
 .github/workflows/tag-release.yml                  |    51 +-
 .github/workflows/testcontainers.yml               |     1 +
 .gitmodules                                        |     3 -
 .grype.yaml                                        |    39 +
 .pre-commit-config.yaml                            |     3 +-
 AGENTS.md                                          |    10 +-
 Dockerfile                                         |    11 +-
 Makefile                                           |     8 -
 README.md                                          |     2 +-
 RESOURCES/STANDARD_ROLES.md                        |     6 -
 UPDATING.md                                        |   778 +-
 docker-compose-light.yml                           |     1 -
 docker-compose.yml                                 |     5 +-
 docker/.env                                        |     3 -
 docker/.env-local.example                          |     1 -
 docker/apt-install.sh                              |     8 +
 docker/docker-bootstrap.sh                         |     7 -
 docker/docker-init.sh                              |    31 +-
 docker/pythonpath_dev/superset_config.py           |    13 -
 docs/DOCS_CLAUDE.md                                |    17 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |   121 +-
 docs/admin_docs/configuration/cache.mdx            |    37 +-
 .../configuration/configuring-superset.mdx         |    21 +
 .../configuration/dashboard-performance.mdx        |     4 +-
 docs/admin_docs/configuration/google-sheets.mdx    |    49 +
 .../importing-exporting-datasources.mdx            |    32 +
 docs/admin_docs/configuration/mcp-server.mdx       |   717 +-
 docs/admin_docs/installation/docker-builds.mdx     |    67 +-
 docs/admin_docs/installation/docker-compose.mdx    |     2 +-
 docs/admin_docs/security/security.mdx              |    30 +-
 docs/developer_docs/api.mdx                        |    18 +
 .../contributing/development-setup.md              |    11 +-
 docs/developer_docs/contributing/howtos.md         |    46 +-
 .../extensions/contribution-types.md               |    43 +
 .../extensions/extension-points/chat.md            |     4 +
 docs/developer_docs/extensions/mcp.md              |    21 +
 .../guidelines/frontend-style-guidelines.md        |     2 +-
 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 +-
 docs/docs/faq.mdx                                  |    13 +
 docs/docs/quickstart.mdx                           |     3 +
 .../creating-your-first-dashboard.mdx              |    20 +
 docs/docs/using-superset/embedding.mdx             |    21 +
 docs/docs/using-superset/exploring-data.mdx        |    35 +
 .../using-superset/exporting-dashboard-data.mdx    |   176 +-
 docs/docs/using-superset/number-formatting.mdx     |    16 +
 docs/docs/using-superset/recently-archived.mdx     |   111 +-
 .../using-superset/semantic-member-selections.mdx  |    62 +
 docs/docs/using-superset/sql-templating.mdx        |     4 +-
 .../docs/using-superset/using-ai-with-superset.mdx |   106 +
 docs/docs/using-superset/version-history.mdx       |   190 +-
 docs/docusaurus.config.ts                          |     1 -
 docs/package.json                                  |    25 +-
 docs/scripts/generate-database-docs.mjs            |     7 +-
 docs/src/data/databases.json                       |    48 +-
 docs/static/feature-flags.json                     |     2 +-
 docs/static/img/databases/singlestore.png          |   Bin 15978 -> 9806 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/resources/openapi.json                 |   375 +-
 .../version-6.0.0/intro.md                         |     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 +-
 docs/yarn.lock                                     |  1400 +-
 pyproject.toml                                     |   109 +-
 requirements/base.txt                              |    18 +-
 requirements/development.in                        |    11 +
 requirements/development.txt                       |    52 +-
 scripts/change_detector.py                         |    62 +-
 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/translations/babel_update.sh               |    15 +-
 scripts/translations/check_pot_drift.py            |   236 +
 superset-core/src/superset_core/queries/types.py   |     3 +
 .../src/superset_core/semantic_layers/types.py     |     1 +
 .../src/superset_core/semantic_layers/view.py      |    20 +-
 superset-embedded-sdk/package-lock.json            |   721 +-
 superset-embedded-sdk/package.json                 |    14 +-
 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-extensions-cli/README.md                  |     5 +
 .../src/superset_extensions_cli/cli.py             |     3 +
 superset-extensions-cli/tests/test_cli_build.py    |   131 +-
 superset-frontend/.gitignore                       |     2 -
 superset-frontend/babel.config.js                  |     2 +-
 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/vizPlugins.ts       |   104 -
 superset-frontend/cypress-base/package-lock.json   | 15003 ------
 superset-frontend/cypress-base/package.json        |    57 -
 superset-frontend/cypress-base/tsconfig.json       |    16 -
 superset-frontend/cypress_build.sh                 |    46 -
 superset-frontend/eslint.config.minimal.js         |     1 -
 superset-frontend/jest.config.js                   |    17 +-
 superset-frontend/oxlint.json                      |     1 -
 superset-frontend/package-lock.json                |  3139 +-
 superset-frontend/package.json                     |   158 +-
 .../packages/generator-superset/package.json       |     9 +-
 .../generator-superset/test/plugin-chart.test.ts   |     6 +-
 .../packages/superset-core/package.json            |     4 +-
 .../src/sections/sections.tsx                      |     7 +
 .../src/shared-controls/sharedControls.tsx         |    13 +-
 .../superset-ui-chart-controls/src/types.ts        |     7 +
 .../src/utils/getColorFormatters.ts                |    84 +-
 .../src/utils/headerGroups.test.ts                 |  1065 +
 .../src/utils/headerGroups.ts                      |   903 +
 .../superset-ui-chart-controls/src/utils/index.ts  |     1 +
 .../src/utils/isSortable.ts                        |    10 +
 .../components/RadioButtonControl.test.tsx         |     6 +-
 .../test/utils/isSortable.test.ts                  |     9 +
 .../packages/superset-ui-core/package.json         |    14 +-
 .../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/models/ChartMetadata.ts              |     9 +
 .../src/chart/models/ChartProps.ts                 |    10 +
 .../superset-ui-core/src/chart/types/VizType.ts    |     1 +
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |    33 +
 .../src/components/AsyncAceEditor/index.tsx        |     4 +-
 .../components/DeleteModal/DeleteModal.test.tsx    |    37 +-
 .../src/components/DeleteModal/index.tsx           |    14 +-
 .../src/components/DeleteModal/types.ts            |     4 +-
 .../src/components/Descriptions/index.tsx          |     0
 .../superset-ui-core/src/components/Form/Form.tsx  |     1 +
 .../Label/reusable/DatasetTypeLabel.test.tsx       |    48 +-
 .../components/Label/reusable/DatasetTypeLabel.tsx |    11 +-
 .../src/components/Modal/Modal.test.tsx            |    93 +-
 .../src/components/Modal/Modal.tsx                 |    33 +-
 .../src/components/Select/AsyncSelect.test.tsx     |     8 +
 .../src/components/Select/AsyncSelect.tsx          |     3 +-
 .../src/components/Select/Select.test.tsx          |     9 +
 .../src/components/Select/Select.tsx               |     3 +-
 .../src/components/Splitter/index.tsx              |     0
 .../src/components/Table/VirtualTable.test.tsx     |    83 +
 .../src/components/Table/VirtualTable.tsx          |    20 +-
 .../superset-ui-core/src/components/Tag/index.tsx  |     1 +
 .../src/components/TimePicker/index.tsx            |     0
 .../superset-ui-core/src/components/index.ts       |     3 +
 .../src/connection/SupersetClientClass.ts          |    83 +-
 .../superset-ui-core/src/connection/constants.ts   |     3 +
 .../superset-ui-core/src/currency-format/utils.ts  |    22 +
 .../factories/createMemoryFormatter.ts             |    11 +-
 .../superset-ui-core/src/query/api/v1/types.ts     |     3 +
 .../superset-ui-core/src/query/extractExtras.ts    |    22 +
 .../src/query/extractQueryFields.ts                |     4 +
 .../src/query/getClientErrorObject.ts              |    62 +-
 .../packages/superset-ui-core/src/query/index.ts   |     2 +
 .../src/query/semanticSelection.ts                 |    42 +
 .../superset-ui-core/src/query/types/Dashboard.ts  |     1 +
 .../superset-ui-core/src/query/types/Datasource.ts |     7 +
 .../src/query/types/PostProcessing.ts              |     6 +-
 .../superset-ui-core/src/query/types/Query.ts      |     2 +
 .../src/query/types/QueryFormData.ts               |    12 +-
 .../src/time-comparison/fetchTimeRange.ts          |    29 +-
 .../src/time-format/formatters/smartDateVerbose.ts |    10 +-
 .../src/time-format/utils/normalizeTimestamp.ts    |    31 +
 .../src/time-format/utils/stringifyTimeInput.ts    |    21 +-
 .../superset-ui-core/src/ui-overrides/types.ts     |     1 +
 .../test/chart/models/ChartMetadata.test.ts        |    20 +
 .../test/chart/models/ChartProps.test.ts           |    22 +-
 .../connection/SupersetClientCsrfRecovery.test.ts  |   191 +
 .../test/currency-format/utils.test.ts             |    33 +
 .../factories/createMemoryFormatter.test.ts        |     7 +
 .../test/query/extractExtras.test.ts               |    62 +
 .../test/query/extractQueryFields.test.ts          |    12 +
 .../test/query/getClientErrorObject.test.ts        |   112 +-
 .../test/query/types/PostProcessing.test.ts        |     6 +-
 .../test/time-comparison/fetchTimeRange.test.ts    |    60 +
 .../formatters/smartDateVerbose.test.ts            |    57 +-
 .../time-format/utils/normalizeTimestamp.test.ts   |    75 +
 .../time-format/utils/stringifyTimeInput.test.ts   |    28 +
 .../superset-ui-core/types/ace-builds.d.ts         |     1 +
 superset-frontend/playwright.config.ts             |     9 -
 .../playwright/components/core/Menu.ts             |     7 +
 .../playwright/components/core/Radio.ts            |    69 +
 .../playwright/components/core/Select.ts           |    22 +-
 .../playwright/components/core/index.ts            |     1 +
 .../components/dashboard/DashboardFilterBar.ts     |    36 +-
 .../playwright/components/modals/SaveChartModal.ts |   130 +
 .../playwright/components/modals/index.ts          |     1 +
 superset-frontend/playwright/helpers/api/chart.ts  |    44 +
 .../playwright/helpers/api/dashboard.ts            |    60 +
 .../playwright/helpers/embeddedAppServer.ts        |   133 +
 .../playwright/pages/DashboardPage.ts              |    39 +
 superset-frontend/playwright/pages/ExplorePage.ts  |    95 +
 .../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    |     3 -
 .../dashboard-native-filter-url-key.spec.ts        |   140 +
 .../tests/dashboard/dashboard-test-helpers.ts      |    42 +-
 .../tests/dashboard/gauge-interval-colors.spec.ts  |     2 +-
 .../mixed-chart-dashboard-filters.spec.ts          |     2 +-
 .../tests/dashboard/native-filters.spec.ts         |   438 +
 .../dashboard/version-history-placement.spec.ts    |   198 +
 .../tests/embedded/embedded-dashboard.spec.ts      |   132 +-
 .../tests/embedded/embedded-iframe-sizing.spec.ts  |   433 +
 .../tests/embedded/pivot-collapse-state.spec.ts    |    98 +-
 .../playwright/tests/experimental/README.md        |   123 -
 .../explore/cross-referenced-dashboards.spec.ts    |   194 +
 .../tests/explore/explore-no-results.spec.ts       |    59 +
 .../playwright/tests/explore/explore-save.spec.ts  |   135 +
 .../tests/explore/explore-test-helpers.ts          |    50 +
 .../explore/results-tab-reuse.spec.ts              |    16 +-
 .../tests/mobile/mobile-dashboard.spec.ts          |    65 +-
 .../recently-archived/recently-archived.spec.ts    |     5 +
 .../src/AgGridTable/components/CustomHeader.tsx    |     3 +-
 .../components/TimeComparisonVisibility.tsx        |     3 +-
 .../src/AgGridTable/index.tsx                      |   118 +-
 .../src/AgGridTableChart.tsx                       |     7 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |   125 +-
 .../src/controlPanel.tsx                           |    33 +-
 .../plugin-chart-ag-grid-table/src/index.ts        |     1 -
 .../src/stateConversion.ts                         |   302 +-
 .../src/styles/index.tsx                           |    28 +
 .../src/transformProps.ts                          |    68 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |     3 +
 .../src/utils/agGridFilterConverter.ts             |    73 +-
 .../src/utils/formatValue.ts                       |     3 +-
 .../src/utils/getCellStyle.ts                      |     8 +-
 .../src/utils/mainComparison.ts}                   |    29 +-
 .../src/utils/useColDefs.ts                        |    23 +-
 .../test/AgGridTableChart.test.tsx                 |   175 +
 .../test/buildQuery.test.ts                        |   206 +-
 .../test/controlPanel.test.ts                      |   107 +-
 .../test/controlPanel.test.tsx                     |    32 +-
 .../test/stateConversion.test.ts                   |    77 +-
 .../test/transformProps.test.ts                    |   243 +-
 .../test/utils/agGridFilterConverter.test.ts       |    55 +-
 .../test/utils/filterStateManager.test.ts          |     2 +-
 .../test/utils/getCellStyle.test.ts                |    15 +
 .../test/utils/mainComparison.test.ts              |    43 +
 .../test/utils/useColDefs.test.ts                  |    40 +
 .../src/vendor/cal-heatmap.ts                      |    60 +-
 .../plugin-chart-calendar/test/cal-heatmap.test.ts |    40 +
 .../src/util/transformPropsUtil.ts                 |     8 +
 .../test/util/pieColors.test.ts                    |   203 +
 .../scripts/Country Map GeoJSON Generator.ipynb    |   Bin 226846 -> 227629 bytes
 .../src/countries/russia.geojson                   |   Bin 747442 -> 678517 bytes
 .../test/russia.geojson.test.ts                    |    87 +
 .../plugins/plugin-chart-echarts/package.json      |     2 +-
 .../src/BigNumber/BigNumberViz.test.tsx            |   188 +-
 .../BigNumberWithTrendline/transformProps.test.ts  |    72 +
 .../src/Bubble/EchartsBubble.tsx                   |    16 +-
 .../src/Bubble/transformProps.ts                   |    31 +-
 .../src/Butterfly/Butterfly.tsx                    |    16 +-
 .../src/Butterfly/transformProps.ts                |    11 +-
 .../src/Candlestick/EchartsCandlestick.tsx         |   174 +
 .../src/Candlestick/buildQuery.ts}                 |    52 +-
 .../src/Candlestick/constants.ts                   |    61 +
 .../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              |   770 +
 .../plugin-chart-echarts/src/Candlestick/types.ts  |    84 +
 .../plugin-chart-echarts/src/Candlestick/utils.ts  |    91 +
 .../src/Funnel/EchartsFunnel.tsx                   |    19 +-
 .../src/Funnel/transformProps.ts                   |    15 +-
 .../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                    |    11 +-
 .../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/transformProps.ts                |    12 +-
 .../src/MixedTimeseries/EchartsMixedTimeseries.tsx |     9 +
 .../src/MixedTimeseries/transformProps.ts          |   107 +-
 .../plugin-chart-echarts/src/Pie/EchartsPie.tsx    |    19 +-
 .../plugin-chart-echarts/src/Pie/transformProps.ts |    19 +-
 .../src/Radar/EchartsRadar.tsx                     |    19 +-
 .../src/Radar/transformProps.ts                    |    15 +-
 .../src/Timeseries/EchartsTimeseries.test.tsx      |   116 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |    48 +-
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |    14 +-
 .../src/Timeseries/transformProps.ts               |   184 +-
 .../src/Timeseries/transformers.ts                 |   101 +-
 .../src/Waterfall/EchartsWaterfall.tsx             |    16 +-
 .../src/components/Echart.test.tsx                 |     4 +-
 .../plugin-chart-echarts/src/components/Echart.tsx |     7 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |    24 +-
 .../plugins/plugin-chart-echarts/src/index.ts      |     2 +
 .../src/utils/eventHandlers.ts                     |    26 +-
 .../plugin-chart-echarts/src/utils/formatters.ts   |    47 +-
 .../src/utils/legendEventHandlers.test.ts          |   275 +
 .../src/utils/legendEventHandlers.ts               |   131 +
 .../plugin-chart-echarts/src/utils/series.ts       |   317 +-
 .../test/Butterfly/Butterfly.test.tsx              |    32 +-
 .../test/Candlestick/EchartsCandlestick.test.tsx   |   325 +
 .../test/Candlestick/buildQuery.test.ts            |    57 +
 .../test/Candlestick/controlPanel.test.ts          |   257 +
 .../test/Candlestick/transformProps.test.ts        |  1271 +
 .../test/Candlestick/utils.test.ts                 |    53 +
 .../test/Gantt/transformProps.test.ts              |   261 +
 .../test/Heatmap/transformProps.test.ts            |    67 +-
 .../test/Histogram/transformProps.test.ts          |   112 +
 .../test/MixedTimeseries/buildQuery.test.ts        |    33 +
 .../test/MixedTimeseries/transformProps.test.ts    |    30 +-
 .../test/Timeseries/Bar/controlPanel.test.ts       |    62 +-
 .../Bar/sparseSubDailyBarGeometry.test.ts          |   505 +
 .../test/Timeseries/Bar/transformProps.test.ts     |   107 +-
 .../test/Timeseries/EchartsTimeseries.test.tsx     |    13 +-
 .../test/Timeseries/transformProps.test.ts         |   422 +
 .../test/Timeseries/transformers.test.ts           |   177 +-
 .../test/Treemap/EchartsTreemap.test.tsx           |   123 +
 .../test/utils/eventHandlers.test.ts               |   130 +
 .../test/utils/formatters.test.ts                  |   155 +
 .../plugin-chart-echarts/test/utils/series.test.ts |   351 +-
 .../plugins/plugin-chart-handlebars/package.json   |     2 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     4 +-
 .../src/react-pivottable/TableRenderers.tsx        |    15 +-
 .../test/react-pivottable/tableRenders.test.tsx    |    21 +
 .../plugin-chart-point-cluster-map/package.json    |     4 +-
 .../src/MapLibre.tsx                               |    62 +-
 .../test/MapLibre.test.tsx                         |    31 +
 .../plugin-chart-table/src/DataTable/DataTable.tsx |    41 +-
 .../src/DataTable/hooks/useSticky.tsx              |    30 +-
 .../plugins/plugin-chart-table/src/Styles.tsx      |     5 +
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   237 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |     6 +
 .../plugin-chart-table/src/controlPanel.tsx        |    38 +-
 .../plugin-chart-table/src/transformProps.ts       |    85 +-
 .../plugins/plugin-chart-table/src/types.ts        |     5 +
 .../plugin-chart-table/src/utils/formatValue.ts    |    14 +-
 .../plugin-chart-table/src/utils/headerGroups.ts}  |    18 +-
 .../test/DataTable/DataTable.test.tsx              |    64 +-
 .../test/DataTable/hooks/useSticky.test.tsx        |    88 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |   490 +
 .../plugin-chart-table/test/buildQuery.test.ts     |   151 +-
 .../plugin-chart-table/test/controlPanel.test.ts   |   199 +-
 .../plugin-chart-table/test/controlPanel.test.tsx  |    32 +-
 .../plugin-chart-table/test/headerGroups.test.ts   |   301 +
 .../test/utils/formatValue.test.ts                 |    44 +
 .../test/ColorSchemeControl.test.tsx               |     4 +-
 .../plugin-chart-world-map/test/WorldMap.test.ts   |    14 +
 .../plugins/preset-chart-deckgl/package.json       |    27 +-
 .../src/DeckGLContainer.test.tsx                   |    95 +-
 .../preset-chart-deckgl/src/DeckGLContainer.tsx    |    17 +-
 .../src/components/DeckGLOverlayMapLibre.test.tsx  |    80 +
 .../src/components/DeckGLOverlayMapLibre.tsx       |     8 +-
 .../src/layers/Contour/Contour.tsx                 |     2 +-
 superset-frontend/scripts/build.js                 |    21 +-
 superset-frontend/scripts/check-custom-rules.js    |    46 +-
 superset-frontend/scripts/copyAssets.js            |    56 -
 .../Pie/EchartsPie.tsx => scripts/po2json-cli.js}  |    37 +-
 superset-frontend/scripts/po2json.js               |    96 +
 superset-frontend/scripts/po2json.sh               |     6 +-
 .../spec/helpers/sourceTreeScanner.ts              |     1 -
 superset-frontend/spec/helpers/testing-library.tsx |     1 +
 superset-frontend/spec/scripts/po2json.test.ts     |   130 +
 .../src/SqlLab/actions/sqlLab.test.ts              |   118 +
 superset-frontend/src/SqlLab/actions/sqlLab.ts     |   108 +-
 .../SqlLab/components/AppLayout/AppLayout.test.tsx |     2 +-
 .../src/SqlLab/components/AppLayout/index.tsx      |     3 +-
 .../QueryLimitSelect/QueryLimitSelect.test.tsx     |     8 +-
 .../SaveDatasetActionButton.test.tsx               |     2 +-
 .../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx     |     6 +-
 .../SqlLab/components/SouthPane/SouthPane.test.tsx |     2 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |     2 +-
 .../SqlEditorLeftBar/SqlEditorLeftBar.test.tsx     |     2 +-
 .../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx |    30 +-
 .../DynamicGroupBy/DynamicGroupByPlugin.test.tsx   |     2 +-
 .../src/components/Chart/Chart.test.tsx            |    55 +
 superset-frontend/src/components/Chart/Chart.tsx   |     5 +-
 .../ChartContextMenu/ChartContextMenu.test.tsx     |   100 +-
 .../src/components/Chart/ChartRenderer.test.tsx    |    52 +-
 .../src/components/Chart/ChartRenderer.tsx         |    23 +-
 .../components/Chart/DrillBy/DrillBySubmenu.tsx    |     2 +-
 .../Chart/DrillBy/useResultsTableView.test.ts      |     2 +-
 .../Chart/DrillDetail/DrillDetailPane.test.tsx     |   105 +-
 .../components/Chart/MenuItemWithTruncation.tsx    |     5 +-
 .../useDrillDetailMenuItems.test.tsx               |    38 +-
 .../CopyToClipboard/CopyToClipboard.test.tsx       |    10 +-
 .../DatabaseSelector/DatabaseSelector.test.tsx     |     4 +-
 .../Datasource/ChangeDatasourceModal/index.tsx     |     2 +-
 .../Datasource/DatasourceModal/index.tsx           |    19 +-
 .../CollectionTable/CollectionTable.test.tsx       |   236 +-
 .../components/CollectionTable/index.tsx           |    75 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |   139 +-
 .../tests/DatasourceEditor.test.tsx                |    31 +
 .../tests/DatasourceEditorCurrency.test.tsx        |     4 +-
 .../ErrorMessage/CsrfErrorMessage.test.tsx         |    79 +
 .../ErrorMessage/CsrfErrorMessage.tsx}             |    49 +-
 .../src/components/ErrorMessage/index.tsx          |     1 +
 .../FilterableTable/exactDecimals.test.tsx         |    92 +
 .../src/components/FilterableTable/index.tsx       |    41 +-
 .../components/FilterableTable/sortResults.test.ts |   238 +
 .../src/components/FilterableTable/sortResults.ts  |   180 +
 .../src/components/GridTable/index.tsx             |    10 +-
 .../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           |    20 +-
 superset-frontend/src/components/Tag/index.tsx     |     8 +-
 superset-frontend/src/components/Tag/utils.tsx     |    16 +-
 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         |     7 +
 .../src/dashboard/actions/dashboardState.test.ts   |    71 +-
 .../src/dashboard/actions/dashboardState.ts        |    21 +-
 .../src/dashboard/actions/hydrate.test.ts          |   222 +-
 superset-frontend/src/dashboard/actions/hydrate.ts |    28 +-
 .../components/AddSliceCard/AddSliceCard.test.tsx  |     2 +-
 .../src/dashboard/components/Dashboard.test.tsx    |    13 +
 .../DashboardBuilder/DashboardBuilder.test.tsx     |   240 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |   187 +-
 .../DashboardBuilder/DashboardContainer.test.tsx   |   145 +-
 .../DashboardBuilder/DashboardContainer.tsx        |    19 +-
 .../src/dashboard/components/DashboardGrid.tsx     |     3 +-
 .../dashboard/components/Header/Header.test.tsx    |   219 +-
 .../Header/useHeaderActionsDropdownMenu.tsx        |    10 +-
 .../Header/useHeaderAutoRefresh.test.tsx           |    58 +-
 .../components/Header/useHeaderAutoRefresh.ts      |     2 +-
 .../PropertiesModal.lateFieldMount.test.tsx        |    94 +
 .../PropertiesModal/PropertiesModal.test.tsx       |    32 +
 .../dashboard/components/PropertiesModal/index.tsx |    24 +-
 .../PropertiesModal/sections/AdvancedSection.tsx   |    60 +-
 .../sections/LabelColorMapping.test.tsx            |   111 +
 .../PropertiesModal/sections/LabelColorMapping.tsx |   494 +
 .../sections/StylingSection.test.tsx               |   141 +-
 .../PropertiesModal/sections/StylingSection.tsx    |    11 +
 .../components/RefreshIntervalModal.test.tsx       |   151 +
 .../dashboard/components/RefreshIntervalModal.tsx  |     2 +-
 .../src/dashboard/components/SaveModal.test.tsx    |   178 +
 .../SliceHeaderControls.test.tsx                   |    71 +
 .../ViewAsTableRendering.test.tsx                  |   309 +
 .../components/SliceHeaderControls/index.tsx       |     3 +-
 .../URLShortLinkButton/URLShortLinkButton.test.tsx |     8 +-
 .../components/dnd/dragDroppableConfig.test.ts     |   270 +
 .../dashboard/components/dnd/handleDrop.test.ts    |   346 +
 .../components/gridComponents/Chart/Chart.test.tsx |    75 +
 .../components/gridComponents/Chart/Chart.tsx      |     4 +-
 .../ChartHolder/ChartHolder.test.tsx               |     4 +-
 .../gridComponents/Markdown/Markdown.test.tsx      |    20 +-
 .../components/gridComponents/Row/Row.test.tsx     |    43 +-
 .../components/gridComponents/Row/Row.tsx          |   124 +-
 .../components/gridComponents/Tabs/Tabs.test.tsx   |   147 +
 .../components/gridComponents/Tabs/Tabs.tsx        |    22 +-
 .../gridComponents/TabsRenderer/TabsRenderer.tsx   |     2 +-
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |   834 +-
 .../components/menu/DownloadMenuItems/index.tsx    |   322 +-
 .../src/dashboard/components/menu/HoverMenu.tsx    |     4 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   293 +-
 .../FilterControls/FilterControlShared.test.tsx    |     2 +-
 .../FilterControls.overflow.test.tsx               |    93 +-
 .../FilterControls/FilterDivider.test.tsx          |     2 +-
 .../FilterBar/FilterControls/FilterValue.test.tsx  |    42 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |    70 +-
 .../FilterControls/GroupByFilterCard.test.tsx      |   330 +-
 .../FilterBar/FilterControls/GroupByFilterCard.tsx |   192 +-
 .../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          |    38 +
 .../components/nativeFilters/FilterBar/utils.ts    |    15 +
 .../FiltersConfigForm/ColumnSelect.test.tsx        |     4 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |    38 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |    16 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |   242 +-
 .../FiltersConfigForm/getControlItemsMap.test.tsx  |    14 +
 .../FiltersConfigForm/getControlItemsMap.tsx       |     3 +-
 .../FiltersConfigForm/utils.test.ts                |    78 +
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |    52 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |   145 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |     4 +-
 .../FiltersConfigModal/NativeFiltersModal.test.tsx |     9 +
 .../FiltersConfigModal/hooks/index.ts              |     5 +-
 .../hooks/useFilterOperations.test.ts              |   320 +
 .../hooks/useFilterOperations.ts                   |    46 +-
 .../hooks/useModalSaveLogic.test.ts                |   118 +
 .../transformers/buildTarget.test.ts               |    44 +-
 .../FiltersConfigModal/transformers/buildTarget.ts |    37 +-
 .../transformers/customizationTransformer.ts       |    10 +-
 .../transformers/filterTransformer.ts              |    10 +-
 .../nativeFilters/FiltersConfigModal/types.ts      |     2 +
 .../nativeFilters/FiltersConfigModal/utils.test.ts |    42 +
 .../useDisplayControlDatasource.test.ts            |   192 +
 .../nativeFilters/useDisplayControlDatasource.ts   |   181 +
 .../components/nativeFilters/utils.test.ts         |    40 +
 .../dashboard/components/nativeFilters/utils.ts    |    13 +
 .../components/resizable/ResizableContainer.tsx    |     3 +-
 superset-frontend/src/dashboard/constants.ts       |     6 +
 .../src/dashboard/containers/DashboardPage.tsx     |     2 +
 .../dashboard/contexts/AutoRefreshContext.test.tsx |    69 +
 .../src/dashboard/contexts/AutoRefreshContext.tsx  |    31 +-
 .../dashboard/hooks/useDownloadScreenshot.test.ts  |   118 +-
 .../src/dashboard/hooks/useDownloadScreenshot.ts   |    67 +-
 .../src/dashboard/reducers/dashboardInfo.ts        |    10 +
 .../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 +
 .../src/dashboard/useDashboardFilterSync.test.tsx  |   272 +
 .../src/dashboard/useDashboardFilterSync.ts        |   118 +
 .../util/charts/getFormDataWithExtraFilters.ts     |   163 +-
 .../src/dashboard/util/crossFilters.test.ts        |    75 +
 .../src/dashboard/util/crossFilters.ts             |    23 +-
 .../index.tsx => dashboard/util/embeddedLayout.ts} |    23 +-
 .../src/dashboard/util/getDropPosition.test.ts     |    83 +
 .../src/dashboard/util/getDropPosition.ts          |    13 +
 .../util/getFormDataWithExtraFilters.test.ts       |   412 +-
 .../src/dashboard/util/getRelatedCharts.ts         |    32 +-
 .../util/removeUnreachableComponents.test.ts       |   283 +
 .../dashboard/util/removeUnreachableComponents.ts  |   225 +
 .../util/updateComponentParentsList.test.ts        |    17 +
 .../dashboard/util/updateComponentParentsList.ts   |     7 +-
 superset-frontend/src/dataMask/reducer.test.ts     |   156 +
 superset-frontend/src/dataMask/reducer.ts          |    33 +
 superset-frontend/src/embedded/api.test.ts         |    84 +
 superset-frontend/src/embedded/api.tsx             |    65 +-
 .../src/explore/actions/exploreActions.test.ts     |   219 +-
 .../src/explore/actions/exploreActions.ts          |    54 +-
 .../src/explore/components/Control.test.tsx        |    36 +-
 .../src/explore/components/Control.tsx             |     3 +-
 .../src/explore/components/ControlHeader.test.tsx  |    18 +
 .../src/explore/components/ControlHeader.tsx       |    37 +-
 .../components/ControlPanelsContainer.test.tsx     |   479 +-
 .../explore/components/ControlPanelsContainer.tsx  |   112 +-
 .../CopyToClipboardButton.test.tsx                 |     4 +-
 .../DataTablesPane/test/DataTableControls.test.tsx |     6 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    18 +-
 .../DataTablesPane/test/useResultsPane.test.tsx    |     4 +-
 .../DatasourcePanelDragOption.test.tsx             |    65 +-
 .../DatasourcePanel/DatasourcePanelItem.test.tsx   |    16 +-
 .../components/DatasourcePanel/compatibility.ts    |    18 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |     8 +
 .../ExploreChartPanel/ExploreChartPanel.test.tsx   |    11 +-
 .../explore/components/ExploreChartPanel/index.tsx |    17 +-
 .../ExploreViewContainer.test.tsx                  |    85 +-
 .../components/ExploreViewContainer/index.tsx      |    28 +-
 .../explore/components/PropertiesModal/index.tsx   |     4 +
 .../AnnotationLayer.subdirectory.test.tsx          |     2 +-
 .../controls/AnnotationLayerControl/index.test.tsx |    84 +-
 .../ColorBreakpointPopoverTrigger.tsx              |     7 +-
 .../components/controls/ColorPickerControl.tsx     |     2 +-
 .../ColorSchemeControl/ColorSchemeControl.test.tsx |   100 +-
 .../ColumnConfigControl.test.tsx                   |    86 +
 .../ColumnConfigControl/ColumnConfigControl.tsx    |    24 +-
 .../ControlForm/ControlForm.debounce.test.tsx      |   124 +
 .../ColumnConfigControl/ControlForm/index.tsx      |    50 +-
 .../controls/ColumnConfigControl/constants.tsx     |     3 +-
 .../controls/ComparisonRangeLabel.test.tsx         |   252 +
 .../FormattingPopoverContent.test.tsx              |   129 +-
 .../FormattingPopoverContent.tsx                   |   176 +-
 .../ContourControl/ContourPopoverTrigger.tsx       |     7 +-
 .../ControlPopover/PopoverTriggerAnchors.test.tsx  |    53 +
 .../controls/DateFilterControl/DateFilterLabel.tsx |   116 +-
 .../DateFilterControl/tests/CommonFrame.test.tsx   |    72 +
 .../tests/DateFilterLabel.test.tsx                 |   307 +
 .../DateFilterControl/tests/DateLabel.test.tsx     |    73 +
 .../components/controls/DateFilterControl/types.ts |     1 +
 .../ColumnSelectPopover.test.tsx                   |   690 +-
 .../DndColumnSelectControl/ColumnSelectPopover.tsx |   323 +-
 .../ColumnSelectPopoverTrigger.tsx                 |    28 +-
 .../DndColumnMetricSelect.test.tsx                 |   177 +-
 .../DndColumnMetricSelect.tsx                      |    16 +-
 .../DndColumnSelect.test.tsx                       |   181 +
 .../DndColumnSelectControl/DndColumnSelect.tsx     |    20 +-
 .../DndFilterSelect.test.tsx                       |    80 +
 .../DndMetricSelect.test.tsx                       |    90 +
 .../utils/pickerCapabilities.test.ts               |   101 +
 .../utils/pickerCapabilities.ts                    |    82 +
 .../AdhocFilterControl/AdhocFilterControl.test.tsx |   102 +-
 .../AdhocFilterEditPopover.test.tsx                |    55 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   110 +
 .../index.tsx                                      |    33 +-
 .../AdhocFilterPopoverTrigger/index.tsx            |    10 +-
 .../HeaderGroupsControl/HeaderGroupEditor.tsx      |   567 +
 .../HeaderGroupsControl.test.tsx                   |   906 +
 .../HeaderGroupsControl/HeaderGroupsControl.tsx    |   289 +
 .../controls/HeaderGroupsControl/index.ts}         |    11 +-
 .../controls/HeaderGroupsControl/types.ts}         |    38 +-
 .../controls/HeaderGroupsControl/utils.test.ts     |   388 +
 .../controls/HeaderGroupsControl/utils.ts          |   215 +
 .../MatrixifyControl/utils/fetchTopNValues.test.ts |   165 +
 .../controls/MatrixifyDimensionControl.test.tsx    |   139 +-
 .../controls/MatrixifyDimensionControl.tsx         |    26 +-
 .../AdhocMetricEditPopover.test.tsx                |    58 +
 .../MetricControl/AdhocMetricEditPopover/index.tsx |     7 +-
 .../AdhocMetricPopoverTrigger.test.tsx             |   278 +
 .../MetricControl/AdhocMetricPopoverTrigger.tsx    |    10 +-
 .../MetricControl/MetricDefinitionOption.test.tsx  |     2 +-
 .../components/controls/SelectControl.test.tsx     |    55 +
 .../components/controls/TextAreaControl.test.tsx   |   103 +
 .../components/controls/TextAreaControl.tsx        |   169 +-
 .../controls/TextControl/TextControl.test.tsx      |    15 +
 .../components/controls/TextControl/index.tsx      |    16 +-
 .../components/controls/TimeRangeControl/index.tsx |     2 +-
 .../src/explore/components/controls/index.ts       |     2 +
 .../useExploreAdditionalActionsMenu/index.tsx      |    10 +-
 .../useExploreAdditionalActionsMenu.test.tsx       |    24 +-
 superset-frontend/src/explore/constants.ts         |     6 +
 .../src/explore/controlPanels/sections.tsx         |     7 +
 .../controlUtils/getSectionsToRender.test.ts       |   179 +
 .../controlUtils/standardizedFormData.test.ts      |    29 +
 .../explore/controlUtils/standardizedFormData.ts   |     4 +
 .../src/explore/exploreUtils/exploreUtils.test.tsx |    25 +
 .../src/explore/exploreUtils/index.ts              |     8 +-
 .../explore/reducers/datasourcesReducer.test.ts    |   171 +
 .../src/explore/reducers/exploreReducer.test.ts    |   316 +-
 .../src/explore/reducers/exploreReducer.ts         |    45 +-
 .../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             |    46 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |    57 +-
 .../src/features/alerts/AlertReportModal.tsx       |     6 +-
 .../alerts/components/AlertStatusIcon.test.tsx     |     6 +-
 .../datasets/AddDataset/Footer/Footer.test.tsx     |    15 +-
 .../src/features/home/ChartTable.test.tsx          |     6 +-
 .../src/features/home/LanguagePicker.test.tsx      |     2 +-
 superset-frontend/src/features/home/Menu.test.tsx  |    37 +-
 .../src/features/home/RightMenu.test.tsx           |    12 +-
 .../semanticViews/AddSemanticViewModal.test.tsx    |    22 +
 .../src/features/themes/ThemeModal.test.tsx        |   177 +
 .../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      |   110 +-
 .../versionHistory/ChartVersionPreview.tsx         |     5 +-
 .../DashboardVersionHistory.test.tsx               |    89 +-
 .../versionHistory/DashboardVersionHistory.tsx     |    49 +-
 .../versionHistory/ExploreVersionHistory.test.tsx  |   344 +-
 .../versionHistory/ExploreVersionHistory.tsx       |    54 +-
 .../src/features/versionHistory/PreviewBanner.tsx  |     5 +-
 .../versionHistory/RelatedUpdateRow.test.tsx       |    12 +-
 .../features/versionHistory/SaveGroupItem.test.tsx |   183 +-
 .../src/features/versionHistory/SaveGroupItem.tsx  |    31 +-
 .../versionHistory/VersionHistoryPanel.test.tsx    |     3 +-
 .../versionHistory/VersionHistoryPanel.tsx         |    16 +-
 .../src/features/versionHistory/display.test.ts    |    27 +
 .../src/features/versionHistory/display.ts         |    18 +
 .../src/features/versionHistory/grouping.test.ts   |    36 +
 .../src/features/versionHistory/grouping.ts        |     7 +
 .../src/features/versionHistory/types.ts           |    14 +
 .../versionHistory/useDashboardVersionPreview.ts   |     5 +-
 .../versionHistory/useVersionActions.test.tsx      |     6 +-
 .../features/versionHistory/useVersionActions.tsx  |     5 +-
 .../src/filters/components/Range/index.ts          |     1 +
 .../components/Select/SelectFilterPlugin.test.tsx  |    41 +
 .../components/Select/SelectFilterPlugin.tsx       |    22 +-
 .../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/datasets.test.ts        |    84 +
 .../src/hooks/apiResources/datasets.ts             |    66 +-
 .../ArchivedList/ArchivedDatasetPurgeModal.tsx     |     3 +-
 .../DatabaseList.datasetDependents.test.tsx        |   289 +
 .../DatabaseList.semanticLayerDelete.test.tsx      |   139 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |   274 +-
 .../DatasetList.connectionPermissions.test.tsx     |    70 +
 .../src/pages/DatasetList/DatasetList.test.tsx     |    52 +
 .../pages/DatasetList/DatasetList.testHelpers.tsx  |     1 +
 superset-frontend/src/pages/DatasetList/index.tsx  |    18 +-
 superset-frontend/src/pages/Home/Home.test.tsx     |    49 +-
 superset-frontend/src/pages/Home/index.tsx         |    20 +-
 superset-frontend/src/pages/Login/Login.test.tsx   |   152 +-
 superset-frontend/src/pages/Login/index.tsx        |    45 +-
 .../src/pages/ThemeList/ThemeList.test.tsx         |   212 +
 superset-frontend/src/pages/ThemeList/index.tsx    |    48 +-
 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/theme/ThemeController.ts     |    21 +-
 .../src/theme/tests/ThemeController.test.ts        |   105 +-
 superset-frontend/src/types/bootstrapTypes.ts      |     1 +
 superset-frontend/src/utils/colorScheme.test.ts    |   230 +
 superset-frontend/src/utils/common.ts              |     3 +
 .../src/utils/downloadAsImage.test.ts              |   355 +-
 superset-frontend/src/utils/downloadAsImage.tsx    |   153 +-
 .../src/utils/semanticViewStructure.test.ts        |    98 +
 .../src/utils/semanticViewStructure.ts             |   140 +
 superset-frontend/src/utils/softDeleteCopy.test.ts |    11 +
 superset-frontend/src/utils/softDeleteCopy.ts      |    14 +
 superset-frontend/src/utils/urlUtils.test.ts       |    23 +
 superset-frontend/src/utils/urlUtils.ts            |    17 +
 superset-frontend/src/views/App.test.tsx           |   125 +
 superset-frontend/src/views/App.tsx                |    31 +-
 .../TimeTable/components/LeftCell/LeftCell.tsx     |    18 +-
 .../src/visualizations/presets/MainPreset.ts       |     4 +
 superset-frontend/webpack.config.js                |     1 -
 superset-websocket/package-lock.json               |   644 +-
 superset-websocket/package.json                    |    14 +-
 .../utils/client-ws-app/package-lock.json          |    14 +-
 .../utils/client-ws-app/package.json               |     2 +-
 superset/annotation_layers/schemas.py              |    21 +
 superset/charts/api.py                             |    78 +-
 superset/charts/client_processing.py               |     9 +-
 superset/charts/data/api.py                        |    65 +-
 superset/charts/data/dashboard_filter_context.py   |     6 +-
 superset/charts/filters.py                         |    61 +-
 superset/charts/schemas.py                         |   121 +-
 superset/cli/deletion_retention.py                 |    20 +-
 superset/cli/importexport.py                       |     8 +-
 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 +-
 superset/commands/chart/export.py                  |   251 +-
 superset/commands/chart/importers/v1/__init__.py   |   104 +-
 superset/commands/chart/importers/v1/utils.py      |   393 +-
 superset/commands/chart/update.py                  |    71 +-
 superset/commands/chart/utils.py                   |    12 +
 superset/commands/dashboard/create.py              |    16 +
 superset/commands/dashboard/exceptions.py          |    26 +-
 superset/commands/dashboard/export.py              |     8 +-
 superset/commands/dashboard/export_example.py      |    31 +
 superset/commands/dashboard/filter_state/get.py    |    49 +-
 .../commands/dashboard/importers/v1/__init__.py    |    89 +-
 superset/commands/dashboard/update.py              |    88 +-
 superset/commands/database/exceptions.py           |    24 +-
 superset/commands/database/oauth2.py               |    27 +-
 superset/commands/database/tables.py               |    41 +-
 superset/commands/database/update.py               |   114 +-
 superset/commands/database/utils.py                |    47 +
 superset/commands/dataset/refresh.py               |    11 +
 superset/commands/dataset/update.py                |    31 +-
 .../commands/deletion_retention/prune_audit.py     |   537 +-
 superset/commands/deletion_retention/window.py     |    77 +-
 superset/commands/distributed_lock/acquire.py      |     9 +-
 superset/commands/export/assets.py                 |    10 +-
 superset/commands/importers/v1/__init__.py         |    16 +-
 superset/commands/importers/v1/assets.py           |    74 +-
 superset/commands/importers/v1/examples.py         |    19 +
 superset/commands/importers/v1/utils.py            |    30 +-
 superset/commands/report/alert.py                  |    12 +-
 superset/commands/report/base.py                   |    10 +-
 superset/commands/report/execute.py                |   478 +-
 superset/commands/report/execution_claim.py        |   199 +
 superset/commands/report/update.py                 |     6 -
 superset/commands/semantic_layer/create.py         |     3 +-
 superset/commands/semantic_layer/update.py         |   108 +-
 superset/commands/semantic_layer/utils.py          |    56 +
 superset/commands/soft_delete_collisions.py        |   165 +
 superset/commands/sql_lab/estimate.py              |    10 +-
 superset/commands/sql_lab/export.py                |    14 +
 superset/commands/streaming_export/base.py         |    52 +-
 superset/commands/theme/create.py                  |    62 +
 superset/commands/theme/delete.py                  |     8 +
 superset/commands/theme/exceptions.py              |    27 +-
 superset/commands/theme/import_themes.py           |    34 +-
 superset/commands/theme/update.py                  |    25 +
 superset/commands/utils.py                         |    20 +
 superset/commands/version_restore.py               |    26 +-
 superset/common/query_context_factory.py           |    36 +
 superset/common/query_context_processor.py         |    68 +-
 superset/common/query_object.py                    |    49 +-
 superset/common/tabular_query.py                   |     8 +-
 superset/common/utils/query_cache_manager.py       |     2 +
 superset/common/utils/time_grain_utils.py          |    41 +
 superset/config.py                                 |   340 +-
 superset/connectors/sqla/models.py                 |   149 +-
 superset/connectors/sqla/utils.py                  |    11 +-
 superset/constants.py                              |    13 +
 superset/core/mcp/core_mcp_injection.py            |   135 +-
 superset/daos/base.py                              |     9 +-
 superset/daos/dashboard.py                         |    63 +-
 superset/daos/database.py                          |    43 +-
 superset/daos/dataset.py                           |    31 +-
 superset/daos/datasource.py                        |     2 +-
 superset/daos/version.py                           |     4 +
 superset/dashboards/api.py                         |   912 +-
 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       |   324 +
 superset/dashboards/filter_state/api.py            |    32 +-
 superset/dashboards/filters.py                     |    64 +-
 superset/dashboards/layout.py                      |   269 +
 superset/dashboards/schemas.py                     |    21 +-
 superset/databases/api.py                          |    43 +-
 superset/databases/schemas.py                      |    15 +
 superset/dataframe.py                              |   133 +-
 superset/datasets/api.py                           |   200 +-
 superset/datasets/schemas.py                       |     7 +-
 superset/datasource/api.py                         |    56 +-
 superset/datasource/schemas.py                     |     9 +
 superset/db_engine_specs/README.md                 |     6 +-
 superset/db_engine_specs/__init__.py               |    31 +-
 superset/db_engine_specs/aurora.py                 |    79 +
 superset/db_engine_specs/base.py                   |   207 +-
 superset/db_engine_specs/bigquery.py               |    39 +-
 superset/db_engine_specs/clickhouse.py             |    22 +-
 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             |   634 +-
 superset/db_engine_specs/datafusion.py             |    34 +-
 superset/db_engine_specs/db2.py                    |    39 +-
 superset/db_engine_specs/doris.py                  |   132 +-
 superset/db_engine_specs/duckdb.py                 |    39 +
 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/gsheets.py                |   166 +-
 superset/db_engine_specs/ibmi.py                   |    45 +
 superset/db_engine_specs/impala.py                 |    21 +
 superset/db_engine_specs/kusto.py                  |    35 +
 superset/db_engine_specs/kylin.py                  |    50 +-
 superset/db_engine_specs/lib.py                    |    22 +-
 superset/db_engine_specs/mongodb.py                |    72 +-
 superset/db_engine_specs/mssql.py                  |   124 +-
 superset/db_engine_specs/mysql.py                  |   349 +
 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               |    48 +-
 superset/db_engine_specs/presto.py                 |     4 +
 superset/db_engine_specs/shillelagh.py             |    57 +-
 superset/db_engine_specs/singlestore.py            |     4 +-
 superset/db_engine_specs/snowflake.py              |    13 +-
 superset/db_engine_specs/sqlite.py                 |    16 +-
 superset/db_engine_specs/starrocks.py              |    12 +-
 superset/db_engine_specs/trino.py                  |    18 +
 superset/embedded/view.py                          |     8 +-
 superset/errors.py                                 |     1 +
 superset/exceptions.py                             |    62 +-
 superset/explore/form_data/api.py                  |     7 +-
 superset/explore/utils.py                          |    15 +
 superset/extensions/__init__.py                    |     6 +-
 superset/extensions/metastore_cache.py             |   112 +-
 superset/importexport/api.py                       |     9 +-
 superset/initialization/__init__.py                |    13 +-
 superset/jinja_context.py                          |    35 +-
 superset/key_value/types.py                        |     1 +
 superset/mcp_service/CLAUDE.md                     |    25 +-
 superset/mcp_service/PRODUCTION.md                 |     2 +-
 superset/mcp_service/README.md                     |     6 +-
 superset/mcp_service/SECURITY.md                   |     2 +-
 superset/mcp_service/__main__.py                   |    25 +-
 superset/mcp_service/app.py                        |    54 +-
 superset/mcp_service/auth.py                       |   145 +-
 superset/mcp_service/caching.py                    |    65 +-
 .../mcp_service/catalog}/__init__.py               |     0
 superset/mcp_service/catalog/schemas.py            |   131 +
 .../catalog/tool}/__init__.py                      |    19 +-
 superset/mcp_service/catalog/tool/get_catalog.py   |   443 +
 superset/mcp_service/chart/chart_helpers.py        |   291 +-
 superset/mcp_service/chart/chart_utils.py          |   569 +-
 superset/mcp_service/chart/compile.py              |    61 +-
 superset/mcp_service/chart/plugin.py               |   222 +-
 superset/mcp_service/chart/plugins/__init__.py     |     6 +
 superset/mcp_service/chart/plugins/big_number.py   |    57 +-
 superset/mcp_service/chart/plugins/box_plot.py     |     2 +-
 superset/mcp_service/chart/plugins/bubble.py       |   174 +
 superset/mcp_service/chart/plugins/gantt.py        |   312 +
 superset/mcp_service/chart/plugins/gauge.py        |    63 +-
 superset/mcp_service/chart/plugins/handlebars.py   |     6 +-
 superset/mcp_service/chart/plugins/histogram.py    |   100 +-
 .../mcp_service/chart/plugins/interactive_pivot.py |     2 +-
 .../mcp_service/chart/plugins/mixed_timeseries.py  |    45 +-
 superset/mcp_service/chart/plugins/pie.py          |     2 +-
 superset/mcp_service/chart/plugins/pivot_table.py  |     2 +-
 superset/mcp_service/chart/plugins/table.py        |     3 +-
 superset/mcp_service/chart/plugins/treemap.py      |   153 +-
 superset/mcp_service/chart/plugins/waterfall.py    |    37 +-
 superset/mcp_service/chart/plugins/xy.py           |     2 +-
 superset/mcp_service/chart/preview_utils.py        |   544 +-
 .../chart/prompts/create_chart_guided.py           |     4 +-
 superset/mcp_service/chart/query_result.py         |   134 +-
 superset/mcp_service/chart/registry.py             |    49 +-
 .../mcp_service/chart/resources/chart_configs.py   |    24 +
 superset/mcp_service/chart/schemas.py              |  1543 +-
 superset/mcp_service/chart/tool/generate_chart.py  |    41 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |    83 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |   347 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   107 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |    60 +-
 .../chart/tool/get_chart_type_schema.py            |    71 +-
 superset/mcp_service/chart/tool/list_charts.py     |   130 +-
 superset/mcp_service/chart/tool/update_chart.py    |   113 +-
 .../mcp_service/chart/tool/update_chart_preview.py |   132 +-
 superset/mcp_service/chart/treemap_preview.py      |   297 +
 .../chart/validation/dataset_validator.py          |   275 +-
 superset/mcp_service/chart/validation/pipeline.py  |    34 +-
 superset/mcp_service/common/schema_discovery.py    |     9 +-
 .../mcp_service/common/time_range_validation.py    |    32 +-
 superset/mcp_service/composite_token_verifier.py   |    26 +-
 superset/mcp_service/constants.py                  |    30 +-
 .../mcp_service/dashboard/layout_validation.py     |    54 +
 superset/mcp_service/dashboard/permalink.py        |    96 +-
 superset/mcp_service/dashboard/schemas.py          |   919 +-
 superset/mcp_service/dashboard/tool/__init__.py    |     4 +
 .../tool/add_chart_to_existing_dashboard.py        |    33 +-
 .../dashboard/tool/apply_dashboard_filters.py      |   683 +
 .../mcp_service/dashboard/tool/delete_dashboard.py |     2 +-
 .../dashboard/tool/duplicate_dashboard.py          |     6 +
 .../dashboard/tool/generate_dashboard.py           |    40 +-
 .../dashboard/tool/get_dashboard_data.py           |   279 +
 .../dashboard/tool/get_dashboard_datasets.py       |    21 +-
 .../dashboard/tool/get_dashboard_info.py           |    47 +-
 .../dashboard/tool/get_dashboard_layout.py         |   161 +-
 .../mcp_service/dashboard/tool/list_dashboards.py  |    18 +-
 .../dashboard/tool/manage_native_filters.py        |   163 +-
 .../dashboard/tool/remove_chart_from_dashboard.py  |    13 +-
 .../mcp_service/dashboard/tool/update_dashboard.py |    14 +-
 superset/mcp_service/dashboard_scope.py            |  1365 +
 superset/mcp_service/dashboard_scope_sql.py        |   516 +
 superset/mcp_service/dataset/schemas.py            |   425 +-
 superset/mcp_service/dataset/tool/__init__.py      |    10 +
 .../dataset/tool/create_dataset_metric.py          |   172 +
 .../dataset/tool/create_virtual_dataset.py         |    16 +-
 .../mcp_service/dataset/tool/delete_dataset.py     |   217 +
 .../dataset/tool/delete_dataset_metric.py          |   246 +
 .../mcp_service/dataset/tool/get_dataset_info.py   |    21 +-
 superset/mcp_service/dataset/tool/list_datasets.py |    80 +-
 superset/mcp_service/dataset/tool/query_dataset.py |    11 +
 .../mcp_service/dataset/tool/restore_dataset.py    |   258 +
 .../mcp_service/dataset/tool/update_dataset.py     |   340 +
 .../dataset/tool/update_dataset_metric.py          |     5 +
 superset/mcp_service/dataset_scope.py              |   265 +
 superset/mcp_service/explore/schemas.py            |     5 +-
 .../explore/tool/generate_explore_link.py          |     7 +-
 superset/mcp_service/flask_singleton.py            |    11 +
 superset/mcp_service/mcp_config.py                 |    97 +-
 superset/mcp_service/middleware.py                 |  1119 +-
 superset/mcp_service/privacy.py                    |     1 +
 superset/mcp_service/semantic_layer/schemas.py     |    92 +-
 .../semantic_layer/tool/get_compatible_metrics.py  |     3 +
 .../mcp_service/semantic_layer/tool/get_table.py   |   228 +-
 .../semantic_layer/tool/list_metrics.py            |    12 +-
 superset/mcp_service/server.py                     |   338 +-
 superset/mcp_service/simple_proxy.py               |     6 +-
 superset/mcp_service/sql_lab/schemas.py            |    28 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |    20 +-
 superset/mcp_service/system/prompts/quickstart.py  |     4 +-
 .../system/resources/instance_metadata.py          |    37 +-
 superset/mcp_service/system/system_utils.py        |    33 +-
 .../mcp_service/system/tool/get_instance_info.py   |    38 +-
 superset/mcp_service/system/tool/get_schema.py     |     7 +-
 superset/mcp_service/system/tool/health_check.py   |     5 +-
 superset/mcp_service/theme/tool/create_theme.py    |    39 +-
 superset/mcp_service/utils/error_builder.py        |   115 +-
 .../{token_utils.py => response_size_utils.py}     |   774 +-
 superset/mcp_service/utils/response_utils.py       |    17 +-
 superset/mcp_service/utils/schema_utils.py         |    27 +-
 superset/mcp_service/utils/serialization.py        |   225 +
 superset/mcp_service/utils/validation.py           |   218 +
 superset/mcp_service/worker.py                     |   897 +
 superset/migrations/shared/migrate_viz/base.py     |     7 +
 .../migrations/shared/migrate_viz/processors.py    |    12 +-
 superset/migrations/shared/security_converge.py    |    34 +
 superset/migrations/shared/utils.py                |     2 +-
 ...4_00-00_f7e8d9c0b1a2_add_theme_editors_table.py |   142 +
 ..._add_uuid_to_annotation_layer_and_annotation.py |   144 +
 ...a339627c_merge_add_theme_editors_table_with_.py |    27 +-
 ...655c0a6_merge_task_dependencies_with_theme_.py} |    36 +-
 ...4fb8bfc1_delete_deprecated_permissions_33272.py |   153 +
 ...a4572f8a_rename_deprecated_permissions_33272.py |   193 +
 ...9e21b84_migrate_databricks_odbc_to_connector.py |     4 +-
 ...0_merge_purge_audit_and_username_index_heads.py |    27 +-
 ..._93d1b4a76c02_add_report_execution_ownership.py |    55 +
 ...e6_merge_deprecated_permissions_with_master.py} |    36 +-
 ...11_merge_theme_editors_and_purge_audit_heads.py |    27 +-
 ...merge_deprecated_permissions_with_master_v2.py} |    36 +-
 ...merge_deprecated_permissions_with_master_v3.py} |    36 +-
 superset/models/annotations.py                     |    19 +-
 superset/models/core.py                            |   290 +-
 superset/models/dashboard.py                       |    93 +-
 superset/models/helpers.py                         |   351 +-
 superset/models/slice.py                           |    31 +-
 superset/models/sql_lab.py                         |    40 +-
 superset/queries/saved_queries/api.py              |     7 +-
 superset/{sql/dialects => realtime}/__init__.py    |    22 +-
 superset/realtime/publish.py                       |    68 +
 superset/reports/models.py                         |     2 +
 superset/reports/notifications/base.py             |     1 +
 superset/reports/notifications/email.py            |    16 +-
 superset/reports/notifications/slack_mixin.py      |     6 +-
 superset/reports/notifications/webhook.py          |     9 +-
 superset/reports/schemas.py                        |    48 +-
 superset/result_set.py                             |    18 +
 superset/security/api.py                           |    13 +-
 superset/security/manager.py                       |   799 +-
 superset/security/password_change.py               |    70 +-
 superset/security/session_invalidation.py          |    16 +-
 superset/semantic_layers/api.py                    |    84 +-
 .../semantic_layers/bundle_schemas.py              |    27 +-
 superset/semantic_layers/import_export.py          |   240 +
 superset/semantic_layers/mapper.py                 |    37 +-
 superset/semantic_layers/masking.py                |   481 +
 superset/semantic_layers/models.py                 |    29 +-
 superset/sql/dialects/__init__.py                  |     2 +
 superset/sql/dialects/databend.py                  |   604 +
 superset/sql/dialects/db2.py                       |    81 +-
 superset/sql/execution/cancellation.py             |   170 +
 superset/sql/execution/celery_task.py              |     3 +-
 superset/sql/execution/executor.py                 |   151 +-
 superset/sql/parse.py                              |   695 +-
 superset/sql_lab.py                                |    18 +-
 superset/sql_validators/__init__.py                |     3 +-
 superset/sql_validators/postgres.py                |    59 -
 superset/sqllab/api.py                             |     7 +
 superset/sqllab/query_render.py                    |     9 +-
 superset/subjects/models.py                        |    19 +
 superset/subjects/utils.py                         |    40 +-
 superset/superset_typing.py                        |    17 +
 superset/tasks/async_queries.py                    |     3 +-
 superset/tasks/deletion_retention.py               |    65 +-
 superset/tasks/export_dashboard_excel.py           |   564 +-
 superset/tasks/manager.py                          |    19 +-
 superset/tasks/query_cancel.py                     |     9 +-
 superset/tasks/scheduler.py                        |    13 +
 superset/tasks/thumbnails.py                       |    66 +-
 superset/tasks/version_history_retention.py        |    33 +-
 superset/templates/superset/spa.html               |    13 +-
 superset/temporary_cache/api.py                    |     3 +-
 superset/themes/api.py                             |    94 +-
 superset/themes/schemas.py                         |    14 +
 superset/translations/ar/LC_MESSAGES/messages.po   |  2951 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |  2830 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |  2761 +-
 superset/translations/de/LC_MESSAGES/messages.po   |  2544 +-
 superset/translations/en/LC_MESSAGES/messages.po   |  2485 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  2568 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |  2880 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |  3130 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |  3364 +-
 superset/translations/it/LC_MESSAGES/messages.po   | 51164 ++++++++++---------
 superset/translations/ja/LC_MESSAGES/messages.po   |  2475 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |  3258 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |  2780 +-
 superset/translations/messages.pot                 |  4282 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  2843 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |  2903 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |  2946 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |  2729 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  2884 +-
 superset/translations/ro/LC_MESSAGES/messages.po   |  2623 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |  2590 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |  2767 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |  3682 +-
 superset/translations/sr/LC_MESSAGES/messages.po   |  2699 +-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |  2701 +-
 superset/translations/ta/LC_MESSAGES/messages.po   |  5993 ++-
 superset/translations/th/LC_MESSAGES/messages.po   |  3083 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |  2556 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |  2793 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |  2702 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  2810 +-
 superset/utils/core.py                             |    72 +-
 superset/utils/csv.py                              |    10 +
 superset/utils/database.py                         |    76 +-
 superset/utils/date_parser.py                      |    69 +-
 superset/utils/dict_import_export.py               |     7 +
 superset/utils/error_sanitization.py               |     1 +
 superset/utils/excel.py                            |    83 +-
 superset/utils/export_storage.py                   |    76 +
 superset/utils/filters.py                          |    98 +-
 superset/utils/gcs.py                              |   101 +
 superset/utils/log.py                              |   101 +-
 superset/utils/network.py                          |   115 +
 superset/utils/number_format.py                    |    10 +-
 superset/utils/oauth2.py                           |   136 +-
 .../utils/pandas_postprocessing/contribution.py    |    48 +-
 superset/utils/pandas_postprocessing/cum.py        |     7 +-
 superset/utils/pandas_postprocessing/pivot.py      |    51 +-
 superset/utils/pandas_postprocessing/utils.py      |    15 +-
 superset/utils/report_execution.py                 |   108 +
 superset/utils/rls.py                              |   269 +-
 superset/utils/s3.py                               |   124 +-
 superset/utils/schema.py                           |    26 +-
 superset/utils/screenshot_utils.py                 |   383 +-
 superset/utils/screenshots.py                      |   427 +-
 superset/utils/webdriver.py                        |   331 +-
 superset/versioning/activity/creation.py           |   173 +
 superset/versioning/activity/impact.py             |    10 +-
 superset/versioning/activity/orchestrator.py       |    32 +
 superset/versioning/activity/queries.py            |    24 +-
 superset/versioning/activity/render.py             |    15 +
 superset/versioning/activity/scope.py              |     4 +-
 superset/versioning/activity/visibility.py         |    84 +-
 superset/versioning/api_helpers.py                 |    70 +-
 superset/versioning/baseline/__init__.py           |     2 +
 superset/versioning/baseline/insertion.py          |    10 +
 superset/versioning/baseline/listener.py           |     3 +-
 superset/versioning/baseline/shadow.py             |     5 +
 superset/versioning/changes/__init__.py            |     4 +
 superset/versioning/changes/listener.py            |   238 +-
 superset/versioning/changes/shadow_queries.py      |    20 +-
 .../versioning/creation_kinds.py                   |    23 +-
 superset/versioning/db_errors.py                   |    75 +
 superset/versioning/membership.py                  |    17 +-
 superset/versioning/metrics.py                     |    37 +-
 superset/versioning/queries.py                     |   198 +-
 superset/versioning/restore.py                     |   410 +-
 superset/versioning/schemas.py                     |    19 +
 superset/versioning/snapshot.py                    |   275 +
 superset/versioning/unit_of_work.py                |    54 +
 superset/versioning/utils.py                       |    40 +-
 superset/views/auth.py                             |    11 +-
 superset/views/base.py                             |    28 +-
 superset/views/base_api.py                         |    83 +-
 superset/views/core.py                             |    28 +-
 superset/views/error_handling.py                   |    18 +-
 superset/views/filters.py                          |    74 +-
 superset/views/users/api.py                        |    29 +-
 superset/views/users/schemas.py                    |    39 +-
 superset/views/utils.py                            |    14 +-
 .../annotation_layers/commands_tests.py            |   750 +
 tests/integration_tests/base_tests.py              |    14 +-
 tests/integration_tests/charts/api_tests.py        |   148 +
 tests/integration_tests/charts/commands_tests.py   |  1648 +-
 .../charts/semantic_save_tests.py                  |   220 +
 .../charts/version_restore_tests.py                |     3 +
 tests/integration_tests/commands_test.py           |    58 +
 tests/integration_tests/core_tests.py              |    80 +-
 tests/integration_tests/dashboards/api_tests.py    |  2958 +-
 .../integration_tests/dashboards/commands_tests.py |   585 +
 .../dashboards/filter_state/api_tests.py           |    75 +
 .../dashboards/soft_delete_tests.py                |     7 +
 .../dashboards/test_theme_integration.py           |     6 +
 tests/integration_tests/databases/api_tests.py     |   208 +-
 .../integration_tests/databases/commands_tests.py  |    19 +-
 tests/integration_tests/datasets/api_tests.py      |   123 +-
 .../deletion_retention/prune_audit_tests.py        |   315 +-
 tests/integration_tests/embedded/test_view.py      |    23 +
 .../extensions/metastore_cache_test.py             |    80 +
 tests/integration_tests/fixtures/importexport.py   |   104 +
 tests/integration_tests/reports/api_tests.py       |    75 +
 .../commands/execute_dashboard_report_tests.py     |     9 +-
 tests/integration_tests/reports/commands_tests.py  |   172 +-
 .../reports/execution_claim_tests.py               |    32 +
 tests/integration_tests/security/api_tests.py      |    28 +
 .../security/row_level_security_tests.py           |   143 +
 tests/integration_tests/security_tests.py          |     8 +
 tests/integration_tests/sql_validator_tests.py     |    36 -
 tests/integration_tests/sqllab_tests.py            |    13 +-
 tests/integration_tests/themes/api_tests.py        |     7 +
 .../integration_tests/themes/test_theme_editors.py |   291 +
 .../versioning/activity_view_tests.py              |    83 +
 .../versioning/activity_write_after_read_tests.py  |   133 +
 .../versioning/conditional_token_lock_tests.py     |   367 +
 .../versioning/creation_row_tests.py               |   323 +
 .../versioning/restore_fails_closed_tests.py       |   634 +
 .../versioning/retention_prune_tests.py            |     2 +-
 .../versioning/versions_api_tests.py               |   108 +-
 .../db_engine_specs/test_clickhouse.py             |    43 +
 tests/testcontainers/db_engine_specs/test_crate.py |    44 +
 .../db_engine_specs/test_databend.py               |    43 +-
 tests/testcontainers/db_engine_specs/test_db2.py   |    16 +-
 tests/testcontainers/db_engine_specs/test_mysql.py |   166 +-
 .../db_engine_specs/test_opensearch.py             |   155 +
 .../testcontainers/db_engine_specs/test_oracle.py  |   107 +
 .../charts/commands/importers/v1/import_test.py    |    32 +-
 .../charts/commands/importers/v1/utils_test.py     |    97 +-
 .../unit_tests/charts/data/test_non_dict_params.py |   116 +
 .../charts/semantic_view_chart_filter_test.py      |   484 +
 tests/unit_tests/charts/test_chart_data_api.py     |   259 +-
 tests/unit_tests/charts/test_client_processing.py  |    55 +
 tests/unit_tests/charts/test_filters.py            |    96 +
 tests/unit_tests/charts/test_schemas.py            |   170 +-
 tests/unit_tests/cli/deletion_retention_test.py    |    30 +-
 tests/unit_tests/commands/chart/create_test.py     |    87 +-
 .../commands/chart/semantic_export_test.py         |   127 +
 .../chart/streaming_export_command_test.py         |    61 +
 tests/unit_tests/commands/chart/update_test.py     |   230 +-
 .../dashboard/export_example_semantic_test.py      |   175 +
 .../commands/dashboard/slug_collision_test.py      |   246 +
 tests/unit_tests/commands/dashboard/update_test.py |    46 +
 tests/unit_tests/commands/databases/oauth2_test.py |    73 +-
 tests/unit_tests/commands/databases/tables_test.py |   165 +
 tests/unit_tests/commands/databases/update_test.py |   323 +-
 tests/unit_tests/commands/databases/utils_test.py  |    58 +
 .../commands/databases/validate_sql_test.py        |    49 +-
 tests/unit_tests/commands/dataset/refresh_test.py  |    37 +-
 tests/unit_tests/commands/dataset/update_test.py   |    69 +-
 .../deletion_retention/test_prune_audit.py         |   757 +-
 tests/unit_tests/commands/export_test.py           |    51 +
 .../commands/importers/v1/assets_test.py           |     4 +-
 .../commands/importers/v1/import_models_test.py    |    93 +
 .../unit_tests/commands/importers/v1/utils_test.py |   230 +-
 tests/unit_tests/commands/report/alert_test.py     |    37 +
 tests/unit_tests/commands/report/create_test.py    |    36 +
 tests/unit_tests/commands/report/execute_test.py   |  1100 +-
 .../commands/report/execution_claim_test.py        |   415 +
 .../report/execution_ownership_migration_test.py   |    87 +
 tests/unit_tests/commands/report/update_test.py    |    10 +-
 .../commands/semantic_layer/create_test.py         |    17 +-
 .../commands/semantic_layer/update_test.py         |   160 +-
 tests/unit_tests/commands/sql_lab/export_test.py   |   113 +
 .../sql_lab/streaming_export_command_test.py       |    74 +
 tests/unit_tests/commands/sql_lab/test_estimate.py |    30 +
 .../commands/test_base_restore_version_command.py  |    84 +
 .../commands/test_update_managed_externally.py     |   403 +
 .../common/test_query_context_factory.py           |   201 +
 .../common/test_query_context_processor.py         |   267 +-
 tests/unit_tests/common/test_tabular_query.py      |    74 +
 tests/unit_tests/common/test_time_shifts.py        |   318 +-
 tests/unit_tests/config_test.py                    |   286 +-
 tests/unit_tests/conftest.py                       |    13 +-
 tests/unit_tests/connectors/sqla/models_test.py    |   588 +-
 tests/unit_tests/connectors/sqla/utils_test.py     |   117 +-
 tests/unit_tests/dao/base_dao_test.py              |    29 +-
 tests/unit_tests/dao/dashboard_test.py             |   386 +-
 tests/unit_tests/dao/test_query_stop_race.py       |    68 +-
 .../unit_tests/daos/test_dataset_dao.py            |    26 +-
 tests/unit_tests/dashboards/api_test.py            |   116 +
 tests/unit_tests/dashboards/datasets_test.py       |   354 +
 .../unit_tests/dashboards/filter_state_api_test.py |    56 +
 tests/unit_tests/dashboards/layout_test.py         |   325 +
 .../dashboards/semantic_view_access_test.py        |   332 +-
 .../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    |   563 +
 .../dashboards/test_excel_export_workbook.py       |   146 +
 tests/unit_tests/databases/api_test.py             |   295 +-
 tests/unit_tests/databases/commands/delete_test.py |    21 +-
 .../databases/dao/related_objects_test.py          |   122 +
 tests/unit_tests/databases/oauth2_api_test.py      |    32 +-
 tests/unit_tests/dataframe_test.py                 |   258 +-
 tests/unit_tests/datasets/api_tests.py             |   216 +-
 tests/unit_tests/datasets/schema_tests.py          |     1 +
 tests/unit_tests/datasource/dao_tests.py           |    16 +
 tests/unit_tests/db_engine_specs/test_base.py      |   429 +-
 tests/unit_tests/db_engine_specs/test_bigquery.py  |    87 +-
 tests/unit_tests/db_engine_specs/test_crate.py     |    83 +-
 tests/unit_tests/db_engine_specs/test_d1.py        |   291 +
 .../unit_tests/db_engine_specs/test_databricks.py  |   369 +-
 .../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    |   145 +
 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 +
 tests/unit_tests/db_engine_specs/test_gsheets.py   |   500 +-
 tests/unit_tests/db_engine_specs/test_ibmi.py      |    76 +
 tests/unit_tests/db_engine_specs/test_impala.py    |   109 +
 tests/unit_tests/db_engine_specs/test_init.py      |   143 +
 tests/unit_tests/db_engine_specs/test_kylin.py     |    50 +
 tests/unit_tests/db_engine_specs/test_lib.py       |    84 +
 tests/unit_tests/db_engine_specs/test_mariadb.py   |    83 +
 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     |   741 +
 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  |    16 +-
 tests/unit_tests/db_engine_specs/test_presto.py    |    14 +-
 .../unit_tests/db_engine_specs/test_shillelagh.py  |   113 +
 tests/unit_tests/db_engine_specs/test_snowflake.py |    54 +-
 tests/unit_tests/db_engine_specs/test_sqlite.py    |    83 +
 tests/unit_tests/db_engine_specs/test_starrocks.py |    73 +-
 tests/unit_tests/db_engine_specs/test_trino.py     |    24 +-
 .../distributed_lock/distributed_lock_tests.py     |    22 +
 tests/unit_tests/explore/form_data_api_test.py     |    80 +
 tests/unit_tests/explore/utils_test.py             |    65 +
 .../unit_tests/extensions/metastore_cache_test.py  |    93 +
 tests/unit_tests/extensions/test_sqlalchemy.py     |    89 +
 tests/unit_tests/initialization/init_views_test.py |   113 +
 tests/unit_tests/initialization_test.py            |    74 +
 tests/unit_tests/jinja_context_test.py             |   192 +
 .../unit_tests/mcp_service/catalog}/__init__.py    |     0
 .../mcp_service/catalog/tool}/__init__.py          |     0
 .../mcp_service/catalog/tool/test_get_catalog.py   |   934 +
 .../mcp_service/chart/test_bubble_chart.py         |   471 +
 .../mcp_service/chart/test_chart_examples.py       |    60 +
 .../mcp_service/chart/test_chart_helpers.py        |   398 +
 .../chart/test_chart_plugin_contract.py            |   762 +
 .../mcp_service/chart/test_chart_utils.py          |   128 +
 tests/unit_tests/mcp_service/chart/test_compile.py |   153 +-
 .../mcp_service/chart/test_gantt_chart.py          |  2821 +
 .../mcp_service/chart/test_gauge_chart.py          |     3 +-
 .../chart/test_histogram_boxplot_charts.py         |    62 +
 .../chart/test_live_chart_datasource.py            |   709 +
 .../mcp_service/chart/test_preview_utils.py        |   336 +-
 .../mcp_service/chart/test_query_result.py         |    71 +
 .../unit_tests/mcp_service/chart/test_registry.py  |    56 +-
 .../mcp_service/chart/test_registry_filters.py     |     9 +
 .../chart/test_time_grain_generic_axes.py          |   365 +
 .../mcp_service/chart/test_treemap_completeness.py |  1437 +
 .../chart/tool/test_column_suggestions.py          |   617 +
 .../mcp_service/chart/tool/test_generate_chart.py  |    98 +-
 .../mcp_service/chart/tool/test_get_chart_data.py  |   304 +-
 .../mcp_service/chart/tool/test_get_chart_info.py  |    29 +-
 .../chart/tool/test_get_chart_info_permalink.py    |   454 +
 .../chart/tool/test_get_chart_preview.py           |   154 +
 .../mcp_service/chart/tool/test_get_chart_sql.py   |   165 +
 .../chart/tool/test_get_chart_type_schema.py       |    36 +
 .../mcp_service/chart/tool/test_list_charts.py     |     4 +-
 .../mcp_service/chart/tool/test_update_chart.py    |   158 +-
 .../chart/tool/test_update_chart_preview.py        |   130 +-
 .../validation/test_column_name_normalization.py   |    65 +
 .../common/test_time_range_validation.py           |    41 +-
 .../dashboard/test_dashboard_schemas.py            |   319 +
 .../dashboard/test_layout_validation.py            |   174 +
 .../mcp_service/dashboard/test_permalink.py        |   123 +-
 .../tool/test_add_chart_to_existing_dashboard.py   |    98 +
 .../dashboard/tool/test_apply_dashboard_filters.py |  2153 +
 .../dashboard/tool/test_dashboard_generation.py    |   241 +-
 .../dashboard/tool/test_dashboard_tools.py         |   306 +-
 .../dashboard/tool/test_duplicate_dashboard.py     |    76 +-
 .../dashboard/tool/test_get_dashboard_data.py      |   480 +
 .../dashboard/tool/test_get_dashboard_datasets.py  |   344 +-
 .../dashboard/tool/test_get_dashboard_layout.py    |   744 +-
 .../dashboard/tool/test_manage_native_filters.py   |   351 +
 .../tool/test_remove_chart_from_dashboard.py       |    44 +
 .../dashboard/tool/test_update_dashboard.py        |    78 +-
 .../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 |   298 +-
 .../dataset/tool/test_delete_dataset.py            |   340 +
 .../tool/test_list_datasets_deleted_state.py       |   206 +
 .../mcp_service/dataset/tool/test_query_dataset.py |   111 +-
 .../dataset/tool/test_restore_dataset.py           |   384 +
 .../dataset/tool/test_update_dataset.py            |   574 +
 .../dataset/tool/test_update_dataset_metric.py     |    52 +
 .../explore/tool/test_generate_explore_link.py     |    74 +
 .../mcp_service/query/tool/test_query_tools.py     |     2 +-
 .../saved_query/tool/test_saved_query_tools.py     |     2 +-
 .../tool/test_get_compatible_metrics.py            |    14 +-
 .../semantic_layer/tool/test_get_table.py          |   856 +-
 .../semantic_layer/tool/test_list_metrics.py       |   245 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   126 +-
 .../system/resources/test_instance_metadata.py     |   144 +
 .../system/tool/test_get_current_user.py           |     6 +-
 .../mcp_service/test_auth_user_resolution.py       |    48 +-
 .../mcp_service/test_chart_tool_inventory.py       |   351 +
 .../mcp_service/test_composite_token_verifier.py   |   105 +-
 .../unit_tests/mcp_service/test_dashboard_scope.py |  1502 +
 .../mcp_service/test_dashboard_scope_sql.py        |   674 +
 tests/unit_tests/mcp_service/test_dataset_scope.py |   504 +
 .../mcp_service/test_error_classification.py       |   678 +
 .../test_isdigit_isdecimal_regression.py           |   149 +
 .../unit_tests/mcp_service/test_main_entrypoint.py |     7 +-
 tests/unit_tests/mcp_service/test_mcp_caching.py   |    67 +-
 tests/unit_tests/mcp_service/test_mcp_config.py    |    16 +
 .../unit_tests/mcp_service/test_mcp_docstrings.py  |   128 +
 tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py |   123 +-
 tests/unit_tests/mcp_service/test_mcp_server.py    |   106 +-
 .../mcp_service/test_mcp_tool_registration.py      |   447 +-
 tests/unit_tests/mcp_service/test_middleware.py    |   918 +-
 .../mcp_service/test_middleware_logging.py         |    16 +-
 .../mcp_service/test_rbac_tool_enforcement.py      |    38 +-
 .../mcp_service/test_response_serialization.py     |   321 +
 .../test_sanitization_warning_inputs.py            |    80 +
 .../test_tool_description_constraints.py           |   655 +
 .../unit_tests/mcp_service/test_tool_inventory.py  |   228 +
 .../mcp_service/test_tool_search_transform.py      |   881 +-
 .../mcp_service/test_validation_contract.py        |   511 +
 tests/unit_tests/mcp_service/test_worker.py        |   878 +
 .../mcp_service/test_worker_metadata_pool.py       |  1000 +
 .../mcp_service/theme/tool/test_create_theme.py    |    89 +-
 ..._token_utils.py => test_response_size_utils.py} |   568 +-
 .../mcp_service/utils/test_response_utils.py       |    24 +
 .../mcp_service/utils/test_serialization.py        |   294 +
 .../migrations/shared/security_converge_test.py    |   218 +
 .../migrations/test_add_theme_editors.py           |   166 +
 .../test_deprecated_permissions_33272.py           |   420 +
 .../migrations/test_single_migration_head.py       |    19 +-
 .../unit_tests/migrations/viz/table_v1_v2_test.py  |    42 +
 tests/unit_tests/models/core_test.py               |   623 +-
 tests/unit_tests/models/dashboard_test.py          |    41 +-
 .../unit_tests/models/helpers_rls_rollback_test.py |    80 +
 tests/unit_tests/models/helpers_test.py            |   183 +-
 .../models/select_alias_shadowing_test.py          |   184 +
 tests/unit_tests/models/slice_test.py              |   108 +-
 tests/unit_tests/models/sql_lab_test.py            |    62 +-
 .../models/test_virtual_dataset_format.py          |    90 +-
 .../pandas_postprocessing/test_aggregate.py        |    21 +
 .../pandas_postprocessing/test_contribution.py     |   106 +
 tests/unit_tests/pandas_postprocessing/test_cum.py |    35 +
 .../unit_tests/pandas_postprocessing/test_pivot.py |   339 +
 .../reports/notifications/email_tests.py           |    38 +-
 .../reports/notifications/slack_tests.py           |    18 +
 .../reports/notifications/webhook_tests.py         |    71 +-
 tests/unit_tests/reports/schemas_test.py           |   111 +
 tests/unit_tests/result_set_test.py                |   135 +-
 .../scheduled_docker_image_refresh_test.py         |    65 -
 tests/unit_tests/scripts/change_detector_test.py   |    87 +
 tests/unit_tests/scripts/docker_cache_ref_test.py  |    90 +
 .../scripts/docker_release_target_test.py          |   177 +
 .../scripts/translations/babel_update_test.py      |   355 +
 .../scripts/translations/check_pot_drift_test.py   |   238 +
 tests/unit_tests/security/guest_rls_test.py        |   369 +-
 tests/unit_tests/security/manager_test.py          |  1463 +-
 .../security/test_guest_token_empty_filter.py      |   115 +
 tests/unit_tests/security/test_password_change.py  |   166 +-
 .../security/test_permission_instructions_link.py  |     6 +-
 .../security/test_session_invalidation.py          |    18 +
 .../test_superset_user_api_subject_sync.py         |    23 +
 tests/unit_tests/semantic_layers/api_test.py       |   362 +-
 .../semantic_layers/connections_access_test.py     |   402 +
 .../fixtures/snowflake_configuration.json          |   172 +
 .../semantic_layers/import_export_test.py          |   921 +
 tests/unit_tests/semantic_layers/mapper_test.py    |   218 +-
 tests/unit_tests/semantic_layers/masking_test.py   |   870 +
 tests/unit_tests/semantic_layers/models_test.py    |   395 +
 .../semantic_layers/provider_masking_test.py       |   107 +
 .../semantic_layers/selection_identity_test.py     |   293 +
 .../semantic_layers/values_endpoint_test.py        |    25 +-
 .../unit_tests/soft_delete}/__init__.py            |     0
 .../soft_delete/test_restore_purge_hoist.py        |   268 +
 .../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         |     3 +
 .../unit_tests/sql/execution/test_cancellation.py  |   165 +
 tests/unit_tests/sql/execution/test_celery_task.py |    42 +
 tests/unit_tests/sql/execution/test_executor.py    |   957 +-
 tests/unit_tests/sql/parse_tests.py                |   667 +
 tests/unit_tests/sql_lab_test.py                   |   269 +-
 tests/unit_tests/sqllab/api_test.py                |    45 +
 tests/unit_tests/subjects/test_filters.py          |    25 +
 tests/unit_tests/subjects/test_raise_for_access.py |   204 +
 .../subjects/test_report_executor_remediation.py   |   148 +
 tests/unit_tests/subjects/test_utils.py            |    80 +
 tests/unit_tests/tasks/test_async_queries.py       |    43 +
 tests/unit_tests/tasks/test_deletion_retention.py  |   377 +-
 .../tasks/test_export_dashboard_excel.py           |   797 +-
 .../tasks/test_scheduler_soft_timeout.py           |    17 +
 tests/unit_tests/tasks/test_thumbnails.py          |    75 +
 .../tasks/test_version_history_retention.py        |   223 +-
 tests/unit_tests/test_mcp_simple_proxy.py          |    45 +
 tests/unit_tests/test_realtime_publish.py          |   124 +
 tests/unit_tests/themes/api_test.py                |     6 +
 tests/unit_tests/themes/commands_test.py           |    22 +-
 .../sk_sql_lab_progress_message_test.py            |    64 +
 tests/unit_tests/utils/create_zip_tests.py         |    84 +
 tests/unit_tests/utils/date_parser_tests.py        |   171 +
 tests/unit_tests/utils/excel_tests.py              |    38 +-
 tests/unit_tests/utils/filters_test.py             |    43 +-
 tests/unit_tests/utils/gcs_tests.py                |   120 +
 tests/unit_tests/utils/log_tests.py                |   150 +-
 tests/unit_tests/utils/number_format_test.py       |    26 +
 tests/unit_tests/utils/oauth2_tests.py             |   190 +
 tests/unit_tests/utils/rls_test.py                 |    36 +
 tests/unit_tests/utils/s3_tests.py                 |   102 +-
 tests/unit_tests/utils/screenshot_test.py          |   336 +
 tests/unit_tests/utils/test_core.py                |    65 +-
 tests/unit_tests/utils/test_database.py            |   110 +-
 tests/unit_tests/utils/test_network.py             |    81 +-
 tests/unit_tests/utils/test_report_execution.py    |    64 +
 .../unit_tests/utils/test_screenshot_cache_fix.py  |    79 +
 tests/unit_tests/utils/test_screenshot_utils.py    |   455 +-
 tests/unit_tests/utils/webdriver_test.py           |   450 +-
 tests/unit_tests/versioning/test_activity.py       |   425 +-
 .../unit_tests/versioning/test_api_feature_flag.py |   167 +
 .../versioning/test_capture_gap_restore.py         |   809 +
 tests/unit_tests/versioning/test_db_errors.py      |   205 +-
 tests/unit_tests/versioning/test_listener.py       |   651 +-
 tests/unit_tests/versioning/test_restore.py        |   321 +-
 .../unit_tests/versioning/test_retention_races.py  |     4 +
 .../unit_tests/versioning/test_runtime_capture.py  |   396 +
 tests/unit_tests/versioning/test_shadow_queries.py |    18 +-
 .../versioning/test_version_info_locking.py        |   108 +
 tests/unit_tests/views/test_auth_login.py          |    77 +
 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_handling.py      |   136 +-
 tests/unit_tests/views/test_i18n_constants.py      |   640 +
 tests/unit_tests/views/test_utils.py               |    69 +-
 1555 files changed, 268306 insertions(+), 78954 deletions(-)
 delete mode 160000 .github/actions/chart-testing-action
 create mode 100644 .github/workflows/chromatic.yml
 create mode 100644 .github/workflows/python-nightly-canary.yml
 delete mode 100644 .github/workflows/scheduled-docker-image-refresh.yml
 delete mode 100644 .github/workflows/superset-playwright.yml
 create mode 100644 .grype.yaml
 create mode 100644 docs/admin_docs/configuration/google-sheets.mdx
 create mode 100644 docs/docs/using-superset/semantic-member-selections.mdx
 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
 create mode 100644 scripts/translations/check_pot_drift.py
 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
 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/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
 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-core/src/chart/components/Matrixify/virtualizationEvents.ts
 rename superset-frontend/{ => packages/superset-ui-core}/src/components/Descriptions/index.tsx (100%)
 copy superset-frontend/{ => packages/superset-ui-core}/src/components/Splitter/index.tsx (100%)
 copy 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/test/connection/SupersetClientCsrfRecovery.test.ts
 create mode 100644 superset-frontend/playwright/components/core/Radio.ts
 create mode 100644 superset-frontend/playwright/components/modals/SaveChartModal.ts
 create mode 100644 superset-frontend/playwright/helpers/embeddedAppServer.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/dashboard-native-filter-url-key.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
 create mode 100644 superset-frontend/playwright/tests/explore/cross-referenced-dashboards.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
 rename superset-frontend/playwright/tests/{experimental => }/explore/results-tab-reuse.spec.ts (87%)
 rename superset-frontend/{cypress-base/cypress/utils/urls.ts => plugins/plugin-chart-ag-grid-table/src/utils/mainComparison.ts} (56%)
 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/util/pieColors.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-echarts/src/Candlestick/EchartsCandlestick.tsx
 copy superset-frontend/{src/filters/components/Time/types.ts => plugins/plugin-chart-echarts/src/Candlestick/buildQuery.ts} (54%)
 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/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/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/Histogram/transformProps.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
 copy superset-frontend/{packages/superset-ui-core/types/ace-builds.d.ts => plugins/plugin-chart-table/src/utils/headerGroups.ts} (69%)
 create mode 100644 superset-frontend/plugins/plugin-chart-table/test/headerGroups.test.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.test.tsx
 delete mode 100644 superset-frontend/scripts/copyAssets.js
 copy superset-frontend/{plugins/plugin-chart-echarts/src/Pie/EchartsPie.tsx => scripts/po2json-cli.js} (55%)
 create mode 100644 superset-frontend/scripts/po2json.js
 create mode 100644 superset-frontend/spec/scripts/po2json.test.ts
 create mode 100644 superset-frontend/src/components/ErrorMessage/CsrfErrorMessage.test.tsx
 copy superset-frontend/src/{filters/components/Range/index.ts => components/ErrorMessage/CsrfErrorMessage.tsx} (50%)
 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/dashboard/actions/dashboardInfo.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.lateFieldMount.test.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/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/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/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/useDashboardFilterSync.test.tsx
 create mode 100644 superset-frontend/src/dashboard/useDashboardFilterSync.ts
 rename superset-frontend/src/{components/TimePicker/index.tsx => dashboard/util/embeddedLayout.ts} (60%)
 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/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/ComparisonRangeLabel.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ControlPopover/PopoverTriggerAnchors.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/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
 rename superset-frontend/src/{components/Splitter/index.tsx => explore/components/controls/HeaderGroupsControl/index.ts} (79%)
 copy superset-frontend/src/{components/Datasource/components/CollectionTable/CollectionTable.test.tsx => explore/components/controls/HeaderGroupsControl/types.ts} (53%)
 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/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/controlUtils/getSectionsToRender.test.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/userInfo/UserInfoModal.test.tsx
 create mode 100644 superset-frontend/src/features/users/UserListModal.test.tsx
 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/pages/DatabaseList/DatabaseList.datasetDependents.test.tsx
 create mode 100644 superset-frontend/src/pages/DatasetList/DatasetList.connectionPermissions.test.tsx
 create mode 100644 superset-frontend/src/utils/colorScheme.test.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
 create mode 100644 superset/commands/annotation_layer/export.py
 copy {scripts => superset/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
 create mode 100644 superset/commands/report/execution_claim.py
 create mode 100644 superset/commands/semantic_layer/utils.py
 create mode 100644 superset/commands/soft_delete_collisions.py
 create mode 100644 superset/commands/theme/create.py
 create mode 100644 superset/common/utils/time_grain_utils.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
 copy {scripts => superset/mcp_service/catalog}/__init__.py (100%)
 create mode 100644 superset/mcp_service/catalog/schemas.py
 copy superset/{sql/dialects => mcp_service/catalog/tool}/__init__.py (68%)
 create mode 100644 superset/mcp_service/catalog/tool/get_catalog.py
 create mode 100644 superset/mcp_service/chart/plugins/bubble.py
 create mode 100644 superset/mcp_service/chart/plugins/gantt.py
 create mode 100644 superset/mcp_service/chart/treemap_preview.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_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
 rename superset/mcp_service/utils/{token_utils.py => response_size_utils.py} (53%)
 create mode 100644 superset/mcp_service/utils/serialization.py
 create mode 100644 superset/mcp_service/utils/validation.py
 create mode 100644 superset/mcp_service/worker.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
 copy docker/docker-entrypoint-initdb.d/cypress-init.sh => superset/migrations/versions/2026-09-04_19-03_aa5fa339627c_merge_add_theme_editors_table_with_.py (65%)
 mode change 100755 => 100644
 copy superset/{sql/dialects/__init__.py => migrations/versions/2026-09-09_00-00_0884f655c0a6_merge_task_dependencies_with_theme_.py} (67%)
 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
 copy docker/docker-entrypoint-initdb.d/cypress-init.sh => superset/migrations/versions/2026-09-15_06-50_e2f3a1b9c640_merge_purge_audit_and_username_index_heads.py (62%)
 mode change 100755 => 100644
 create mode 100644 superset/migrations/versions/2026-09-16_00-00_93d1b4a76c02_add_report_execution_ownership.py
 copy superset/{sql/dialects/__init__.py => migrations/versions/2026-09-16_00-01_2ce579e91ae6_merge_deprecated_permissions_with_master.py} (67%)
 copy docker/docker-entrypoint-initdb.d/cypress-init.sh => superset/migrations/versions/2026-09-16_22-55_60f94cd6cd11_merge_theme_editors_and_purge_audit_heads.py (63%)
 mode change 100755 => 100644
 copy superset/{sql/dialects/__init__.py => migrations/versions/2026-09-17_00-00_53a7abc31422_merge_deprecated_permissions_with_master_v2.py} (67%)
 copy superset/{sql/dialects/__init__.py => migrations/versions/2026-09-23_00-00_95d8a99c822e_merge_deprecated_permissions_with_master_v3.py} (67%)
 copy superset/{sql/dialects => realtime}/__init__.py (66%)
 create mode 100644 superset/realtime/publish.py
 copy tests/unit_tests/utils/log_tests.py => superset/semantic_layers/bundle_schemas.py (54%)
 create mode 100644 superset/semantic_layers/import_export.py
 create mode 100644 superset/semantic_layers/masking.py
 create mode 100644 superset/sql/dialects/databend.py
 create mode 100644 superset/sql/execution/cancellation.py
 delete mode 100644 superset/sql_validators/postgres.py
 create mode 100644 superset/utils/export_storage.py
 create mode 100644 superset/utils/gcs.py
 create mode 100644 superset/versioning/activity/creation.py
 copy docker/docker-entrypoint-initdb.d/cypress-init.sh => superset/versioning/creation_kinds.py (64%)
 mode change 100755 => 100644
 create mode 100644 superset/versioning/snapshot.py
 create mode 100644 superset/versioning/unit_of_work.py
 create mode 100644 tests/integration_tests/annotation_layers/commands_tests.py
 create mode 100644 tests/integration_tests/charts/semantic_save_tests.py
 create mode 100644 tests/integration_tests/reports/execution_claim_tests.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/creation_row_tests.py
 create mode 100644 tests/integration_tests/versioning/restore_fails_closed_tests.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_opensearch.py
 create mode 100644 tests/unit_tests/charts/data/test_non_dict_params.py
 create mode 100644 tests/unit_tests/charts/semantic_view_chart_filter_test.py
 create mode 100644 tests/unit_tests/commands/chart/semantic_export_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/export_example_semantic_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/slug_collision_test.py
 create mode 100644 tests/unit_tests/commands/importers/v1/import_models_test.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/sql_lab/export_test.py
 create mode 100644 tests/unit_tests/commands/test_update_managed_externally.py
 rename docker/docker-entrypoint-initdb.d/cypress-init.sh => tests/unit_tests/daos/test_dataset_dao.py (63%)
 mode change 100755 => 100644
 create mode 100644 tests/unit_tests/dashboards/datasets_test.py
 create mode 100644 tests/unit_tests/dashboards/layout_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/databases/dao/related_objects_test.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_ibmi.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_lib.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_shillelagh.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/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/test_bubble_chart.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_gantt_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_query_result.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_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_get_chart_info_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_get_dashboard_data.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_update_dataset.py
 create mode 100644 tests/unit_tests/mcp_service/system/resources/test_instance_metadata.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_mcp_docstrings.py
 create mode 100644 tests/unit_tests/mcp_service/test_response_serialization.py
 create mode 100644 tests/unit_tests/mcp_service/test_sanitization_warning_inputs.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
 rename tests/unit_tests/mcp_service/utils/{test_token_utils.py => test_response_size_utils.py} (60%)
 create mode 100644 tests/unit_tests/mcp_service/utils/test_serialization.py
 create mode 100644 tests/unit_tests/migrations/shared/security_converge_test.py
 create mode 100644 tests/unit_tests/migrations/test_add_theme_editors.py
 create mode 100644 tests/unit_tests/migrations/test_deprecated_permissions_33272.py
 copy superset/sql_validators/__init__.py => tests/unit_tests/migrations/test_single_migration_head.py (64%)
 create mode 100644 tests/unit_tests/models/helpers_rls_rollback_test.py
 create mode 100644 tests/unit_tests/models/select_alias_shadowing_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/test_guest_token_empty_filter.py
 create mode 100644 tests/unit_tests/semantic_layers/connections_access_test.py
 create mode 100644 tests/unit_tests/semantic_layers/fixtures/snowflake_configuration.json
 create mode 100644 tests/unit_tests/semantic_layers/import_export_test.py
 create mode 100644 tests/unit_tests/semantic_layers/masking_test.py
 create mode 100644 tests/unit_tests/semantic_layers/provider_masking_test.py
 create mode 100644 tests/unit_tests/semantic_layers/selection_identity_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_cancellation.py
 create mode 100644 tests/unit_tests/subjects/test_report_executor_remediation.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/create_zip_tests.py
 create mode 100644 tests/unit_tests/utils/gcs_tests.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_runtime_capture.py
 create mode 100644 tests/unit_tests/versioning/test_version_info_locking.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_i18n_constants.py