You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by sf...@apache.org on 2026/06/10 20:28:42 UTC

(superset) branch update-issue-template-post-6.1.0-release updated (a0f99d7260a -> 5b35ce1a9e6)

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

sfirke pushed a change to branch update-issue-template-post-6.1.0-release
in repository https://gitbox.apache.org/repos/asf/superset.git


    from a0f99d7260a chore(issue template): bump version numbers to reflect 6.1.0 being released
     add c73106b7a28 fix(chart-echarts): drop white textBorder from Funnel segment labels (#40468)
     add 0dc58d10420 feat(mcp): browser hello page with working middleware and config-driven content (#40471)
     add e68251fa704 feat(mcp): support custom SQL metrics in generate_chart and update_chart (#40448)
     add f037449b753 fix(roles): resolve HTTP 429 and 414 errors on role management page (#39465)
     add 8a0026b1736 fix(groups): display user full name in role edit user dropdown (#39942)
     add f663f47628a fix(embedding): require non-default JWT secret when embedded dashboards are enabled (#39999)
     add ec09cec6bdf fix(ci): correct first-interaction inputs in welcome workflow (#40508)
     add f7e1f968946 fix(i18n): Wrapped default Chat Error message in t() to support translation (#40504)
     add 96b96ad7d47 chore(deps): bump ws from 8.20.1 to 8.21.0 in /superset-websocket (#40483)
     add b0da0cf202b chore(ci): update GHA actions to Node.js 24-compatible versions (#40477)
     add 8853ab5c753 feat(mcp): add get_dashboard_layout companion tool (#40328)
     add b2320820b4a feat(core): SoftDeleteMixin and restore infrastructure (#39977)
     add 8f88bbcc796 chore(deps-dev): bump @swc/core from 1.15.33 to 1.15.40 in /superset-frontend (#40519)
     add 63ae80ab623 chore(deps-dev): bump baseline-browser-mapping from 2.10.31 to 2.10.32 in /superset-frontend (#40518)
     add e1948c87c6d chore(deps-dev): bump webpack-sources from 3.4.1 to 3.5.0 in /superset-frontend (#40517)
     add cf9ee99b5ae chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.10.1 to 0.10.2 in /superset-frontend (#40516)
     add 61cb0aeae74 chore(deps): bump @swc/core from 1.15.33 to 1.15.40 in /docs (#40515)
     add c3bda6baea9 chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-frontend (#40487)
     add ead21d9789d chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40486)
     add 661ff31c6d5 chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#40485)
     add 63e3a18e8f4 chore(deps): bump baseline-browser-mapping from 2.10.31 to 2.10.32 in /docs (#40484)
     add ae5823fb9c2 chore(deps-dev): bump tmp from 0.2.5 to 0.2.7 in /superset-frontend (#40480)
     add e73d2d0bf60 chore(deps): bump tmp from 0.2.4 to 0.2.7 in /superset-frontend/cypress-base (#40476)
     add 53e2793bc3c fix: coerce out-of-bounds nanosecond timestamps to NaT instead of raising (#40127)
     add f614863ed78 feat(mcp): add list and get tools for annotation layers and annotations (#40342)
     add a69bbcb044c feat(mcp): add list and get tools for saved queries and query history (#40346)
     add 8d8eeb35053 feat(mcp): add list_tags and get_tag_info MCP tools (#40349)
     add b8ea4448d69 feat(ci): perform static security analysis for GHA workflows  (#40510)
     add 40de44f6de6 feat(mcp): add list and get tools for action log and tasks (#40344)
     add 43c3c06035f chore(deps): bump vm2 from 3.11.3 to 3.11.5 in /superset-frontend (#40529)
     add 62b4ee3d9e0 feat(mcp): add list and get tools for users and roles (#40345)
     add 16b56873b02 fix(ci): restrict workflow_run jobs to trusted origins and add zizmor audit (#40533)
     add f0838353a5a feat(i18n): add Czech (cs) locale support for dates (#40241)
     add c9136af8b6d fix(ci): trigger python dep check when pyproject.toml changes (#39792)
     add d350792d438 feat(mcp): add list and get tools for CSS templates and themes (#40343)
     add 44a8d9d4695 chore(deps): pin lodash, lodash-es, and yaml in docs to patched releases (#40535)
     add 8c6271e9ff8 chore(deps): bump urllib3, Mako, and python-multipart for high-severity CVEs (#40534)
     add f165c3fa786 fix(ci): grant security-events write to GHA validator workflow (#40539)
     add 7f54b0b13d0 test(database): regression test for sqla engine creation (#27897) (#40237)
     add 838ee27c299 chore(deps): bump protobuf to 5.29.6 and google-cloud-bigquery-storage to 2.26.0 (#40537)
     add fa4e571db5d chore(deps): force uuid 11.1.1 in docs (#40542)
     add f4787a4f252 chore(deps): bump ws to 8.20.1 in docs (#40538)
     add 2e7bec3646c chore(ci): harden GitHub Actions workflows per static analysis (#40545)
     add 2d6e68b5f29 fix(ci): remove deprecated ephemeral env workflows + resolve fixable GHA-related security issues  (#40121)
     add 4d95a8d0348 feat(listview): compact filter pills with popover for CRUD views (#40169)
     add 87be424f9c4 feat(mcp): add list and get tools for row level security and plugins (#40347)
     add f17e4de9cd5 fix(superset-frontend): color formats big numbers when value is 0 (#28038)
     add f10a296ed02 chore(deps): bump nh3 from 0.2.21 to 0.3.5 (#40551)
     add dfa4dbb96c8 chore(deps-dev): update denodo-sqlalchemy requirement from <2.1.0,>=1.0.6 to >=2.0.5,<2.1.0 (#40550)
     add ab66f0066ad chore(deps-dev): update sqlalchemy-cratedb requirement from <1,>=0.40.1 to >=0.41.0,<1 (#40549)
     add 35125d85215 chore(deps-dev): bump syntaqlite from 0.1.0 to 0.5.9 (#40548)
     add afc4f3c9b3f fix(database): extend URI blocklist to cover duckdb dialect (#40402)
     add 8e47eb1cc19 docs(security): explicit security model, role/capability matrix, AGENTS.md linkage (#40503)
     add c7bbfff4759 fix(ci): gate welcome message on first-time contributor association (#40543)
     add 585745695c3 fix(chart): load viz_type from request params when creating chart via API (#40536)
     add 469979714f3 chore(deps): force serialize-javascript 7.0.5 in docs (#40540)
     add a340293fefe chore(deps): bump idna, Authlib, fontTools, python-ldap, virtualenv (#40560)
     add ab5ea1f7d3c chore(deps): force d3-color 3.1.0 in docs (#40541)
     add 7e8b8e25a5e chore(ci): resolve remaining GitHub Actions static-analysis findings (#40556)
     add 9a79588d359 feat(dashboard): add Rison-encoded URL filter support (#39795)
     add a6215203878 fix(ci): repair Python version extraction in uv-pip-compile.sh (#40565)
     add acc80242f05 chore: fix translations (#40564)
     add 63249c8c977 fix(chart): add regression coverage for UpdateChartCommand ownership (#39997)
     add a2eda11a81e fix(dataset): validate catalog against allow_multi_catalog on import (#40376)
     add d52e28c564b fix(dashboard): preserve user selection when Dynamic Group By overlaps base (#40031)
     add 316dd3db22b fix(dataset): sort by data type when clicking Datatype column header (#40411)
     add a33fcb0eddc feat: add embedded dashboard E2E tests to Playwright CI (#39300)
     add 041ecbc248c fix(embedded): resolve guest user permissions in user_view_menu_names (#39197)
     add 5312d0adf81 feat(mcp): add list_reports and get_report_info tools (#40348)
     add e1bc8e7ae8f chore(deps): bump uuid, qs, js-yaml, and @cypress/request in frontend lockfiles (#40561)
     add dab628c13af fix(i18n): auto-add ASF license header in backfill_po.py (#40395)
     add 97be689b5c4 fix(daos): lazy-import SoftDeleteMixin to fix pytest collection error (#40573)
     add 1523d797ca6 chore(deps-dev): bump pyinstrument from 4.4.0 to 5.1.2 (#40377)
     add 74d1c83ec52 ci: preserve PR translation updates during regression checks (#40581)
     add 2b8e31bf688 ci(docs): skip Netlify docs preview on PRs that don't touch docs (#40590)
     add bffc3fc58fa chore(deps-dev): bump @babel/eslint-parser from 7.28.6 to 7.29.7 in /superset-frontend (#40615)
     add f77fa3ae39c chore(deps-dev): bump @babel/plugin-transform-runtime from 7.29.0 to 7.29.7 in /superset-frontend (#40614)
     add efdfefeea26 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.4 to 8.60.0 in /superset-frontend (#40613)
     add aa8b474c58a chore(deps-dev): bump @babel/plugin-transform-export-namespace-from from 7.27.1 to 7.29.7 in /superset-frontend (#40611)
     add a06eb8fc781 chore(deps): bump react-arborist from 3.7.0 to 3.8.0 in /superset-frontend (#40610)
     add 8731974e5c4 chore(deps-dev): bump @babel/preset-react from 7.28.5 to 7.29.7 in /superset-frontend (#40609)
     add ce602fc5a8a chore(deps-dev): bump @babel/types from 7.29.0 to 7.29.7 in /superset-frontend (#40608)
     add 3f0fbbaac96 chore(deps-dev): update @babel/types requirement from ^7.29.0 to ^7.29.7 in /superset-frontend/plugins/plugin-chart-pivot-table (#40605)
     add 8beea849528 chore(deps-dev): bump @typescript-eslint/parser from 8.59.4 to 8.60.0 in /docs (#40600)
     add 70aa96458ac chore(deps-dev): bump @babel/cli from 7.28.6 to 7.29.7 in /superset-frontend (#40599)
     add f04221a06ca chore(deps-dev): bump webpack from 5.107.1 to 5.107.2 in /docs (#40597)
     add 986148d9244 chore(deps-dev): bump typescript-eslint from 8.59.4 to 8.60.0 in /superset-websocket (#40596)
     add 94092d2f720 chore(deps-dev): bump @babel/preset-typescript from 7.28.5 to 7.29.7 in /superset-frontend (#40604)
     add 41059c68bba chore(deps-dev): bump @babel/plugin-transform-modules-commonjs from 7.28.6 to 7.29.7 in /superset-frontend (#40603)
     add 861e668f743 chore(deps-dev): bump @babel/preset-env from 7.29.5 to 7.29.7 in /superset-frontend (#40601)
     add 41da35e9db0 chore(deps-dev): bump typescript-eslint from 8.59.4 to 8.60.0 in /docs (#40598)
     add 365914f1c76 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.4 to 8.60.0 in /superset-websocket (#40595)
     add c29591b3b1b chore(deps): update @babel/runtime requirement from ^7.29.2 to ^7.29.7 in /superset-frontend/packages/superset-ui-core (#40606)
     add a6d2c954803 chore(deps): migrate MCP service JWT errors from authlib.jose to joserfc (#40582)
     add 817a35f445d fix(mcp): deny deactivated user accounts in MCP authentication (#40631)
     add c6faa50338b fix(cli): encrypt sqlalchemy_uri password on import_datasources (#31983) (#40584)
     add 2abbb64e6bc feat(gsheets): restore public/private sheet selector (#40466)
     add e2ed9896399 fix(reports): skip permalink when dashboard state has no anchor or filters (#40530)
     add 052e567f775 fix: guard dynamic dispatch and bound a regex quantifier (#40547)
     add ca8855dc037 fix(mcp): generic auth errors, required token expiry, and safer auth logging (#40646)
     add aba6ea536cc fix(dashboard): prevent "undefined undefined" owner names in properties modal (#40528)
     add ddb647cd3ae fix(dashboard): clear undo history (#40569)
     add 88abd41c8b8 fix(sql-lab): prevent crash when host shell lacks useAppDispatch export (#40591)
     add 7275116f4cd fix(world-map): preserve bubbles and exclude only null metrics from color scale (#39926)
     add fc0245bdb06 fix(charts): show non-filterable columns in metric section for table … (#39524)
     add 699e741c69d fix(time-comparison): shift offset filter when X-axis is adhoc Custom SQL (#40586)
     add d26a7aac3dd fix(dashboard): hide Edit button in embedded dashboards (#40687)
     add 4996d7c277f fix: avoid warning spam when default spinner SVG is missing (#40481)
     add 093b43c7a58 fix(exports,email,logs): csv formula escaping, subject CRLF stripping, UTC log pruning (#40645)
     add 1632b235ae8 fix(sqllab): surface stacktrace in SQL Lab error responses (#28248) (#40585)
     add 24422c83114 test(histogram): metric filters require aggregation in buildQuery (#30330) (#40617)
     add 242c27a9743 test(presto): 401 Unauthorized must surface as CONNECTION_ACCESS_DENIED_ERROR (#33554) (#40618)
     add 1b8099811b8 fix(chart-list): sort by changed_on instead of last_saved_at (#39984)
     add d2d46169bf6 fix(explore): tighten popover title-to-tabs spacing to 12px (#40410)
     add 19c2b67d09a fix(websocket): validate last_id query param format (#40626)
     add 86fa5bb46f0 feat(table v2): agGridTableChart add row numer column (#39284)
     add 4d2b10d916e chore(excel): strip document metadata from Excel exports (#40661)
     add b97d3ef520b fix(api,sql): use json_response in Api.query and log dialect fallback (#40644)
     add 00dd31494d1 fix: sanitize URL sinks and trim sensitive log fields (#40546)
     add 616c2432780 fix(deps): revert joserfc JWT error migration — fastmcp still uses authlib (#40688)
     add 49f3dbba733 fix(dashboard): address post-approval review feedback on #40528 (#40685)
     add 8508af3201c chore(key_value): prune expired entries from the key-value store (#40663)
     add a9df2c7e5ea fix(mcp): address post-approval review feedback on auth logging PR #40646 (#40684)
     add 3e589436fa6 fix(reports): sanitize error text in email notification template (#40641)
     add 6eaee211aad fix(sqllab): require dataset match for raw query access (#40409)
     add 17d1a45bc94 feat(ydb): switch to native YDB sqlglot dialect (#40170)
     add 8c62f533d7c fix(core): restrict allowed CSS properties in sanitized HTML (#40627)
     add 6abee0289b8 fix(reports): guard SUCCESS-state report execution against duplicate sends and stuck WORKING state (#40657)
     add 9af6746dbe1 fix(models): HTML-escape data-controlled values in dashboard_link and Slice.icons (#40639)
     add a2a369cb5c8 fix(charts): sanitize tooltip HTML across nvd3, rose and partition plugins (#40502)
     add 3bbb35e8a33 ci(bashlib): drop the dead bc-based NONCE (perf + reliability) (#40691)
     add c54990c861b fix(plugin-chart-ag-grid-table): validate filter values/operators in state converter (#40623)
     add ac522ded1c4 fix(ssh-tunnel): validate server_address format (SSRF defense-in-depth) (#40665)
     add 0b9764aed56 fix(mcp): honor AUTH_ROLE_ADMIN and warn on permission-less protected tools (#40659)
     add 12bef03f4af fix(jinja): apply consistent escaping to url_param values from request args (#40633)
     add df21fe65718 chore(mcp): return a generic error from the webdriver pool-stats endpoint (#40559)
     add fa41769a08a fix(embedded): enforce configured allowed domains for postMessage origin (#40629)
     add b9dc9d722e6 fix(export): sanitize user-supplied CSV export filename (charts + SQL Lab) (#40632)
     add 8e4a460cc71 fix(charts): apply DISALLOWED_SQL_FUNCTIONS gate to adhoc expressions (#40568)
     add faa76f67412 fix(embedding): add optional dataset allowlist to guest tokens (#39302)
     add 725f5ed2a90 fix(api): enforce per-object ownership validation in chart, dataset, and report commands (#39303)
     add f7f50a79770 fix(sqllab): quote CTAS target identifiers and validate tmp_table_name format (#40245)
     add cf08a5ebf75 feat(docker): add environment-based debugger control (#40327)
     add 3191b0fdcd5 fix: apply dashboard access check in related_objects endpoints (#40333)
     add 61b32d1b7d0 fix(chart): standardize dashboard validation across chart create/update (#40336)
     add 56fd991efde fix(dataset): unify validation for stored and adhoc SQL expressions (#40392)
     add 77c2bed5f72 fix(dashboards): narrow datasets payload to callers with read access (#40396)
     add b8a2f925ee4 fix(views): enforce per-chart access check in legacy form_data endpoint (#40497)
     add e3ba85b1a5e fix(redirect): normalize browser-stripped whitespace before protocol-relative check (#40566)
     add c914df5a67c ci: harden CI against Docker Hub registry flakes (retries + auth) (#40700)
     add accc94da516 fix(users): show 0 for null login_count and fail_login_count (#40281)
     add e5ff6de790b chore: correct typos in config.py and models_test.py comments (#40706)
     add cb2a56d16e0 chore: guard recursive merge keys and invoke subprocess without a shell (#40558)
     add e5c7200551a ci: gate expensive test workflows at the job level (#40718)
     add 001834470b8 fix(mcp): escape LIKE wildcards in MCP list tool search filters (#40682)
     add f4dfb7f0266 fix(mcp): fall back to form_data spatial query for Deck.gl charts (#40339)
     add fcb1e299ace fix(nvd3): sanitize generateMultiLineTooltipContent output (#40612)
     add 6ea4e227856 refactor(nvd3): extract testable generateAnnotationTooltipContent helper (#40620)
     add 80ea36c852f fix(db_engine_specs): escape schema name in regex; document safe filter pattern (#40642)
     add c373da1bb91 ci: add cancel-in-progress concurrency to PR helper workflows (#40725)
     add 80a5f6b787e fix(calendar): Fix day offset in Calendar Heatmap visualization (#34564)
     add 2be2246a003 chore(deps-dev): bump gevent from 24.2.1 to 26.4.0 (#40378)
     add 43fde2fb07e fix(charts): enforce DISALLOWED_SQL_FUNCTIONS and DISALLOWED_SQL_TABLES at chart-data execution (#40567)
     add 6a125bf774b fix(jinja): expose dialect-escaped companion value on get_filters() (#40531)
     add 9d1bc6b2ccb fix(i18n): don't flag intentional string deletions as translation regressions (#40716)
     add cf5307d0c6f ci: reduce Cypress parallelism from 6 shards to 2 (#40717)
     add 5ba60d51fd0 ci: gate CodeQL analysis at the job level for docs-only PRs (#40724)
     add 41572dbf9df fix(chart): restrict owner lookup to users with write access (#39304)
     add 696705794b1 ci: gate docker image builds at the job level (#40723)
     add 966c243db6f ci: drop removed Cypress shards from required status checks (#40770)
     add aa547da9607 fix: remove registration_hash in the registrations API (#40643)
     add bdb081329fb feat(websocket): validate WebSocket upgrade Origin against an allowlist (#40625)
     add ff5e43c8a09 ci: add timeout-minutes to compute-heavy workflow jobs (#40743)
     add 8dcc7e7eec2 ci: stable required-check anchors for skippable matrix test jobs (#40772)
     add ddb09f468d8 fix(plugin-chart-ag-grid-table): enforce numeric bounds for range (BETWEEN) filters (#40607)
     add 23d18743bdb fix(deck.gl): strip all JS-executed form_data keys when JavaScript controls are disabled (#40602)
     add c505c70c52e fix(databases): do not render existing encrypted field value in edit mode (#40628)
     add 75d94ff466a fix(SafeMarkdown): block script-executing link protocols regardless of EscapeMarkdownHtml (#40622)
     add cd5bdf11acc fix(playwright): de-flake list-view delete and bulk-export specs (#39980)
     add 9a31362fa5e fix(reports): stamp email subject date at send time, not import time (#40693)
     add 7d69f76127a fix(mcp): API key authentication for MCP — transport, validation, and RBAC (#39604)
     add 6f97d9817e1 fix(database): preserve engine_information when creating database connection (#38107)
     add 80a3df3550e ci: run full Python-version matrix on push, current-only on PRs (#40722)
     add 3f94c9db2d5 chore(deps): bump query-string from 9.3.1 to 9.4.0 in /superset-frontend (#40742)
     add cbd731e6614 chore(deps-dev): bump webpack from 5.107.1 to 5.107.2 in /superset-frontend (#40741)
     add 09cd2c26cdc chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40740)
     add 6662529306e chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40739)
     add 0ad09d5cd0e chore(deps): bump dompurify from 3.4.8 to 3.4.7 in /superset-frontend/packages/superset-ui-core (#40737)
     add ddeec68c88a chore(deps): bump dompurify from 3.4.5 to 3.4.7 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#40735)
     add 0d1b702ce8d feat(extensions): static supply-chain controls — denylist + version policy (#40668)
     add 7d323dc0ae3 fix(filters): Enable decimal values in Range filter slider (#34742)
     add 639866625db fix(echarts): Show full labels in bar chart tooltips (#34759)
     add f5f4a415981 chore(deps-dev): bump @babel/register from 7.29.3 to 7.29.7 in /superset-frontend (#40757)
     add 937eff6d52c chore(deps-dev): bump oxlint from 1.66.0 to 1.67.0 in /superset-frontend (#40755)
     add 04939c94cc4 chore(deps-dev): bump @babel/node from 7.29.0 to 7.29.7 in /superset-frontend (#40752)
     add 94c1a1b1f20 chore(deps-dev): bump @babel/runtime-corejs3 from 7.29.2 to 7.29.7 in /superset-frontend (#40751)
     add ccce0cab187 chore(deps): bump content-disposition from 2.0.0 to 2.0.1 in /superset-frontend (#40750)
     add 74060987082 fix(dashboard-filter): Consider dashboard filters to charts not declared in the dashboard position (#40774)
     add 79c74af2e9d ci: cache npm downloads in frontend-heavy workflows (#40744)
     add 875673f6707 fix(asyncEvent): use Map for job listener/retry registries (#40747)
     add 42367afb25c fix(reports): add per-tile animation wait to prevent partial ECharts renders in tiled screenshots (#40694)
     add 98c096df056 chore(deps): bump @babel/runtime from 7.29.2 to 7.29.7 in /superset-frontend (#40753)
     add 45a616439bb chore(deps): update dayjs requirement from ^1.11.20 to ^1.11.21 in /superset-frontend/packages/superset-ui-core (#40736)
     add aa4092ba682 fix(mcp): add select_columns lean defaults to get_dashboard_info, get_chart_info, get_dataset_info (#40473)
     add fa42b13eb83 fix(dataset): preserve numeric column types when pydruid infers STRING from first-row value (#40677)
     add 601f9c2b8c3 fix(embedded): add guest token to streaming exports (#40712)
     add 55bb75efe6d fix(dashboard): prevent filter dropdown button from disappearing during layout recalculations (#38193)
     add 645aa3b1df4 chore(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6 in /superset-frontend (#40795)
     add 81192048572 fix(dashboard): sort Dynamic Group By display values alphabetically (#40220)
     add 108e40cbb61 feat(duration-format): replace pretty-ms with native Intl.DurationFormat for localized duration formatting (#39330)
     add 550c80f640a chore(lint): convert ChartRenderer, Chart, DrillByChart to function components (#39459)
     add 70ee6e21eb6 chore(deps-dev): bump @babel/core from 7.29.0 to 7.29.7 in /superset-frontend (#40800)
     add b069b6caf6c chore(deps-dev): bump terser-webpack-plugin from 5.6.0 to 5.6.1 in /superset-frontend (#40797)
     add 20024ce3af2 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.10.2 to 0.10.4 in /superset-frontend (#40796)
     add 44777cc1109 chore(deps): bump @ant-design/icons from 6.2.3 to 6.2.5 in /superset-frontend (#40794)
     add 2aca35cb68d chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40793)
     add e956f82224b fix(dashboard): prevent divider display controls from reverting on second save (#40696)
     add 1623ceda73d fix(result_set): preserve JSON/JSONB data as objects instead of strings (#38172)
     add 19d01521bf5 fix(dashboard): replace chartsInScope references at import time (#38171)
     add 81bc3088e22 fix(dashboard): prevent stale favorite status errors after navigation (#38156)
     add 863e93539ae fix(dashboard): clean up JSON formatting and contribution suffix in V… (#40683)
     add 0984839788f ci: required-check anchors for cypress-matrix and playwright-tests (unblock docs-only PRs) (#40780)
     add 7eaaffde896 ci: cache npm downloads in the translations workflow (#40779)
     add 7f452e40966 chore(deps): bump @ant-design/icons from 6.2.3 to 6.2.5 in /docs (#40792)
     add 5a6306983e5 docs: add social media links to website footer and README (#38108)
     add 4715cfd3725 chore(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6 in /docs (#40791)
     add 2babb480818 chore(deps): bump ioredis from 5.10.1 to 5.11.0 in /superset-websocket (#40734)
     add 3d7021fdf95 chore(deps): bump hot-shots from 14.3.1 to 15.0.0 in /superset-websocket (#40789)
     add 151df43d9d0 fix(docker): prevent static asset 404s by waiting for webpack dev server (#38161)
     add 6b0d7479399 fix: cache warmup using WebDriver for reliable authentication (#38449)
     add 381b99ae84b fix(csv): respect CSV_EXPORT config for decimal separator and delimiter (#38170)
     add b85a2cdab15 fix: ODPS (MaxCompute) data source table preview failed (#38174)
     add 84aaaaa6b08 fix(mcp): filter sensitive database columns from list_databases loaded-metadata (#40771)
     add ef7379c47e3 chore(mcp): remove low-value list/info tools that fail agent-native policy (#40690)
     add 6348aa19173 chore(deps-dev): update taos-ws-py requirement from >=0.3.8 to >=0.6.9 (#40831)
     add d3f07a7ba54 chore(deps-dev): update playwright requirement from <2,>=1.37.0 to >=1.60.0,<2 (#40829)
     add 2463eb65b1c chore(deps-dev): bump python-ldap from 3.4.5 to 3.4.7 (#40827)
     add 9da45363542 chore(deps-dev): update oceanbase-py requirement from >=0.0.1 to >=0.0.1.2 (#40824)
     add 849f297e9d2 chore(deps-dev): update sqlalchemy-vertica-python requirement from <0.7,>=0.5.9 to >=0.6.3,<0.7 (#40826)
     add 138e405cb60 chore(deps): bump xlsxwriter from 3.0.9 to 3.2.9 (#40825)
     add c0a12f4cfb5 chore(deps-dev): update sqlalchemy-kusto requirement from <4,>=3.0.0 to >=3.1.2,<4 (#40828)
     add 9bb700ff0df chore(deps-dev): bump concurrently from 9.2.1 to 10.0.0 in /superset-frontend (#40798)
     add 5da63d716be fix(toasts): stop the toast overlay from covering controls behind it (#40805)
     add 06f95f53623 refactor(explore): migrate Explore Controls from react-dnd to @dnd-kit (#37880)
     add 21189ae130a fix(dashboard): update browser tab title when dashboard is renamed (#40730)
     add 7c7ab88a602 feat(ListView): expose expandable prop (#40765)
     add dc423b22b31 feat(embedded): support themeMode URL param for initial theme (#40760)
     add a5fe47ee715 docs(footer): render social icons as uniform white (#40854)
     add b4eda37fbf9 chore(deps-dev): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /superset-frontend (#40849)
     add 983f2818b0e chore(deps-dev): bump @swc/plugin-emotion from 14.10.0 to 14.12.0 in /superset-frontend (#40848)
     add c5d795c1f11 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40847)
     add 709fd52b0b3 chore(deps-dev): bump tsx from 4.22.3 to 4.22.4 in /superset-frontend (#40845)
     add 534d2191ffe chore(deps): bump react-draggable from 4.5.0 to 4.6.0 in /superset-frontend (#40844)
     add c6ecaf9642b chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /docs (#40843)
     add 228ac0d5687 chore(deps): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /docs (#40842)
     add ba6e9cc90fa chore(deps-dev): bump eslint from 10.4.0 to 10.4.1 in /superset-websocket (#40840)
     add 507cf936877 test(dashboard): API-created dashboards should link charts from position_json (#32966) (#40816)
     add 911bb9dcdac fix: harden ZIP safety checks (total-size cap, zero-division guard) and extension path matching (#40664)
     add 580be2cf32d fix(extensions-cli): constrain backend include patterns to the backend directory (#40593)
     add e9e92451120 test(mixed-chart): dashboard filters should reach both Mixed chart queries (#29519) (#40818)
     add 8fdabc44f50 chore(deps): update react-draggable requirement from ^4.5.0 to ^4.6.0 in /superset-frontend/packages/superset-ui-core (#40841)
     add 1e8438a478f test(dashboard): migrate favorite toggle Cypress spec to RTL (#40872)
     add fe9818226d7 fix(viz): gate stacktrace behind SHOW_STACKTRACE and allowlist resample method (#40636)
     add 8eda626466d fix: raise random_key entropy and add expiry to async query tokens (#40638)
     add 837f41986d5 fix: reject default guest/async JWT secrets at startup (#40649)
     add 3afbb48188b fix(uploads,dao): add zip-safety check to columnar reader and cap DAO page size (#40637)
     add fb0e7fecafa ci: authenticate Docker Hub pulls for service containers (#40875)
     add 1188cfef1d4 ci: make Docker-build npm ci resilient to transient network blips (#40874)
     add c58408d76c4 fix(revert 40875): "ci: authenticate Docker Hub pulls for service containers" failed (#40879)
     add d7ddf2023da fix(theme): SDK theme config overrides dashboard-level theme in embedded mode (#40763)
     add 2f71771b561 fix(sqllab): prevent corrupted query state from blocking SQL Lab access (#40580)
     add 56c856e802d fix(explore): require Update Chart for Matrixify dimension changes (#40851)
     add 3259a4a781e fix(translation): update german translation for slider range (#40902)
     add 443fd7bcee5 fix(assets): Support uploading tags using the assets import endpoint (#38343)
     add 9105adc67b2 fix(mcp): return a generic message when a request is unauthenticated (#40861)
     add a32b7b15234 fix(migrations): replay user_favorite_tag migration for 3.0.x upgraders (#38157)
     add f70cd8b5b89 feat(embedded-sdk): add fetchGuestToken timeout and clean up refresh timer (#40870)
     add 62084f4015e feat(websocket): improve operational logging and crash safety (#40868)
     add 7b1e1e5668a fix(charts): route CSV result format through the escaping CSV writer (#40859)
     add 95d46073cbe feat(websocket): add backpressure handling for slow consumers (#40857)
     add b64dd4af4a1 fix(mcp): handle JWKS fetch network errors during token verification (#40869)
     add 0133ebc9f26 feat(mcp): log successful JWT authentication events (#40864)
     add 58d29e07797 chore(deps-dev): bump concurrently from 10.0.0 to 10.0.3 in /superset-frontend (#40897)
     add 6681ab571d8 perf(websocket): yield to the event loop while processing large event batches (#40866)
     add bf9ad4d2ba3 fix: set charset via content_type to avoid malformed Content-Type headers (#40658)
     add 17fb7a7c757 chore(helm): bump app version to 6.1.0 (#40862)
     add 7a3b8f49c7b chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#40892)
     add 6311e2c315e fix: use pd.to_numeric in df_metrics_to_num to handle string-encoded numerics from ClickHouse (#40190)
     add f51736437d0 chore(deps): bump shell-quote from 1.8.3 to 1.8.4 in /docs (#40910)
     add efa88b9b7f4 chore(deps-dev): bump eslint-import-resolver-typescript from 4.4.4 to 4.4.5 in /superset-frontend (#40899)
     add 39490894389 chore(deps-dev): bump oxlint from 1.67.0 to 1.68.0 in /superset-frontend (#40898)
     add 065578e48a5 fix(commands,api): enforce command validation, sanitize export filename/token, set cache TTLs (#40655)
     add 336384bc673 chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40896)
     add 8117488fd82 feat(websocket): add configurable per-channel and total connection limits (#40856)
     add f9ba11961ad chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.60.0 to 8.60.1 in /superset-frontend (#40895)
     add ff4783f1e43 chore(deps): bump github/codeql-action from 4.36.0 to 4.36.1 (#40894)
     add 2d1b17d1ca8 chore(deps-dev): bump @typescript-eslint/parser from 8.60.0 to 8.60.1 in /docs (#40893)
     add eeaa213475b chore(deps): update react requirement from ^19.2.6 to ^19.2.7 in /superset-frontend/plugins/legacy-plugin-chart-chord (#40890)
     add 9b4aaaa0808 chore(deps-dev): bump @typescript-eslint/parser from 8.60.0 to 8.60.1 in /superset-websocket (#40889)
     add ab0fa5c3c87 test(dashboard): add regression tests for certification field clearing (#40758)
     add 76f334f252e fix(i18n): stop fuzzy-matching new strings so adding one doesn't fail babel-extract (#40909)
     add c88438ad35d chore(deps-dev): bump typescript-eslint from 8.60.0 to 8.60.1 in /superset-websocket (#40887)
     add 88ea96d4172 chore(deps-dev): bump typescript-eslint from 8.60.0 to 8.60.1 in /docs (#40891)
     add a0cf7984098 fix(embedded): add Sec-Fetch-Dest defense-in-depth check on the embedded view (#40667)
     add 568f34d6d8b fix(mcp): enforce audience, algorithm, issuer binding, and token scopes (strict mode) (#40653)
     add 004101a7520 fix(rls): apply standard datasource access checks in RLS rule commands (#40650)
     add 00e3682aaf1 fix(dashboard): URL-encode native_filters in permalink redirect (#40660)
     add 543ad04ca05 chore(deps): bump pyarrow from 20.0.0 to 24.0.0 (#39756)
     add d51753dfdcf chore(lint): convert reactify.tsx to function component (#39458)
     add c0e78f39d7b fix: replace deprecated appbuilder.app with current_app (#40876)
     add 1bfdb19e889 test(dashboard): RTL coverage for native filter modal and sidebar (#40778)
     add 0a1e51f542a fix(schemas): tighten guest dataset fields, external_url protocols, ssh creds, prophet bounds (#40640)
     add 08b8bdecbd4 fix(charts): tighten chart schema input validation (query_context JSON, prophet/rolling bounds) (#40634)
     add 2b584113919 chore(deps): bump ag-grid-react from 35.3.0 to 35.3.1 in /superset-frontend (#40928)
     add 3d1253c9925 build(major,dev-deps): upgrade Storybook from v8 to v10 (#40713)
     add 5a0e3f15ca7 feat(embedded): add guest token revocation support (#40671)
     add f27424d72e3 fix(embedded): show filter bar controls on embedded dashboards with tabs (#39417)
     add cc5a3ddd05d test(dashboard-filter): RTL coverage for horizontal filter bar (#40782)
     add 248ccadecd8 fix(extensions): load extensions async to avoid blocking initial page render (#40915)
     add 3380496e9fb feat(i18n): add Romanian (ro) translations (#36712)
     add 4f69949c101 chore(deps-dev): bump eslint-plugin-storybook from 10.4.1 to 10.4.2 in /superset-frontend (#40949)
     add c3df60c12b1 chore(deps): bump selenium from 4.32.0 to 4.44.0 (#40945)
     add 320965612d6 chore(deps-dev): update clickhouse-connect requirement from <2.0,>=0.13.0 to >=1.1.1,<2.0 (#40944)
     add 0f597058067 chore(deps): bump wtforms from 3.2.1 to 3.2.2 (#40943)
     add c9c05d8d0a8 chore(deps-dev): update thrift requirement from <1.0.0,>=0.14.1 to >=0.23.0,<1.0.0 (#40942)
     add 11af932099e chore(deps): bump dompurify from 3.4.7 to 3.4.8 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#40937)
     add 5f06e66cf1c chore(deps): bump @deck.gl/mapbox from 9.3.2 to 9.3.3 in /superset-frontend (#40927)
     add ef574092094 chore(deps): bump ag-grid-community from 35.3.0 to 35.3.1 in /superset-frontend/packages/superset-ui-core (#40923)
     add 97058d2cf09 chore(deps): bump fuse.js from 7.3.0 to 7.4.1 in /superset-frontend (#40922)
     add a8a1d9c17d6 chore(deps): bump morgan from 1.10.1 to 1.11.0 in /superset-websocket/utils/client-ws-app (#40921)
     add 6cd9bdee0bf chore(deps-dev): bump @formatjs/intl-durationformat from 0.10.3 to 0.10.13 in /superset-frontend (#40925)
     add b2c5a1ecb33 chore(deps): bump jsonpath-ng from 1.7.0 to 1.8.0 (#40940)
     add aa872cd0a14 chore(deps): bump dompurify from 3.4.9 to 3.4.8 in /superset-frontend/packages/superset-ui-core (#40938)
     add 7d046340dc1 chore(deps): bump ag-grid-react from 35.3.0 to 35.3.1 in /superset-frontend/packages/superset-ui-core (#40924)
     add b1d965932d7 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.60.0 to 8.60.1 in /superset-websocket (#40888)
     add 5b35ce1a9e6 Merge branch 'master' into update-issue-template-post-6.1.0-release

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |    14 +-
 .github/SECURITY.md                                |    75 -
 .github/actions/setup-backend/action.yml           |    35 +-
 .github/actions/setup-docker/action.yml            |     6 +-
 .github/actions/setup-supersetbot/action.yml       |     5 +-
 .github/dependabot.yml                             |    88 +-
 .github/workflows/bashlib.sh                       |    20 +-
 .github/workflows/bump-python-package.yml          |     3 +-
 .github/workflows/cancel_duplicates.yml            |    43 -
 .github/workflows/check-python-deps.yml            |    15 +-
 .github/workflows/check_db_migration_confict.yml   |     4 +-
 .github/workflows/claude.yml                       |    22 +-
 .github/workflows/codeql-analysis.yml              |    39 +-
 .github/workflows/dependency-review.yml            |     8 +-
 .github/workflows/docker.yml                       |    75 +-
 .github/workflows/embedded-sdk-release.yml         |     8 +-
 .github/workflows/embedded-sdk-test.yml            |     8 +-
 .github/workflows/ephemeral-env-pr-close.yml       |    83 -
 .github/workflows/ephemeral-env.yml                |   350 -
 .github/workflows/generate-FOSSA-report.yml        |     2 +-
 .github/workflows/github-action-validator.yml      |    25 +-
 .github/workflows/issue_creation.yml               |     3 +-
 .github/workflows/labeler.yml                      |     7 +-
 .github/workflows/latest-release-tag.yml           |    44 +-
 .github/workflows/license-check.yml                |     6 +-
 .github/workflows/pr-lint.yml                      |    10 +-
 .github/workflows/pre-commit.yml                   |    18 +-
 .github/workflows/release.yml                      |    10 +-
 .github/workflows/showtime-trigger.yml             |    15 +-
 .github/workflows/superset-app-cli.yml             |     2 +-
 .github/workflows/superset-docs-deploy.yml         |    20 +-
 .github/workflows/superset-docs-verify.yml         |    23 +-
 .github/workflows/superset-e2e.yml                 |   163 +-
 .github/workflows/superset-extensions-cli.yml      |     9 +-
 .github/workflows/superset-frontend.yml            |    15 +-
 .github/workflows/superset-helm-lint.yml           |     4 +-
 .github/workflows/superset-helm-release.yml        |    10 +-
 .github/workflows/superset-playwright.yml          |    72 +-
 .../workflows/superset-python-integrationtest.yml  |    97 +-
 .github/workflows/superset-python-presto-hive.yml  |    58 +-
 .github/workflows/superset-python-unittest.yml     |    60 +-
 .../workflows/superset-translations-comment.yml    |     1 +
 .github/workflows/superset-translations.yml        |    24 +-
 .github/workflows/superset-websocket.yml           |     3 +-
 .github/workflows/supersetbot.yml                  |     4 +-
 .github/workflows/tag-release.yml                  |    32 +-
 .github/workflows/tech-debt.yml                    |     6 +-
 .github/workflows/welcome-new-users.yml            |    15 +-
 .pre-commit-config.yaml                            |    11 +
 AGENTS.md                                          |    38 +
 Dockerfile                                         |     9 +-
 README.md                                          |     5 +
 SECURITY.md                                        |   145 +
 UPDATING.md                                        |    65 +
 docker-compose.yml                                 |    25 +
 docker/docker-bootstrap.sh                         |    18 +-
 .../pythonpath_dev/superset_config_docker_light.py |    31 +
 docs/admin_docs/configuration/cache.mdx            |    33 +
 docs/admin_docs/installation/pypi.mdx              |     9 +-
 .../version-6.1.0/installation/pypi.mdx            |     9 +-
 .../contributing/development-setup.md              |     2 +
 docs/docusaurus.config.ts                          |    17 +
 docs/i18n/en/docusaurus-theme-classic/footer.json  |     2 +-
 docs/netlify.toml                                  |    14 +-
 docs/package.json                                  |    24 +-
 docs/src/styles/main.css                           |    52 +-
 docs/static/img/community/reddit-symbol.svg        |   Bin 0 -> 1995 bytes
 docs/static/img/community/slack-symbol.svg         |   Bin 0 -> 1911 bytes
 docs/yarn.lock                                     |   457 +-
 helm/superset/Chart.yaml                           |     4 +-
 helm/superset/README.md                            |     2 +-
 pyproject.toml                                     |    46 +-
 requirements/base.in                               |     2 +-
 requirements/base.txt                              |    26 +-
 requirements/development.txt                       |    49 +-
 scripts/change_detector.py                         |     3 +-
 scripts/oxlint.sh                                  |     2 +-
 scripts/translations/babel_update.sh               |    13 +-
 scripts/translations/backfill_po.py                |    33 +
 .../translations/check_translation_regression.py   |   182 +-
 scripts/uv-pip-compile.sh                          |    30 +-
 superset-embedded-sdk/README.md                    |   116 +-
 .../src/guestTokenRefresh.test.ts                  |     8 +
 superset-embedded-sdk/src/guestTokenRefresh.ts     |     1 +
 superset-embedded-sdk/src/index.ts                 |    81 +-
 .../src/withTimeout.test.ts                        |    22 +-
 .../src/withTimeout.ts                             |    27 +-
 .../src/superset_extensions_cli/cli.py             |    24 +-
 superset-extensions-cli/tests/test_cli_build.py    |   150 +
 superset-frontend/.eslintrc.js                     |     2 +-
 superset-frontend/.storybook/{main.js => main.mjs} |    38 +-
 superset-frontend/.storybook/preview.jsx           |     6 +-
 .../.storybook/shared/ResizableChartDemo.tsx       |     2 +-
 superset-frontend/babel.config.js                  |     1 +
 .../cypress/e2e/dashboard/actions.test.js          |    67 -
 .../cypress-base/cypress/e2e/dashboard/utils.ts    |    12 -
 superset-frontend/cypress-base/package-lock.json   |   510 +-
 superset-frontend/cypress-base/package.json        |     6 +
 superset-frontend/jest.config.js                   |     2 +-
 superset-frontend/package-lock.json                | 14612 ++++++-----------
 superset-frontend/package.json                     |    95 +-
 .../packages/generator-superset/package.json       |     2 +-
 .../packages/superset-core/package.json            |    10 +-
 .../packages/superset-core/src/menus/index.ts      |    36 +-
 .../superset-core/src/theme/GlobalStyles.tsx       |    15 +
 .../packages/superset-core/src/theme/types.ts      |     6 +
 .../packages/superset-core/src/views/index.ts      |    32 +-
 .../src/operators/boxplotOperator.ts               |     2 +-
 .../src/shared-controls/matrixifyControls.tsx      |     1 -
 .../src/utils/D3Formatting.ts                      |     2 +-
 .../packages/superset-ui-core/package.json         |    19 +-
 .../src/chart/components/reactify.tsx              |   147 +-
 .../AutoComplete/AutoComplete.stories.tsx          |     2 +-
 .../components/Breadcrumb/Breadcrumb.stories.tsx   |     2 +-
 .../components/CachedLabel/CachedLabel.stories.tsx |     4 +-
 .../src/components/Checkbox/Checkbox.stories.tsx   |     2 +-
 .../DropdownContainer/DropdownContainer.tsx        |    31 +-
 .../components/EmptyState/EmptyState.stories.tsx   |     2 +-
 .../src/components/FaveStar/FaveStar.stories.tsx   |     2 +-
 .../src/components/Grid/Grid.stories.tsx           |     2 +-
 .../components/IconButton/IconButton.stories.tsx   |     2 +-
 .../src/components/Input/Input.stories.tsx         |     2 +-
 .../src/components/Label/Label.stories.tsx         |     4 +-
 .../src/components/Layout/Layout.stories.tsx       |     2 +-
 .../ListViewCard/ListViewCard.stories.tsx          |     2 +-
 .../src/components/ListViewCard/index.tsx          |     3 +-
 .../src/components/Modal/Modal.tsx                 |    22 +-
 .../superset-ui-core/src/components/Modal/types.ts |     2 +-
 .../src/components/Radio/Radio.stories.tsx         |     2 +-
 .../SafeMarkdown/SafeMarkdown.stories.tsx          |     2 +-
 .../src/components/SafeMarkdown/SafeMarkdown.tsx   |    49 +-
 .../src/components/Skeleton/Skeleton.stories.tsx   |     2 +-
 .../src/components/Switch/Switch.stories.tsx       |     2 +-
 .../src/components/Table/Table.stories.tsx         |     4 +-
 .../ActionCell/ActionCell.stories.tsx              |     2 +-
 .../Table/cell-renderers/ActionCell/fixtures.ts    |     2 +-
 .../BooleanCell/BooleanCell.stories.tsx            |     2 +-
 .../ButtonCell/ButtonCell.stories.tsx              |     4 +-
 .../cell-renderers/NullCell/NullCell.stories.tsx   |     2 +-
 .../NumericCell/NumericCell.stories.tsx            |     2 +-
 .../cell-renderers/TimeCell/TimeCell.stories.tsx   |     2 +-
 .../src/components/Table/index.tsx                 |     2 +
 .../TableCollection/TableCollection.stories.tsx    |     2 +-
 .../TableCollection/TableCollection.test.tsx       |     6 +
 .../src/components/TableCollection/index.tsx       |    31 +-
 .../TimezoneSelector/TimezoneSelector.stories.tsx  |     2 +-
 .../src/components/Tree/Tree.stories.tsx           |     2 +-
 .../components/TreeSelect/TreeSelect.stories.tsx   |     2 +-
 .../components/Typography/Typography.stories.tsx   |     2 +-
 .../src/components/Upload/Upload.stories.tsx       |     2 +-
 .../src/connection/SupersetClientClass.ts          |     3 +-
 .../superset-ui-core/src/number-format/README.md   |     6 +-
 .../factories/createDurationFormatter.ts           |    47 +-
 .../utils/getIntlDurationFormatter.ts}             |    14 +-
 .../src/number-format/utils/parseMilliseconds.ts   |    57 +
 .../superset-ui-core/src/query/types/Dashboard.ts  |     1 -
 .../superset-ui-core/src/utils/html.test.tsx       |    29 +
 .../packages/superset-ui-core/src/utils/html.tsx   |    46 +-
 .../test/chart/components/reactify.test.tsx        |    89 +-
 .../test/components/SafeMarkdown.test.tsx          |    58 +
 .../factories/createDurationFormatter.test.ts      |    25 +-
 .../utils/getIntlDurationFormatter.test.ts         |    38 +
 .../number-format/utils/parseMilliseconds.test.ts  |   148 +
 .../superset-ui-core/test/utils/tooltip.test.ts    |    21 +-
 .../packages/superset-ui-core/types/intl.d.ts      |    73 +
 superset-frontend/playwright.config.ts             |    24 +
 .../playwright/components/ListView/BulkSelect.ts   |    84 +-
 .../playwright/components/ListView/index.ts        |     1 +
 .../playwright/components/core/EditableTabs.ts     |    18 +-
 .../components/modals/DeleteConfirmationModal.ts   |    32 +-
 .../components/modals/EditDatasetModal.ts          |    17 +
 .../playwright/embedded-app/index.html             |    95 +
 .../playwright/helpers/api/dashboard.ts            |    50 +-
 .../playwright/helpers/api/embedded.ts             |   133 +
 .../playwright/helpers/api/requests.ts             |   112 +-
 superset-frontend/playwright/helpers/navigation.ts |    57 +
 .../playwright/pages/ChartCreationPage.ts          |     3 +-
 .../playwright/pages/ChartListPage.ts              |    38 +-
 .../playwright/pages/CreateDatasetPage.ts          |     3 +-
 .../playwright/pages/DashboardListPage.ts          |    36 +-
 .../playwright/pages/DashboardPage.ts              |     5 +-
 .../playwright/pages/DatasetListPage.ts            |    42 +-
 superset-frontend/playwright/pages/EmbeddedPage.ts |   172 +
 superset-frontend/playwright/pages/SqlLabPage.ts   |    37 +-
 .../playwright/tests/chart/chart-list.spec.ts      |   103 +-
 .../tests/dashboard/dashboard-list.spec.ts         |   137 +-
 .../mixed-chart-dashboard-filters.spec.ts          |   203 +
 .../playwright/tests/dataset/dataset-list.spec.ts  |   128 +-
 .../tests/embedded/embedded-dashboard.spec.ts      |   362 +
 superset-frontend/playwright/utils/constants.ts    |    20 +-
 .../legacy-plugin-chart-calendar/src/utils.ts      |     4 +-
 .../src/vendor/cal-heatmap.ts                      |    27 +-
 .../test/utils.test.ts                             |   125 +-
 .../plugins/legacy-plugin-chart-chord/package.json |     2 +-
 .../legacy-plugin-chart-partition/src/Partition.ts |     3 +-
 .../plugins/legacy-plugin-chart-rose/src/Rose.ts   |    13 +-
 .../legacy-plugin-chart-world-map/src/WorldMap.ts  |     5 +-
 .../test/WorldMap.test.ts                          |    57 +-
 .../plugins/legacy-preset-chart-nvd3/package.json  |     4 +-
 .../plugins/legacy-preset-chart-nvd3/src/utils.ts  |    55 +-
 .../legacy-preset-chart-nvd3/test/utils.test.ts    |   174 +
 .../src/AgGridTableChart.tsx                       |     4 +
 .../plugin-chart-ag-grid-table/src/consts.ts       |     2 +
 .../src/controlPanel.tsx                           |    18 +-
 .../src/stateConversion.ts                         |    30 +-
 .../src/styles/index.tsx                           |     6 +
 .../src/transformProps.ts                          |     2 +
 .../plugin-chart-ag-grid-table/src/types.ts        |     2 +
 .../src/utils/agGridFilterConverter.ts             |    33 +-
 .../src/utils/useColDefs.ts                        |    69 +-
 .../test/controlPanel.test.tsx                     |    71 +
 .../test/stateConversion.test.ts                   |    73 +
 .../test/utils/agGridFilterConverter.test.ts       |    61 +
 .../test/utils/useColDefs.test.ts                  |   240 +
 .../plugins/plugin-chart-echarts/package.json      |     2 +-
 .../src/BigNumber/BigNumberViz.test.tsx            |    85 +
 .../src/BigNumber/BigNumberViz.tsx                 |     7 +-
 .../BigNumberWithTrendline/transformProps.test.ts  |     4 +-
 .../src/Funnel/transformProps.ts                   |     2 -
 .../src/Histogram/buildQuery.ts                    |    15 +-
 .../src/Timeseries/transformProps.ts               |     6 +-
 .../plugin-chart-echarts/src/components/Echart.tsx |     7 +-
 .../test/Funnel/transformProps.test.ts             |     9 +
 .../test/Histogram/buildQuery.test.ts              |    81 +
 .../test/Timeseries/transformProps.test.ts         |    97 +
 .../plugins/plugin-chart-handlebars/package.json   |     2 +-
 .../src/plugin/controls/columns.tsx                |     8 +-
 .../src/plugin/controls/metrics.tsx                |     8 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     2 +-
 .../plugin-chart-point-cluster-map/package.json    |     2 +-
 .../plugin-chart-table/src/controlPanel.tsx        |     6 +-
 .../plugin-chart-table/test/controlPanel.test.tsx  |    71 +
 .../plugins/preset-chart-deckgl/package.json       |     4 +-
 .../spec/fixtures/mockNativeFilters.ts             |    20 +
 superset-frontend/spec/helpers/setup.ts            |     4 +
 superset-frontend/spec/helpers/testing-library.tsx |    37 +
 .../src/SqlLab/components/AppLayout/index.tsx      |     4 +-
 .../src/SqlLab/components/EditorAutoSync/index.tsx |     2 +-
 .../src/SqlLab/components/EditorWrapper/index.tsx  |     2 +-
 .../SqlLab/components/EditorWrapper/useKeywords.ts |     2 +-
 .../components/ExploreCtasResultsButton/index.tsx  |     2 +-
 .../src/SqlLab/components/PopEditorTab/index.tsx   |     2 +-
 .../SqlLab/components/QueryAutoRefresh/index.tsx   |     2 +-
 .../SqlLab/components/QueryLimitSelect/index.tsx   |     2 +-
 .../src/SqlLab/components/QueryTable/index.tsx     |     2 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |     5 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |     9 +-
 .../src/SqlLab/components/SouthPane/index.tsx      |     6 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |     2 +-
 .../SqlLab/components/SqlEditorLeftBar/index.tsx   |     2 +-
 .../SqlLab/components/SqlEditorTabHeader/index.tsx |     2 +-
 .../SqlEditorTopBar/useDatabaseSelector.ts         |     2 +-
 .../src/SqlLab/components/StatusBar/index.tsx      |     4 +-
 .../SqlLab/components/TabbedSqlEditors/index.tsx   |    19 +-
 .../src/SqlLab/components/TableElement/index.tsx   |     2 +-
 .../SqlLab/components/TableExploreTree/index.tsx   |     2 +-
 .../components/TableExploreTree/useTreeData.ts     |     2 +-
 .../src/SqlLab/components/TablePreview/index.tsx   |     2 +-
 .../SqlLab/hooks/useAppDispatch.ts}                |    17 +-
 .../SqlLab/hooks/useAppSelector.ts}                |    13 +-
 .../DynamicGroupBy/DynamicGroupByPlugin.test.tsx   |    81 +
 .../DynamicGroupBy/DynamicGroupByPlugin.tsx        |    19 +-
 .../components/DynamicGroupBy/types.ts             |     1 -
 superset-frontend/src/components/Chart/Chart.tsx   |   506 +-
 .../src/components/Chart/ChartErrorMessage.tsx     |     3 +-
 .../src/components/Chart/ChartRenderer.test.tsx    |    83 +-
 .../src/components/Chart/ChartRenderer.tsx         |   732 +-
 .../src/components/Chart/DrillBy/DrillByChart.tsx  |     4 +-
 .../src/components/Chart/chartAction.ts            |     7 +-
 .../src/components/CrudThemeProvider.test.tsx      |    55 +
 .../src/components/CrudThemeProvider.tsx           |    19 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |     3 +-
 .../components/ErrorMessage/ErrorAlert.stories.tsx |     2 +-
 .../src/components/GenericLink/index.tsx           |     4 +-
 .../components/ListView/CardSortSelect.test.tsx    |   102 +
 .../src/components/ListView/CardSortSelect.tsx     |    76 +-
 .../ListView/Filters/CompactFilterTrigger.test.tsx |   145 +
 .../ListView/Filters/CompactFilterTrigger.tsx      |   198 +
 .../ListView/Filters/CompactSelectPanel.test.tsx   |   339 +
 .../ListView/Filters/CompactSelectPanel.tsx        |   318 +
 .../src/components/ListView/Filters/DateRange.tsx  |   112 -
 .../ListView/Filters/FilterPopoverContent.test.tsx |    80 +
 .../ListView/Filters/FilterPopoverContent.tsx      |    74 +
 .../components/ListView/Filters/Select.test.tsx    |   267 -
 .../src/components/ListView/Filters/Select.tsx     |   154 -
 .../components/ListView/Filters/TimeRange.test.tsx |   251 +
 .../src/components/ListView/Filters/TimeRange.tsx  |   291 +
 .../src/components/ListView/Filters/index.test.tsx |   335 +-
 .../src/components/ListView/Filters/index.tsx      |   385 +-
 .../src/components/ListView/ListView.test.tsx      |    26 +-
 .../src/components/ListView/ListView.tsx           |   104 +-
 superset-frontend/src/components/ListView/utils.ts |    22 +-
 .../MessageToasts/ToastPresenter.test.tsx          |    10 +
 .../components/MessageToasts/ToastPresenter.tsx    |     4 +-
 .../src/components/PanelToolbar/index.tsx          |     5 +-
 .../RowCountLabel/RowCountLabel.stories.tsx        |     4 +-
 .../useStreamingExport.test.ts                     |    32 +
 .../StreamingExportModal/useStreamingExport.ts     |     5 +
 .../src/components/Tag/Tag.stories.tsx             |     2 +-
 .../src/components/TagsList/TagsList.stories.tsx   |     2 +-
 .../src/core/editors/EditorHost.test.tsx           |     3 +-
 superset-frontend/src/core/editors/EditorHost.tsx  |    53 +-
 .../src/core/editors/EditorProviders.ts            |    14 +
 superset-frontend/src/core/editors/index.ts        |    18 +
 superset-frontend/src/core/menus/index.ts          |    53 +
 superset-frontend/src/core/views/index.ts          |    55 +-
 .../actions/dashboardState.certification.test.ts   |   127 +
 .../src/dashboard/actions/dashboardState.test.ts   |   331 +-
 .../src/dashboard/actions/dashboardState.ts        |   100 +-
 .../DashboardBuilder/DashboardWrapper.test.tsx     |    53 +-
 .../dashboard/components/Header/Header.test.tsx    |    44 +
 .../src/dashboard/components/Header/index.tsx      |     3 +-
 .../dashboard/components/PropertiesModal/index.tsx |    20 +-
 .../PropertiesModal/sections/AccessSection.tsx     |     6 +-
 .../components/PropertiesModal/utils.test.ts       |    90 +
 .../dashboard/components/PropertiesModal/utils.ts  |    81 +
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   147 +
 .../FilterControls.overflow.test.tsx               |   305 +
 .../FilterControls/GroupByFilterCard.test.tsx      |    41 +
 .../FilterBar/FilterControls/GroupByFilterCard.tsx |    36 +-
 .../nativeFilters/FilterBar/Horizontal.tsx         |   137 +-
 .../FilterBar/HorizontalFilterBar.test.tsx         |   156 +-
 .../FilterBar/UrlFilters/UrlFilterTag.tsx          |    84 +
 .../FilterBar/UrlFilters/Vertical.test.tsx         |   139 +
 .../FilterBar/UrlFilters/Vertical.tsx              |    96 +
 .../FilterBar/UrlFilters/VerticalCollapse.tsx      |   131 +
 .../FilterBar/UrlFilters/urlFilterUtils.ts         |    71 +
 .../nativeFilters/FilterBar/Vertical.tsx           |     2 +
 .../components/nativeFilters/FilterBar/index.tsx   |    17 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |     2 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |   270 +
 .../FiltersConfigModal/FiltersConfigModal.tsx      |    18 +-
 .../FiltersConfigModal/NativeFiltersModal.test.tsx |    28 +-
 .../components/nativeFilters/state.test.ts         |   504 +-
 .../dashboard/components/nativeFilters/state.ts    |    76 +-
 .../dashboard/containers/DashboardPage.test.tsx    |   220 +-
 .../src/dashboard/containers/DashboardPage.tsx     |    95 +-
 .../src/dashboard/util/UrlFilters.scope.test.ts    |   110 +
 .../util/charts/getFormDataWithExtraFilters.ts     |    16 +-
 .../util/getFormDataWithExtraFilters.test.ts       |   105 +-
 .../util/migrateChartCustomization.test.ts         |    24 +-
 .../dashboard/util/migrateChartCustomization.ts    |     7 +-
 .../src/dashboard/util/risonFilters.test.ts        |   411 +
 .../src/dashboard/util/risonFilters.ts             |   569 +
 .../src/embedded/EmbeddedContextProviders.tsx      |     5 +-
 .../src/embedded/getInitialThemeMode.test.ts       |    66 +
 .../embedded/getInitialThemeMode.ts}               |    28 +-
 superset-frontend/src/embedded/index.tsx           |    30 +-
 .../src/embedded/originValidation.test.ts          |   112 +
 superset-frontend/src/embedded/originValidation.ts |    91 +
 .../explore/components/ControlHeader.stories.tsx   |     4 +-
 .../components/useGridResultTable.tsx              |    37 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |    40 +
 .../DatasourcePanelDragOption.test.tsx             |    16 +-
 .../DatasourcePanelDragOption/index.tsx            |    44 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |    53 +-
 .../ExploreContainer/ExploreContainer.test.tsx     |   120 +-
 .../ExploreContainer/ExploreDndContext.test.tsx    |   125 +
 .../ExploreContainer/ExploreDndContext.tsx         |   244 +
 .../explore/components/ExploreContainer/index.tsx  |    81 +-
 .../controls/CollectionControl/index.tsx           |     4 +-
 .../components/controls/ContourControl/index.tsx   |     2 +
 .../controls/ControlPopover/ControlPopover.tsx     |     1 +
 .../DndColumnMetricSelect.test.tsx                 |   273 +-
 .../DndColumnSelect.test.tsx                       |    24 +-
 .../DndColumnSelectControl/DndColumnSelect.tsx     |     5 +
 .../DndFilterSelect.test.tsx                       |   329 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |     2 +
 .../DndMetricSelect.test.tsx                       |   258 +-
 .../DndColumnSelectControl/DndMetricSelect.tsx     |     5 +
 .../DndColumnSelectControl/DndSelectLabel.test.tsx |     9 +-
 .../DndColumnSelectControl/DndSelectLabel.tsx      |    83 +-
 .../DndColumnSelectControl/OptionWrapper.test.tsx  |    55 +-
 .../DndColumnSelectControl/OptionWrapper.tsx       |    90 +-
 .../DndColumnSelectControl/dndTestUtils.ts         |   120 +
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |     2 +-
 .../OptionControls/OptionControls.test.tsx         |    21 +-
 .../components/controls/OptionControls/index.tsx   |   109 +-
 .../src/extensions/ExtensionsStartup.tsx           |    29 +-
 .../DatabaseConnectionForm.test.tsx                |    85 +
 .../DatabaseConnectionForm/EncryptedField.test.tsx |   210 +-
 .../DatabaseConnectionForm/EncryptedField.tsx      |    80 +-
 .../OAuth2ClientField.test.tsx                     |    82 +
 .../DatabaseConnectionForm/OAuth2ClientField.tsx   |    78 +-
 .../DatabaseConnectionForm/TableCatalog.test.tsx   |    87 +
 .../DatabaseConnectionForm/TableCatalog.tsx        |    18 +-
 .../DatabaseModal/DatabaseConnectionForm/index.tsx |   112 +-
 .../databases/DatabaseModal/SqlAlchemyForm.tsx     |     5 +-
 .../databases/DatabaseModal/index.test.tsx         |   153 +
 .../src/features/databases/DatabaseModal/index.tsx |    61 +-
 .../src/features/databases/DatabaseModal/styles.ts |    11 +-
 superset-frontend/src/features/databases/types.ts  |     4 +
 .../DatasetPanel/DatasetPanel.stories.tsx          |     2 +-
 .../AddDataset/DatasetPanel/DatasetPanel.test.tsx  |    23 +
 .../AddDataset/DatasetPanel/DatasetPanel.tsx       |     2 +-
 .../src/features/groups/GroupListModal.tsx         |     3 +-
 superset-frontend/src/features/groups/utils.ts     |     3 +-
 .../src/features/roles/RoleListEditModal.test.tsx  |   113 +-
 .../src/features/roles/RoleListEditModal.tsx       |    59 +-
 .../src/features/tasks/TaskStatusIcon.tsx          |     4 +
 .../src/features/tasks/timeUtils.test.ts           |     6 +-
 superset-frontend/src/features/tasks/timeUtils.ts  |    72 +-
 superset-frontend/src/features/users/utils.ts      |     9 +
 .../components/Range/RangeFilterPlugin.stories.tsx |     2 +-
 .../components/Range/RangeFilterPlugin.test.tsx    |   159 +-
 .../filters/components/Range/RangeFilterPlugin.tsx |    26 +
 .../Select/SelectFilterPlugin.stories.tsx          |     2 +-
 superset-frontend/src/hooks/useLocale.ts           |     2 +
 .../src/middleware/asyncEvent.test.ts              |    28 +
 superset-frontend/src/middleware/asyncEvent.ts     |    32 +-
 .../pages/ChartList/ChartList.listview.test.tsx    |     5 +-
 .../src/pages/ChartList/ChartList.test.tsx         |     9 +-
 superset-frontend/src/pages/ChartList/index.tsx    |     7 +-
 .../DashboardList/DashboardList.cardview.test.tsx  |    16 +-
 .../src/pages/DashboardList/DashboardList.test.tsx |     8 +-
 .../src/pages/DashboardList/index.tsx              |     3 +
 .../DatasetList/DatasetList.integration.test.tsx   |     6 +-
 .../DatasetList/DatasetList.listview.test.tsx      |    23 +-
 .../src/pages/DatasetList/DatasetList.test.tsx     |     7 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |     6 +
 .../src/pages/GroupsList/GroupsList.test.tsx       |    16 +-
 .../src/pages/RolesList/RolesList.test.tsx         |     7 +-
 .../RowLevelSecurityList.test.tsx                  |     9 +-
 superset-frontend/src/pages/SqlLab/index.tsx       |    40 +-
 superset-frontend/src/pages/TaskList/index.tsx     |     7 +-
 .../UserRegistrations/UserRegistrations.test.tsx   |     7 +-
 .../src/pages/UserRegistrations/index.tsx          |    14 -
 .../src/pages/UsersList/UsersList.test.tsx         |    20 +-
 superset-frontend/src/pages/UsersList/index.tsx    |     4 +-
 superset-frontend/src/preamble.test.ts             |   113 +
 superset-frontend/src/preamble.ts                  |     3 +-
 superset-frontend/src/setup/setupFormatters.ts     |    15 +-
 superset-frontend/src/theme/ThemeController.ts     |    15 +
 superset-frontend/src/theme/ThemeProvider.tsx      |     9 +-
 .../src/theme/tests/ThemeController.test.ts        |    18 +
 .../src/theme/tests/ThemeProvider.test.tsx         |     1 +
 superset-frontend/src/types/bootstrapTypes.ts      |     3 +
 superset-frontend/src/utils/fetchOptions.ts        |    21 +-
 superset-frontend/src/utils/getOwnerName.test.ts   |    12 +
 superset-frontend/src/utils/getOwnerName.ts        |     5 +-
 superset-frontend/src/utils/navigationUtils.ts     |    11 +-
 superset-websocket/Dockerfile                      |    14 +-
 superset-websocket/README.md                       |    19 +
 superset-websocket/config.example.json             |     3 +-
 superset-websocket/package-lock.json               |   409 +-
 superset-websocket/package.json                    |    14 +-
 superset-websocket/spec/index.test.ts              |   465 +-
 superset-websocket/src/config.ts                   |    50 +-
 superset-websocket/src/index.ts                    |   227 +-
 superset-websocket/src/logger.ts                   |     1 +
 .../utils/client-ws-app/package-lock.json          |   118 +-
 .../utils/client-ws-app/package.json               |     2 +-
 superset/async_events/async_query_manager.py       |    13 +-
 superset/charts/api.py                             |    23 +-
 superset/charts/client_processing.py               |    13 +-
 superset/charts/data/api.py                        |    16 +-
 superset/charts/data/dashboard_filter_context.py   |    30 +-
 superset/charts/schemas.py                         |    66 +-
 superset/cli/guest_token.py                        |    54 +
 superset/commands/chart/create.py                  |    13 +
 .../chart/data/create_async_job_command.py         |     5 +
 superset/commands/chart/fave.py                    |     8 +-
 superset/commands/chart/unfave.py                  |     8 +-
 superset/commands/chart/update.py                  |    21 +-
 superset/commands/chart/warm_up_cache.py           |    19 +-
 superset/commands/dashboard/create.py              |    13 +-
 superset/commands/dashboard/delete.py              |     5 +-
 superset/commands/dashboard/filter_state/create.py |     9 +-
 superset/commands/dashboard/importers/v1/utils.py  |   148 +-
 .../commands/database/uploaders/columnar_reader.py |    45 +
 superset/commands/dataset/create.py                |     8 +
 superset/commands/dataset/duplicate.py             |     8 +-
 superset/commands/dataset/importers/v0.py          |    18 +-
 superset/commands/dataset/importers/v1/__init__.py |    15 +-
 superset/commands/dataset/importers/v1/utils.py    |    71 +-
 superset/commands/dataset/update.py                |    51 +-
 superset/commands/dataset/warm_up_cache.py         |    12 +-
 superset/commands/explore/form_data/create.py      |    11 +-
 superset/commands/export/assets.py                 |    18 +-
 superset/commands/importers/v1/utils.py            |    47 +
 superset/commands/logs/prune.py                    |     5 +-
 superset/commands/report/base.py                   |    46 +-
 superset/commands/report/execute.py                |    83 +-
 superset/commands/restore.py                       |    98 +
 superset/commands/security/create.py               |     2 +
 superset/commands/security/delete.py               |     9 +-
 superset/commands/security/exceptions.py           |    10 +-
 superset/commands/security/update.py               |     2 +
 superset/commands/security/utils.py                |    42 +
 superset/commands/streaming_export/base.py         |    67 +-
 superset/commands/tag/create.py                    |    35 +
 superset/commands/tag/delete.py                    |    40 +-
 superset/commands/tag/utils.py                     |    17 +-
 superset/commands/temporary_cache/create.py        |     1 +
 superset/commands/temporary_cache/delete.py        |     1 +
 superset/commands/temporary_cache/update.py        |     1 +
 superset/common/utils/dataframe_utils.py           |    10 +-
 superset/config.py                                 |    88 +-
 superset/connectors/sqla/models.py                 |    75 +-
 superset/constants.py                              |     5 +
 superset/daos/base.py                              |   142 +-
 superset/daos/dashboard.py                         |     2 +-
 superset/daos/database.py                          |    83 +-
 superset/daos/key_value.py                         |    32 +
 superset/daos/report.py                            |    50 +-
 .../requirements.txt => daos/role.py}              |    15 +-
 superset/dashboards/api.py                         |    32 +-
 superset/dashboards/schemas.py                     |    81 +-
 superset/databases/api.py                          |    25 +-
 superset/databases/schemas.py                      |    27 +-
 superset/dataframe.py                              |    18 +-
 superset/datasets/api.py                           |     6 +-
 superset/db_engine_specs/__init__.py               |     8 +
 superset/db_engine_specs/base.py                   |    43 +-
 superset/db_engine_specs/druid.py                  |    26 +
 superset/db_engine_specs/odps.py                   |   201 +
 superset/db_engine_specs/presto.py                 |     6 +
 superset/db_engine_specs/ydb.py                    |     2 +-
 superset/embedded/view.py                          |    18 +
 superset/extensions/metadb.py                      |    11 +-
 superset/extensions/utils.py                       |    85 +-
 superset/initialization/__init__.py                |   126 +-
 superset/jinja_context.py                          |    67 +-
 .../key_value/commands}/__init__.py                |     0
 superset/key_value/commands/prune.py               |   143 +
 superset/key_value/shared_entries.py               |    13 +
 superset/key_value/types.py                        |     3 +
 superset/key_value/utils.py                        |    31 +-
 .../mcp_service/annotation_layer}/__init__.py      |     0
 superset/mcp_service/annotation_layer/schemas.py   |   367 +
 .../tool/__init__.py                               |    16 +-
 .../tool/get_annotation_layer_info.py              |    97 +
 .../tool/get_layer_annotation_info.py              |   130 +
 .../tool/list_annotation_layers.py                 |   123 +
 .../tool/list_layer_annotations.py                 |   144 +
 superset/mcp_service/app.py                        |   117 +-
 superset/mcp_service/auth.py                       |   448 +-
 superset/mcp_service/bin/superset-mcp.js           |     4 +-
 superset/mcp_service/chart/chart_helpers.py        |   153 +
 superset/mcp_service/chart/chart_utils.py          |    81 +-
 superset/mcp_service/chart/schemas.py              |   276 +-
 superset/mcp_service/chart/tool/generate_chart.py  |    25 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |    25 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |    17 +-
 superset/mcp_service/chart/tool/update_chart.py    |    33 +-
 .../chart/validation/dataset_validator.py          |    45 +-
 superset/mcp_service/chart/validation/pipeline.py  |     6 +-
 .../chart/validation/runtime/__init__.py           |     4 +-
 .../validation/runtime/chart_type_suggester.py     |    23 +-
 .../chart/validation/schema_validator.py           |    35 +-
 superset/mcp_service/common/schema_discovery.py    |   101 +
 superset/mcp_service/composite_token_verifier.py   |   199 +
 superset/mcp_service/constants.py                  |     2 +-
 superset/mcp_service/dashboard/schemas.py          |   316 +-
 superset/mcp_service/dashboard/tool/__init__.py    |     2 +
 .../dashboard/tool/generate_dashboard.py           |     6 +-
 .../dashboard/tool/get_dashboard_info.py           |    17 +-
 .../dashboard/tool/get_dashboard_layout.py         |   119 +
 superset/mcp_service/database/schemas.py           |    14 +-
 superset/mcp_service/dataset/schemas.py            |    99 +-
 .../mcp_service/dataset/tool/get_dataset_info.py   |    16 +-
 superset/mcp_service/jwt_verifier.py               |   469 +-
 superset/mcp_service/mcp_config.py                 |   189 +-
 superset/mcp_service/mcp_core.py                   |    74 +-
 superset/mcp_service/middleware.py                 |    11 +-
 superset/mcp_service/privacy.py                    |     7 +-
 .../mcp_service/query}/__init__.py                 |     0
 superset/mcp_service/query/schemas.py              |   293 +
 .../query/tool/__init__.py}                        |    11 +-
 superset/mcp_service/query/tool/get_query_info.py  |   122 +
 superset/mcp_service/query/tool/list_queries.py    |   156 +
 .../mcp_service/report}/__init__.py                |     0
 .../mcp_service/{database => report}/schemas.py    |   224 +-
 .../report/tool/__init__.py}                       |    11 +-
 .../mcp_service/report/tool/get_report_info.py     |   127 +
 superset/mcp_service/report/tool/list_reports.py   |   172 +
 .../mcp_service/rls}/__init__.py                   |     0
 superset/mcp_service/rls/schemas.py                |   255 +
 .../rls/tool/__init__.py}                          |    11 +-
 .../mcp_service/rls/tool/get_rls_filter_info.py    |   101 +
 superset/mcp_service/rls/tool/list_rls_filters.py  |   147 +
 .../mcp_service/role}/__init__.py                  |     0
 superset/mcp_service/role/schemas.py               |   264 +
 .../role/tool/__init__.py}                         |    11 +-
 superset/mcp_service/role/tool/get_role_info.py    |    97 +
 superset/mcp_service/role/tool/list_roles.py       |   135 +
 .../mcp_service/saved_query}/__init__.py           |     0
 superset/mcp_service/saved_query/schemas.py        |   269 +
 .../saved_query/tool/__init__.py}                  |    11 +-
 .../saved_query/tool/get_saved_query_info.py       |   129 +
 .../saved_query/tool/list_saved_queries.py         |   158 +
 .../mcp_service/screenshot/webdriver_config.py     |    16 +-
 superset/mcp_service/screenshot/webdriver_pool.py  |     6 +-
 superset/mcp_service/server.py                     |    68 +-
 superset/mcp_service/storage.py                    |     4 +-
 superset/mcp_service/system/tool/get_schema.py     |    75 +-
 .../mcp_service/tag}/__init__.py                   |     0
 superset/mcp_service/tag/schemas.py                |   251 +
 .../tag/tool/__init__.py}                          |    11 +-
 superset/mcp_service/tag/tool/get_tag_info.py      |   108 +
 superset/mcp_service/tag/tool/list_tags.py         |   157 +
 .../mcp_service/task}/__init__.py                  |     0
 superset/mcp_service/task/schemas.py               |   259 +
 .../task/tool/__init__.py}                         |    11 +-
 superset/mcp_service/task/tool/get_task_info.py    |   107 +
 superset/mcp_service/task/tool/list_tasks.py       |   140 +
 .../mcp_service/user}/__init__.py                  |     0
 superset/mcp_service/user/schemas.py               |   302 +
 .../user/tool/__init__.py}                         |    11 +-
 superset/mcp_service/user/tool/get_user_info.py    |   107 +
 superset/mcp_service/user/tool/list_users.py       |   151 +
 superset/mcp_service/utils/error_sanitization.py   |    44 +-
 superset/mcp_service/utils/permissions_utils.py    |    19 +-
 superset/mcp_service/utils/response_utils.py       |    11 +
 superset/mcp_service/utils/sanitization.py         |   139 +-
 ...ae2559c05_replay_user_favorite_tag_migration.py |    81 +
 superset/models/core.py                            |    71 +-
 superset/models/dashboard.py                       |    13 +-
 superset/models/helpers.py                         |   355 +-
 superset/models/slice.py                           |     8 +-
 superset/models/sql_lab.py                         |    27 +-
 superset/queries/saved_queries/api.py              |     3 +-
 superset/reports/notifications/email.py            |    24 +-
 superset/result_set.py                             |    94 +-
 superset/row_level_security/api.py                 |    21 +-
 superset/security/analytics_db_safety.py           |     4 +
 superset/security/api.py                           |    30 +-
 superset/security/guest_token.py                   |    75 +-
 superset/security/manager.py                       |   341 +-
 superset/semantic_layers/mapper.py                 |     7 +-
 superset/sql/execution/celery_task.py              |     6 +-
 superset/sql/parse.py                              |    73 +-
 superset/sql_lab.py                                |    19 +-
 superset/sqllab/api.py                             |     8 +
 superset/sqllab/schemas.py                         |    14 +-
 superset/sqllab/validators.py                      |     6 +-
 superset/tasks/cache.py                            |   204 +-
 superset/tasks/scheduler.py                        |    16 +
 .../templates/superset}/loading.svg                |   Bin
 superset/templates/superset/spa.html               |     2 +-
 superset/themes/api.py                             |     3 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |  1830 ++-
 superset/translations/ca/LC_MESSAGES/messages.po   |  1793 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |  2438 ++-
 superset/translations/de/LC_MESSAGES/messages.po   |  1798 +-
 superset/translations/en/LC_MESSAGES/messages.po   |  1527 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  5572 ++++---
 superset/translations/fa/LC_MESSAGES/messages.po   |  1782 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |  5967 ++++---
 superset/translations/fr/LC_MESSAGES/messages.po   |  1839 ++-
 superset/translations/it/LC_MESSAGES/messages.po   |  1714 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |  2513 ++-
 superset/translations/ko/LC_MESSAGES/messages.po   |  1718 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |  1767 +-
 superset/translations/messages.pot                 |  1509 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  1790 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |  1796 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |  1794 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |  1732 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  5474 ++++---
 superset/translations/requirements.txt             |     5 +-
 superset/translations/ro/LC_MESSAGES/messages.po   | 16267 +++++++++++++++++++
 superset/translations/ru/LC_MESSAGES/messages.po   |  1848 ++-
 superset/translations/sk/LC_MESSAGES/messages.po   |  5642 +++++--
 superset/translations/sl/LC_MESSAGES/messages.po   |  1818 ++-
 superset/translations/th/LC_MESSAGES/messages.po   |  5152 ++++--
 superset/translations/tr/LC_MESSAGES/messages.po   |  1679 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |  2169 ++-
 superset/translations/zh/LC_MESSAGES/messages.po   |  1766 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  1758 +-
 superset/utils/core.py                             |    41 +-
 superset/utils/csv.py                              |    22 +-
 superset/utils/excel.py                            |    24 +
 superset/utils/json.py                             |    31 +-
 superset/utils/link_redirect.py                    |    14 +-
 superset/utils/rison_filters.py                    |   274 +
 superset/utils/schema.py                           |    34 +-
 superset/utils/screenshot_utils.py                 |     8 +
 superset/utils/screenshots.py                      |    16 +-
 superset/utils/webdriver.py                        |    95 +-
 superset/views/api.py                              |    21 +-
 superset/views/base.py                             |    51 +-
 superset/views/base_api.py                         |    14 +-
 superset/views/core.py                             |    11 +-
 superset/views/datasource/utils.py                 |    17 +-
 superset/views/datasource/views.py                 |    24 +
 superset/views/filters.py                          |   213 +-
 superset/views/sql_lab/schemas.py                  |     7 +-
 superset/views/sql_lab/views.py                    |    53 +-
 superset/views/users/api.py                        |     4 +
 superset/views/utils.py                            |    19 +-
 superset/viz.py                                    |    62 +-
 tests/integration_tests/celery_tests.py            |   138 +-
 tests/integration_tests/charts/api_tests.py        |    56 +-
 tests/integration_tests/charts/commands_tests.py   |    23 +-
 tests/integration_tests/core_tests.py              |    30 +-
 tests/integration_tests/dao/base_dao_test.py       |    69 +
 tests/integration_tests/dashboards/api_tests.py    |   102 +
 tests/integration_tests/datasets/commands_tests.py |    20 +-
 .../db_engine_specs/base_engine_spec_tests.py      |     7 +-
 tests/integration_tests/embedded/test_view.py      |    66 +
 .../queries/saved_queries/api_tests.py             |    39 +
 .../commands/execute_dashboard_report_tests.py     |     4 +-
 tests/integration_tests/result_set_tests.py        |    34 +-
 .../security/analytics_db_safety_tests.py          |    20 +
 tests/integration_tests/security_tests.py          |   250 +
 tests/integration_tests/sqllab_tests.py            |    34 +-
 tests/integration_tests/strategy_tests.py          |    56 +-
 tests/integration_tests/superset_test_config.py    |     1 +
 tests/integration_tests/tags/commands_tests.py     |     4 +
 tests/integration_tests/tasks/test_cache.py        |    95 -
 tests/integration_tests/tasks/test_utils.py        |    77 -
 tests/integration_tests/thumbnails_tests.py        |    16 +-
 .../async_events/async_query_manager_tests.py      |    67 +
 .../unit_tests/charts/data}/__init__.py            |     0
 .../charts/data/streaming_filename_test.py         |    59 +
 tests/unit_tests/charts/test_chart_data_api.py     |    31 +
 tests/unit_tests/charts/test_client_processing.py  |   157 +
 .../charts/test_dashboard_filter_context.py        |    80 +-
 tests/unit_tests/charts/test_schemas.py            |   221 +
 .../common => tests/unit_tests/cli}/__init__.py    |     0
 tests/unit_tests/cli/guest_token_test.py           |    58 +
 .../chart/create_async_job_command_test.py         |    51 +
 .../commands/chart/test_access_checks.py           |   147 +
 tests/unit_tests/commands/chart/update_test.py     |    93 +
 .../commands/chart/warm_up_cache_test.py           |     6 +
 .../commands/dashboard/filter_state_create_test.py |    72 +
 .../commands/databases/columnar_reader_test.py     |    85 +-
 tests/unit_tests/commands/dataset/test_create.py   |     9 +-
 .../unit_tests/commands/dataset/test_duplicate.py  |   103 +
 .../commands/dataset/test_warm_up_cache.py         |   115 +
 tests/unit_tests/commands/dataset/update_test.py   |   160 +
 .../commands/explore/form_data/test_create.py      |    39 +
 tests/unit_tests/commands/export_test.py           |     9 +
 .../commands/importers/v1/assets_test.py           |     6 +-
 .../importers/v1/test_find_existing_for_import.py  |   180 +
 .../unit_tests/commands/importers/v1/utils_test.py |   119 +
 .../unit_tests/commands/logs}/__init__.py          |     0
 tests/unit_tests/commands/logs/prune_test.py       |    54 +
 tests/unit_tests/commands/report/execute_test.py   |   128 +-
 .../commands/report/test_create_recipients.py      |    14 +-
 .../unit_tests/commands/security}/__init__.py      |     0
 tests/unit_tests/commands/security/rls_test.py     |   196 +
 .../sql_lab/streaming_export_command_test.py       |   194 +
 .../commands/temporary_cache_create_test.py        |    63 +
 .../commands/test_base_restore_command.py          |   187 +
 tests/unit_tests/common/test_dataframe_utils.py    |    25 +
 .../common/test_query_context_processor.py         |    95 +
 tests/unit_tests/connectors/sqla/models_test.py    |   237 +-
 tests/unit_tests/connectors/sqla/utils_test.py     |     1 +
 tests/unit_tests/dao/base_dao_test.py              |    58 +
 tests/unit_tests/daos/test_base_dao_soft_delete.py |   100 +
 .../dashboards/commands/importers/v1/utils_test.py |   174 +
 tests/unit_tests/dashboards/schema_tests.py        |   164 +
 tests/unit_tests/databases/api_test.py             |    12 +-
 .../databases/commands/importers/v1/import_test.py |   150 +
 tests/unit_tests/databases/schema_tests.py         |    46 +
 .../datasets/commands/importers/v1/import_test.py  |   231 +
 tests/unit_tests/db_engine_specs/test_base.py      |    77 +
 tests/unit_tests/db_engine_specs/test_druid.py     |   116 +
 tests/unit_tests/db_engine_specs/test_odps.py      |   174 +
 tests/unit_tests/db_engine_specs/test_presto.py    |    24 +
 tests/unit_tests/extension_tests.py                |     2 +-
 tests/unit_tests/extensions/test_utils.py          |    96 +
 tests/unit_tests/fixtures/assets_configs.py        |     2 +
 .../unit_tests/initialization}/__init__.py         |     0
 .../check_async_query_secret_test.py               |   140 +
 tests/unit_tests/jinja_context_test.py             |   137 +
 tests/unit_tests/key_value/prune_test.py           |   168 +
 .../key_value/test_shared_entries_migration.py     |    47 +
 tests/unit_tests/key_value/utils_test.py           |    45 +
 .../mcp_service/annotation_layer}/__init__.py      |     0
 .../mcp_service/annotation_layer/tool}/__init__.py |     0
 .../tool/test_annotation_layer_tools.py            |   562 +
 .../mcp_service/chart/test_big_number_chart.py     |    41 +-
 .../mcp_service/chart/test_chart_helpers.py        |   651 +
 .../mcp_service/chart/test_chart_schemas.py        |   254 +
 .../mcp_service/chart/test_chart_utils.py          |   207 +
 .../mcp_service/chart/tool/test_generate_chart.py  |    90 +
 .../mcp_service/chart/tool/test_get_chart_info.py  |    91 +-
 .../mcp_service/chart/tool/test_update_chart.py    |    58 +
 .../chart/validation/test_runtime_validator.py     |    25 +
 .../dashboard/tool/test_dashboard_tools.py         |    72 +
 .../dashboard/tool/test_get_dashboard_layout.py    |   285 +
 .../database/tool/test_database_tools.py           |    42 +
 .../mcp_service/dataset/tool/test_dataset_tools.py |    59 +
 .../unit_tests/mcp_service/query}/__init__.py      |     0
 .../unit_tests/mcp_service/query/tool}/__init__.py |     0
 .../mcp_service/query/tool/test_query_tools.py     |   328 +
 .../unit_tests/mcp_service/report}/__init__.py     |     0
 .../mcp_service/report/tool}/__init__.py           |     0
 .../mcp_service/report/tool/test_report_tools.py   |   739 +
 .../unit_tests/mcp_service/rls}/__init__.py        |     0
 .../unit_tests/mcp_service/rls/tool}/__init__.py   |     0
 .../mcp_service/rls/tool/test_rls_tools.py         |   245 +
 .../unit_tests/mcp_service/role}/__init__.py       |     0
 .../unit_tests/mcp_service/role/tool}/__init__.py  |     0
 .../mcp_service/role/tool/test_role_tools.py       |   336 +
 .../mcp_service/saved_query}/__init__.py           |     0
 .../mcp_service/saved_query/tool}/__init__.py      |     0
 .../saved_query/tool/test_saved_query_tools.py     |   337 +
 .../mcp_service/system/tool/test_get_schema.py     |    63 +
 .../mcp_service/system/tool/test_mcp_core.py       |    88 +-
 .../unit_tests/mcp_service/tag}/__init__.py        |     0
 .../unit_tests/mcp_service/tag/tool}/__init__.py   |     0
 .../mcp_service/tag/tool/test_tag_tools.py         |   268 +
 .../unit_tests/mcp_service/task}/__init__.py       |     0
 .../unit_tests/mcp_service/task/tool}/__init__.py  |     0
 .../mcp_service/task/tool/test_task_tools.py       |   284 +
 tests/unit_tests/mcp_service/test_auth_api_key.py  |   414 +-
 tests/unit_tests/mcp_service/test_auth_rbac.py     |   149 +-
 .../mcp_service/test_auth_user_resolution.py       |   166 +-
 .../mcp_service/test_composite_token_verifier.py   |   345 +
 tests/unit_tests/mcp_service/test_jwt_verifier.py  |   374 +-
 .../mcp_service/test_jwt_verifier_browser_hello.py |   126 +
 tests/unit_tests/mcp_service/test_mcp_config.py    |   213 +
 tests/unit_tests/mcp_service/test_mcp_server.py    |    23 +
 .../mcp_service/test_mcp_tool_registration.py      |   101 +-
 tests/unit_tests/mcp_service/test_middleware.py    |     6 +-
 .../mcp_service/test_tool_search_transform.py      |    14 +-
 .../unit_tests/mcp_service/user}/__init__.py       |     0
 .../unit_tests/mcp_service/user/tool}/__init__.py  |     0
 .../mcp_service/user/tool/test_user_tools.py       |   449 +
 .../mcp_service/utils/test_error_sanitization.py   |    70 +
 .../mcp_service/utils/test_permissions_utils.py    |    37 +-
 .../mcp_service/utils/test_sanitization.py         |   200 +
 tests/unit_tests/models/core_test.py               |    94 +
 tests/unit_tests/models/dashboard_test.py          |    52 +
 tests/unit_tests/models/helpers_test.py            |   144 +
 tests/unit_tests/models/slice_test.py              |    25 +-
 tests/unit_tests/models/test_soft_delete_mixin.py  |   566 +
 .../reports/notifications/email_tests.py           |    56 +-
 tests/unit_tests/result_set_test.py                |   208 +-
 .../scripts/translations/backfill_po_test.py       |    33 +
 .../check_translation_regression_test.py           |   179 +
 .../security/guest_token_revocation_test.py        |   242 +
 tests/unit_tests/security/manager_test.py          |    72 +
 .../security/test_granular_export_permissions.py   |    11 +
 .../security/test_guest_token_dataset_allowlist.py |   273 +
 .../common => tests/unit_tests/server}/__init__.py |     0
 .../server/test_gunicorn_gevent_smoke.py           |   162 +
 tests/unit_tests/sql/execution/test_celery_task.py |    60 +
 tests/unit_tests/sql/parse_tests.py                |   104 +-
 tests/unit_tests/sql_lab_execution_context.py      |     3 +-
 tests/unit_tests/sql_lab_test.py                   |     3 +
 .../common => tests/unit_tests/sqllab}/__init__.py |     0
 tests/unit_tests/sqllab/api_test.py                |    64 +
 tests/unit_tests/tasks/test_cache.py               |   136 +
 tests/unit_tests/test_sqllab_error_stacktrace.py   |   282 +
 tests/unit_tests/test_viz_get_df_payload.py        |   133 +
 tests/unit_tests/utils/csv_tests.py                |    63 +
 tests/unit_tests/utils/excel_tests.py              |    37 +-
 tests/unit_tests/utils/profiler_test.py            |    74 +
 tests/unit_tests/utils/test_core.py                |    96 +
 tests/unit_tests/utils/test_link_redirect.py       |    29 +
 tests/unit_tests/utils/test_rison_filters.py       |   183 +
 tests/unit_tests/utils/test_screenshot_utils.py    |    26 +
 tests/unit_tests/views/test_base.py                |    34 +
 tests/unit_tests/views/test_base_theme_helpers.py  |    56 +-
 tests/unit_tests/views/test_soft_delete_filter.py  |   356 +
 tests/unit_tests/views/test_utils.py               |    48 +
 861 files changed, 123529 insertions(+), 31643 deletions(-)
 delete mode 100644 .github/SECURITY.md
 delete mode 100644 .github/workflows/cancel_duplicates.yml
 delete mode 100644 .github/workflows/ephemeral-env-pr-close.yml
 delete mode 100644 .github/workflows/ephemeral-env.yml
 create mode 100644 SECURITY.md
 create mode 100644 docs/static/img/community/reddit-symbol.svg
 create mode 100644 docs/static/img/community/slack-symbol.svg
 copy superset-frontend/src/utils/getOwnerName.test.ts => superset-embedded-sdk/src/withTimeout.test.ts (56%)
 copy superset-frontend/src/utils/getOwnerName.ts => superset-embedded-sdk/src/withTimeout.ts (53%)
 rename superset-frontend/.storybook/{main.js => main.mjs} (83%)
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/actions.test.js
 copy superset-frontend/{src/utils/getOwnerName.ts => packages/superset-ui-core/src/number-format/utils/getIntlDurationFormatter.ts} (72%)
 create mode 100644 superset-frontend/packages/superset-ui-core/src/number-format/utils/parseMilliseconds.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/utils/getIntlDurationFormatter.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/utils/parseMilliseconds.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/types/intl.d.ts
 create mode 100644 superset-frontend/playwright/embedded-app/index.html
 create mode 100644 superset-frontend/playwright/helpers/api/embedded.ts
 create mode 100644 superset-frontend/playwright/helpers/navigation.ts
 create mode 100644 superset-frontend/playwright/pages/EmbeddedPage.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/mixed-chart-dashboard-filters.spec.ts
 create mode 100644 superset-frontend/playwright/tests/embedded/embedded-dashboard.spec.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/stateConversion.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Histogram/buildQuery.test.ts
 copy superset-frontend/{packages/superset-ui-core/src/components/Table/cell-renderers/NullCell/NullCell.stories.tsx => src/SqlLab/hooks/useAppDispatch.ts} (56%)
 copy superset-frontend/{packages/superset-ui-core/src/components/Table/cell-renderers/NullCell/NullCell.stories.tsx => src/SqlLab/hooks/useAppSelector.ts} (70%)
 create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/DynamicGroupByPlugin.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/CardSortSelect.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactFilterTrigger.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactFilterTrigger.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactSelectPanel.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
 delete mode 100644 superset-frontend/src/components/ListView/Filters/DateRange.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/FilterPopoverContent.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/FilterPopoverContent.tsx
 delete mode 100644 superset-frontend/src/components/ListView/Filters/Select.test.tsx
 delete mode 100644 superset-frontend/src/components/ListView/Filters/Select.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/TimeRange.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/TimeRange.tsx
 create mode 100644 superset-frontend/src/dashboard/actions/dashboardState.certification.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/utils.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/utils.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.overflow.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/GroupByFilterCard.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/UrlFilterTag.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/Vertical.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/Vertical.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/VerticalCollapse.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/urlFilterUtils.ts
 create mode 100644 superset-frontend/src/dashboard/util/UrlFilters.scope.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/risonFilters.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/risonFilters.ts
 create mode 100644 superset-frontend/src/embedded/getInitialThemeMode.test.ts
 copy superset-frontend/{plugins/plugin-chart-echarts/src/Histogram/buildQuery.ts => src/embedded/getInitialThemeMode.ts} (54%)
 create mode 100644 superset-frontend/src/embedded/originValidation.test.ts
 create mode 100644 superset-frontend/src/embedded/originValidation.ts
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/dndTestUtils.ts
 create mode 100644 superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/DatabaseConnectionForm.test.tsx
 create mode 100644 superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/TableCatalog.test.tsx
 create mode 100644 superset-frontend/src/preamble.test.ts
 create mode 100644 superset/cli/guest_token.py
 create mode 100644 superset/commands/restore.py
 create mode 100644 superset/commands/security/utils.py
 copy superset/{translations/requirements.txt => daos/role.py} (74%)
 create mode 100644 superset/db_engine_specs/odps.py
 copy {superset-core/src/superset_core/common => superset/key_value/commands}/__init__.py (100%)
 create mode 100644 superset/key_value/commands/prune.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/annotation_layer}/__init__.py (100%)
 create mode 100644 superset/mcp_service/annotation_layer/schemas.py
 copy superset/mcp_service/{dashboard => annotation_layer}/tool/__init__.py (68%)
 create mode 100644 superset/mcp_service/annotation_layer/tool/get_annotation_layer_info.py
 create mode 100644 superset/mcp_service/annotation_layer/tool/get_layer_annotation_info.py
 create mode 100644 superset/mcp_service/annotation_layer/tool/list_annotation_layers.py
 create mode 100644 superset/mcp_service/annotation_layer/tool/list_layer_annotations.py
 create mode 100644 superset/mcp_service/composite_token_verifier.py
 create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_layout.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/query}/__init__.py (100%)
 create mode 100644 superset/mcp_service/query/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/query/tool/__init__.py} (84%)
 create mode 100644 superset/mcp_service/query/tool/get_query_info.py
 create mode 100644 superset/mcp_service/query/tool/list_queries.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/report}/__init__.py (100%)
 copy superset/mcp_service/{database => report}/schemas.py (53%)
 copy superset/{translations/requirements.txt => mcp_service/report/tool/__init__.py} (84%)
 create mode 100644 superset/mcp_service/report/tool/get_report_info.py
 create mode 100644 superset/mcp_service/report/tool/list_reports.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/rls}/__init__.py (100%)
 create mode 100644 superset/mcp_service/rls/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/rls/tool/__init__.py} (82%)
 create mode 100644 superset/mcp_service/rls/tool/get_rls_filter_info.py
 create mode 100644 superset/mcp_service/rls/tool/list_rls_filters.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/role}/__init__.py (100%)
 create mode 100644 superset/mcp_service/role/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/role/tool/__init__.py} (85%)
 create mode 100644 superset/mcp_service/role/tool/get_role_info.py
 create mode 100644 superset/mcp_service/role/tool/list_roles.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/saved_query}/__init__.py (100%)
 create mode 100644 superset/mcp_service/saved_query/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/saved_query/tool/__init__.py} (81%)
 create mode 100644 superset/mcp_service/saved_query/tool/get_saved_query_info.py
 create mode 100644 superset/mcp_service/saved_query/tool/list_saved_queries.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/tag}/__init__.py (100%)
 create mode 100644 superset/mcp_service/tag/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/tag/tool/__init__.py} (86%)
 create mode 100644 superset/mcp_service/tag/tool/get_tag_info.py
 create mode 100644 superset/mcp_service/tag/tool/list_tags.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/task}/__init__.py (100%)
 create mode 100644 superset/mcp_service/task/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/task/tool/__init__.py} (85%)
 create mode 100644 superset/mcp_service/task/tool/get_task_info.py
 create mode 100644 superset/mcp_service/task/tool/list_tasks.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/user}/__init__.py (100%)
 create mode 100644 superset/mcp_service/user/schemas.py
 copy superset/{translations/requirements.txt => mcp_service/user/tool/__init__.py} (85%)
 create mode 100644 superset/mcp_service/user/tool/get_user_info.py
 create mode 100644 superset/mcp_service/user/tool/list_users.py
 create mode 100644 superset/migrations/versions/2026-04-22_19-00_31dae2559c05_replay_user_favorite_tag_migration.py
 copy {superset-frontend/packages/superset-ui-core/src/components/assets/images => superset/templates/superset}/loading.svg (100%)
 create mode 100644 superset/translations/ro/LC_MESSAGES/messages.po
 create mode 100644 superset/utils/rison_filters.py
 delete mode 100644 tests/integration_tests/tasks/test_cache.py
 delete mode 100644 tests/integration_tests/tasks/test_utils.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/charts/data}/__init__.py (100%)
 create mode 100644 tests/unit_tests/charts/data/streaming_filename_test.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/cli}/__init__.py (100%)
 create mode 100644 tests/unit_tests/cli/guest_token_test.py
 create mode 100644 tests/unit_tests/commands/chart/create_async_job_command_test.py
 create mode 100644 tests/unit_tests/commands/chart/test_access_checks.py
 create mode 100644 tests/unit_tests/commands/chart/update_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/filter_state_create_test.py
 create mode 100644 tests/unit_tests/commands/dataset/test_duplicate.py
 create mode 100644 tests/unit_tests/commands/dataset/test_warm_up_cache.py
 create mode 100644 tests/unit_tests/commands/importers/v1/test_find_existing_for_import.py
 create mode 100644 tests/unit_tests/commands/importers/v1/utils_test.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/commands/logs}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/logs/prune_test.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/commands/security}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/security/rls_test.py
 create mode 100644 tests/unit_tests/commands/temporary_cache_create_test.py
 create mode 100644 tests/unit_tests/commands/test_base_restore_command.py
 create mode 100644 tests/unit_tests/daos/test_base_dao_soft_delete.py
 create mode 100644 tests/unit_tests/dashboards/schema_tests.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_odps.py
 create mode 100644 tests/unit_tests/extensions/test_utils.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/initialization}/__init__.py (100%)
 create mode 100644 tests/unit_tests/initialization/check_async_query_secret_test.py
 create mode 100644 tests/unit_tests/key_value/prune_test.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/annotation_layer}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/annotation_layer/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/annotation_layer/tool/test_annotation_layer_tools.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_layout.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/query}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/query/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/query/tool/test_query_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/report}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/report/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/report/tool/test_report_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/rls}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/rls/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/rls/tool/test_rls_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/role}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/role/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/role/tool/test_role_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/saved_query}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/saved_query/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/saved_query/tool/test_saved_query_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/tag}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/tag/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/tag/tool/test_tag_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/task}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/task/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/task/tool/test_task_tools.py
 create mode 100644 tests/unit_tests/mcp_service/test_composite_token_verifier.py
 create mode 100644 tests/unit_tests/mcp_service/test_jwt_verifier_browser_hello.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/user}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/user/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/user/tool/test_user_tools.py
 create mode 100644 tests/unit_tests/mcp_service/utils/test_error_sanitization.py
 create mode 100644 tests/unit_tests/models/dashboard_test.py
 create mode 100644 tests/unit_tests/models/test_soft_delete_mixin.py
 create mode 100644 tests/unit_tests/scripts/translations/check_translation_regression_test.py
 create mode 100644 tests/unit_tests/security/guest_token_revocation_test.py
 create mode 100644 tests/unit_tests/security/test_guest_token_dataset_allowlist.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/server}/__init__.py (100%)
 create mode 100644 tests/unit_tests/server/test_gunicorn_gevent_smoke.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/sqllab}/__init__.py (100%)
 create mode 100644 tests/unit_tests/sqllab/api_test.py
 create mode 100644 tests/unit_tests/tasks/test_cache.py
 create mode 100644 tests/unit_tests/test_sqllab_error_stacktrace.py
 create mode 100644 tests/unit_tests/utils/profiler_test.py
 create mode 100644 tests/unit_tests/utils/test_rison_filters.py
 create mode 100644 tests/unit_tests/views/test_soft_delete_filter.py
 create mode 100644 tests/unit_tests/views/test_utils.py