This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch feat/granular-theming-v2
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 4865d5c5b09 chore(i18n): regenerate messages.pot for component theming
strings
omit f6f2a7c6211 test(dashboard): wrap TabsRenderer drag test in a Redux
provider
omit 030ac7cc6c3 style(theming): apply oxfmt formatting to TabsRenderer test
omit 662e95d165a chore: untrack session lock (again)
omit 5928cf7d3dc fix(theming): make ComponentThemeProvider tolerate
isolated component tests
omit 929529e6ef3 chore: untrack accidentally-committed session lock
omit 27cf0b70834 style(theming): apply pre-commit auto-formats (prettier +
oxlint)
omit 74e294d86df fix(sip): add Apache license header to SIP.md (RAT)
omit 880efbe7624 fix(dashboard): TS errors on theme provider +
setComponentThemeId
omit 2d12daa4380 feat(dashboard): live theme preview in ThemeSelectorModal
omit 1ed0d6d748e feat(dashboard): component theming for Tabs, Row, Column,
Markdown — Phase 4b-4e
omit 9af9c42635c feat(dashboard): end-to-end component theming on Chart —
Phase 4a
omit 859a0081421 feat(dashboard): ThemeSelectorModal + setComponentThemeId
action — Phase 3
omit 863d6f0d4a1 feat(dashboard): ComponentHeaderControls — Phase 2
omit 2461ec4c9c8 feat(dashboard): per-component theme provider — Phase 1
(Chart PoC)
omit e98d3389fc5 docs(sip): draft granular component theming SIP
add 8ab7a85a3d7 chore(e2e): remove Cypress infrastructure (#44829)
add ee39954adb6 fix(oauth2): refresh a token rejected when a connection
opens (#44765)
add e5ec22ab3e9 feat(table): add multi-level column header groups (#43938)
add a12d1b8e127 fix(mcp): enforce tool deadlines without blocking the
server (#44581)
add 0a0a1974c50 test(playwright): select existing dashboards without
creating duplicates (#44856)
add 33292f249da feat(mcp): support tab-scoped dashboard layouts (#44797)
add 4ae8fe71225 fix: size 'Drill to detail' table header correctly (#44807)
add 2c72d4d4fee fix(mcp): use DEFAULT_PAGE_SIZE constant in list_charts
test (#44786)
add 446853004a4 fix(mcp): keep a bubble chart's colors and row limit
across updates (#44618)
add 217e4c0223f fix(frontend): use html2canvas for chart image export on
Safari (#44529)
add c82f97b69d6 chore(deps): bump deck.gl and luma.gl from 9.2.5 to 9.4.0
in /superset-frontend (#42608)
add abdf2e6c702 fix(home): redirect users without an ID before rendering
(#44456)
add 3f6d4cd6896 chore(deps-dev): update google-cloud-storage requirement
from >=1.37 to >=3.14.1 (#44693)
add 6a832cb2102 fix(mcp): enforce dashboard filter scope on dataset, SQL
and chart tool calls (#44800)
add e7702020344 fix(postprocessing): preserve NULL index values through
pivot() (#43547) (#43693)
add f7badeb095b fix(mcp): execute_sql request limit caps, never raises, an
explicit SQL LIMIT (#44604)
add db56168a861 ci: require babel-extract to pass before merging master
(#44543)
add 342a8f1e4e0 fix(mcp): report a chart's live dataset id and name
(#44681)
add 21b937b59d7 fix(retention): skip models without purge policies before
scanning (#44874)
add 6d97cde59a6 fix(semantic-layers): export/import semantic-view charts
by typed reference (#44396)
add b94f88ffbb4 fix(semantic-layer): require explicit member identity
reselection (#44370)
add 9c7c96fe057 fix(logging): register LogRestApi only once (#44732)
add 85f6299140f docs(sip): draft granular component theming SIP
add db32b0909a3 feat(dashboard): per-component theme provider — Phase 1
(Chart PoC)
add aa2db00761a feat(dashboard): ComponentHeaderControls — Phase 2
add b2aecec8afa feat(dashboard): ThemeSelectorModal + setComponentThemeId
action — Phase 3
add e198b211e6a feat(dashboard): end-to-end component theming on Chart —
Phase 4a
add 6f4253aff9f feat(dashboard): component theming for Tabs, Row, Column,
Markdown — Phase 4b-4e
add 884fed0ca19 feat(dashboard): live theme preview in ThemeSelectorModal
add f9f6b5eedcd fix(dashboard): TS errors on theme provider +
setComponentThemeId
add c375b71b65b fix(sip): add Apache license header to SIP.md (RAT)
add 685b930f705 style(theming): apply pre-commit auto-formats (prettier +
oxlint)
add 074f7f4de6c chore: untrack accidentally-committed session lock
add 574aa630c54 fix(theming): make ComponentThemeProvider tolerate
isolated component tests
add 373fccd3029 chore: untrack session lock (again)
add ddda1149500 style(theming): apply oxfmt formatting to TabsRenderer test
add 03f0ae4d854 test(dashboard): wrap TabsRenderer drag test in a Redux
provider
add e04d1337058 chore(i18n): regenerate messages.pot for component theming
strings
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (4865d5c5b09)
\
N -- N -- N refs/heads/feat/granular-theming-v2 (e04d1337058)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 1 +
.cursor/rules/dev-standard.mdc | 4 +-
.dockerignore | 1 -
.envrc.example | 1 -
.github/labeler.yml | 2 -
.github/workflows/bashlib.sh | 130 +-
.github/workflows/caches.js | 6 -
.github/workflows/superset-e2e.yml | 203 +-
.github/workflows/superset-translations.yml | 2 +
.pre-commit-config.yaml | 3 +-
AGENTS.md | 10 +-
Makefile | 8 -
UPDATING.md | 94 +
docker-compose.yml | 2 -
docker/.env | 2 -
docker/.env-local.example | 1 -
docker/docker-bootstrap.sh | 7 -
docker/docker-entrypoint-initdb.d/cypress-init.sh | 28 -
docker/docker-init.sh | 31 +-
docker/pythonpath_dev/superset_config.py | 13 -
.../importing-exporting-datasources.mdx | 32 +
docs/admin_docs/configuration/mcp-server.mdx | 238 +
docs/developer_docs/api.mdx | 5 +
.../contributing/development-setup.md | 8 +-
docs/developer_docs/contributing/howtos.md | 30 +-
.../guidelines/frontend-style-guidelines.md | 2 +-
docs/developer_docs/testing/e2e-testing.md | 28 +-
docs/developer_docs/testing/overview.md | 2 +-
docs/developer_docs/testing/testing-guidelines.md | 31 +-
docs/docs/quickstart.mdx | 3 +
.../creating-your-first-dashboard.mdx | 20 +
docs/docs/using-superset/recently-archived.mdx | 10 +
.../using-superset/semantic-member-selections.mdx | 62 +
docs/static/resources/openapi.json | 23 +-
pyproject.toml | 2 +-
scripts/cypress_run.py | 167 -
scripts/docker-compose-up.sh | 4 -
superset-core/src/superset_core/queries/types.py | 3 +
.../src/superset_core/semantic_layers/types.py | 1 +
.../src/superset_core/semantic_layers/view.py | 14 +
superset-frontend/.gitignore | 2 -
superset-frontend/babel.config.js | 2 +-
superset-frontend/cypress-base/.eslintrc | 41 -
superset-frontend/cypress-base/.gitignore | 4 -
superset-frontend/cypress-base/cypress.config.ts | 84 -
.../cypress-base/cypress/fixtures/charts.json | 38 -
.../cypress-base/cypress/fixtures/dashboards.json | 46 -
.../cypress-base/cypress/support/e2e.ts | 455 -
.../cypress-base/cypress/support/index.d.ts | 92 -
.../cypress-base/cypress/utils/index.ts | 121 -
.../cypress-base/cypress/utils/parsePostForm.ts | 60 -
.../cypress-base/cypress/utils/urls.ts | 24 -
.../cypress-base/cypress/utils/vizPlugins.ts | 104 -
superset-frontend/cypress-base/package-lock.json | 15006 -------------------
superset-frontend/cypress-base/package.json | 57 -
superset-frontend/cypress-base/tsconfig.json | 16 -
superset-frontend/cypress_build.sh | 46 -
superset-frontend/eslint.config.minimal.js | 1 -
superset-frontend/jest.config.js | 12 +-
superset-frontend/oxlint.json | 1 -
superset-frontend/package-lock.json | 902 +-
superset-frontend/package.json | 57 +-
.../src/sections/sections.tsx | 7 +
.../superset-ui-chart-controls/src/types.ts | 2 +
.../src/utils/headerGroups.test.ts | 1065 ++
.../src/utils/headerGroups.ts | 903 ++
.../superset-ui-chart-controls/src/utils/index.ts | 1 +
.../src/components/Table/VirtualTable.test.tsx | 83 +
.../src/components/Table/VirtualTable.tsx | 20 +-
.../superset-ui-core/src/query/extractExtras.ts | 22 +
.../packages/superset-ui-core/src/query/index.ts | 2 +
.../src/query/semanticSelection.ts} | 35 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 1 +
.../superset-ui-core/src/query/types/Query.ts | 1 +
.../src/query/types/QueryFormData.ts | 12 +-
.../test/query/extractExtras.test.ts | 62 +
.../playwright/components/core/Select.ts | 8 +-
.../playwright/components/modals/SaveChartModal.ts | 33 +-
.../explore/cross-referenced-dashboards.spec.ts | 29 +-
.../playwright/tests/explore/explore-save.spec.ts | 8 +-
.../tests/mobile/mobile-dashboard.spec.ts | 65 +-
.../src/AgGridTable/components/CustomHeader.tsx | 3 +-
.../src/AgGridTable/index.tsx | 118 +-
.../src/AgGridTableChart.tsx | 7 +-
.../src/controlPanel.tsx | 33 +-
.../src/styles/index.tsx | 28 +
.../src/transformProps.ts | 24 +-
.../plugin-chart-ag-grid-table/src/types.ts | 3 +
.../src/utils/formatValue.ts | 3 +-
.../src/utils/getCellStyle.ts | 8 +-
.../src/utils/mainComparison.ts} | 33 +-
.../src/utils/useColDefs.ts | 23 +-
.../test/AgGridTableChart.test.tsx | 175 +
.../test/controlPanel.test.ts | 107 +-
.../test/controlPanel.test.tsx | 32 +-
.../test/transformProps.test.ts | 198 +-
.../test/utils/getCellStyle.test.ts | 15 +
.../test/utils/mainComparison.test.ts | 43 +
.../test/utils/useColDefs.test.ts | 40 +
.../src/MapLibre.tsx | 62 +-
.../test/MapLibre.test.tsx | 31 +
.../plugin-chart-table/src/DataTable/DataTable.tsx | 11 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 5 +
.../plugins/plugin-chart-table/src/TableChart.tsx | 210 +-
.../plugin-chart-table/src/controlPanel.tsx | 38 +-
.../plugin-chart-table/src/transformProps.ts | 41 +-
.../plugins/plugin-chart-table/src/types.ts | 5 +
.../plugin-chart-table/src/utils/headerGroups.ts} | 20 +-
.../test/DataTable/DataTable.test.tsx | 64 +-
.../plugin-chart-table/test/TableChart.test.tsx | 326 +
.../plugin-chart-table/test/controlPanel.test.ts | 144 +-
.../plugin-chart-table/test/controlPanel.test.tsx | 32 +-
.../plugin-chart-table/test/headerGroups.test.ts | 301 +
.../plugins/preset-chart-deckgl/package.json | 25 +-
.../src/DeckGLContainer.test.tsx | 95 +-
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 17 +-
.../src/components/DeckGLOverlayMapLibre.test.tsx | 80 +
.../src/components/DeckGLOverlayMapLibre.tsx | 8 +-
.../src/layers/Contour/Contour.tsx | 2 +-
superset-frontend/scripts/check-custom-rules.js | 4 -
.../spec/helpers/sourceTreeScanner.ts | 1 -
.../src/components/Chart/ChartRenderer.test.tsx | 52 +-
.../src/components/Chart/ChartRenderer.tsx | 23 +-
.../DashboardBuilder/DashboardContainer.tsx | 7 +-
.../FilterBar/FilterControls/FilterValue.test.tsx | 42 +-
.../FilterBar/FilterControls/FilterValue.tsx | 70 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 147 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 103 +-
.../transformers/buildTarget.test.ts | 44 +-
.../FiltersConfigModal/transformers/buildTarget.ts | 37 +-
.../transformers/customizationTransformer.ts | 10 +-
.../transformers/filterTransformer.ts | 10 +-
.../nativeFilters/FiltersConfigModal/types.ts | 2 +
.../components/nativeFilters/utils.test.ts | 27 +
.../dashboard/components/nativeFilters/utils.ts | 13 +
.../util/charts/getFormDataWithExtraFilters.ts | 163 +-
.../util/getFormDataWithExtraFilters.test.ts | 412 +-
superset-frontend/src/dataMask/reducer.test.ts | 58 +
superset-frontend/src/dataMask/reducer.ts | 18 +
.../src/explore/actions/exploreActions.ts | 10 +
.../src/explore/components/Control.test.tsx | 36 +-
.../src/explore/components/Control.tsx | 3 +-
.../components/ControlPanelsContainer.test.tsx | 274 +-
.../explore/components/ControlPanelsContainer.tsx | 112 +-
.../ColumnConfigControl.test.tsx | 86 +
.../ColumnConfigControl/ColumnConfigControl.tsx | 24 +-
.../controls/ColumnConfigControl/constants.tsx | 3 +-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 17 +
.../index.tsx | 27 +-
.../HeaderGroupsControl/HeaderGroupEditor.tsx | 567 +
.../HeaderGroupsControl.test.tsx | 906 ++
.../HeaderGroupsControl/HeaderGroupsControl.tsx | 289 +
.../controls/HeaderGroupsControl/index.ts} | 12 +-
.../controls/HeaderGroupsControl/types.ts} | 42 +-
.../controls/HeaderGroupsControl/utils.test.ts | 388 +
.../controls/HeaderGroupsControl/utils.ts | 215 +
.../controls/MatrixifyDimensionControl.test.tsx | 139 +-
.../controls/MatrixifyDimensionControl.tsx | 26 +-
.../src/explore/components/controls/index.ts | 2 +
.../src/explore/controlPanels/sections.tsx | 7 +
.../src/explore/reducers/exploreReducer.test.ts | 66 +-
.../src/explore/reducers/exploreReducer.ts | 29 +-
superset-frontend/src/pages/Home/Home.test.tsx | 45 +-
superset-frontend/src/pages/Home/index.tsx | 20 +-
.../src/utils/downloadAsImage.test.ts | 276 +
superset-frontend/src/utils/downloadAsImage.tsx | 113 +-
.../src/utils/semanticViewStructure.test.ts | 13 +
.../src/utils/semanticViewStructure.ts | 15 +-
superset-frontend/webpack.config.js | 1 -
superset/charts/api.py | 3 +
superset/charts/schemas.py | 21 +-
superset/commands/chart/export.py | 6 +-
superset/commands/chart/importers/v1/__init__.py | 29 +-
superset/commands/dashboard/export.py | 3 +
superset/commands/dashboard/export_example.py | 31 +
.../commands/dashboard/importers/v1/__init__.py | 26 +-
superset/commands/importers/v1/assets.py | 32 +-
superset/commands/importers/v1/examples.py | 19 +
superset/common/query_object.py | 37 +-
superset/common/tabular_query.py | 8 +-
superset/core/mcp/core_mcp_injection.py | 24 +-
superset/dashboards/api.py | 13 +-
superset/datasource/api.py | 52 +-
superset/datasource/schemas.py | 9 +
superset/db_engine_specs/base.py | 6 +
superset/db_engine_specs/bigquery.py | 35 +-
superset/db_engine_specs/trino.py | 18 +
superset/initialization/__init__.py | 1 -
superset/mcp_service/app.py | 2 +
superset/mcp_service/auth.py | 105 +-
superset/mcp_service/caching.py | 37 +-
superset/mcp_service/chart/plugins/bubble.py | 2 +-
superset/mcp_service/chart/schemas.py | 61 +-
superset/mcp_service/chart/tool/get_chart_info.py | 18 +-
superset/mcp_service/chart/tool/get_chart_sql.py | 5 +-
superset/mcp_service/chart/tool/list_charts.py | 118 +-
superset/mcp_service/common/schema_discovery.py | 2 +-
superset/mcp_service/composite_token_verifier.py | 26 +-
superset/mcp_service/dashboard/schemas.py | 132 +-
.../dashboard/tool/get_dashboard_layout.py | 161 +-
superset/mcp_service/dashboard_scope.py | 1365 ++
superset/mcp_service/dashboard_scope_sql.py | 516 +
superset/mcp_service/mcp_config.py | 25 +
superset/mcp_service/middleware.py | 180 +-
superset/mcp_service/privacy.py | 1 +
superset/mcp_service/semantic_layer/schemas.py | 9 +
.../semantic_layer/tool/get_compatible_metrics.py | 3 +
.../mcp_service/semantic_layer/tool/get_table.py | 51 +-
.../semantic_layer/tool/list_metrics.py | 3 +
superset/mcp_service/server.py | 36 +-
superset/mcp_service/sql_lab/schemas.py | 10 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 1 +
superset/mcp_service/utils/response_size_utils.py | 176 +
superset/mcp_service/worker.py | 897 ++
.../migrations/shared/migrate_viz/processors.py | 6 +-
superset/models/core.py | 220 +-
superset/result_set.py | 3 +
superset/semantic_layers/api.py | 3 +
.../semantic_layers/bundle_schemas.py | 24 +-
superset/semantic_layers/import_export.py | 240 +
superset/semantic_layers/mapper.py | 6 +
superset/semantic_layers/models.py | 3 +
superset/sql/execution/cancellation.py | 170 +
superset/sql/execution/celery_task.py | 1 +
superset/sql/execution/executor.py | 134 +-
superset/sql/parse.py | 101 +-
superset/superset_typing.py | 11 +
superset/tasks/deletion_retention.py | 55 +-
superset/tasks/query_cancel.py | 9 +-
superset/translations/ar/LC_MESSAGES/messages.po | 66 +-
superset/translations/ca/LC_MESSAGES/messages.po | 66 +-
superset/translations/cs/LC_MESSAGES/messages.po | 66 +-
superset/translations/de/LC_MESSAGES/messages.po | 65 +-
superset/translations/en/LC_MESSAGES/messages.po | 65 +-
superset/translations/es/LC_MESSAGES/messages.po | 66 +-
superset/translations/fa/LC_MESSAGES/messages.po | 66 +-
superset/translations/fi/LC_MESSAGES/messages.po | 68 +-
superset/translations/fr/LC_MESSAGES/messages.po | 65 +-
superset/translations/it/LC_MESSAGES/messages.po | 67 +-
superset/translations/ja/LC_MESSAGES/messages.po | 65 +-
superset/translations/ko/LC_MESSAGES/messages.po | 68 +-
superset/translations/lv/LC_MESSAGES/messages.po | 65 +-
superset/translations/messages.pot | 123 +-
superset/translations/mi/LC_MESSAGES/messages.po | 66 +-
superset/translations/nl/LC_MESSAGES/messages.po | 66 +-
superset/translations/pl/LC_MESSAGES/messages.po | 66 +-
superset/translations/pt/LC_MESSAGES/messages.po | 67 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 66 +-
superset/translations/ro/LC_MESSAGES/messages.po | 65 +-
superset/translations/ru/LC_MESSAGES/messages.po | 65 +-
superset/translations/sk/LC_MESSAGES/messages.po | 66 +-
superset/translations/sl/LC_MESSAGES/messages.po | 65 +-
superset/translations/sr/LC_MESSAGES/messages.po | 66 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 66 +-
superset/translations/ta/LC_MESSAGES/messages.po | 65 +-
superset/translations/th/LC_MESSAGES/messages.po | 68 +-
superset/translations/tr/LC_MESSAGES/messages.po | 65 +-
superset/translations/uk/LC_MESSAGES/messages.po | 65 +-
superset/translations/zh/LC_MESSAGES/messages.po | 66 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 66 +-
superset/utils/oauth2.py | 136 +-
superset/utils/pandas_postprocessing/pivot.py | 51 +-
superset/utils/rls.py | 4 +-
.../commands/chart/semantic_export_test.py | 127 +
.../dashboard/export_example_semantic_test.py | 175 +
tests/unit_tests/conftest.py | 13 +-
tests/unit_tests/connectors/sqla/utils_test.py | 34 +
tests/unit_tests/db_engine_specs/test_bigquery.py | 87 +-
tests/unit_tests/db_engine_specs/test_trino.py | 17 +
tests/unit_tests/initialization/init_views_test.py | 113 +
.../mcp_service/catalog/tool/test_get_catalog.py | 13 +
.../mcp_service/chart/test_chart_examples.py | 3 +-
.../mcp_service/chart/test_chart_utils.py | 55 +
.../mcp_service/chart/test_gantt_chart.py | 21 +-
.../mcp_service/chart/test_gauge_chart.py | 3 +-
.../chart/test_live_chart_datasource.py | 709 +
.../mcp_service/chart/tool/test_list_charts.py | 4 +-
.../chart/tool/test_update_chart_preview.py | 21 +-
.../dashboard/test_dashboard_schemas.py | 18 +
.../dashboard/tool/test_get_dashboard_datasets.py | 13 +-
.../dashboard/tool/test_get_dashboard_layout.py | 744 +-
.../dataset/tool/test_dataset_metric_mutations.py | 13 +
.../mcp_service/dataset/tool/test_query_dataset.py | 12 +-
.../dataset/tool/test_update_dataset_metric.py | 13 +
.../tool/test_get_compatible_metrics.py | 14 +-
.../semantic_layer/tool/test_get_table.py | 39 +
.../semantic_layer/tool/test_list_metrics.py | 10 +-
.../mcp_service/sql_lab/tool/test_execute_sql.py | 22 +-
.../mcp_service/test_auth_user_resolution.py | 48 +-
.../mcp_service/test_composite_token_verifier.py | 105 +-
.../unit_tests/mcp_service/test_dashboard_scope.py | 1502 ++
.../mcp_service/test_dashboard_scope_sql.py | 674 +
tests/unit_tests/mcp_service/test_middleware.py | 21 +
.../unit_tests/mcp_service/test_tool_inventory.py | 4 +-
tests/unit_tests/mcp_service/test_worker.py | 878 ++
.../mcp_service/test_worker_metadata_pool.py | 1000 ++
.../unit_tests/migrations/viz/table_v1_v2_test.py | 42 +
tests/unit_tests/models/core_test.py | 414 +
.../unit_tests/pandas_postprocessing/test_pivot.py | 339 +
tests/unit_tests/semantic_layers/api_test.py | 10 +-
.../semantic_layers/import_export_test.py | 915 ++
tests/unit_tests/semantic_layers/mapper_test.py | 5 +
tests/unit_tests/semantic_layers/models_test.py | 2 +
.../semantic_layers/selection_identity_test.py | 293 +
.../semantic_layers/values_endpoint_test.py | 21 +-
tests/unit_tests/sql/execution/conftest.py | 3 +
.../unit_tests/sql/execution/test_cancellation.py | 165 +
tests/unit_tests/sql/execution/test_celery_task.py | 2 +
tests/unit_tests/sql/execution/test_executor.py | 850 +-
tests/unit_tests/sql/parse_tests.py | 107 +
tests/unit_tests/tasks/test_deletion_retention.py | 171 +-
tests/unit_tests/utils/oauth2_tests.py | 190 +
312 files changed, 27597 insertions(+), 18229 deletions(-)
delete mode 100755 docker/docker-entrypoint-initdb.d/cypress-init.sh
create mode 100644 docs/docs/using-superset/semantic-member-selections.mdx
delete mode 100644 scripts/cypress_run.py
delete mode 100644 superset-frontend/cypress-base/.eslintrc
delete mode 100644 superset-frontend/cypress-base/.gitignore
delete mode 100644 superset-frontend/cypress-base/cypress.config.ts
delete mode 100644 superset-frontend/cypress-base/cypress/fixtures/charts.json
delete mode 100644
superset-frontend/cypress-base/cypress/fixtures/dashboards.json
delete mode 100644 superset-frontend/cypress-base/cypress/support/e2e.ts
delete mode 100644 superset-frontend/cypress-base/cypress/support/index.d.ts
delete mode 100644 superset-frontend/cypress-base/cypress/utils/index.ts
delete mode 100644
superset-frontend/cypress-base/cypress/utils/parsePostForm.ts
delete mode 100644 superset-frontend/cypress-base/cypress/utils/urls.ts
delete mode 100644 superset-frontend/cypress-base/cypress/utils/vizPlugins.ts
delete mode 100644 superset-frontend/cypress-base/package-lock.json
delete mode 100644 superset-frontend/cypress-base/package.json
delete mode 100644 superset-frontend/cypress-base/tsconfig.json
delete mode 100755 superset-frontend/cypress_build.sh
create mode 100644
superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.test.ts
create mode 100644
superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.ts
copy superset-frontend/{src/views/ScrollToTop.tsx =>
packages/superset-ui-core/src/query/semanticSelection.ts} (50%)
copy
superset-frontend/{packages/superset-ui-core/src/validator/legacyValidateInteger.ts
=> plugins/plugin-chart-ag-grid-table/src/utils/mainComparison.ts} (56%)
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/mainComparison.test.ts
copy
superset-frontend/{packages/superset-ui-core/src/components/Input/index.tsx =>
plugins/plugin-chart-table/src/utils/headerGroups.ts} (71%)
create mode 100644
superset-frontend/plugins/plugin-chart-table/test/headerGroups.test.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupEditor.tsx
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupsControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupsControl.tsx
copy
superset-frontend/{packages/superset-ui-core/src/components/Input/index.tsx =>
src/explore/components/controls/HeaderGroupsControl/index.ts} (82%)
copy
superset-frontend/{plugins/preset-chart-deckgl/src/layers/Arc/buildQuery.test.ts
=> src/explore/components/controls/HeaderGroupsControl/types.ts} (57%)
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/utils.test.ts
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/utils.ts
create mode 100644 superset/mcp_service/dashboard_scope.py
create mode 100644 superset/mcp_service/dashboard_scope_sql.py
create mode 100644 superset/mcp_service/worker.py
copy tests/unit_tests/utils/db.py =>
superset/semantic_layers/bundle_schemas.py (56%)
create mode 100644 superset/semantic_layers/import_export.py
create mode 100644 superset/sql/execution/cancellation.py
create mode 100644 tests/unit_tests/commands/chart/semantic_export_test.py
create mode 100644
tests/unit_tests/commands/dashboard/export_example_semantic_test.py
create mode 100644 tests/unit_tests/initialization/init_views_test.py
create mode 100644
tests/unit_tests/mcp_service/chart/test_live_chart_datasource.py
create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope.py
create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope_sql.py
create mode 100644 tests/unit_tests/mcp_service/test_worker.py
create mode 100644 tests/unit_tests/mcp_service/test_worker_metadata_pool.py
create mode 100644 tests/unit_tests/semantic_layers/import_export_test.py
create mode 100644 tests/unit_tests/semantic_layers/selection_identity_test.py
create mode 100644 tests/unit_tests/sql/execution/test_cancellation.py