This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch tdd/issue-27897-sqla-engine-cache
in repository https://gitbox.apache.org/repos/asf/superset.git
from 05557350abe address review feedback (#40237)
add 68c145adc36 feat(semantic layers): add metadata on additive metrics
(#40279)
add 3f0858e35de chore(sql-lab): migrate useDispatch to useAppDispatch
(#40037)
add a75f9b67b28 chore(superset-ui-switchboard): forward-compat fixes for
TypeScript 6.0 (Phase E) (#40028)
add d203f0de337 chore(sql-lab): finish SqlLab typed-dispatch migration for
SaveDatasetModal (#40040)
add a273fe4d621 fix(list-view): preserve user name in filter pill after
navigation (#39505)
add 2cd5efa6279 ci(deps): bump lower bound on pip dependabot PRs (#40308)
add b1ca8cac6b6 fix(tests): fix flaky FileHandler test by awaiting
LaunchQueue consumer in afterEach (#39508)
add cdca6f7fdcc fix(sqllab): keep saved-query list working when Jinja
`dataset(id)` references a deleted dataset (#39703)
add 7e74fc41920 fix(charts): handle PostgreSQL INTERVAL type in bar and
pie charts (#34513)
add 9638eecdb13 chore(deps-dev): bump oxlint from 1.65.0 to 1.66.0 in
/superset-frontend (#40318)
add 3acef94ef63 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3
in /superset-frontend/plugins/plugin-chart-echarts (#40313)
add a183582291e chore(deps): bump markdown-to-jsx from 9.8.0 to 9.8.1 in
/superset-frontend (#40316)
add ce9cab098fd feat(mcp): chart formatting options across all supported
chart types (#39887)
add e3711bec391 fix(recommandation): Fix chart recommandation (#39886)
add d1d07112aa4 feat(mcp): add find_users tool and owner filter columns
for listings (#39679)
add 2f5fcc21f92 fix(semantic layers): coerce filter types (#40222)
add 2f95d288dd7 fix(mcp): eager-load dataset.metrics to prevent Excel
export DetachedInstanceError (#39483)
add 53d8e5bdfa8 feat(mcp): include applied dashboard filters in
get_chart_info (#39620)
add 4c3f65ef0b4 feat(mcp): make config optional in generate_explore_link
(#39559)
add f187a8e1c41 fix(reports): guard null dashboard height in Playwright
screenshots (#40179)
add 73f66e4c141 fix(datasets): isolate filter state to fix concurrent
/dataset race (#39685)
add 5526464def7 fix(frontend): update safeStringify to surface [Circular]
and DRY plugin code (#39156)
add b8b91574e0e fix(view query): Update style for code viewer container
(#39635)
add 89c2a474334 fix(TableView): reset pagination when data reduces below
current page (#34562)
add 8b483f320e9 chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in
/superset-frontend (#40325)
add bc26006a43d chore(deps-dev): update sqlalchemy-drill requirement from
<2,>=1.1.4 to >=1.1.10,<2 (#40310)
add f09fd63495a chore(deps): bump @googleapis/sheets from 13.0.1 to 13.0.2
in /superset-frontend (#40324)
add dcef6f8a41c chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in
/superset-frontend (#40322)
add 48cb3f5885c chore(deps-dev): bump baseline-browser-mapping from
2.10.29 to 2.10.31 in /superset-frontend (#40320)
add e25d7081979 fix(mcp): hide write tools from users without write
permissions (#40098)
add ac035083d75 feat(path): support metric-based color scales & line width
by metric (#39165)
add 5966bb1c1ef feat(mcp): add series_limit to generate_chart XY config
(#40307)
add 558ff4452b8 fix(preview): fix chart preview bugs (#40063)
add 55491006016 feat(i18n): add missing Slovak translations (#40219)
add a94edfe4187 fix(i18n): add Slovenian translation for 'Range type' in
DateFilter (#40287)
add f7f6c29adf0 chore(deps-dev): bump webpack from 5.106.2 to 5.107.1 in
/superset-frontend (#40370)
add 8e98ca65691 docs: expand out-of-scope vulnerability definitions
(#40332)
add 31087177ab3 chore(deps-dev): bump webpack from 5.107.0 to 5.107.1 in
/docs (#40364)
add f4af6a2caf0 fix(docker): add missing `service-worker.js` into built
container image (#39596)
add 64f0e88de79 chore(backend/build): upgrade Gunicorn from v22 to v25
(#38788)
add df8222ffcd2 chore(deps-dev): bump ts-jest from 29.4.10 to 29.4.11 in
/superset-frontend (#40369)
add b0d26196fc5 chore(deps-dev): bump @swc/plugin-emotion from 14.9.0 to
14.10.0 in /superset-frontend (#40368)
add 8ab4695ba34 fix(mcp): use `name` URL param so AI-generated SQL Lab
titles render (#40288)
add 21059b54f06 feat(semantic layers): form for SL with a single SV
(#40280)
add c945ef67639 chore(oxlint): enable import/newline-after-import +
react/no-unstable-nested-components (#40319)
add 42149f6a78f fix(chart): fix label and description translation on UI
and enhance french translations (#40229)
add 91d96419fe0 feat(sec): delays version-bumping PR to avoid prematurely
usage of compromised packages (#39783)
add 3b4892c48cd fix(select): replace cached options with search results in
AsyncSelect (#40039)
add 869ab37f590 chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in
/superset-frontend (#40366)
add d97b5d6509c chore(deps): bump react-syntax-highlighter from 16.1.0 to
16.1.1 in /superset-frontend (#40372)
add 3599c78a034 chore(deps): bump react-arborist from 3.6.1 to 3.7.0 in
/superset-frontend (#40371)
add 5af8fe77fab chore(deps): bump zod from 4.4.1 to 4.4.3 in
/superset-frontend (#40367)
add 6e23e4541d3 chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in
/superset-frontend (#40365)
add 2a0ebd7055a chore(deps-dev): bump ts-jest from 29.4.10 to 29.4.11 in
/superset-websocket (#40363)
add 0febe32dc9c chore(deps): bump geostyler from 18.5.1 to 18.6.0 in
/superset-frontend (#40323)
add c728b4a11f5 chore(deps): bump sqlglot from 28.10.0 to 30.8.0 (#40186)
add e40648dfcbd chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in
/superset-websocket (#39425)
add 5cdd542ae50 fix(i18n): translate DateFilter tooltip for time range
values (#40286)
add f8e13770fcf fix(dashboard): add top padding to "Create new chart"
button in builder pane (#40033)
add af6ac4d09cb feat(i18n): AI-assisted translation backfill tooling +
Spanish translations (#39448)
add e57387098b4 fix(bigquery): limit result set size to prevent browser
memory crashes (#38588)
add 8d985d223bc ci(e2e): run backend under gunicorn instead of flask dev
server (#40234)
add 42668cf6341 ci(docker): pin QEMU binfmt image to stabilize arm64
builds (#40235)
add 838ac8f553c fix(ci): stop cancelling Hold Label Check runs (#40380)
add 168b49bf34f chore(cypress): remove dead _skip spec files and skipped
inline tests (#40384)
add 2fa3bbd91cf chore(ci): limit /app/prefix matrix variant to master
merges (#40385)
add 55203bbc748 chore(deps): bump qs from 6.14.2 to 6.15.2 in /docs
(#40383)
add 841871f1e78 chore(deps): bump qs from 6.14.2 to 6.15.2 in
/superset-websocket/utils/client-ws-app (#40382)
add 816794b1985 fix(frontend): handle null/undefined path in ensureAppRoot
(#39940)
add 5003ee1499a docs: remove out-of-place phrase (#40226)
add b21450681dc feat(i18n): add Thai (th) translations (AI-generated,
needs review) (#40391)
add 965ec472965 fix(explore): hide value input for unary filter operators
(#39924)
add 2fef4e41f20 feat(i18n): add Finnish (fi) translations (AI-generated,
needs review) (#40390)
add 9c90a6854c5 ci(translations): hard-block translation regressions in CI
(#39443)
add 66adb6e582f Merge branch 'master' into
tdd/issue-27897-sqla-engine-cache
No new revisions were added by this update.
Summary of changes:
.github/SECURITY.md | 16 +-
.github/actions/setup-docker/action.yml | 9 +
.github/dependabot.yml | 66 +-
.github/workflows/bashlib.sh | 125 +-
.github/workflows/no-hold-label.yml | 7 +-
.github/workflows/superset-e2e.yml | 4 +-
.../workflows/superset-translations-comment.yml | 87 +
.github/workflows/superset-translations.yml | 90 +-
.gitignore | 2 +
.pre-commit-config.yaml | 2 +-
.pylintrc | 2 +-
Dockerfile | 2 +
.../contributing/development-setup.md | 1 -
docs/developer_docs/contributing/howtos.md | 86 +
docs/package.json | 2 +-
docs/yarn.lock | 17 +-
pyproject.toml | 7 +-
requirements/base.txt | 4 +-
requirements/development.txt | 6 +-
scripts/translations/backfill_po.py | 653 +
scripts/translations/build_translation_index.py | 153 +
.../translations/check_translation_regression.py | 250 +
superset-core/pyproject.toml | 2 +-
.../src/superset_core/semantic_layers/types.py | 21 +
.../cypress/e2e/dashboard/_skip.controls.test.ts | 100 -
.../dashboard/_skip.horizontalFilterBar.test.ts | 292 -
.../cypress/e2e/dashboard/_skip.key_value.test.ts | 53 -
.../cypress/e2e/dashboard/_skip.load.test.ts | 51 -
.../_skip.nativeFilters.noInitState.test.ts | 385 -
.../e2e/dashboard/_skip.nativeFilters.test.ts | 431 -
.../cypress/e2e/dashboard/_skip.tabs.test.ts | 194 -
.../cypress/e2e/dashboard/_skip.url_params.test.ts | 45 -
.../cypress/e2e/dashboard/editmode.test.ts | 1110 +-
.../cypress/e2e/explore/_skip.AdhocFilters.test.ts | 109 -
.../cypress/e2e/explore/_skip.AdhocMetrics.test.ts | 123 -
.../e2e/explore/_skip.advanced_analytics.test.ts | 65 -
.../cypress/e2e/explore/_skip.annotations.test.ts | 48 -
.../cypress/e2e/explore/_skip.link.test.ts | 192 -
.../visualizations/_skip.big_number.test.js | 80 -
.../visualizations/_skip.big_number_total.test.js | 79 -
.../explore/visualizations/_skip.box_plot.test.js | 65 -
.../explore/visualizations/_skip.bubble.test.js | 108 -
.../explore/visualizations/_skip.compare.test.js | 100 -
.../visualizations/_skip.download_chart.test.js | 54 -
.../e2e/explore/visualizations/_skip.gauge.test.js | 75 -
.../e2e/explore/visualizations/_skip.graph.test.ts | 91 -
.../e2e/explore/visualizations/_skip.pie.test.js | 82 -
.../visualizations/_skip.pivot_table.test.js | 106 -
.../explore/visualizations/_skip.sunburst.test.js | 97 -
.../e2e/explore/visualizations/_skip.table.test.ts | 474 -
.../e2e/explore/visualizations/_skip.time_table.js | 130 -
.../explore/visualizations/_skip.world_map.test.js | 95 -
superset-frontend/oxlint.json | 13 +-
superset-frontend/package-lock.json | 891 +-
superset-frontend/package.json | 20 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-ui-core/package.json | 2 +-
.../src/chart/components/SuperChart.tsx | 1 +
.../src/components/Select/AsyncSelect.test.tsx | 470 +
.../src/components/Select/AsyncSelect.tsx | 117 +-
.../src/components/Select/utils.tsx | 4 +
.../src/components/TableView/TableView.test.tsx | 34 +
.../src/components/TableView/TableView.tsx | 15 +
.../src/query/types/QueryResponse.ts | 1 +
.../src/switchboard.test.ts | 7 +-
.../superset-ui-switchboard/src/switchboard.ts | 6 +-
.../src/layers/Path/Path.test.tsx | 525 +-
.../preset-chart-deckgl/src/layers/Path/Path.tsx | 108 +-
.../src/layers/Path/buildQuery.test.ts | 355 +
.../src/layers/Path/buildQuery.ts | 66 +-
.../src/layers/Path/controlPanel.test.ts | 242 +
.../src/layers/Path/controlPanel.ts | 73 +-
.../src/layers/Path/transformProps.test.ts | 364 +
.../src/layers/Path/transformProps.ts | 65 +-
.../src/utilities/Shared_DeckGL.tsx | 35 +
superset-frontend/spec/helpers/testing-library.tsx | 2 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 20 +-
.../src/SqlLab/components/EditorAutoSync/index.tsx | 5 +-
.../src/SqlLab/components/EditorWrapper/index.tsx | 5 +-
.../SqlLab/components/EditorWrapper/useKeywords.ts | 5 +-
.../components/ExploreCtasResultsButton/index.tsx | 9 +-
.../src/SqlLab/components/HighlightedSql/index.tsx | 9 +-
.../src/SqlLab/components/PopEditorTab/index.tsx | 5 +-
.../SqlLab/components/QueryAutoRefresh/index.tsx | 5 +-
.../SqlLab/components/QueryLimitSelect/index.tsx | 4 +-
.../src/SqlLab/components/QueryTable/index.tsx | 5 +-
.../src/SqlLab/components/ResultSet/index.tsx | 5 +-
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 105 +-
.../SqlLab/components/SaveDatasetModal/index.tsx | 11 +-
.../src/SqlLab/components/SouthPane/index.tsx | 5 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 5 +-
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 4 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 5 +-
.../SqlEditorTopBar/useDatabaseSelector.ts | 5 +-
.../src/SqlLab/components/TableElement/index.tsx | 5 +-
.../SqlLab/components/TableExploreTree/index.tsx | 5 +-
.../components/TableExploreTree/useTreeData.ts | 4 +-
.../src/SqlLab/components/TablePreview/index.tsx | 5 +-
.../components/DynamicGroupBy/controlPanel.test.ts | 53 +
.../components/DynamicGroupBy/controlPanel.ts | 13 +-
.../components/TimeColumn/controlPanel.test.ts | 53 +
.../components/TimeColumn/controlPanel.ts | 7 +-
.../components/TimeGrain/controlPanel.test.ts | 53 +
.../components/TimeGrain/controlPanel.ts | 7 +-
.../src/components/Chart/chartAction.ts | 10 +-
.../src/components/Chart/chartActions.test.ts | 51 +
.../components/ListView/Filters/Select.test.tsx | 267 +
.../src/components/ListView/Filters/Select.tsx | 12 +-
superset-frontend/src/components/ListView/types.ts | 4 +
.../src/dashboard/actions/dashboardLayout.ts | 1 +
.../src/dashboard/components/SliceAdder.tsx | 2 +-
.../components/ControlPanelsContainer.test.tsx | 20 +
.../explore/components/ControlPanelsContainer.tsx | 11 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 6 +-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 64 +
.../index.tsx | 91 +-
.../src/explore/components/controls/ViewQuery.tsx | 9 +-
.../semanticLayers/MultiEnumControl.test.tsx | 96 +
.../semanticLayers/jsonFormsHelpers.test.ts | 45 +-
.../features/semanticLayers/jsonFormsHelpers.tsx | 91 +-
.../semanticViews/AddSemanticViewModal.tsx | 38 +-
.../filters/components/Range/controlPanel.test.ts | 53 +
.../src/filters/components/Range/controlPanel.ts | 11 +-
.../filters/components/Select/controlPanel.test.ts | 34 +-
.../src/filters/components/Select/controlPanel.ts | 56 +-
.../src/filters/components/Time/controlPanel.ts | 7 +-
.../filters/components/TimeColumn/controlPanel.ts | 7 +-
.../filters/components/TimeGrain/controlPanel.ts | 7 +-
.../src/pages/FileHandler/index.test.tsx | 19 +-
superset-frontend/src/utils/pathUtils.test.ts | 14 +
superset-frontend/src/utils/pathUtils.ts | 11 +-
superset-frontend/src/utils/safeStringify.test.ts | 26 +-
superset-frontend/src/utils/safeStringify.ts | 16 +-
superset-frontend/src/views/store.ts | 13 +-
superset-frontend/webpack.proxy-config.js | 1 +
superset-websocket/package-lock.json | 28 +-
superset-websocket/package.json | 4 +-
superset-websocket/src/index.ts | 6 +-
superset-websocket/tsconfig.json | 1 +
.../utils/client-ws-app/package-lock.json | 12 +-
superset/charts/schemas.py | 4 +
superset/common/query_context_processor.py | 13 +
superset/common/utils/query_cache_manager.py | 21 +-
superset/config.py | 3 +
superset/db_engine_specs/base.py | 12 +-
superset/db_engine_specs/bigquery.py | 109 +-
superset/db_engine_specs/postgres.py | 42 +-
superset/mcp_service/__main__.py | 34 +-
superset/mcp_service/app.py | 53 +-
superset/mcp_service/auth.py | 173 +-
superset/mcp_service/chart/chart_helpers.py | 135 +-
superset/mcp_service/chart/chart_utils.py | 69 +-
superset/mcp_service/chart/schemas.py | 215 +-
superset/mcp_service/chart/tool/get_chart_data.py | 214 +-
superset/mcp_service/chart/tool/get_chart_info.py | 105 +-
.../mcp_service/chart/tool/get_chart_preview.py | 91 +-
superset/mcp_service/chart/tool/list_charts.py | 7 +-
superset/mcp_service/common/schema_discovery.py | 8 +-
superset/mcp_service/dashboard/schemas.py | 23 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 9 +-
superset/mcp_service/database/schemas.py | 9 +-
superset/mcp_service/dataset/schemas.py | 17 +-
superset/mcp_service/dataset/tool/list_datasets.py | 7 +-
.../explore/tool/generate_explore_link.py | 41 +-
superset/mcp_service/mcp_core.py | 15 +-
superset/mcp_service/middleware.py | 78 +-
superset/mcp_service/privacy.py | 13 +-
superset/mcp_service/server.py | 62 +-
superset/mcp_service/sql_lab/schemas.py | 21 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 7 +-
superset/mcp_service/system/schemas.py | 84 +-
superset/mcp_service/system/tool/__init__.py | 2 +
superset/mcp_service/system/tool/find_users.py | 101 +
superset/models/sql_lab.py | 14 +-
superset/semantic_layers/mapper.py | 192 +-
superset/sql/dialects/db2.py | 6 +
superset/sql/dialects/dremio.py | 6 +-
superset/sql/dialects/firebolt.py | 11 +-
superset/sql/parse.py | 37 +-
superset/translations/es/LC_MESSAGES/messages.po | 4264 +--
superset/translations/fi/LC_MESSAGES/messages.po | 30258 +++++++++++++++++++
superset/translations/fr/LC_MESSAGES/messages.po | 1774 +-
superset/translations/requirements.txt | 1 +
superset/translations/sk/LC_MESSAGES/messages.po | 11768 ++++----
superset/translations/sl/LC_MESSAGES/messages.po | 6 +-
superset/translations/th/LC_MESSAGES/messages.po | 29937 ++++++++++++++++++
superset/utils/webdriver.py | 13 +-
superset/views/base_api.py | 30 +
.../common/test_query_context_processor.py | 120 +
tests/unit_tests/datasets/api_tests.py | 43 +
tests/unit_tests/db_engine_specs/test_bigquery.py | 132 +-
tests/unit_tests/db_engine_specs/test_postgres.py | 41 +-
.../mcp_service/chart/test_chart_schemas.py | 41 +
.../mcp_service/chart/test_chart_utils.py | 61 +-
.../mcp_service/chart/test_new_chart_types.py | 286 +
.../mcp_service/chart/tool/test_get_chart_data.py | 285 +
.../mcp_service/chart/tool/test_get_chart_info.py | 243 +-
.../chart/tool/test_get_chart_preview.py | 98 +
.../mcp_service/dataset/tool/test_dataset_tools.py | 18 +-
.../explore/tool/test_generate_explore_link.py | 46 +
.../sql_lab/tool/test_open_sql_lab_with_context.py | 43 +-
.../mcp_service/system/tool/test_find_users.py | 257 +
.../system/tool/test_get_current_user.py | 66 +-
.../mcp_service/system/tool/test_get_schema.py | 40 +-
tests/unit_tests/mcp_service/test_auth_rbac.py | 120 +
tests/unit_tests/mcp_service/test_middleware.py | 206 +-
.../mcp_service/test_tool_search_transform.py | 30 +-
tests/unit_tests/models/sql_lab_test.py | 57 +-
.../unit_tests/scripts/translations}/__init__.py | 0
.../scripts/translations/backfill_po_test.py | 312 +
.../translations/build_translation_index_test.py | 256 +
tests/unit_tests/semantic_layers/mapper_test.py | 372 +-
tests/unit_tests/semantic_layers/types_test.py | 58 +
tests/unit_tests/utils/webdriver_test.py | 87 +
214 files changed, 79296 insertions(+), 15568 deletions(-)
create mode 100644 .github/workflows/superset-translations-comment.yml
create mode 100644 scripts/translations/backfill_po.py
create mode 100644 scripts/translations/build_translation_index.py
create mode 100755 scripts/translations/check_translation_regression.py
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.controls.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.horizontalFilterBar.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.key_value.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.load.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.nativeFilters.noInitState.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.nativeFilters.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.tabs.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.url_params.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/_skip.AdhocFilters.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/_skip.AdhocMetrics.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/_skip.advanced_analytics.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/_skip.annotations.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/_skip.link.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.big_number.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.big_number_total.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.box_plot.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.bubble.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.compare.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.download_chart.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.gauge.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.graph.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.pie.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.pivot_table.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.sunburst.test.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.table.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.time_table.js
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.world_map.test.js
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/buildQuery.test.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/controlPanel.test.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/transformProps.test.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/DynamicGroupBy/controlPanel.test.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/TimeColumn/controlPanel.test.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/TimeGrain/controlPanel.test.ts
create mode 100644
superset-frontend/src/components/ListView/Filters/Select.test.tsx
create mode 100644
superset-frontend/src/features/semanticLayers/MultiEnumControl.test.tsx
create mode 100644
superset-frontend/src/filters/components/Range/controlPanel.test.ts
create mode 100644 superset/mcp_service/system/tool/find_users.py
create mode 100644 superset/translations/fi/LC_MESSAGES/messages.po
create mode 100644 superset/translations/th/LC_MESSAGES/messages.po
create mode 100644 tests/unit_tests/mcp_service/system/tool/test_find_users.py
copy {superset-core/src/superset_core/common =>
tests/unit_tests/scripts/translations}/__init__.py (100%)
create mode 100644 tests/unit_tests/scripts/translations/backfill_po_test.py
create mode 100644
tests/unit_tests/scripts/translations/build_translation_index_test.py
create mode 100644 tests/unit_tests/semantic_layers/types_test.py