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

(superset) branch fix/pivot-grand-total-mixed-metrics updated (f990ab7807a -> be19942e67e)

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

rusackas pushed a change to branch fix/pivot-grand-total-mixed-metrics
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard f990ab7807a fix(pivot-table): fill Total row/column for single-metric percent modes, keep all-null fractions blank
 discard 0205f07b6de fix(pivot-table): keep value-sort keys for blank totals, distinguish empty-string scope keys, support Series-only summary reducers
 discard b85ae232fe2 fix(pivot-table): address review nits and pre-commit end-of-file failure
 discard 641f580ebaa chore(i18n): regenerate messages.pot for pivot table strings
 discard 180fadab914 fix(pivot-table): handle axis in sample stats reducers; strip default Metric on downgrade; populate tag timestamps
 discard a19b3b4a0cb test(pivot-table): cover sample variance and standard deviation aggregations
 discard d8420456082 fix(pivot-table): re-point migration at the current alembic head
 discard 5e2ebee4555 fix(pivot-table): blank null totals at the format boundary; clarify re-save step
 discard 3502b54ee08 fix(pivot-table): use pd.Series for sample variance/std aggregations
 discard d3a1d16ebc9 fix(pivot-table): fix showValuesAs percent denominators going blank
 discard 69dc5a12458 fix(pivot-table): address review feedback on result aggregation restoration
 discard e6fae5271cd fix(pivot-table): reduce a full-depth cell shared by multiple records, not just subtotals
 discard 371307f818d fix(pivot-table): keep leaf cells at their own DB-computed value under a result aggregation
 discard fcf8fc735d9 style: apply oxfmt/ruff-format autofixes
 discard 9e394119250 fix(pivot-table): find row/col-subtotal denominators and keep custom formats under a result aggregation
 discard b9f8ae4b24f feat(pivot-table): restore result aggregation as a second aggregation pass (#44660)
 discard 8629cf69eb7 fix(pivot-table): blank fractionOf denominator leak, add row-total mixed-metric coverage
 discard 155b97e809c fix(pivot-table): stop the grand-total corner from silently picking one metric
     add 7a2913e2dbe fix(sqlite): write midnight as a bare date for DATE columns in time filters (#44805)
     add 46b9ba9587e chore(deps): bump dawidd6/action-download-artifact from 25 to 26 (#44977)
     add 3ac856ceb1a chore(deps): bump chromaui/action from 18.7.3 to 18.10.1 (#44973)
     add 7a62b3a6535 chore(deps-dev): bump postcss-styled-syntax from 0.7.2 to 0.7.3 in /superset-frontend (#44980)
     add bc69daa2328 chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in /superset-frontend (#44979)
     add fee8e1b9e52 chore(deps-dev): bump webpack-sources from 3.5.3 to 3.6.0 in /superset-frontend (#44978)
     add 343dcb09353 chore(deps): bump chalk from 6.0.0 to 6.0.1 in /superset-frontend (#44976)
     add d62fc92273b chore(deps-dev): bump vitest from 5.0.1 to 5.0.2 in /superset-embedded-sdk (#44974)
     add c00f6a7aabc chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in /superset-embedded-sdk (#44972)
     add 303a68b8e2c chore(deps-dev): bump @types/node from 26.6.2 to 26.6.3 in /superset-websocket (#44971)
     add 83ea1d9e6f5 chore(deps-dev): bump vitest from 5.0.1 to 5.0.2 in /superset-websocket (#44970)
     add 31d2d06bba3 chore(deps): bump ws from 8.21.3 to 8.22.0 in /superset-websocket (#44969)
     add 7fecceb6901 chore: remove unused INCLUDE_FIREFOX build arg and dead screenshot config (#44245)
     add 09015bb4bff fix(explore): preserve pending column configuration edits (#44931)
     add 48ac1bf8c69 fix(mcp): return actionable authorized column suggestions (#44603)
     add 0616ba68afe chore(deps-dev): bump the swc group in /superset-frontend with 2 updates (#44975)
     add 13861568aaa chore(build): remove unused `polyline` Python dep (#44961)
     add 895bc203601 fix: full CSV download in AgGrid (#41696)
     add 3e50c2c1287 feat(mcp): support filter_range and filter_timegrain filters (#44893)
     add 0c6373cd9f0 fix(models): silence pandas silent-downcasting FutureWarning in normalize_df (#44897)
     add 2fdf756cf1a fix(mcp): avoid duplicate SQL execution results (#44949)
     add ce39d221aac fix(charts): return 404 when chart export hits an inaccessible dataset (#44900)
     add 13493a3e47f fix(mcp): allow bounding dashboard dataset columns (#44951)
     add 05a3d4b880f feat(mcp): return the Big Number headline from chart and dashboard data (#44948)
     add 8ff884059fd fix(logging): stop logging tracebacks for client-side HTTP errors (#44666)
     add 31e3c9a1944 fix(ag-grid-table): refresh totals when summary aggregation changes (#44612)
     add 71ee07e2e2b feat(ci): conditionally run CodeQL analysis workflows only when there are detected JS/Python file changes (#44699)
     add c30ae9fd12d fix(embedded): refuse guest row-level security on semantic views (#44987)
     add 9a345ad0112 chore(deps-dev): bump oxlint from 1.85.0 to 1.86.0 in /superset-websocket (#45005)
     add 7b463ddee08 feat(ag-grid-table): expand JSON values in table cells (#44907)
     add e0ff1074879 chore(i18n): update pt/pt_BR translations and rebuild translation index (#43022)
     add 6aebcd2452d fix(dashboards): close CSS validation gaps in dashboard import and edits (#43666)
     add 7b3ce2cf368 fix(themes): overwrite-import guard, missing index, dedupe extra_editors (follow-up to #42404) (#44362)
     add bc1abf498d4 feat(bignumber): add an alignment control (#44554)
     add 518bfbc5115 fix(reports): propagate force flag to dashboard-tab permalink report URLs (#44775)
     add 4578ab31ade refactor(list-view): eliminate any usage in ListView.tsx and TableCollection (#44208)
     add 7b3e3ad6f7f fix(dashboard,explore): wire addWarningToast into download callers (#44154)
     add f9e9ece86f5 chore(deps): bump the rjsf group in /superset-frontend with 3 updates (#45004)
     add 9e18d415d92 chore(deps-dev): bump @swc/core from 1.16.2 to 1.16.12 in /superset-frontend in the swc group (#45012)
     add 9d348facce9 chore(deps): bump @swc/core from 1.16.2 to 1.16.12 in /docs (#45008)
     add 457007b2f82 chore(deps-dev): bump source-map-js from 1.2.1 to 1.2.2 in /superset-websocket in the security group across 1 directory (#45028)
     add a5ffac58f44 feat: add global async query playwright tests (#43004)
     add 854d3d59e4d fix(table): omit dormant grains from semantic aggregate requests (#44455)
     add 000297a6f07 fix(semantic-layers): offer valid table ordering choices (#44806)
     add d6c871a57fb fix(semantic-layers): remove child view permissions when a layer is deleted (#44905)
     add 3413a50af05 chore(deps): bump proxy-addr from 2.0.7 to 2.0.8 in /superset-websocket/utils/client-ws-app in the security group across 1 directory (#45027)
     add 3cfc7458670 chore(deps): bump dawidd6/action-download-artifact from 26 to 27 (#45011)
     add 7330ca4c373 chore(deps): bump source-map-js from 1.2.1 to 1.2.2 in /superset-embedded-sdk in the security group across 1 directory (#45024)
     add fcee985241b fix(pivot-table): respect per-metric formatters in result aggregation (#44815)
     add 1473d481345 fix(query-context): match an adhoc granularity_sqla by its expression (#44773)
     add 17f4c215b37 feat(mcp): allow default values on filter_select native filters (#44985)
     add 5a2f4c8e80c feat(mcp): add structured dashboard text component management (#44560)
     add 55e39fc5f76 fix(explore): avoid mutating ZoomConfigControl configs (#44957)
     add 794b243c543 test(frontend): await remaining userEvent calls and lint for un-awaited ones (#44947)
     add 715dc017df1 fix(explore): open SQL Lab in a new tab on Ctrl+click in View query modal (#44933)
     add 3a35a261bd3 fix(pivot-table): stop the grand-total corner from silently picking one metric
     add be19942e67e fix(pivot-table): reconcile grand-total slot with formatter-aware totals; re-parent migration

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   (f990ab7807a)
            \
             N -- N -- N   refs/heads/fix/pivot-grand-total-mixed-metrics (be19942e67e)

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/workflows/bashlib.sh                       |  149 +-
 .github/workflows/chromatic.yml                    |    2 +-
 .github/workflows/codeql-analysis.yml              |   11 +-
 .github/workflows/superset-docs-deploy.yml         |    4 +-
 .github/workflows/superset-docs-verify.yml         |    2 +-
 .github/workflows/superset-e2e.yml                 |  169 +
 Dockerfile                                         |    8 +-
 UPDATING.md                                        |   33 +
 docker-compose-light.yml                           |    1 -
 docker-compose.yml                                 |    1 -
 docker/.env                                        |    1 -
 docs/admin_docs/configuration/mcp-server.mdx       |  145 +-
 docs/admin_docs/installation/docker-builds.mdx     |    1 -
 .../contributing/development-setup.md              |    1 -
 .../creating-your-first-dashboard.mdx              |    8 +
 docs/docs/using-superset/embedding.mdx             |    2 +-
 docs/docs/using-superset/exploring-data.mdx        |   19 +
 .../docs/using-superset/using-ai-with-superset.mdx |   55 +
 docs/package.json                                  |    2 +-
 docs/yarn.lock                                     |  152 +-
 pyproject.toml                                     |    7 +-
 requirements/base.txt                              |    2 -
 requirements/development.txt                       |    4 -
 scripts/change_detector.py                         |    7 +
 superset-embedded-sdk/package-lock.json            |  228 +-
 superset-embedded-sdk/package.json                 |    4 +-
 superset-frontend/package-lock.json                |  180 +-
 superset-frontend/package.json                     |   16 +-
 .../packages/generator-superset/package.json       |    2 +-
 .../packages/superset-ui-core/package.json         |    2 +-
 .../TableCollection/TableCollection.stories.tsx    |   22 +-
 .../TableCollection/TableCollection.test.tsx       |   63 +
 .../src/components/TableCollection/index.tsx       |    7 +-
 .../src/components/TableCollection/utils.tsx       |   93 +-
 .../superset-ui-core/types/react-table-config.d.ts |  149 -
 .../superset-ui-core}/types/react-table.d.ts       |   54 +-
 superset-frontend/playwright.config.ts             |   37 +
 .../playwright/components/core/Select.ts           |   28 +-
 .../tests/dashboard/dashboard-test-helpers.ts      |  464 +-
 .../global-async-query-resilience.spec.ts          |  600 ++
 .../tests/dashboard/global-async-query.spec.ts     |  462 ++
 .../tests/sqllab/global-async-query-sqllab.spec.ts |   78 +
 superset-frontend/playwright/utils/constants.ts    |   18 +
 .../src/AgGridTable/index.tsx                      |    2 +
 .../src/AgGridTableChart.tsx                       |   39 +-
 .../plugin-chart-ag-grid-table/src/consts.ts       |    8 +
 .../src/controlPanel.tsx                           |   14 +
 .../src/renderers/JsonCellRenderer.tsx             |  600 ++
 .../src/renderers/TextCellRenderer.tsx             |   59 +-
 .../src/renderers/jsonCellRowHeight.ts             |   61 +
 .../src/renderers/parseJsonCellValue.ts            |  234 +
 .../src/styles/index.tsx                           |    7 +
 .../src/transformProps.ts                          |    4 +
 .../plugin-chart-ag-grid-table/src/types.ts        |    5 +
 .../src/utils/externalAPIs.ts                      |    2 +
 .../src/utils/isJsonCellActionTarget.ts            |   56 +
 .../src/utils/useColDefs.ts                        |    4 +
 .../test/AgGridTableChart.test.tsx                 |  153 +-
 .../test/JsonCellRenderer.test.tsx                 |  674 ++
 .../test/cellSelectionWiring.test.tsx              |   88 +
 .../test/controlPanel.test.ts                      |    8 +
 .../test/transformProps.test.ts                    |   25 +
 .../BigNumber/BigNumberTotal/controlPanel.test.ts  |   10 +
 .../src/BigNumber/BigNumberTotal/controlPanel.ts   |    2 +
 .../BigNumberTotal/transformProps.test.ts          |    2 +
 .../src/BigNumber/BigNumberTotal/transformProps.ts |    2 +
 .../src/BigNumber/BigNumberViz.test.tsx            |  152 +-
 .../src/BigNumber/BigNumberViz.tsx                 |   23 +-
 .../BigNumberWithTrendline/controlPanel.tsx        |    2 +
 .../BigNumberWithTrendline/transformProps.test.ts  |    2 +
 .../BigNumberWithTrendline/transformProps.ts       |    2 +
 .../src/BigNumber/sharedControls.ts                |   19 +
 .../plugin-chart-echarts/src/BigNumber/types.ts    |    4 +
 .../src/react-pivottable/utilities.ts              |   48 +-
 .../test/react-pivottable/tableRenders.test.tsx    |  100 +
 .../test/react-pivottable/utilities.test.ts        |  208 +
 .../plugins/plugin-chart-table/src/buildQuery.ts   |   85 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   58 +-
 .../plugin-chart-table/test/buildQuery.test.ts     |  312 +
 .../plugin-chart-table/test/controlPanel.test.ts   |   44 +
 .../plugin-chart-table/test/controlPanel.test.tsx  |   56 +
 superset-frontend/scripts/check-custom-rules.js    |  163 +-
 .../ChartContextMenu/ChartContextMenu.test.tsx     |    2 +-
 .../src/components/ListView/CardCollection.tsx     |   22 +-
 .../src/components/ListView/ListView.test.tsx      |    2 -
 .../src/components/ListView/ListView.tsx           |   27 +-
 superset-frontend/src/components/ListView/utils.ts |    8 +-
 .../dashboard/components/Header/Header.test.tsx    |    4 +-
 .../src/dashboard/components/SliceHeader/index.tsx |    2 +
 .../SliceHeaderControls.test.tsx                   |   34 +
 .../components/SliceHeaderControls/index.tsx       |    8 +-
 .../components/SliceHeaderControls/types.ts        |    1 +
 .../components/gridComponents/Chart/Chart.test.tsx |  288 +-
 .../components/gridComponents/Chart/Chart.tsx      |   95 +-
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |   46 +
 .../components/menu/DownloadMenuItems/index.tsx    |   21 +-
 .../FilterControls/GroupByFilterCard.test.tsx      |   24 +-
 .../src/dashboard/containers/DashboardPage.tsx     |   36 +-
 .../contexts/DashboardDatasetsContext.ts}          |   14 +-
 .../ControlForm/ControlForm.debounce.test.tsx      |  124 +
 .../ColumnConfigControl/ControlForm/index.tsx      |   50 +-
 .../ColumnSelectPopover.test.tsx                   |   38 +-
 .../DndColumnSelect.test.tsx                       |   20 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |    4 +-
 .../AdhocMetricEditPopover.test.tsx                |    4 +-
 .../controls/ViewQueryModalFooter.test.tsx         |   95 +
 .../components/controls/ViewQueryModalFooter.tsx   |    7 +-
 .../ZoomConfigControl/ZoomConfigControl.test.tsx   |  115 +
 .../ZoomConfigControl/ZoomConfigControl.tsx        |   36 +-
 .../useExploreAdditionalActionsMenu/index.tsx      |   39 +-
 .../useExploreAdditionalActionsMenu.test.tsx       |   38 +-
 .../src/explore/exploreUtils/exploreUtils.test.tsx |   32 +
 .../src/explore/reducers/exploreReducer.test.ts    |   72 +-
 .../src/explore/reducers/exploreReducer.ts         |   25 +-
 .../src/hooks/apiResources/dashboards.test.ts      |   14 +
 .../src/hooks/apiResources/dashboards.ts           |   28 +-
 .../src/pages/ActionLog/ActionLog.test.tsx         |   90 +
 superset-frontend/src/pages/ActionLog/index.tsx    |    3 +
 superset-frontend/src/types/react-table.d.ts       |   16 +
 .../src/utils/downloadAsImage.test.ts              |  302 +-
 superset-frontend/src/utils/downloadAsImage.tsx    |   36 +-
 superset-frontend/src/utils/downloadAsPdf.test.ts  |  128 +
 superset-frontend/src/utils/downloadAsPdf.ts       |   30 +-
 superset-frontend/src/utils/downloadUtils.test.ts  |   76 +-
 superset-frontend/src/utils/downloadUtils.ts       |   35 +-
 superset-websocket/package-lock.json               |  398 +-
 superset-websocket/package.json                    |    8 +-
 .../utils/client-ws-app/package-lock.json          |   17 +-
 superset/charts/api.py                             |   18 +-
 superset/commands/dashboard/update.py              |   19 +
 superset/commands/report/execute.py                |   24 +-
 superset/commands/theme/import_themes.py           |   57 +-
 superset/common/query_context_factory.py           |   18 +-
 superset/common/query_context_processor.py         |    6 +-
 superset/config.py                                 |    2 -
 superset/dashboards/api.py                         |   13 +-
 superset/dashboards/schemas.py                     |   17 +-
 superset/db_engine_specs/d1.py                     |   20 -
 superset/db_engine_specs/gsheets.py                |   23 +-
 superset/db_engine_specs/shillelagh.py             |   20 +-
 superset/db_engine_specs/sqlite.py                 |   16 +-
 superset/mcp_service/CLAUDE.md                     |    2 +-
 superset/mcp_service/app.py                        |    7 +-
 superset/mcp_service/chart/big_number_headline.py  |  388 +
 superset/mcp_service/chart/compile.py              |   12 +-
 superset/mcp_service/chart/schemas.py              |   43 +
 superset/mcp_service/chart/tool/get_chart_data.py  |   39 +
 superset/mcp_service/chart/tool/update_chart.py    |    7 +
 .../chart/validation/dataset_validator.py          |  242 +-
 superset/mcp_service/dashboard/constants.py        |    4 +
 superset/mcp_service/dashboard/layout_placement.py |  309 +
 .../mcp_service/dashboard/layout_validation.py     |   11 +-
 superset/mcp_service/dashboard/schemas.py          |  560 +-
 superset/mcp_service/dashboard/tool/__init__.py    |    2 +
 .../tool/add_chart_to_existing_dashboard.py        |  223 +-
 .../dashboard/tool/apply_dashboard_filters.py      |  269 +-
 .../dashboard/tool/get_dashboard_data.py           |    9 +
 .../dashboard/tool/get_dashboard_datasets.py       |   13 +-
 .../dashboard/tool/manage_dashboard_markdown.py    |  513 ++
 .../dashboard/tool/manage_native_filters.py        |  368 +-
 .../dashboard/tool/remove_chart_from_dashboard.py  |   61 +-
 superset/mcp_service/dashboard_scope.py            |    1 +
 .../explore/tool/generate_explore_link.py          |    2 +-
 superset/mcp_service/mcp_config.py                 |    1 +
 superset/mcp_service/sql_lab/schemas.py            |   36 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   14 +-
 superset/mcp_service/utils/error_builder.py        |  115 +-
 superset/mcp_service/utils/response_size_utils.py  |   40 +-
 ...0fab727cd0a_add_theme_editors_theme_id_index.py |   64 +
 ...141b8ada7731_tag_pivot_tables_with_restored_.py |    4 +-
 superset/models/helpers.py                         |    4 +-
 superset/security/manager.py                       |  185 +-
 superset/semantic_layers/models.py                 |   19 +-
 superset/themes/api.py                             |   20 +-
 superset/translations/messages.pot                 |   43 +-
 superset/translations/pt/LC_MESSAGES/messages.po   | 7619 ++++++++++----------
 .../translations/pt_BR/LC_MESSAGES/messages.po     | 3836 +++++-----
 superset/views/error_handling.py                   |   12 +-
 tests/common/assert_utils.py                       |    2 +-
 .../commands/execute_dashboard_report_tests.py     |   11 +-
 .../integration_tests/superset_test_config_gaq.py  |   59 +
 tests/unit_tests/charts/test_export_api.py         |   44 +
 tests/unit_tests/commands/dashboard/update_test.py |   87 +
 tests/unit_tests/commands/report/execute_test.py   |   99 +-
 .../commands/theme/test_import_themes.py           |   89 +
 .../common/test_query_context_factory.py           |   40 +
 tests/unit_tests/dashboards/schema_tests.py        |   37 +-
 tests/unit_tests/db_engine_specs/test_d1.py        |   48 +-
 .../unit_tests/db_engine_specs/test_shillelagh.py  |   13 +
 tests/unit_tests/db_engine_specs/test_sqlite.py    |   83 +
 tests/unit_tests/extensions/test_sqlalchemy.py     |   89 +
 .../mcp_service/chart/test_big_number_headline.py  |  665 ++
 tests/unit_tests/mcp_service/chart/test_compile.py |   68 +-
 .../chart/tool/test_column_suggestions.py          |  617 ++
 .../mcp_service/chart/tool/test_get_chart_data.py  |  258 +
 .../mcp_service/chart/tool/test_update_chart.py    |   59 +
 .../validation/test_column_name_normalization.py   |    5 +
 .../dashboard/test_dashboard_schemas.py            |   65 +
 .../mcp_service/dashboard/test_layout_placement.py |  101 +
 .../dashboard/tool/test_apply_dashboard_filters.py | 1129 ++-
 .../dashboard/tool/test_dashboard_generation.py    |   78 +-
 .../dashboard/tool/test_get_dashboard_data.py      |   44 +
 .../dashboard/tool/test_get_dashboard_datasets.py  |  220 +-
 .../tool/test_manage_dashboard_markdown.py         | 1279 ++++
 .../dashboard/tool/test_manage_native_filters.py   | 1084 ++-
 .../semantic_layer/tool/test_get_table.py          |   48 +
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |   27 +-
 .../sql_lab/tool/test_execute_sql_response.py      |  127 +
 .../mcp_service/test_mcp_tool_registration.py      |    3 +
 .../test_tool_description_constraints.py           |   15 +
 .../unit_tests/mcp_service/test_tool_inventory.py  |    5 +-
 .../mcp_service/utils/test_response_size_utils.py  |   85 +
 ...py => test_add_theme_editors_theme_id_index.py} |   46 +-
 tests/unit_tests/models/helpers_test.py            |   30 +
 tests/unit_tests/scripts/change_detector_test.py   |   11 +
 .../unit_tests/security/semantic_guest_rls_test.py |  389 +
 tests/unit_tests/semantic_layers/models_test.py    |  284 +
 tests/unit_tests/subjects/test_security.py         |   21 +
 tests/unit_tests/views/test_error_handling.py      |  203 +-
 219 files changed, 24340 insertions(+), 7821 deletions(-)
 delete mode 100644 superset-frontend/packages/superset-ui-core/types/react-table-config.d.ts
 copy superset-frontend/{src => packages/superset-ui-core}/types/react-table.d.ts (52%)
 create mode 100644 superset-frontend/playwright/tests/dashboard/global-async-query-resilience.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/global-async-query.spec.ts
 create mode 100644 superset-frontend/playwright/tests/sqllab/global-async-query-sqllab.spec.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/JsonCellRenderer.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/jsonCellRowHeight.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/renderers/parseJsonCellValue.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/isJsonCellActionTarget.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/JsonCellRenderer.test.tsx
 copy superset-frontend/{packages/superset-ui-core/src/components/ButtonGroup/types.ts => src/dashboard/contexts/DashboardDatasetsContext.ts} (71%)
 create mode 100644 superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.debounce.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ViewQueryModalFooter.test.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigControl.test.tsx
 create mode 100644 superset-frontend/src/pages/ActionLog/ActionLog.test.tsx
 create mode 100644 superset-frontend/src/utils/downloadAsPdf.test.ts
 create mode 100644 superset/mcp_service/chart/big_number_headline.py
 create mode 100644 superset/mcp_service/dashboard/layout_placement.py
 create mode 100644 superset/mcp_service/dashboard/tool/manage_dashboard_markdown.py
 create mode 100644 superset/migrations/versions/2026-09-16_00-01_00fab727cd0a_add_theme_editors_theme_id_index.py
 create mode 100644 tests/integration_tests/superset_test_config_gaq.py
 create mode 100644 tests/unit_tests/charts/test_export_api.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_big_number_headline.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_column_suggestions.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_layout_placement.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_manage_dashboard_markdown.py
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/tool/test_execute_sql_response.py
 copy tests/unit_tests/migrations/{test_version_transaction_issued_at_index.py => test_add_theme_editors_theme_id_index.py} (62%)
 create mode 100644 tests/unit_tests/security/semantic_guest_rls_test.py