This is an automated email from the ASF dual-hosted git repository.
aminghadersohi pushed a change to branch mcp-chart-tools-rearch
in repository https://gitbox.apache.org/repos/asf/superset.git
omit f7c93e99694 style: ruff-format auto-format fix
omit 42a293a6643 fix(mcp): address Bito review — log bare exception in
schemas, remove redundant annotation quotes
omit f90f1cd5791 fix(mcp): use (saved_metric, label) dedup key in
XYChartConfig
omit 3bd38ec4b18 fix(mcp): fix saved-metric name normalization across all
chart plugins
omit 2e7a86f2703 feat(mcp): add runtime chart plugin enable/disable via
_PluginFilterConfig
omit e2d53641188 fix(mcp): fix E501 in update_chart.py and update_chart
test mocks for column validation
omit c4be22e801b refactor(mcp): address Codex review — fix registry bug,
DRY schema hints, remove column regex
omit f3a30af324e fix(mcp): add full column validation to update_chart
omit 7d4f5246eb8 fix(mcp): add threading lock to registry plugin loader
omit 573518d4f70 fix(mcp): resolve E402 and E501 in dataset_validator.py
omit 4de8edea2c6 fix(mcp): resolve ruff E501 and formatting issues to pass
pre-commit
omit 6db4d17567e refactor(mcp): move all local imports to top level in
chart type plugins
omit 7cb1c704c56 fix(mcp): address reviewer comments — local import
rationale, x-optional corrections, cardinality suggestions
omit 5b9eefc320f refactor(mcp): complete plugin protocol — registry
bootstrap, mypy fixes, test repairs
omit 6bd27400d6f refactor(mcp): eliminate dead code and complete plugin
registry dispatch
omit fbc8b44f669 feat(mcp): add display_name and native_viz_types to chart
type plugins
omit d3af2754e43 feat(mcp): introduce chart type plugin registry for
extensible chart generation
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 8caa74354f6 chore(deps): bump markdown from 3.8.1 to 3.10.2 (#40389)
add fe484f6bb28 fix(UserListModal): Success notification mentions user and
not group (#40284)
add b64561f3a37 chore(mcp): Simplify chart preview response (#40020)
add 33585b0480c feat(mcp): make form_data_key optional in
update_chart_preview (#39680)
add 09572cd5efb chore(deps): bump tabulate from 0.9.0 to 0.10.0 (#40315)
add c381677dfdf chore(deps): bump click from 8.2.1 to 8.4.0 (#40312)
add bbe2f207d2d chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in
/superset-frontend (#40418)
add 03d25277ba7 chore(deps): bump actions/upload-artifact from 7.0.0 to
7.0.1 (#40417)
add 9cc2deb9036 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3
in /superset-frontend/plugins/plugin-chart-echarts (#40416)
add e9d46d843fa chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in
/superset-frontend (#40415)
add 709ef9b6155 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in
/superset-frontend (#40321)
add 8b551d3f742 chore(deps-dev): bump duckdb from 1.4.2 to 1.5.2 (#40381)
add 952a6f3a239 fix(mcp): prevent encoding error on tools/list when
middleware raises (#40446)
add 0b85c5cb55b feat(mcp): introduce chart type plugin registry for
extensible chart generation
add eb761a874f5 feat(mcp): add display_name and native_viz_types to chart
type plugins
add 6b4ce3ff3c8 refactor(mcp): eliminate dead code and complete plugin
registry dispatch
add 6b63c0c23ab refactor(mcp): complete plugin protocol — registry
bootstrap, mypy fixes, test repairs
add fd21c0d0cab fix(mcp): address reviewer comments — local import
rationale, x-optional corrections, cardinality suggestions
add 06f566d371d refactor(mcp): move all local imports to top level in
chart type plugins
add 4e5c2748fbd fix(mcp): resolve ruff E501 and formatting issues to pass
pre-commit
add ca161a52e62 fix(mcp): resolve E402 and E501 in dataset_validator.py
add 8183330a959 fix(mcp): add threading lock to registry plugin loader
add b9596abf8ce fix(mcp): add full column validation to update_chart
add 4da57e4ad3a refactor(mcp): address Codex review — fix registry bug,
DRY schema hints, remove column regex
add c3b2d85ab07 fix(mcp): fix E501 in update_chart.py and update_chart
test mocks for column validation
add 0110d2db018 feat(mcp): add runtime chart plugin enable/disable via
_PluginFilterConfig
add a17424bc730 fix(mcp): fix saved-metric name normalization across all
chart plugins
add c8bc498b5b2 fix(mcp): use (saved_metric, label) dedup key in
XYChartConfig
add 961cc94b513 fix(mcp): address Bito review — log bare exception in
schemas, remove redundant annotation quotes
add 6ee3293934f style: ruff-format auto-format fix
add 402a3cd5e52 style: remove obsolete PT004 ruff rule (dropped in ruff
0.9.7)
add 4c2bd8d9b4b perf(mcp): remove redundant DatasetValidator call in
update_chart
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 (f7c93e99694)
\
N -- N -- N refs/heads/mcp-chart-tools-rearch (4c2bd8d9b4b)
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:
.github/SECURITY.md | 16 +-
.github/actions/setup-docker/action.yml | 9 +
.github/dependabot.yml | 61 +-
.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 | 16 +-
requirements/base.txt | 10 +-
requirements/development.txt | 14 +-
scripts/change_detector.py | 1 +
scripts/translations/backfill_po.py | 653 +
scripts/translations/build_translation_index.py | 153 +
.../translations/check_translation_regression.py | 250 +
superset-core/pyproject.toml | 2 +-
.../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 | 108 +-
superset-frontend/package.json | 16 +-
.../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 +
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../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 +
.../src/SqlLab/components/HighlightedSql/index.tsx | 9 +-
.../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 +
.../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 +-
.../src/features/users/UserListModal.tsx | 2 +-
.../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 +-
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/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/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 | 240 +-
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 | 111 +-
superset/mcp_service/chart/tool/list_charts.py | 7 +-
superset/mcp_service/chart/tool/update_chart.py | 23 -
.../mcp_service/chart/tool/update_chart_preview.py | 47 +-
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 | 87 +-
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/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 +
tests/unit_tests/charts/test_client_processing.py | 34 +-
.../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 +-
.../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 | 115 +-
.../chart/tool/test_update_chart_preview.py | 72 +-
.../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_middleware_logging.py | 28 +
.../mcp_service/test_tool_search_transform.py | 30 +-
.../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/utils/webdriver_test.py | 87 +
188 files changed, 78474 insertions(+), 15113 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/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