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

rusackas pushed a change to branch fix/annotation-cache-scope
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 4e7dee066cd fix(charts): never cache annotation data under an 
unresolved scope
     add bc3698b5d64 test(explore): port remaining deleted Cypress explore 
specs to RTL (#44838)
     add 2872d16ee65 test(frontend): await the userEvent calls that needed 
restructuring (#44799)
     add 7fea33761b8 fix(chart): wrap raw pandas TypeError/DataError from 
post-processing as QueryObjectValidationError (#44463)
     add 3f7d01aaafc fix(reports): catch TypeError when validating non-string 
extra.dashboard.anchor (#44404)
     add ece8b8bd7b2 fix(import): avoid UnboundLocalError when load_yaml fails 
during load_configs (SC-121288) (#44390)
     add 47ba8fc8014 fix(api): return 401 not 500 for auth errors in 
CurrentUserRestApi (SC-120417) (#44213)
     add ef2c05c0900 fix(security): guard is_guest_user against 
NoAuthorizationError on unauthenticated error paths (#43826)
     add f9d67e1a118 fix: downgrade deprecated query_object field warnings to 
info (#43520)
     add 396030d87e0 docs: remove stale Selenium references after 
Playwright-only switch (#44243)
     add 3fa06db85b6 fix(mcp): include feature_availability in 
instance://metadata resource (#44891)
     add 52d8b405c99 fix(echarts): recognize Date and ISO-string temporal 
x-axis values in getXAxisDomain (#44818)
     add 15bde2a3016 fix(native-filters): keep cascade dependency gate in sync 
with live filter type (#44366)
     add 11bdbc91f37 feat(ci): add Chromatic visual regression testing for 
Storybook (#44103)
     add 8d026b4a568 fix(mcp): skip dashboard live updates when websockets are 
disabled or realtime access is missing (#44796)
     add 7260916b905 test(dashboard): cover "View as table" end-to-end for a 
view-as-table-only role (#44881)
     add 646de3a46b5 test(clickhouse): cover GROUP BY ALL against a real 
instance (#40482) (#44879)
     add ba453d3cb43 fix(sec): sanitize HTML text before shown as impact item's 
label (#43825)
     add 2220f53d9db fix(chart): accept quarter and day in end-of time ranges 
(#43204)
     add 62ab4cae23d fix(sql-lab): avoid duplicate generated result column 
names (#44189)
     add 743a27f7ed3 fix(chart): sort Heatmap Y-axis by default when unset 
(#44588)
     add 87bb752814a fix(select): remove Space wrapper from optionRender to fix 
option label truncation (#44357)
     add d6689283942 fix(sql-lab): use function valueGetter for GridTable row 
numbers (#41574)
     add 10356c30edb fix(mcp): stop partial-update tools from advertising null 
defaults (#44573)
     add 6966c1f6ccb fix(cartodiagram): share Pie colors across locations in 
Explore (#44794)
     add 81466987cbb fix(mcp): use create_proxy in simple_proxy for fastmcp 4 
compatibility (#44787)
     add ea79c63e878 fix(post-processing): stop treating gaps as zero for 
cumprod, cummin and cummax (#44828)
     add f1ae8909d85 fix(import): remove duplicate config redefinition in 
load_configs (#44932)
     add afa98f3391a perf(deletion-retention): one window pass for repeat 
predicate (#44349)
     add 3a9becd5cba chore(deps): bump markdown from 3.10.3 to 3.11 (#44941)
     add a65fe06c513 chore(deps-dev): update google-cloud-storage requirement 
from >=3.14.1 to >=3.15.0 (#44940)
     add 3960407334b chore(deps): bump cachetools from 7.1.8 to 7.2.0 (#44939)
     add dbd3e28aa3e chore(deps-dev): update databricks-sql-connector 
requirement from <4.6.0,>=4.5.0 to >=4.6.0,<4.7.0 (#44937)
     add 8ba26679671 chore(deps): bump holidays from 0.104 to 0.105 (#44936)
     add 291d098917b chore(deps): bump sqlglot from 30.18.0 to 30.19.0 (#44935)
     add 98be2d17dad chore(deps-dev): bump clickhouse-connect from 1.8.0 to 
1.9.0 (#44934)
     add 549508b340b fix(mcp): preserve calling constraints in compact tool 
discovery (#44656)
     add f2ff458acde feat: Add GUI for label_colors in Dashboard Properties 
Modal (#39434)
     add 3fccf299469 test(opensearch): cover pagination and Content-Type 
regression against a real instance (#44924)
     add acdd390b354 fix(frontend): finish migrating off direct antd imports, 
enforce it in custom rules (#44927)
     add e72d63b20d8 test(mysql): cover require_mysql_tls fail-closed and 
verified-TLS paths (#44910)
     add e3bdb3894c0 test(oracle): cover cancel-query against a real running 
statement (#44908)
     add 5d158e7e795 test(cratedb): cover epoch-ms timestamp decoding against a 
real instance (#44904)
     add cdafffeacf5 fix(deps): restore dompurify 3.4.16 in frontend lockfile 
(#44960)
     add ccae7784982 fix(mypy): ignore false-positive union-attr on 
Slice.uuid.in_() (#44944)
     add 68f19947a80 docs(mcp): document semantic-layer MCP tools (#44130)
     add b5b8a9f3bd0 fix(dataset-editor): preserve edits across sort and sync 
external SQL changes (#44858)
     add 7a2913e2dbe fix(sqlite): write midnight as a bare date for DATE 
columns in time filters (#44805)
     add 46b9ba9587e chore(deps): bump dawidd6/action-download-artifact from 25 
to 26 (#44977)
     add 3ac856ceb1a chore(deps): bump chromaui/action from 18.7.3 to 18.10.1 
(#44973)
     add 7a62b3a6535 chore(deps-dev): bump postcss-styled-syntax from 0.7.2 to 
0.7.3 in /superset-frontend (#44980)
     add bc69daa2328 chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in 
/superset-frontend (#44979)
     add fee8e1b9e52 chore(deps-dev): bump webpack-sources from 3.5.3 to 3.6.0 
in /superset-frontend (#44978)
     add 343dcb09353 chore(deps): bump chalk from 6.0.0 to 6.0.1 in 
/superset-frontend (#44976)
     add d62fc92273b chore(deps-dev): bump vitest from 5.0.1 to 5.0.2 in 
/superset-embedded-sdk (#44974)
     add c00f6a7aabc chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in 
/superset-embedded-sdk (#44972)
     add 303a68b8e2c chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in 
/superset-websocket (#44971)
     add 83ea1d9e6f5 chore(deps-dev): bump vitest from 5.0.1 to 5.0.2 in 
/superset-websocket (#44970)
     add 31d2d06bba3 chore(deps): bump ws from 8.21.3 to 8.22.0 in 
/superset-websocket (#44969)
     add 7fecceb6901 chore: remove unused INCLUDE_FIREFOX build arg and dead 
screenshot config (#44245)
     add 09015bb4bff fix(explore): preserve pending column configuration edits 
(#44931)
     add 48ac1bf8c69 fix(mcp): return actionable authorized column suggestions 
(#44603)
     add 0616ba68afe chore(deps-dev): bump the swc group in /superset-frontend 
with 2 updates (#44975)
     add 13861568aaa chore(build): remove unused `polyline` Python dep (#44961)
     add 895bc203601 fix: full CSV download in AgGrid (#41696)
     add 3e50c2c1287 feat(mcp): support filter_range and filter_timegrain 
filters (#44893)
     add 0c6373cd9f0 fix(models): silence pandas silent-downcasting 
FutureWarning in normalize_df (#44897)
     add 2fdf756cf1a fix(mcp): avoid duplicate SQL execution results (#44949)
     add ce39d221aac fix(charts): return 404 when chart export hits an 
inaccessible dataset (#44900)
     add 13493a3e47f fix(mcp): allow bounding dashboard dataset columns (#44951)
     add 05a3d4b880f feat(mcp): return the Big Number headline from chart and 
dashboard data (#44948)
     add 8ff884059fd fix(logging): stop logging tracebacks for client-side HTTP 
errors (#44666)
     add 31e3c9a1944 fix(ag-grid-table): refresh totals when summary 
aggregation changes (#44612)
     add 71ee07e2e2b feat(ci): conditionally run CodeQL analysis workflows only 
when there are detected JS/Python file changes (#44699)
     add c30ae9fd12d fix(embedded): refuse guest row-level security on semantic 
views (#44987)
     add 9a345ad0112 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in 
/superset-websocket (#45005)
     add 7b463ddee08 feat(ag-grid-table): expand JSON values in table cells 
(#44907)
     add e0ff1074879 chore(i18n): update pt/pt_BR translations and rebuild 
translation index (#43022)
     add 6aebcd2452d fix(dashboards): close CSS validation gaps in dashboard 
import and edits (#43666)
     add 7b3ce2cf368 fix(themes): overwrite-import guard, missing index, dedupe 
extra_editors (follow-up to #42404) (#44362)
     add bc1abf498d4 feat(bignumber): add an alignment control (#44554)
     add 518bfbc5115 fix(reports): propagate force flag to dashboard-tab 
permalink report URLs (#44775)
     add 4578ab31ade refactor(list-view): eliminate any usage in ListView.tsx 
and TableCollection (#44208)
     add 7b3e3ad6f7f fix(dashboard,explore): wire addWarningToast into download 
callers (#44154)
     add f9e9ece86f5 chore(deps): bump the rjsf group in /superset-frontend 
with 3 updates (#45004)
     add 9e18d415d92 chore(deps-dev): bump @swc/core from 1.16.2 to 1.16.12 in 
/superset-frontend in the swc group (#45012)
     add 9d348facce9 chore(deps): bump @swc/core from 1.16.2 to 1.16.12 in 
/docs (#45008)
     add 457007b2f82 chore(deps-dev): bump source-map-js from 1.2.1 to 1.2.2 in 
/superset-websocket in the security group across 1 directory (#45028)
     add a5ffac58f44 feat: add global async query playwright tests (#43004)
     add 854d3d59e4d fix(table): omit dormant grains from semantic aggregate 
requests (#44455)
     add 000297a6f07 fix(semantic-layers): offer valid table ordering choices 
(#44806)
     add d6c871a57fb fix(semantic-layers): remove child view permissions when a 
layer is deleted (#44905)
     add 3413a50af05 chore(deps): bump proxy-addr from 2.0.7 to 2.0.8 in 
/superset-websocket/utils/client-ws-app in the security group across 1 
directory (#45027)
     add 3cfc7458670 chore(deps): bump dawidd6/action-download-artifact from 26 
to 27 (#45011)
     add 7330ca4c373 chore(deps): bump source-map-js from 1.2.1 to 1.2.2 in 
/superset-embedded-sdk in the security group across 1 directory (#45024)
     add fcee985241b fix(pivot-table): respect per-metric formatters in result 
aggregation (#44815)
     add 1473d481345 fix(query-context): match an adhoc granularity_sqla by its 
expression (#44773)
     add 17f4c215b37 feat(mcp): allow default values on filter_select native 
filters (#44985)
     add 5a2f4c8e80c feat(mcp): add structured dashboard text component 
management (#44560)
     add 55e39fc5f76 fix(explore): avoid mutating ZoomConfigControl configs 
(#44957)
     add 794b243c543 test(frontend): await remaining userEvent calls and lint 
for un-awaited ones (#44947)
     add 715dc017df1 fix(explore): open SQL Lab in a new tab on Ctrl+click in 
View query modal (#44933)
     add ac3fc943dd3 chore(deps): bump the security group across 1 directory 
with 9 updates (#45026)
     add f88b2ef2595 chore(deps): bump the security group across 1 directory 
with 6 updates (#45025)
     add fc1eeb066af chore(deps-dev): bump wait-on from 9.1.0 to 9.4.0 in 
/superset-frontend (#45015)
     add fc754d0e814 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in 
/superset-frontend (#45014)
     add ee7b7fdc908 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in 
/docs (#45009)
     add 27d5c3655de chore(deps-dev): bump the typescript-eslint group in 
/superset-frontend with 2 updates (#45007)
     add f3da949f61c chore(deps-dev): bump oxfmt from 0.70.0 to 0.71.0 in 
/superset-websocket (#45006)
     add a0f0cb8ae3d feat(mcp): support filter-bar dividers in 
manage_native_filters (#45021)
     add ec1688facd7 fix(mcp): state that dataset tools are SQL-only and point 
to semantic tools (#44994)
     add 388a10efdb1 fix(dashboards): return 404 when dashboard export hits an 
inaccessible chart or dataset (#44929)
     add d526ee4bd1f feat(semantic): add optional metadata refresh SDK contract 
(#44834)
     add 90b0a1a9160 fix(semantic): map layer views as a collection (#44902)
     add 6f6be95995e feat(retention): let a host install purge policies for its 
own soft-delete roots (#44892)
     add fca6bdad57b fix(semantic): reject SQL clauses on semantic views 
(#44899)
     add 888795b90f9 fix(security): bind contextual access checks to the 
datasource type and id (#45002)
     add ae297e910e7 fix(permalink): handle concurrent creation of identical 
dashboard permalinks (#45059)
     add 86a6d1dcf34 chore(deps-dev): bump @types/ws from 8.18.1 to 8.18.2 in 
/superset-websocket (#45045)
     add 9b7797f7b21 chore(deps): bump the storybook group in /docs with 2 
updates (#45046)
     add 735365e2d18 chore(deps-dev): bump the storybook group in 
/superset-frontend with 5 updates (#45047)
     add 11a22e5ceba fix(post-processing): stop duplicating columns in 
_append_columns (#45018)
     add 001cb574e39 feat(plugin-chart-echarts): add a value axis label control 
(#43660)
     add c4bc0b1e0cc fix(layout): restore growable app shell so injected 
content above #app doesn't clip it (#45056)
     add 1cf9569807c feat(pivot-table): collapse row groups by default (#45030)
     add 0cb498d08f2 fix(versioning): refuse a chart restore whose datasource 
no longer exists (#44925)
     add c1908747b16 fix(semantic): hide and ignore series limits that have no 
series columns (#44909)
     add 908d688171d fix(async): show the real error for a failed async chart 
query (#45054)
     add dbd546908a8 feat(semantic-layer): show provider queries from chart 
results (#44206)
     add 100f51240bd perf(security): batch dashboard fallback datasource 
resolution (#44993)
     add d27b7344087 fix(mcp): refuse changes to externally managed dashboards 
in all dashboard tools (#45062)
     add a8a828202f7 fix(versioning): preserve history across savepoint 
rollback (#45033)
     add 9c4ad2497df fix(cache): evict rejected cached GET requests (#45055)
     add bdbddb76dc7 fix(semantic): return a client error for unsupported time 
grains (#45053)
     add 0754a86b3e4 chore(deps-dev): bump vitest from 5.0.2 to 5.0.3 in 
/superset-websocket (#45072)
     add f4c16eb3a4f docs: add DouroECI logo and contributor to In the Wild 
(#45096)
     add 34b3d65cc20 fix(charts): clear perms of charts whose datasource no 
longer exists (#44926)
     add 72ee1fd60df fix(date_parser): use pyparsing snake_case API to silence 
PyparsingDeprecationWarning (#45094)
     add b3d8fdb6061 fix(mcp): don't page MCP_ERROR_HOOK for user-class errors 
in the last-resort catch (SC-125493) (#45093)
     add 1ebfea28efc feat: SIP-209 Improved Alerts & Reports (#44992)
     add b2bafd64fa2 chore(ci): configure more grouped dep upgrades across npm 
subprojects  (#44696)
     add b327d57165c fix(explore): skip Ctrl/Cmd+Enter query while controls 
have errors or chart is loading (#44963)
     add c45391c1689 fix(explore): show 0 zoom, latitude and longitude in the 
map view extent tag (#44962)
     add 6d090bec82e fix(explore): honor a controlled ControlPopover open prop 
(#44959)
     add b22144a76d4 fix(native-filters): show a clear error instead of 
"Network error" when filter values fail to load (#44585)
     add e10e268e992 fix(explore): dispatch datasource metadata fetch (#44958)
     add 489a02e3ea3 fix(semantic-layer): fail incomplete or unverified 
semantic query results (#44832)
     add e9862fb4ab2 fix(dashboard): refresh semantic metadata across edits 
(#45052)
     add 2ec20003ed5 chore: Update CODEOWNERS to include @sadpandajoe (#45120)
     add e5c5e918359 feat(mcp): add typed Sunburst chart support (#43771)
     add 4ca736d81c5 fix(semantic-layer): require write access for 
configuration schema enrichment (#45107)
     add 6efc896e5b9 test(dashboard): wait for async submenu and debounced 
validation in flaky tests (#45106)
     add 3bc9e9e479f fix(datasets): accept certification fields on dataset 
column and metric PUT (#45091)
     add cd34cc1019f chore(deps): bump chromaui/action from 18.10.1 to 18.10.2 
(#45134)
     add 1b35374fecb fix(semantic-layer): honor provider preferred time 
dimension (#44997)
     add ffc81d92a2c feat(dashboard): add column allowlist to Group By native 
filter (#43736)
     add 3fc078abe6b fix(soft-delete): preserve a shared datasource permission 
on purge (#45034)
     add a4a0899e92c perf(versioning): defer capture policy until versioned 
work (#44928)
     add 99899bd392f fix(date-parser): reject malformed time ranges instead of 
scanning everything (#45098)
     add 13c5ff8c87f chore(deps-dev): bump wait-on from 9.4.0 to 9.5.1 in 
/superset-frontend (#45048)
     add 61df1692584 chore(deps): bump mapbox-gl from 3.31.0 to 3.32.0 in 
/superset-frontend (#45049)
     add 035ae052525 chore(deps-dev): bump vitest from 5.0.2 to 5.0.3 in 
/superset-embedded-sdk (#45074)
     add 9635e7f1f91 chore(deps): bump the swc group across 2 directories with 
1 update (#45118)
     add 9e7a05e6ed1 chore(deps-dev): bump @types/node in 
/superset-embedded-sdk (#45121)
     add cda7a1e8189 chore(deps): bump swagger-ui-react from 5.33.0 to 5.33.1 
in /docs (#45122)
     add cfb0ed61eb8 chore(deps): bump yargs from 18.1.0 to 18.2.0 in 
/superset-frontend (#45129)
     add a8fc576cfe3 chore(deps-dev): bump oxfmt in /docs (#45119)
     add cb8ff2885a6 fix(permalink): use a shared lock when re-reading a 
concurrently created permalink (#45102)
     add ab2c69f29cd fix(column-config): allow commas in D3 number formats 
(#45145)
     add e538ebfa2c9 feat(mcp): opt-in compact native tools/list and trimmed 
tool guidance (#45084)
     add 64b02eebed4 fix(mcp): add sort_by option to XYChartConfig (#42627) 
(#44464)
     add 1267bd1acee test(semantic-layer): pin layer list scoping to accessible 
layers (#45101)
     add 8aeb2850914 fix(mcp): keep isError through call_tool and test native 
tool surface parity (#45081)
     add d3c47f6212e chore(deps): bump slack-sdk from 3.44.1 to 3.45.0 (#45116)
     add 0edbccc71a8 chore(deps-dev): bump trino from 0.339.0 to 0.340.0 
(#45117)
     add 5e6156a820c chore(deps-dev): bump gevent from 26.8.0 to 26.9.0 (#45115)
     add 461cf9e49af chore(deps): bump sqlalchemy-continuum from 1.7.0 to 1.8.0 
(#45114)
     add 97ce269b962 chore(deps): bump cryptography from 50.0.1 to 50.0.2 
(#45112)
     add 2918a7b94d1 feat(i18n): extract translator context comments from 
source (#44397)
     add 82223373a3a chore(deps-dev): update teradatasql requirement from 
>=20.0.0.68 to >=20.0.0.69 (#45162)
     add d48b8486851 chore(deps): bump msgpack from 1.2.2 to 1.2.3 (#45161)
     add 7e6aa124e1a chore(deps): bump pyjwt from 2.14.0 to 2.15.1 (#45159)
     add 8318398da46 chore(deps): bump the security group across 1 directory 
with 4 updates (#45143)
     add 5faa58e7d2b chore(deps-dev): bump pymssql from 2.4.1 to 2.4.2 (#45156)
     add b9e8188ad60 chore(deps): bump simplejson from 4.1.2 to 4.2.0 (#45158)
     add d7717743b1f test(utils): add unit test for scalar_to_sequence (#45144)
     add f9f2eb283d3 test(sql): pin Druid JSON_VALUE RETURNING parsing (#45131)
     add a55b236a5be fix(semantic-layer): fetch view metadata once per query 
(#45104)
     add 76b62d34fba fix(semantic-layer): preserve nullable integer precision 
in chart data (#45126)
     add 38ad1150ecf feat(retention): cap soft-delete purge and version-history 
prune per run (#45029)
     add 04db66b0f66 feat(semantic-layer): invalidate metadata caches on 
configuration save (#45100)
     add fd2740bec1e fix(charts): avoid loading semantic provider metadata 
before denying chart data access (#45060)
     add e229ea4a543 fix(mcp): resolve saved semantic-view chart sources by 
type (#45067)
     add af7978ae74d docs(mcp): document dashboard owner/role/certification 
governance tools (#43900)
     add bae6d10cebc chore(deps): bump react-resize-detector from 7.1.2 to 
12.3.0 in /superset-frontend (#45124)
     add db7557a7a58 feat(mcp): add typed geographic chart generation (#44148)
     add 0e50b64263f fix(bigquery): filter __NULL__ and __UNPARTITIONED__ from 
max partition query (#44156)
     add aef1f70cdfd chore(deps): bump pyparsing from 3.3.2 to 3.3.3 (#45157)
     add 0ad650c507e chore(deps): bump mako from 1.4.1 to 1.4.3 (#45188)
     add 4dc7ba70ef3 chore(deps-dev): bump jsdom from 30.1.1 to 30.1.2 in 
/superset-embedded-sdk (#45194)
     add 1c116342642 chore(deps-dev): bump jsdom from 30.1.1 to 30.1.2 in 
/superset-frontend (#45201)
     add 713c41e0ba5 chore(deps-dev): bump stylelint from 17.15.0 to 17.16.0 in 
/superset-frontend (#45200)
     add 0c201b4dd2c chore(deps-dev): bump minimizer-webpack-plugin from 5.12.0 
to 5.13.0 in /superset-frontend (#45196)
     add ea235f25b9e chore(deps-dev): bump google-cloud-bigquery from 3.45.2 to 
3.46.1 (#45190)
     add 3579cbc6c68 chore(deps-dev): bump @storybook/test-runner from 0.24.5 
to 0.26.0 in /superset-frontend in the storybook group (#45073)
     add 5e9e6beb4ac chore(deps): bump flask-compress from 1.24 to 1.25 (#45193)
     add e2dd50ab340 chore(deps-dev): bump grpcio from 1.83.1 to 1.84.0 (#45192)
     add 6d39864102a chore(deps): bump @googleapis/sheets from 18.0.1 to 18.1.0 
in /superset-frontend (#45195)
     add bc98688d5ff docs: Improve README clarity and consistency (#38957)
     add 2c8665f9cbc fix(histogram): normalize before accumulating a cumulative 
histogram (#44652)
     add 726c1ef67c9 fix(impala): cancel pending SQL Lab operations through the 
live cursor (#44737)
     add d7dea0e6f5c chore: merge master into fix/annotation-cache-scope
     add 404f14e3a41 test: adapt semantic annotation versioning test to scoped 
annotation key

No new revisions were added by this update.

Summary of changes:
 .github/CODEOWNERS                                 |    8 +-
 .github/dependabot.yml                             |   93 +-
 .github/workflows/bashlib.sh                       |  149 +-
 .github/workflows/chromatic.yml                    |  134 +
 .github/workflows/codeql-analysis.yml              |   11 +-
 .github/workflows/superset-docs-deploy.yml         |    4 +-
 .github/workflows/superset-docs-verify.yml         |    2 +-
 .github/workflows/superset-e2e.yml                 |  169 +
 .github/workflows/testcontainers.yml               |    1 +
 Dockerfile                                         |    8 +-
 README.md                                          |    9 +-
 RESOURCES/INTHEWILD.yaml                           |    3 +-
 UPDATING.md                                        |  197 +
 docker-compose-light.yml                           |    1 -
 docker-compose.yml                                 |    1 -
 docker/.env                                        |    1 -
 docs/admin_docs/configuration/alerts-reports.mdx   |  180 +-
 .../configuration/async-queries-celery.mdx         |    7 +
 docs/admin_docs/configuration/cache.mdx            |   37 +-
 .../configuration/dashboard-performance.mdx        |    4 +-
 docs/admin_docs/configuration/mcp-server.mdx       |  558 +-
 docs/admin_docs/installation/docker-builds.mdx     |    1 -
 .../contributing/development-setup.md              |    3 +-
 docs/developer_docs/contributing/howtos.md         |   94 +-
 .../extensions/contribution-types.md               |   19 +
 docs/developer_docs/extensions/mcp.md              |   81 +
 docs/developer_docs/semantic-layer-cache-clear.md  |  106 +
 .../developer_docs/semantic-result-completeness.md |   70 +
 docs/developer_docs/testing/backend-testing.md     |    3 +-
 .../creating-your-first-dashboard.mdx              |   50 +
 docs/docs/using-superset/embedding.mdx             |    3 +-
 docs/docs/using-superset/exploring-data.mdx        |   26 +
 .../using-superset/exporting-dashboard-data.mdx    |    4 +-
 docs/docs/using-superset/recently-archived.mdx     |  172 +-
 .../using-superset/semantic-member-selections.mdx  |    4 +
 .../docs/using-superset/using-ai-with-superset.mdx |  122 +
 docs/docs/using-superset/version-history.mdx       |   33 +-
 docs/package.json                                  |   14 +-
 docs/static/feature-flags.json                     |    8 +-
 docs/static/img/logos/douroeci.png                 |  Bin 0 -> 22657 bytes
 docs/static/resources/openapi.json                 |  355 +-
 docs/yarn.lock                                     |  722 +-
 pyproject.toml                                     |   61 +-
 requirements/base.in                               |    4 +-
 requirements/base.txt                              |   28 +-
 requirements/development.txt                       |   42 +-
 scripts/change_detector.py                         |    7 +
 scripts/translations/babel_update.sh               |    7 +
 scripts/translations/backfill_po.py                |   79 +-
 scripts/translations/check_pot_drift.py            |   81 +-
 .../src/superset_core/semantic_layers/errors.py    |   42 +
 .../src/superset_core/semantic_layers/layer.py     |   18 +-
 .../src/superset_core/semantic_layers/view.py      |   34 +-
 superset-core/tests/semantic_layers/test_errors.py |   66 +
 .../tests/semantic_layers/test_view.py             |    8 +-
 superset-embedded-sdk/package-lock.json            |  379 +-
 superset-embedded-sdk/package.json                 |    6 +-
 superset-frontend/jest.config.js                   |    2 +-
 superset-frontend/package-lock.json                | 1443 ++--
 superset-frontend/package.json                     |   56 +-
 .../packages/generator-superset/package.json       |    4 +-
 .../superset-core/src/theme/GlobalStyles.test.tsx  |   67 +
 .../superset-core/src/theme/GlobalStyles.tsx       |    9 +-
 .../src/shared-controls/sharedControls.tsx         |   21 +
 .../src/utils/D3Formatting.ts                      |    1 +
 .../packages/superset-ui-core/package.json         |    6 +-
 .../src/chart/models/ChartProps.ts                 |   10 +
 .../components/MetadataBar/MetadataBar.test.tsx    |   40 +-
 .../src/components/MetadataBar/MetadataBar.tsx     |    6 +-
 .../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/Table/VirtualTable.test.tsx     |   10 +-
 .../src/components/Table/VirtualTable.tsx          |    4 +-
 .../TableCollection/TableCollection.stories.tsx    |   22 +-
 .../TableCollection/TableCollection.test.tsx       |   63 +
 .../src/components/TableCollection/index.tsx       |    7 +-
 .../src/components/TableCollection/utils.tsx       |   93 +-
 .../superset-ui-core/src/components/Tag/index.tsx  |    1 +
 .../src/query/buildQueryContext.ts                 |   15 +-
 .../superset-ui-core/src/utils/featureFlags.ts     |    1 +
 .../test/chart/models/ChartProps.test.ts           |   22 +-
 .../test/query/buildQueryContext.test.ts           |   41 +
 .../superset-ui-core/types/react-table-config.d.ts |  149 -
 .../superset-ui-core}/types/react-table.d.ts       |   54 +-
 superset-frontend/playwright.config.ts             |   37 +
 .../playwright/components/core/Select.ts           |   28 +-
 .../tests/dashboard/dashboard-test-helpers.ts      |  464 +-
 .../global-async-query-resilience.spec.ts          |  600 ++
 .../tests/dashboard/global-async-query.spec.ts     |  462 ++
 .../tests/sqllab/global-async-query-sqllab.spec.ts |   78 +
 superset-frontend/playwright/utils/constants.ts    |   18 +
 .../src/AgGridTable/index.tsx                      |    2 +
 .../src/AgGridTableChart.tsx                       |   39 +-
 .../plugin-chart-ag-grid-table/src/consts.ts       |    8 +
 .../src/controlPanel.tsx                           |   14 +
 .../src/renderers/JsonCellRenderer.tsx             |  600 ++
 .../src/renderers/TextCellRenderer.tsx             |   59 +-
 .../src/renderers/jsonCellRowHeight.ts             |   61 +
 .../src/renderers/parseJsonCellValue.ts            |  234 +
 .../src/styles/index.tsx                           |    7 +
 .../src/transformProps.ts                          |    4 +
 .../plugin-chart-ag-grid-table/src/types.ts        |    5 +
 .../src/utils/externalAPIs.ts                      |    2 +
 .../src/utils/isJsonCellActionTarget.ts            |   56 +
 .../src/utils/useColDefs.ts                        |    4 +
 .../test/AgGridTableChart.test.tsx                 |  153 +-
 .../test/JsonCellRenderer.test.tsx                 |  674 ++
 .../test/cellSelectionWiring.test.tsx              |   88 +
 .../test/controlPanel.test.ts                      |    8 +
 .../test/transformProps.test.ts                    |   25 +
 .../src/util/transformPropsUtil.ts                 |    8 +
 .../test/util/pieColors.test.ts                    |  203 +
 .../plugin-chart-country-map/src/CountryMap.ts     |   30 +-
 .../plugin-chart-country-map/src/controlPanel.ts   |   23 +
 .../src/countries/uk.geojson                       |  Bin 477503 -> 477503 
bytes
 .../src/normalizeRegions.ts                        |  129 +
 .../plugin-chart-country-map/src/regions.ts        |  383 +
 .../plugin-chart-country-map/src/transformProps.ts |   53 +-
 .../test/CountryMap.test.tsx                       |  109 +
 .../test/controlPanel.test.ts}                     |   30 +-
 .../test/geographicRendering.test.tsx              |  296 +
 .../test/normalizeRegions.test.ts                  |  251 +
 .../test/transformProps.test.ts                    |  125 +
 .../BigNumber/BigNumberTotal/controlPanel.test.ts  |   10 +
 .../src/BigNumber/BigNumberTotal/controlPanel.ts   |    2 +
 .../BigNumberTotal/transformProps.test.ts          |    2 +
 .../src/BigNumber/BigNumberTotal/transformProps.ts |    2 +
 .../src/BigNumber/BigNumberViz.test.tsx            |  152 +-
 .../src/BigNumber/BigNumberViz.tsx                 |   23 +-
 .../BigNumberWithTrendline/controlPanel.tsx        |    2 +
 .../BigNumberWithTrendline/transformProps.test.ts  |    2 +
 .../BigNumberWithTrendline/transformProps.ts       |    2 +
 .../src/BigNumber/sharedControls.ts                |   19 +
 .../plugin-chart-echarts/src/BigNumber/types.ts    |    4 +
 .../src/Heatmap/controlPanel.tsx                   |   12 +-
 .../src/Heatmap/transformProps.ts                  |   17 +-
 .../plugin-chart-echarts/src/Heatmap/types.ts      |    6 +
 .../src/MixedTimeseries/controlPanel.tsx           |    2 +
 .../src/MixedTimeseries/transformProps.ts          |    3 +
 .../src/MixedTimeseries/types.ts                   |    2 +
 .../plugin-chart-echarts/src/Pie/transformProps.ts |    4 +-
 .../src/Timeseries/Area/controlPanel.tsx           |    2 +
 .../src/Timeseries/EchartsTimeseries.test.tsx      |    1 +
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |    2 +
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |    2 +
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |    2 +
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |    2 +
 .../src/Timeseries/Step/controlPanel.tsx           |    2 +
 .../src/Timeseries/constants.ts                    |    1 +
 .../src/Timeseries/transformProps.ts               |    7 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    1 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   11 +
 .../plugin-chart-echarts/src/utils/formatters.ts   |   40 +-
 .../plugin-chart-echarts/src/utils/series.ts       |   28 +-
 .../test/BoxPlot/buildQuery.test.ts                |   20 +
 .../test/Heatmap/transformProps.test.ts            |   67 +-
 .../test/MixedTimeseries/transformProps.test.ts    |   15 +
 .../test/Rose/buildQuery.test.ts                   |   12 +
 .../test/Timeseries/transformProps.test.ts         |   60 +
 .../test/utils/formatters.test.ts                  |  118 +
 .../plugin-chart-echarts/test/utils/series.test.ts |   96 +-
 .../plugins/plugin-chart-handlebars/package.json   |    2 +-
 .../plugin-chart-horizon/test/buildQuery.test.ts   |   11 +
 .../plugin-chart-partition/test/buildQuery.test.ts |   13 +
 .../src/PivotTableChart.tsx                        |    3 +
 .../src/plugin/controlPanel.tsx                    |   28 +-
 .../src/plugin/transformProps.ts                   |    2 +
 .../src/react-pivottable/TableRenderers.tsx        |  109 +-
 .../src/react-pivottable/utilities.ts              |   46 +-
 .../plugins/plugin-chart-pivot-table/src/types.ts  |    5 +
 .../test/plugin/buildQuery.test.ts                 |   49 +
 .../test/react-pivottable/tableRenders.test.tsx    |  446 ++
 .../test/react-pivottable/utilities.test.ts        |  217 +-
 .../plugin-chart-point-cluster-map/package.json    |    2 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |   85 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   58 +-
 .../plugin-chart-table/test/buildQuery.test.ts     |  312 +
 .../plugin-chart-table/test/controlPanel.test.ts   |   44 +
 .../plugin-chart-table/test/controlPanel.test.tsx  |   56 +
 .../plugins/plugin-chart-world-map/src/WorldMap.ts |   13 +-
 .../plugin-chart-world-map/src/controlPanel.ts     |    2 +
 .../plugin-chart-world-map/src/countries.ts        |   36 +-
 .../plugin-chart-world-map/src/transformData.ts    |   49 +-
 .../plugin-chart-world-map/src/transformProps.ts   |   20 +-
 .../plugin-chart-world-map/src/worldGeometry.ts    |  198 +
 .../plugin-chart-world-map/test/WorldMap.test.ts   |   78 +
 .../test/controlPanel.test.ts}                     |   30 +-
 .../test/transformData.test.ts                     |  169 +
 .../test/transformProps.test.ts                    |   52 +
 .../plugins/preset-chart-deckgl/package.json       |    2 +-
 .../src/layers/Scatter/buildQuery.test.ts          |   24 +
 .../src/layers/Scatter/buildQuery.ts               |    7 +-
 .../src/layers/Scatter/controlPanel.test.ts}       |   30 +-
 .../src/layers/Scatter/controlPanel.ts             |    2 +
 .../src/layers/Scatter/transformProps.test.ts      |  324 +-
 .../src/layers/Scatter/transformProps.ts           |  102 +-
 .../preset-chart-deckgl/src/layers/spatialUtils.ts |    7 +-
 .../src/layers/utils/metricUtils.ts                |   17 +
 superset-frontend/scripts/check-custom-rules.js    |  203 +-
 .../spec/helpers/geographicControlPanel.ts         |   75 +
 .../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx |   28 +-
 .../DynamicGroupBy/DynamicGroupByPlugin.test.tsx   |   56 +
 .../DynamicGroupBy/DynamicGroupByPlugin.tsx        |   52 +-
 .../DynamicGroupBy/columnAllowlist.test.ts         |   67 +
 .../components/DynamicGroupBy/columnAllowlist.ts   |  105 +
 .../components/DynamicGroupBy/types.ts             |    5 +
 .../ChartContextMenu/ChartContextMenu.test.tsx     |    2 +-
 .../components/Chart/DrillBy/DrillBySubmenu.tsx    |    2 +-
 .../components/Chart/MenuItemWithTruncation.tsx    |    5 +-
 .../Datasource/ChangeDatasourceModal/index.tsx     |    2 +-
 .../CollectionTable/CollectionTable.test.tsx       |  236 +-
 .../components/CollectionTable/index.tsx           |   75 +-
 .../src/components/GridTable/index.tsx             |   10 +-
 .../src/components/ListView/CardCollection.tsx     |   22 +-
 .../src/components/ListView/ListView.test.tsx      |    2 -
 .../src/components/ListView/ListView.tsx           |   27 +-
 superset-frontend/src/components/ListView/utils.ts |    8 +-
 .../RowCountLabel/RowCountLabel.test.tsx           |   16 +-
 superset-frontend/src/components/Tag/index.tsx     |    8 +-
 .../src/dashboard/actions/dashboardInfo.ts         |   98 +-
 .../src/dashboard/actions/dashboardState.test.ts   |  146 +
 .../src/dashboard/actions/dashboardState.ts        |   63 +-
 .../src/dashboard/actions/datasources.test.ts      |  114 +
 .../src/dashboard/actions/datasources.ts           |   41 +-
 .../dashboard/components/Header/Header.test.tsx    |    4 +-
 .../dashboard/components/PropertiesModal/index.tsx |    2 +
 .../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 +
 .../src/dashboard/components/SliceHeader/index.tsx |    2 +
 .../SliceHeaderControls.test.tsx                   |   71 +
 .../ViewAsTableRendering.test.tsx                  |  309 +
 .../components/SliceHeaderControls/index.tsx       |    9 +-
 .../components/SliceHeaderControls/types.ts        |    1 +
 .../components/gridComponents/Chart/Chart.test.tsx |  312 +-
 .../components/gridComponents/Chart/Chart.tsx      |   95 +-
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |   46 +
 .../components/menu/DownloadMenuItems/index.tsx    |   21 +-
 .../FilterBar/FilterControls/FilterValue.test.tsx  |   92 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |   23 +-
 .../FilterControls/GroupByFilterCard.test.tsx      |  183 +-
 .../FilterBar/FilterControls/GroupByFilterCard.tsx |   41 +-
 .../FiltersConfigForm/ColumnSelect.test.tsx        |   39 +
 .../FiltersConfigForm/ColumnSelect.tsx             |   99 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  211 +-
 .../GroupByColumnAllowlist.test.tsx                |  429 ++
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |   48 +-
 .../hooks/useFilterOperations.test.ts              |   62 +
 .../hooks/useFilterOperations.ts                   |   10 +-
 .../transformers/customizationTransformer.test.ts  |  109 +
 .../transformers/customizationTransformer.ts       |   59 +-
 .../nativeFilters/FiltersConfigModal/types.ts      |    4 +
 .../useDisplayControlDatasource.test.ts            |   22 +-
 .../nativeFilters/useDisplayControlDatasource.ts   |   25 +-
 .../dashboard/containers/DashboardPage.test.tsx    |  153 +-
 .../src/dashboard/containers/DashboardPage.tsx     |   79 +-
 .../contexts/DashboardDatasetsContext.ts}          |   11 +-
 .../src/dashboard/reducers/dashboardInfo.test.ts   |  327 +
 .../src/dashboard/reducers/dashboardInfo.ts        |  160 +
 superset-frontend/src/dashboard/types.ts           |   13 +
 .../ExploreViewContainer.test.tsx                  |  153 +
 .../components/ExploreViewContainer/index.tsx      |   32 +-
 .../controls/AnnotationLayerControl/index.test.tsx |   84 +-
 .../components/controls/ColorPickerControl.tsx     |    2 +-
 .../ColumnConfigConstants.test.tsx                 |   25 +-
 .../ControlForm/ControlForm.debounce.test.tsx      |  124 +
 .../ColumnConfigControl/ControlForm/index.tsx      |   50 +-
 .../controls/ColumnConfigControl/constants.tsx     |    2 +
 .../ControlPopover/ControlPopover.test.tsx         |   66 +
 .../controls/ControlPopover/ControlPopover.tsx     |   39 +-
 .../ColumnSelectPopover.test.tsx                   |   38 +-
 .../DndColumnSelect.test.tsx                       |   20 +-
 .../DndMetricSelect.test.tsx                       |   90 +
 .../AdhocFilterControl/AdhocFilterControl.test.tsx |  102 +-
 .../AdhocFilterEditPopover.test.tsx                |   55 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |    4 +-
 .../controls/MapViewControl/ExtentTag.test.tsx     |   68 +
 .../controls/MapViewControl/ExtentTag.tsx          |   13 +-
 .../components/controls/MapViewControl/types.ts    |    6 +-
 .../AdhocMetricEditPopover.test.tsx                |    4 +-
 .../components/controls/SelectControl.test.tsx     |   55 +
 .../controls/SemanticRequestView.test.tsx          |  111 +
 .../components/controls/SemanticRequestView.tsx    |   71 +
 .../components/controls/TextAreaControl.test.tsx   |  103 +
 .../components/controls/TextAreaControl.tsx        |  169 +-
 .../components/controls/ViewQueryModal.test.tsx    |  300 +-
 .../explore/components/controls/ViewQueryModal.tsx |   98 +-
 .../controls/ViewQueryModalFooter.test.tsx         |   95 +
 .../components/controls/ViewQueryModalFooter.tsx   |    7 +-
 .../ZoomConfigControl/ZoomConfigControl.test.tsx   |  115 +
 .../ZoomConfigControl/ZoomConfigControl.tsx        |   36 +-
 .../useExploreAdditionalActionsMenu/index.tsx      |   40 +-
 .../useExploreAdditionalActionsMenu.test.tsx       |   71 +-
 .../src/explore/exploreUtils/exploreUtils.test.tsx |   32 +
 .../src/explore/reducers/exploreReducer.test.ts    |   72 +-
 .../src/explore/reducers/exploreReducer.ts         |   25 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |  428 ++
 .../src/features/alerts/AlertReportModal.tsx       | 1012 ++-
 .../alerts/ReportConfigurationModal.test.tsx       |  409 +
 .../features/alerts/ReportConfigurationModal.tsx   |  488 ++
 .../alerts/hooks/useReportConfiguration.ts         |   64 +
 superset-frontend/src/features/alerts/types.ts     |   34 +-
 .../DatabaseConnectionForm/CommonParameters.tsx    |    2 +
 .../datasets/AddDataset/Footer/Footer.test.tsx     |    5 +-
 .../reports/ReportModal/ReportModal.test.tsx       |  279 +-
 .../src/features/reports/ReportModal/index.tsx     |   83 +-
 superset-frontend/src/features/reports/types.ts    |    2 +
 .../semanticLayers/SemanticLayerModal.test.tsx     |  130 +-
 .../features/semanticLayers/SemanticLayerModal.tsx |   75 +-
 .../src/hooks/apiResources/dashboards.test.ts      |   14 +
 .../src/hooks/apiResources/dashboards.ts           |   28 +-
 .../src/hooks/apiResources/datasets.cache.test.ts  |   48 +
 .../src/hooks/apiResources/datasets.test.ts        |   36 +-
 .../src/hooks/apiResources/datasets.ts             |    6 +-
 .../src/middleware/asyncEvent.test.ts              |  370 +-
 superset-frontend/src/middleware/asyncEvent.ts     |   90 +-
 .../src/middleware/asyncQueryError.ts              |  118 +
 .../src/pages/ActionLog/ActionLog.test.tsx         |   90 +
 superset-frontend/src/pages/ActionLog/index.tsx    |    3 +
 .../pages/AlertReportList/AlertReportList.test.tsx |   43 +
 .../src/pages/AlertReportList/index.tsx            |   22 +
 .../ArchivedList/ArchivedDatasetPurgeModal.tsx     |    3 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |    2 +
 superset-frontend/src/pages/Home/Home.test.tsx     |    2 +-
 superset-frontend/src/types/react-table.d.ts       |   16 +
 superset-frontend/src/utils/cacheWrapper.test.ts   |   54 +
 superset-frontend/src/utils/cacheWrapper.ts        |    6 +
 .../src/utils/cachedSupersetGet.test.ts            |   20 +
 .../src/utils/downloadAsImage.test.ts              |  302 +-
 superset-frontend/src/utils/downloadAsImage.tsx    |   36 +-
 superset-frontend/src/utils/downloadAsPdf.test.ts  |  128 +
 superset-frontend/src/utils/downloadAsPdf.ts       |   30 +-
 superset-frontend/src/utils/downloadUtils.test.ts  |   76 +-
 superset-frontend/src/utils/downloadUtils.ts       |   35 +-
 .../utils/getChartRequiredFieldsMissingMessage.ts  |    1 +
 .../src/utils/semanticViewStructure.test.ts        |    6 +-
 .../src/utils/semanticViewStructure.ts             |   40 +-
 superset-frontend/src/utils/urlUtils.ts            |   17 +
 superset-frontend/src/views/App.test.tsx           |   12 +-
 superset-frontend/src/views/App.tsx                |   11 +-
 .../TimeTable/components/LeftCell/LeftCell.tsx     |   18 +-
 .../TimeTable/config/buildQuery.test.ts            |   14 +
 superset-websocket/package-lock.json               |  574 +-
 superset-websocket/package.json                    |   12 +-
 .../utils/client-ws-app/package-lock.json          |   17 +-
 superset/charts/api.py                             |   18 +-
 superset/charts/data/api.py                        |    7 +-
 superset/charts/data/form_data.py                  |    2 +-
 superset/charts/filters.py                         |   10 +-
 superset/commands/chart/importers/v1/__init__.py   |    7 +-
 superset/commands/chart/restore_version.py         |   17 +
 superset/commands/dashboard/permalink/create.py    |   43 +-
 superset/commands/dashboard/update.py              |   19 +
 .../commands/deletion_retention/force_purge.py     |    7 +-
 .../commands/deletion_retention/prune_audit.py     |   76 +-
 .../commands/deletion_retention/purge_cascade.py   |    5 +-
 .../commands/deletion_retention/purge_policy.py    | 1191 ++-
 superset/commands/distributed_lock/release.py      |    3 +-
 superset/commands/importers/v1/utils.py            |    3 +
 superset/commands/report/alert.py                  |   52 +-
 superset/commands/report/base.py                   |  175 +-
 superset/commands/report/create.py                 |   46 +
 superset/commands/report/exceptions.py             |  155 +-
 superset/commands/report/execute.py                |  213 +-
 superset/commands/report/update.py                 |  324 +-
 superset/commands/report/update_config.py          |  145 +
 superset/commands/security/reset.py                |   22 +-
 superset/commands/semantic_layer/update.py         |   58 +-
 superset/commands/theme/import_themes.py           |   57 +-
 superset/commands/version_restore.py               |    5 +
 superset/common/form_data_query_context.py         | 1599 +++-
 superset/common/query_context_factory.py           |   60 +-
 superset/common/query_context_processor.py         |   37 +-
 superset/common/query_object.py                    |   27 +-
 superset/common/tabular_query.py                   |    7 +-
 superset/common/utils/dataframe_utils.py           |    8 +-
 superset/config.py                                 |   50 +-
 superset/daos/datasource.py                        |   21 +-
 superset/daos/key_value.py                         |   14 +-
 superset/daos/report.py                            |  212 +-
 superset/dashboards/api.py                         |   19 +-
 superset/dashboards/excel_export/workbook.py       |   11 +-
 superset/dashboards/schemas.py                     |   17 +-
 superset/datasets/schemas.py                       |   39 +-
 superset/datasource/api.py                         |   97 +-
 superset/db_engine_specs/bigquery.py               |   20 +-
 superset/db_engine_specs/d1.py                     |   20 -
 superset/db_engine_specs/gsheets.py                |   23 +-
 superset/db_engine_specs/impala.py                 |  118 +-
 superset/db_engine_specs/shillelagh.py             |   20 +-
 superset/db_engine_specs/sqlite.py                 |   16 +-
 superset/exceptions.py                             |   26 +
 superset/initialization/__init__.py                |    4 +
 superset/key_value/types.py                        |   37 +-
 superset/mcp_service/CLAUDE.md                     |    2 +-
 superset/mcp_service/app.py                        |   17 +-
 superset/mcp_service/auth.py                       |   13 +-
 superset/mcp_service/chart/big_number_headline.py  |  388 +
 superset/mcp_service/chart/chart_helpers.py        |  587 +-
 superset/mcp_service/chart/chart_utils.py          | 1372 +++-
 superset/mcp_service/chart/compile.py              |  157 +-
 superset/mcp_service/chart/plugin.py               |  221 +-
 superset/mcp_service/chart/plugins/__init__.py     |   15 +
 superset/mcp_service/chart/plugins/big_number.py   |   23 +-
 superset/mcp_service/chart/plugins/bubble.py       |    4 +-
 superset/mcp_service/chart/plugins/gantt.py        |   32 +
 superset/mcp_service/chart/plugins/gauge.py        |   40 +-
 superset/mcp_service/chart/plugins/geographic.py   |  834 ++
 superset/mcp_service/chart/plugins/histogram.py    |   11 +-
 .../mcp_service/chart/plugins/mixed_timeseries.py  |   84 +-
 superset/mcp_service/chart/plugins/pivot_table.py  |    4 +
 superset/mcp_service/chart/plugins/sunburst.py     |  288 +
 superset/mcp_service/chart/plugins/table.py        |   25 +
 superset/mcp_service/chart/plugins/treemap.py      |    3 +-
 superset/mcp_service/chart/plugins/waterfall.py    |    6 +-
 superset/mcp_service/chart/plugins/xy.py           |  185 +-
 superset/mcp_service/chart/preview_utils.py        |  395 +-
 superset/mcp_service/chart/query_result.py         | 1756 ++++-
 superset/mcp_service/chart/registry.py             |   18 +
 .../mcp_service/chart/resources/chart_configs.py   |   75 +-
 superset/mcp_service/chart/response_preflight.py   |  204 +
 superset/mcp_service/chart/schemas.py              | 1758 ++++-
 superset/mcp_service/chart/sunburst.py             |  436 ++
 superset/mcp_service/chart/tool/generate_chart.py  |  243 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |  713 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |   28 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |  160 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |  195 +-
 .../chart/tool/get_chart_type_schema.py            |   59 +-
 superset/mcp_service/chart/tool/list_charts.py     |   14 +-
 superset/mcp_service/chart/tool/update_chart.py    |  596 +-
 .../mcp_service/chart/tool/update_chart_preview.py |  407 +-
 .../chart/validation/dataset_validator.py          |  671 +-
 .../validation/runtime/chart_type_suggester.py     |   13 +-
 superset/mcp_service/common/pagination_schemas.py  |    3 +-
 .../mcp_service/common/time_range_validation.py    |   81 +-
 superset/mcp_service/dashboard/constants.py        |    4 +
 superset/mcp_service/dashboard/layout_placement.py |  309 +
 .../mcp_service/dashboard/layout_validation.py     |   11 +-
 superset/mcp_service/dashboard/schemas.py          |  746 +-
 superset/mcp_service/dashboard/tool/__init__.py    |    2 +
 .../tool/add_chart_to_existing_dashboard.py        |  234 +-
 .../dashboard/tool/apply_dashboard_filters.py      |  280 +-
 .../mcp_service/dashboard/tool/delete_dashboard.py |   66 +-
 .../dashboard/tool/generate_dashboard.py           |   18 +-
 .../dashboard/tool/get_dashboard_data.py           |    9 +
 .../dashboard/tool/get_dashboard_datasets.py       |   13 +-
 .../dashboard/tool/get_dashboard_info.py           |   21 +-
 .../mcp_service/dashboard/tool/governance_utils.py |   15 +-
 .../mcp_service/dashboard/tool/list_dashboards.py  |   18 +-
 .../tool/manage_dashboard_certification.py         |   10 +-
 .../dashboard/tool/manage_dashboard_markdown.py    |  512 ++
 .../dashboard/tool/manage_dashboard_owners.py      |   12 +-
 .../dashboard/tool/manage_dashboard_roles.py       |   32 +-
 .../dashboard/tool/manage_native_filters.py        |  535 +-
 .../dashboard/tool/remove_chart_from_dashboard.py  |   73 +-
 .../dashboard/tool/restore_dashboard.py            |   47 +-
 .../mcp_service/dashboard/tool/update_dashboard.py |   10 +
 superset/mcp_service/dashboard_scope.py            |    1 +
 superset/mcp_service/dataset/dataset_utils.py      |    5 +
 superset/mcp_service/dataset/schemas.py            |   73 +-
 .../mcp_service/dataset/tool/create_dataset.py     |   11 +-
 .../dataset/tool/create_virtual_dataset.py         |   16 +-
 .../mcp_service/dataset/tool/get_dataset_info.py   |    7 +-
 superset/mcp_service/dataset/tool/list_datasets.py |   27 +-
 superset/mcp_service/dataset/tool/query_dataset.py |  165 +-
 .../mcp_service/dataset/tool/update_dataset.py     |   16 +-
 .../explore/tool/generate_explore_link.py          |    9 +-
 superset/mcp_service/mcp_config.py                 |   30 +-
 superset/mcp_service/middleware.py                 |   99 +-
 superset/mcp_service/semantic_layer/schemas.py     |    8 +-
 .../mcp_service/semantic_layer/tool/get_table.py   |  128 +-
 superset/mcp_service/server.py                     |  164 +-
 superset/mcp_service/simple_proxy.py               |    6 +-
 superset/mcp_service/sql_lab/schemas.py            |   36 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   14 +-
 .../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/utils/cache_utils.py          |   32 +-
 superset/mcp_service/utils/error_builder.py        |  115 +-
 superset/mcp_service/utils/response_size_utils.py  |   40 +-
 superset/mcp_service/utils/response_utils.py       |  294 +-
 superset/mcp_service/utils/schema_utils.py         |   27 +-
 superset/mcp_service/utils/serialization.py        |   51 +-
 ...0fab727cd0a_add_theme_editors_theme_id_index.py |   64 +
 ...00_e4a7c2b9d1f3_add_run_as_and_report_config.py |  178 +
 ...79af013f48_add_semantic_layer_cache_version.py} |   32 +-
 superset/models/helpers.py                         |   48 +-
 superset/models/slice.py                           |   73 +-
 superset/reports/api.py                            |  181 +-
 superset/reports/models.py                         |   45 +
 superset/reports/notifications/email.py            |   14 +-
 superset/reports/schemas.py                        |  225 +-
 superset/reports/types.py                          |   20 +-
 superset/reports/utils.py                          |  183 +
 superset/result_set.py                             |    7 +
 superset/security/manager.py                       |  355 +-
 superset/semantic_layers/api.py                    |   61 +-
 superset/semantic_layers/completeness.py           |   44 +
 superset/semantic_layers/mapper.py                 |  171 +-
 superset/semantic_layers/models.py                 |  257 +-
 superset/tasks/api.py                              |   23 +-
 superset/tasks/async_queries.py                    |   17 +-
 superset/tasks/deletion_retention.py               |  466 +-
 .../constants.py => tasks/retention_cap.py}        |   28 +-
 superset/tasks/schemas.py                          |    3 +
 superset/tasks/version_history_retention.py        |  282 +-
 superset/themes/api.py                             |   20 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |  455 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |  452 +-
 superset/translations/de/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/en/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/it/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |  450 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |  450 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |  452 +-
 superset/translations/messages.pot                 |  426 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/pt/LC_MESSAGES/messages.po   | 8068 ++++++++++----------
 .../translations/pt_BR/LC_MESSAGES/messages.po     | 4289 ++++++-----
 superset/translations/ro/LC_MESSAGES/messages.po   |  452 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |  452 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |  452 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |  453 +-
 superset/translations/sr/LC_MESSAGES/messages.po   |  452 +-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |  452 +-
 superset/translations/ta/LC_MESSAGES/messages.po   |  451 +-
 superset/translations/th/LC_MESSAGES/messages.po   |  450 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |  450 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |  453 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |  450 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  450 +-
 superset/utils/core.py                             |   12 +-
 superset/utils/date_parser.py                      |   61 +-
 superset/utils/geographic.py                       |  105 +
 superset/utils/geographic_regions.py               |  385 +
 superset/utils/geographic_world.py                 |  205 +
 .../utils/pandas_postprocessing/contribution.py    |   24 +-
 superset/utils/pandas_postprocessing/cum.py        |    7 +-
 superset/utils/pandas_postprocessing/histogram.py  |    8 +-
 superset/utils/pandas_postprocessing/utils.py      |   25 +-
 superset/versioning/api_helpers.py                 |   14 +-
 superset/versioning/baseline/listener.py           |    6 +-
 superset/versioning/changes/listener.py            |   21 +-
 superset/versioning/metrics.py                     |    6 +-
 superset/versioning/restore.py                     |  146 +-
 superset/versioning/savepoints.py                  |  149 +
 superset/versioning/unit_of_work.py                |  113 +-
 superset/views/api.py                              |    4 +-
 superset/views/base.py                             |    1 +
 superset/views/dashboard/mixin.py                  |    1 +
 superset/views/error_handling.py                   |   12 +-
 superset/views/users/api.py                        |   21 +-
 tests/common/assert_utils.py                       |    2 +-
 .../charts/semantic_metadata_authz_tests.py        |  640 ++
 .../deletion_retention/force_purge_tests.py        |   11 +-
 .../deletion_retention/prune_audit_tests.py        |   88 +
 .../deletion_retention/purge_tests.py              |  210 +-
 tests/integration_tests/reports/alert_tests.py     |   40 +-
 tests/integration_tests/reports/api_tests.py       |  342 +-
 .../commands/execute_dashboard_report_tests.py     |   11 +-
 tests/integration_tests/reports/config_tests.py    |  104 +
 .../integration_tests/superset_test_config_gaq.py  |   59 +
 tests/integration_tests/tasks/api_tests.py         |  128 +-
 .../versioning/retention_prune_tests.py            |   65 +
 .../db_engine_specs/test_clickhouse.py             |   43 +
 tests/testcontainers/db_engine_specs/test_crate.py |   44 +
 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/data/test_time_range_validation.py      |   48 +
 .../charts/semantic_view_chart_filter_test.py      |   14 +-
 tests/unit_tests/charts/test_export_api.py         |   44 +
 .../commands/dashboard/permalink_create_test.py    |  131 +
 tests/unit_tests/commands/dashboard/update_test.py |   87 +
 .../deletion_retention/test_prune_audit.py         |   33 +-
 .../deletion_retention/test_purge_chart_detach.py  |  301 +
 .../deletion_retention/test_purge_policy.py        | 1632 +++-
 .../unit_tests/commands/importers/v1/utils_test.py |   34 +
 tests/unit_tests/commands/report/alert_test.py     |   21 +-
 tests/unit_tests/commands/report/create_test.py    |   37 +
 tests/unit_tests/commands/report/execute_test.py   |  179 +-
 tests/unit_tests/commands/report/executor_test.py  |  621 ++
 tests/unit_tests/commands/report/run_as_test.py    | 1340 ++++
 .../commands/report/update_config_test.py          |  223 +
 tests/unit_tests/commands/report/update_test.py    |   45 +
 tests/unit_tests/commands/security/reset_test.py   |   62 +
 .../commands/theme/test_import_themes.py           |   89 +
 .../common/test_form_data_query_context.py         |  296 +-
 .../common/test_query_context_factory.py           |   40 +
 .../common/test_query_context_processor.py         |  155 +-
 tests/unit_tests/dao/key_value_test.py             |   42 +
 tests/unit_tests/dashboards/schema_tests.py        |   37 +-
 .../dashboards/semantic_view_access_test.py        |  186 +
 .../dashboards/test_excel_export_sync_budget.py    |   47 +
 tests/unit_tests/dashboards/test_export_api.py     |   55 +
 tests/unit_tests/datasets/dao/dao_tests.py         |   65 +
 tests/unit_tests/datasets/schema_tests.py          |   52 +
 tests/unit_tests/db_engine_specs/test_bigquery.py  |   86 +-
 tests/unit_tests/db_engine_specs/test_d1.py        |   48 +-
 .../db_engine_specs/test_impala_pending.py         |  303 +
 .../unit_tests/db_engine_specs/test_shillelagh.py  |   13 +
 tests/unit_tests/db_engine_specs/test_sqlite.py    |   83 +
 .../distributed_lock/distributed_lock_tests.py     |    6 +-
 tests/unit_tests/extensions/test_sqlalchemy.py     |   89 +
 .../mcp_service/chart/query_result_fixtures.py     |  165 +
 ...test_axis_offset_and_spatial_query_contracts.py |  474 ++
 .../mcp_service/chart/test_big_number_headline.py  |  665 ++
 .../mcp_service/chart/test_bubble_chart.py         |   10 +-
 .../mcp_service/chart/test_chart_helpers.py        |  776 +-
 .../chart/test_chart_plugin_contract.py            |  318 +-
 .../mcp_service/chart/test_chart_schemas.py        |  244 +
 .../mcp_service/chart/test_chart_utils.py          |  895 +++
 tests/unit_tests/mcp_service/chart/test_compile.py |  550 +-
 .../mcp_service/chart/test_gantt_chart.py          |   35 +-
 .../mcp_service/chart/test_geographic_chart.py     | 2199 ++++++
 .../chart/test_histogram_boxplot_charts.py         |    8 +-
 ..._metric_aggregation_and_comparison_contracts.py |  379 +
 ...ative_form_data_and_dataset_rebind_contracts.py | 1326 ++++
 .../mcp_service/chart/test_new_chart_types.py      |    4 +-
 .../mcp_service/chart/test_preview_utils.py        |  337 +-
 .../mcp_service/chart/test_query_result.py         | 2027 ++++-
 .../unit_tests/mcp_service/chart/test_registry.py  |   33 +-
 .../mcp_service/chart/test_response_preflight.py   |  486 ++
 .../test_review_query_and_preview_regressions.py   |  438 ++
 .../mcp_service/chart/test_sunburst_chart.py       | 5579 ++++++++++++++
 .../mcp_service/chart/test_treemap_completeness.py |   88 +-
 .../chart/tool/test_column_suggestions.py          |  617 ++
 .../mcp_service/chart/tool/test_generate_chart.py  |   95 +
 .../mcp_service/chart/tool/test_get_chart_data.py  | 2809 ++++++-
 .../chart/tool/test_get_chart_preview.py           |  417 +-
 .../mcp_service/chart/tool/test_get_chart_sql.py   |  332 +-
 .../chart/tool/test_saved_chart_datasource.py      |  422 +
 .../mcp_service/chart/tool/test_update_chart.py    |  893 +--
 .../chart/tool/test_update_chart_preview.py        |  318 +-
 .../validation/test_column_name_normalization.py   |   26 +
 .../chart/validation/test_dataset_validator.py     |  421 +-
 .../common/test_time_range_validation.py           |   82 +-
 .../dashboard/test_dashboard_schemas.py            |  120 +
 .../mcp_service/dashboard/test_layout_placement.py |  101 +
 .../dashboard/tool/test_apply_dashboard_filters.py | 1202 ++-
 .../dashboard/tool/test_dashboard_generation.py    |   79 +-
 .../dashboard/tool/test_delete_dashboard.py        |    1 +
 .../dashboard/tool/test_get_dashboard_data.py      |   44 +
 .../dashboard/tool/test_get_dashboard_datasets.py  |  220 +-
 .../tool/test_manage_dashboard_markdown.py         | 1279 ++++
 .../dashboard/tool/test_manage_dashboard_owners.py |    1 +
 .../dashboard/tool/test_manage_dashboard_roles.py  |    2 +
 .../dashboard/tool/test_manage_native_filters.py   | 2025 ++++-
 .../tool/test_managed_dashboard_refusal.py         |  353 +
 .../dashboard/tool/test_restore_dashboard.py       |    1 +
 .../mcp_service/dataset/tool/test_query_dataset.py |  954 ++-
 .../dataset/tool/test_sql_dataset_guidance.py      |  181 +
 .../explore/tool/test_generate_explore_link.py     |  476 +-
 .../mcp_service/native_tool_inventory.json         | 1289 ++++
 .../semantic_layer/tool/test_get_table.py          | 1057 ++-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   27 +-
 .../sql_lab/tool/test_execute_sql_response.py      |  127 +
 .../system/resources/test_instance_metadata.py     |  144 +
 .../system/tool/test_get_current_user.py           |    6 +-
 .../mcp_service/test_chart_tool_inventory.py       |    2 +-
 .../unit_tests/mcp_service/test_dashboard_scope.py |   11 +-
 tests/unit_tests/mcp_service/test_mcp_server.py    |   69 +
 .../mcp_service/test_mcp_tool_registration.py      |  109 +
 tests/unit_tests/mcp_service/test_middleware.py    |  194 +-
 .../mcp_service/test_middleware_logging.py         |  138 +-
 .../mcp_service/test_native_tool_surface.py        | 1144 +++
 .../test_tool_description_constraints.py           |  700 ++
 .../unit_tests/mcp_service/test_tool_inventory.py  |   43 +-
 .../mcp_service/test_tool_search_transform.py      |   90 +-
 .../mcp_service/utils/test_cache_utils.py          |   32 +-
 .../mcp_service/utils/test_response_size_utils.py  |   85 +
 .../mcp_service/utils/test_response_utils.py       |  246 +
 .../mcp_service/utils/test_serialization.py        |   68 +
 .../test_add_run_as_and_report_config.py           |  274 +
 .../test_add_theme_editors_theme_id_index.py       |   90 +
 tests/unit_tests/models/helpers_test.py            |   81 +
 tests/unit_tests/models/slice_test.py              |   66 +
 .../unit_tests/models/test_certification_mixin.py  |   76 +
 tests/unit_tests/pandas_postprocessing/test_cum.py |   74 +
 .../pandas_postprocessing/test_geography.py        |   41 +
 .../pandas_postprocessing/test_histogram.py        |   32 +-
 .../unit_tests/pandas_postprocessing/test_utils.py |   88 +
 tests/unit_tests/queries/query_object_test.py      |   22 +-
 tests/unit_tests/reports/api_test.py               |   33 +
 tests/unit_tests/reports/config_api_test.py        |  135 +
 tests/unit_tests/reports/config_dao_test.py        |  359 +
 .../reports/notifications/email_tests.py           |    9 +-
 tests/unit_tests/reports/schemas_test.py           |   86 +
 tests/unit_tests/reports/utils_test.py             |  222 +
 tests/unit_tests/result_set_test.py                |   42 +-
 tests/unit_tests/scripts/change_detector_test.py   |   11 +
 .../scripts/translations/backfill_po_test.py       |  226 +-
 .../scripts/translations/check_pot_drift_test.py   |  215 +-
 tests/unit_tests/security/manager_test.py          |  520 +-
 .../unit_tests/security/semantic_guest_rls_test.py |  401 +
 .../security/test_guest_token_dataset_allowlist.py |    6 +-
 .../security/typed_datasource_access_test.py       |  381 +
 tests/unit_tests/semantic_layers/api_test.py       |   77 +
 .../semantic_layers/grain_validation_test.py       |  127 +
 .../semantic_layers/integer_precision_test.py      |  366 +
 .../semantic_layers/layer_list_scope_test.py       |  215 +
 tests/unit_tests/semantic_layers/mapper_test.py    |  308 +-
 .../semantic_layers/metadata_contract_test.py      |  174 +
 tests/unit_tests/semantic_layers/models_test.py    |  638 +-
 .../semantic_layers/result_completeness_test.py    |   86 +
 .../semantic_layers/simple_cache_clear_test.py     |  650 ++
 .../semantic_layers/values_endpoint_test.py        |  257 +-
 tests/unit_tests/sql/parse_tests.py                |   17 +
 tests/unit_tests/subjects/test_raise_for_access.py |   12 +-
 tests/unit_tests/subjects/test_security.py         |   21 +
 tests/unit_tests/tasks/test_async_queries.py       |   37 +-
 tests/unit_tests/tasks/test_deletion_retention.py  |  905 ++-
 .../tasks/test_version_history_retention.py        |  659 +-
 tests/unit_tests/test_mcp_simple_proxy.py          |   45 +
 tests/unit_tests/utils/core_override_user_test.py  |   71 +
 tests/unit_tests/utils/date_parser_tests.py        |  111 +
 .../unit_tests/utils/geographic_world_test.py      |   35 +-
 tests/unit_tests/versioning/test_listener.py       |   34 +-
 tests/unit_tests/versioning/test_restore.py        |   54 +
 .../versioning/test_restore_datasource_race.py     |  185 +
 .../versioning/test_restore_missing_datasource.py  |  299 +
 .../unit_tests/versioning/test_runtime_capture.py  |  380 +
 .../views/test_current_user_auth_errors.py         |  122 +
 tests/unit_tests/views/test_error_handling.py      |  203 +-
 737 files changed, 119278 insertions(+), 14765 deletions(-)
 create mode 100644 .github/workflows/chromatic.yml
 create mode 100644 docs/developer_docs/semantic-layer-cache-clear.md
 create mode 100644 docs/developer_docs/semantic-result-completeness.md
 create mode 100644 docs/static/img/logos/douroeci.png
 create mode 100644 superset-core/src/superset_core/semantic_layers/errors.py
 create mode 100644 superset-core/tests/semantic_layers/test_errors.py
 copy superset/reports/types.py => 
superset-core/tests/semantic_layers/test_view.py (79%)
 create mode 100644 
superset-frontend/packages/superset-core/src/theme/GlobalStyles.test.tsx
 delete mode 100644 
superset-frontend/packages/superset-ui-core/types/react-table-config.d.ts
 copy superset-frontend/{src => 
packages/superset-ui-core}/types/react-table.d.ts (52%)
 create mode 100644 
superset-frontend/playwright/tests/dashboard/global-async-query-resilience.spec.ts
 create mode 100644 
superset-frontend/playwright/tests/dashboard/global-async-query.spec.ts
 create mode 100644 
superset-frontend/playwright/tests/sqllab/global-async-query-sqllab.spec.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/JsonCellRenderer.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/jsonCellRowHeight.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/parseJsonCellValue.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/isJsonCellActionTarget.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-ag-grid-table/test/JsonCellRenderer.test.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-cartodiagram/test/util/pieColors.test.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-country-map/src/normalizeRegions.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-country-map/src/regions.ts
 copy superset-frontend/{src/utils/getChartRequiredFieldsMissingMessage.ts => 
plugins/plugin-chart-country-map/test/controlPanel.test.ts} (52%)
 create mode 100644 
superset-frontend/plugins/plugin-chart-country-map/test/geographicRendering.test.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-country-map/test/normalizeRegions.test.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-world-map/src/worldGeometry.ts
 copy superset-frontend/{src/utils/getChartRequiredFieldsMissingMessage.ts => 
plugins/plugin-chart-world-map/test/controlPanel.test.ts} (52%)
 copy superset-frontend/{src/utils/getChartRequiredFieldsMissingMessage.ts => 
plugins/preset-chart-deckgl/src/layers/Scatter/controlPanel.test.ts} (52%)
 create mode 100644 superset-frontend/spec/helpers/geographicControlPanel.ts
 create mode 100644 
superset-frontend/src/chartCustomizations/components/DynamicGroupBy/columnAllowlist.test.ts
 create mode 100644 
superset-frontend/src/chartCustomizations/components/DynamicGroupBy/columnAllowlist.ts
 create mode 100644 superset-frontend/src/dashboard/actions/datasources.test.ts
 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/SliceHeaderControls/ViewAsTableRendering.test.tsx
 create mode 100644 
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/GroupByColumnAllowlist.test.tsx
 copy superset-frontend/{packages/superset-ui-core/src/components/Tag/index.tsx 
=> src/dashboard/contexts/DashboardDatasetsContext.ts} (70%)
 create mode 100644 
superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.debounce.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/MapViewControl/ExtentTag.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/SemanticRequestView.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/SemanticRequestView.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ViewQueryModalFooter.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigControl.test.tsx
 create mode 100644 
superset-frontend/src/features/alerts/ReportConfigurationModal.test.tsx
 create mode 100644 
superset-frontend/src/features/alerts/ReportConfigurationModal.tsx
 create mode 100644 
superset-frontend/src/features/alerts/hooks/useReportConfiguration.ts
 create mode 100644 
superset-frontend/src/hooks/apiResources/datasets.cache.test.ts
 create mode 100644 superset-frontend/src/middleware/asyncQueryError.ts
 create mode 100644 superset-frontend/src/pages/ActionLog/ActionLog.test.tsx
 create mode 100644 superset-frontend/src/utils/downloadAsPdf.test.ts
 create mode 100644 superset/commands/report/update_config.py
 create mode 100644 superset/mcp_service/chart/big_number_headline.py
 create mode 100644 superset/mcp_service/chart/plugins/geographic.py
 create mode 100644 superset/mcp_service/chart/plugins/sunburst.py
 create mode 100644 superset/mcp_service/chart/response_preflight.py
 create mode 100644 superset/mcp_service/chart/sunburst.py
 create mode 100644 superset/mcp_service/dashboard/layout_placement.py
 create mode 100644 
superset/mcp_service/dashboard/tool/manage_dashboard_markdown.py
 create mode 100644 
superset/migrations/versions/2026-09-16_00-01_00fab727cd0a_add_theme_editors_theme_id_index.py
 create mode 100644 
superset/migrations/versions/2026-10-05_12-00_e4a7c2b9d1f3_add_run_as_and_report_config.py
 copy superset/{mcp_service/dashboard/constants.py => 
migrations/versions/2026-10-08_00-00_c179af013f48_add_semantic_layer_cache_version.py}
 (55%)
 create mode 100644 superset/reports/utils.py
 create mode 100644 superset/semantic_layers/completeness.py
 copy superset/{mcp_service/dashboard/constants.py => tasks/retention_cap.py} 
(57%)
 create mode 100644 superset/utils/geographic.py
 create mode 100644 superset/utils/geographic_regions.py
 create mode 100644 superset/utils/geographic_world.py
 create mode 100644 superset/versioning/savepoints.py
 create mode 100644 
tests/integration_tests/charts/semantic_metadata_authz_tests.py
 create mode 100644 tests/integration_tests/reports/config_tests.py
 create mode 100644 tests/integration_tests/superset_test_config_gaq.py
 create mode 100644 tests/testcontainers/db_engine_specs/test_opensearch.py
 create mode 100644 tests/unit_tests/charts/data/test_time_range_validation.py
 create mode 100644 tests/unit_tests/charts/test_export_api.py
 create mode 100644 tests/unit_tests/commands/dashboard/permalink_create_test.py
 create mode 100644 
tests/unit_tests/commands/deletion_retention/test_purge_chart_detach.py
 create mode 100644 tests/unit_tests/commands/report/executor_test.py
 create mode 100644 tests/unit_tests/commands/report/run_as_test.py
 create mode 100644 tests/unit_tests/commands/report/update_config_test.py
 create mode 100644 tests/unit_tests/commands/security/reset_test.py
 create mode 100644 tests/unit_tests/dashboards/test_export_api.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_impala_pending.py
 create mode 100644 tests/unit_tests/mcp_service/chart/query_result_fixtures.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_axis_offset_and_spatial_query_contracts.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_big_number_headline.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_geographic_chart.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_metric_aggregation_and_comparison_contracts.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_native_form_data_and_dataset_rebind_contracts.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_response_preflight.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_review_query_and_preview_regressions.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_sunburst_chart.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/tool/test_column_suggestions.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/tool/test_saved_chart_datasource.py
 create mode 100644 
tests/unit_tests/mcp_service/dashboard/test_layout_placement.py
 create mode 100644 
tests/unit_tests/mcp_service/dashboard/tool/test_manage_dashboard_markdown.py
 create mode 100644 
tests/unit_tests/mcp_service/dashboard/tool/test_managed_dashboard_refusal.py
 create mode 100644 
tests/unit_tests/mcp_service/dataset/tool/test_sql_dataset_guidance.py
 create mode 100644 tests/unit_tests/mcp_service/native_tool_inventory.json
 create mode 100644 
tests/unit_tests/mcp_service/sql_lab/tool/test_execute_sql_response.py
 create mode 100644 
tests/unit_tests/mcp_service/system/resources/test_instance_metadata.py
 create mode 100644 tests/unit_tests/mcp_service/test_native_tool_surface.py
 create mode 100644 
tests/unit_tests/mcp_service/test_tool_description_constraints.py
 create mode 100644 
tests/unit_tests/migrations/test_add_run_as_and_report_config.py
 create mode 100644 
tests/unit_tests/migrations/test_add_theme_editors_theme_id_index.py
 create mode 100644 tests/unit_tests/models/test_certification_mixin.py
 create mode 100644 tests/unit_tests/reports/config_api_test.py
 create mode 100644 tests/unit_tests/reports/config_dao_test.py
 create mode 100644 tests/unit_tests/reports/utils_test.py
 create mode 100644 tests/unit_tests/security/semantic_guest_rls_test.py
 create mode 100644 tests/unit_tests/security/typed_datasource_access_test.py
 create mode 100644 tests/unit_tests/semantic_layers/grain_validation_test.py
 create mode 100644 tests/unit_tests/semantic_layers/integer_precision_test.py
 create mode 100644 tests/unit_tests/semantic_layers/layer_list_scope_test.py
 create mode 100644 tests/unit_tests/semantic_layers/metadata_contract_test.py
 create mode 100644 tests/unit_tests/semantic_layers/result_completeness_test.py
 create mode 100644 tests/unit_tests/semantic_layers/simple_cache_clear_test.py
 create mode 100644 tests/unit_tests/test_mcp_simple_proxy.py
 create mode 100644 tests/unit_tests/utils/core_override_user_test.py
 copy superset/mcp_service/dashboard/constants.py => 
tests/unit_tests/utils/geographic_world_test.py (53%)
 create mode 100644 tests/unit_tests/versioning/test_restore_datasource_race.py
 create mode 100644 
tests/unit_tests/versioning/test_restore_missing_datasource.py
 create mode 100644 tests/unit_tests/views/test_current_user_auth_errors.py

Reply via email to