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

rusackas pushed a change to branch feat/color-picker-consolidation
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard a788aeb7161 fix(bullet): ignore range_colors when the automatic 
fallback band is used
 discard 8a72271c37e Merge master into feat/color-picker-consolidation
 discard f3006199000 test(pop-kpi): assert decrease path uses custom 
decreaseColor
 discard 38f3a1f7db3 fix(color-picker): address review on legacy Gauge indices, 
Bullet preview legend, PopKPI color tests
 discard 42cb91272b9 test(mcp): regenerate native tool inventory for 
gauge/bullet preview growth
 discard 6ad66f3891f fix(color-picker): align legacy gauge index resolution 
with the renderer
 discard 6c757d0d5a8 fix(color-picker): address sadpandajoe review on #42910
 discard e17f3032696 fix(color-picker): attach theme-colors disable to object 
properties so custom-rules detects it
 discard 5acd7d9cf1a fix(color-picker): satisfy custom-rules, oxfmt, and 
dashboard hydration test
 discard e410ab5b96a fix(explore): address review feedback on color picker 
consolidation
 discard 0576ee44ccc chore(i18n): restore color-picker messages.pot entries 
after rebase
 discard f845990fc22 fix(color-picker): address review feedback on gauge, 
bullet, PoP, and MCP preview
 discard e3ae4a65500 fix(mcp): honor explicit Gauge interval_colors in rebind 
and preview
 discard e430d645e1d fix(bullet): keep range_colors when the ranges control is 
temporarily cleared
 discard 68e6f69a46e fix(color-picker): match Gauge renderer fallbacks in 
legacy interval color migration
 discard 15207a403e2 chore(color-picker): add 'Up to' to messages.pot and apply 
oxfmt
 discard 5e1ea01d079 fix(color-picker): address review feedback on legacy 
scheme migration, i18n label, and theme cast
 discard 55293d20534 fix(color-picker): guard Gauge interval colors against 
mid-edit misalignment
 discard ccd953b65a5 fix(color-picker): fix real jest failures in 
interval-color migration and bullet range control
 discard 220deda628f fix(i18n): drop a messages.pot entry orphaned by an 
earlier description edit
 discard f022947a6a2 fix(color-picker): migrate legacy color fields and guard 
transient input
 discard ac640aceec6 fix(big-number): revert PopKPI arrow color assertion to 
render-only check
 discard b165dd3739e fix(color-picker): address bito review findings on 
range/comparison colors
 discard 9e567d7f4dd fix(bullet): share one range tokenizer, assert the 
down-arrow value
 discard ce84a50959d refactor(bignumber): name the comparison pill tint alpha 
suffix
 discard e37513d30aa test(color-picker): await click before asserting 
reset-button onChange
 discard f03b7857ac6 refactor(color-picker): dedupe comparison color config and 
disable theme pickers on invalid JSON
 discard 8801c8ed227 test(themes): paste JSON into the theme editor instead of 
typing it
 discard 8a2eead7fa9 fix(charts): align finite-value filtering between Bullet 
ranges and range colors
 discard 0fe4a8b8c85 fix(charts): address bot review findings on legacy color 
fallbacks
 discard 7b9c6a3738b feat(themes): add curated color pickers above the theme 
JSON editor
 discard 58f5bc907bc feat(big-number): replace 2-choice comparison scheme with 
color pickers
 discard d855031944a feat(bullet): add optional per-range band colors
 discard ada6e525eaa feat(gauge): replace scheme-index interval colors with a 
color picker
     add 00688c7871b chore(deps-dev): update pinotdb requirement from 
<10.0.0,>=8.0.0 to >=9.2.2,<10.0.0 (#45414)
     add 73737afbfbb chore(deps): bump pyarrow from 25.0.1 to 26.0.0 (#45412)
     add 067d536e216 chore(deps-dev): bump fastmcp from 3.4.7 to 4.1.0 (#45415)
     add b7bfbd365e6 chore(deps-dev): bump oxfmt in /docs (#45565)
     add 2b1046959d2 chore: bump pillow, certifi and geopy pins, tidy two small 
code nits (#45578)
     add 54aaf3ad7d7 fix(mcp): surface missing query_context warning in 
get_chart_data result (#45250)
     add fdb22260e25 fix(number-format): make the adaptive formatters follow 
D3_FORMAT (#45241)
     add c3279f01921 ci: skip jobs that cannot complete on forks and private 
mirrors (#45035)
     add 385844237e6 fix(explore): preserve zero thresholds in contour controls 
(#44966)
     add 3de22376c5c fix(dashboards): update last modified timestamp when 
adding chart to dashboard (#44305) (#44358)
     add 77ebc0e55f3 fix(chart): keep dataset_uuid in exports when the dataset 
is deleted (#44347)
     add 452dea81f23 chore(deps-dev): bump @playwright/test from 1.62.1 to 
1.64.0 in /superset-frontend (#45371)
     add bc83e3e6fdb fix(mcp): propose a matching value when a dashboard filter 
value is rejected (#45547)
     add b129d6a4c12 fix(semantic-layer): narrow Filter|OrFilter unions in test 
helpers for mypy (#45268)
     add ff214bdfb14 fix(sqllab): clip multi-line result values to their row 
(#45487)
     add 62d22e0697c fix(semantic-layer): type the E2E stub filters for the 
full filter union (#45419)
     add 5eaad449f5c fix(import): return 422 instead of 500 for unsafe ZIP 
import bundles (#45440)
     add 676af61b1c9 fix(jinja): keep filters with 0 or false values in 
get_filters and fi… (#45437)
     add 47358be13c1 fix(import): return 422 instead of 500 for non-UTF-8 
members in import bundles (#45424)
     add b4f8ca407a3 chore(deps-dev): bump vite from 8.3.1 to 8.3.5 in 
/superset-websocket in the security group across 1 directory (#45590)
     add 7ff7f9048bf fix(semantic-layer): handle absent fetch-values predicate 
(#45539)
     add 9ce458594fe fix(connection): encode next in the unauthorized login 
redirect (#45477)
     add 2304d1b80f2 fix(datasets): re-check statement count after query 
mutation (#45453)
     add 4bfd874c4cb fix(postprocessing): handle Decimal comparisons with zero 
baselines (#45467)
     add 4e5d0ef8f13 fix(models): keep NULL rows in NOT IN filters without a 
NULL value (#45305)
     add a0ebed9ff1a docs(auth): add Keycloak PKCE, logout and group-mapping 
example (#38092)
     add b3471a1369c fix(a11y): WCAG 1.4.1 — add non-color visual cues to 
status indicators (#39233)
     add 3297c39d94c docs(installation): describe the default image instead of 
lean in Docker Compose responsibilities (#45582)
     add 47300cf4c2f fix(mcp): pass time_grain as a string and keep annotation 
DB error classification (#45484)
     add 030f36a00c3 docs(extensions): move Semantic Layers into its own 
extension point page (#45630)
     add 578d43fef9b fix(listview): prevent table column layout shift on 
content change (#37299)
     add 97a536f37d9 feat(echarts): allow configuring minInterval on bar and 
line chart axes (#43515)
     add dfd84bf3d9e fix(mcp): only serve the browser hello page on the MCP 
endpoint (#45391)
     add 7fceb05c1ce docs(docker): drop redundant packages from custom image 
example, bump version numbers (#44240)
     add aabddf5b3f5 fix(semantic-layers): cap and time-bound bulk semantic 
view creation (#45532)
     add 2c275ed0a5b fix(echarts): restore series color markers in sanitized 
tooltips (#45505)
     add 98fac9104fb fix(datasets): validate metric d3format (#45633)
     add bf18152476a chore: stop forcing .ipynb as a binary attribute (#45602)
     add 87d1abb21e6 chore(frontend): let JEST_MAX_WORKERS cap the Jest worker 
pool locally (#45594)
     add 5cfcee95b4e fix(import): return 400 instead of 500 on malformed JSON 
in import form fields (#45579)
     add 44be9b819dd fix(bigquery): return empty extra metadata instead of 500 
when table is not found (#45634)
     add 0689df740e2 fix(sql-lab): return 400 instead of 500 when stop_query is 
missing client_id (#45521)
     add 3b7001836c7 fix(charts): keep large nullable-integer dimensions exact 
(#45308)
     add 43006c1d054 fix(explore): omit constant Custom SQL dimensions from 
GROUP BY (#45271)
     add be40309811d fix: filter Sunburst temporal segments by bucket and 
invert Hours offset in grained filters (#45598)
     add d595becba71 test(explore): cover column config, conditional 
formatting, and contour controls (#44843)
     add b1c1d41b55f ci(docker): give the CI node image the workspace manifests 
so jobs stop reinstalling (#45606)
     add 8cd2ab1c2ca chore(deps): bump the security group across 2 directories 
with 1 update (#45645)
     add 2f6d51e7ae3 chore(deps-dev): bump vitest from 5.0.3 to 5.0.4 in 
/superset-websocket (#45629)
     add b4e592836a9 chore(deps-dev): bump jsdom from 30.1.2 to 30.1.3 in 
/superset-frontend (#45628)
     add 30df96241ff chore(deps): bump antd from 6.6.5 to 6.6.6 in 
/superset-frontend (#45627)
     add f5eaf7c4f7c chore(deps): bump postcss from 8.5.28 to 8.5.30 in 
/superset-frontend (#45626)
     add c505b8b4916 chore(deps-dev): bump vitest from 5.0.3 to 5.0.4 in 
/superset-embedded-sdk (#45625)
     add dffb06978cd chore(deps-dev): bump jsdom from 30.1.2 to 30.1.3 in 
/superset-embedded-sdk (#45624)
     add 6752eef54c3 chore(deps): bump antd from 6.6.5 to 6.6.6 in /docs 
(#45623)
     add 9b3f66df370 chore(deps): bump zizmorcore/zizmor-action from 0.6.4 to 
0.7.1 (#45621)
     add 09edc1a2c6e chore(deps): bump the codeql group with 3 updates (#45620)
     add 0454c5e940c chore(frontend): upgrade to TypeScript 7 (#45603)
     add 3f4f772efef ci(storybook): use every core for story tests and install 
deps for Chromium only (#45600)
     add 3823c6dc2c5 chore(i18n): sync translation catalogs with messages.pot 
(#45583)
     add 424c34c695d fix(security): stop dataset editorship from authorizing 
new SQL (#45342)
     add 3f77b342cb8 fix(explore): persist aliased column config by real key 
(#44955)
     add 89840862d6f chore(deps-dev): bump vitest from 5.0.4 to 5.0.5 in 
/superset-websocket (#45669)
     add eeb2fc2ff36 chore(deps-dev): bump vitest from 5.0.4 to 5.0.5 in 
/superset-embedded-sdk (#45666)
     add 5877cb58db8 chore(deps): bump swagger-ui-react from 5.33.2 to 5.33.3 
in /docs (#45665)
     add ff50234bf25 chore(deps): bump js-yaml from 5.4.3 to 5.5.0 in /docs 
(#45664)
     add d0897f77c93 chore(deps): bump chromaui/action from 18.12.2 to 18.13.0 
(#45662)
     add d0116153376 feat(dashboard): expose authorized chart display labels 
(#45552)
     add c016883970d fix(dataset): preserve pending metric and column edits 
(#45506)
     add 23f10960f5a feat(plugin-chart-echarts): let users hide legend 
All/Invert buttons (#45172)
     add 6114b81c928 feat(ci): label PRs/issues from UTSC 2026 students (#45656)
     add 26d7b5e5d8d feat(gauge): replace scheme-index interval colors with a 
color picker
     add 6ef50e0b0ee feat(bullet): add optional per-range band colors
     add ea48f157a04 feat(big-number): replace 2-choice comparison scheme with 
color pickers
     add bcf375ede7c feat(themes): add curated color pickers above the theme 
JSON editor
     add 9410eb13487 fix(charts): address bot review findings on legacy color 
fallbacks
     add 6c28a1b3e9d fix(charts): align finite-value filtering between Bullet 
ranges and range colors
     add 76a531262c8 test(themes): paste JSON into the theme editor instead of 
typing it
     add bbe24c8724a refactor(color-picker): dedupe comparison color config and 
disable theme pickers on invalid JSON
     add cb4cd4f0f3c test(color-picker): await click before asserting 
reset-button onChange
     add d28c6d31ae2 refactor(bignumber): name the comparison pill tint alpha 
suffix
     add 4dd49dd1924 fix(bullet): share one range tokenizer, assert the 
down-arrow value
     add ba64882f106 fix(color-picker): address bito review findings on 
range/comparison colors
     add ee94543f7ce fix(big-number): revert PopKPI arrow color assertion to 
render-only check
     add 3775d4f0336 fix(color-picker): migrate legacy color fields and guard 
transient input
     add 5a959162a76 fix(i18n): drop a messages.pot entry orphaned by an 
earlier description edit
     add 22967e88d3d fix(color-picker): fix real jest failures in 
interval-color migration and bullet range control
     add a1bf552a68f fix(color-picker): guard Gauge interval colors against 
mid-edit misalignment
     add ab6459a122d fix(color-picker): address review feedback on legacy 
scheme migration, i18n label, and theme cast
     add e9d16120485 chore(color-picker): add 'Up to' to messages.pot and apply 
oxfmt
     add dbcaaa0c676 fix(color-picker): match Gauge renderer fallbacks in 
legacy interval color migration
     add 0466816a754 fix(bullet): keep range_colors when the ranges control is 
temporarily cleared
     add e17135b2d75 fix(mcp): honor explicit Gauge interval_colors in rebind 
and preview
     add 9fc7c96e736 fix(color-picker): address review feedback on gauge, 
bullet, PoP, and MCP preview
     add c022eefbf1e chore(i18n): restore color-picker messages.pot entries 
after rebase
     add 97ed8d37e73 fix(explore): address review feedback on color picker 
consolidation
     add b7530253e95 fix(color-picker): satisfy custom-rules, oxfmt, and 
dashboard hydration test
     add a20f266dc2d fix(color-picker): attach theme-colors disable to object 
properties so custom-rules detects it
     add 2bcfa4d555c fix(color-picker): address sadpandajoe review on #42910
     add 1bdbb64e5e2 fix(color-picker): align legacy gauge index resolution 
with the renderer
     add 51101b8f35e fix(color-picker): address review on legacy Gauge indices, 
Bullet preview legend, PopKPI color tests
     add 19c6972243c test(pop-kpi): assert decrease path uses custom 
decreaseColor
     add e28c1a81be2 fix(bullet): ignore range_colors when the automatic 
fallback band is used
     add 66b9cc27a44 fix(color-picker): address review feedback on Bullet 
preview, Green preset, Gauge description

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   (a788aeb7161)
            \
             N -- N -- N   refs/heads/feat/color-picker-consolidation 
(66b9cc27a44)

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:
 .gitattributes                                     |    1 -
 .github/utsc2026-students.yml                      |   63 +
 .github/workflows/chromatic.yml                    |    4 +-
 .github/workflows/codeql-analysis.yml              |   23 +-
 .github/workflows/docker.yml                       |   27 +-
 .github/workflows/frontend-bundle-size-nightly.yml |    5 +-
 .github/workflows/github-action-validator.yml      |   16 +-
 .github/workflows/python-nightly-canary.yml        |    3 +
 .../scripts/check-code-scanning-available.sh       |   64 +
 .../scripts/check-code-scanning-available.test.sh  |  118 ++
 .github/workflows/showtime-cleanup.yml             |    3 +
 .github/workflows/superset-docs-verify.yml         |    5 +
 .github/workflows/superset-frontend.yml            |   13 +-
 .github/workflows/superset-translations.yml        |    9 +-
 .github/workflows/testcontainers.yml               |    7 +-
 .github/workflows/utsc2026-labeler.yml             |   57 +
 AGENTS.md                                          |    1 +
 Dockerfile                                         |   28 +-
 UPDATING.md                                        |   39 +-
 docker-compose-light.yml                           |    1 -
 docker-compose.yml                                 |    1 -
 docs/admin_docs/configuration/cache.mdx            |    2 +-
 .../configuration/configuring-superset.mdx         |    2 +
 docs/admin_docs/configuration/mcp-server.mdx       |    7 +-
 docs/admin_docs/installation/docker-builds.mdx     |   43 +-
 .../installation/installation-methods.mdx          |    4 +-
 docs/admin_docs/security/oauth.mdx                 |  318 +++++
 .../contributing/development-setup.md              |    9 +-
 docs/developer_docs/contributing/howtos.md         |    3 +
 .../extensions/contribution-types.md               |  332 +----
 .../semantic-layers.md}                            |  392 +++---
 .../extensions/semantic-execution-context.md       |  102 --
 docs/developer_docs/extensions/semantic-filters.md |   79 --
 docs/developer_docs/semantic-layer-cache-clear.md  |    2 +-
 docs/developer_docs/sidebars.js                    |    1 +
 docs/docs/using-superset/embedding.mdx             |   36 +
 docs/docs/using-superset/exploring-data.mdx        |   29 +
 .../using-superset/semantic-layer-connections.mdx  |   11 +
 .../using-superset/semantic-member-selections.mdx  |    2 +-
 .../docs/using-superset/using-ai-with-superset.mdx |   20 +
 docs/package.json                                  |    8 +-
 docs/sidebarTutorials.js                           |    2 +-
 docs/static/resources/openapi.json                 |   14 +
 docs/yarn.lock                                     |  938 ++++++-------
 pyproject.toml                                     |    8 +-
 requirements/base.in                               |    2 +-
 requirements/base.txt                              |   10 +-
 requirements/development.txt                       |   48 +-
 superset-embedded-sdk/package-lock.json            |  278 ++--
 superset-embedded-sdk/package.json                 |    4 +-
 superset-frontend/.storybook/main.mjs              |    5 +-
 .../.storybook/playwright.storybook-ci.config.ts   |    4 +
 superset-frontend/jest.config.js                   |    4 +
 superset-frontend/package-lock.json                |  644 ++++++---
 superset-frontend/package.json                     |   17 +-
 .../packages/superset-core/package.json            |    2 +-
 .../src/utils/headerGroups.test.ts                 |  182 ++-
 .../src/utils/headerGroups.ts                      |   68 +-
 .../src/components/Modal/Modal.tsx                 |   17 +-
 .../src/components/TableCollection/utils.tsx       |    3 +-
 .../src/connection/SupersetClientClass.ts          |    4 +-
 .../src/number-format/NumberFormatterRegistry.ts   |   28 +-
 .../factories/createSmartNumberFormatter.ts        |   56 +-
 .../superset-ui-core/src/query/types/Datasource.ts |    1 +
 .../packages/superset-ui-core/src/utils/tooltip.ts |   31 +
 .../test/chart/models/ChartProps.test.ts           |   15 +
 .../test/connection/SupersetClientClass.test.ts    |    5 +-
 .../number-format/NumberFormatterRegistry.test.ts  |   18 +
 .../factories/createSmartNumberFormatter.test.ts   |   14 +
 .../superset-ui-core/test/utils/tooltip.test.ts    |   34 +
 .../playwright/helpers/api/assertions.ts           |   16 +-
 .../playwright/tests/chart/chart-list.spec.ts      |    4 +-
 .../tests/dashboard/dashboard-list.spec.ts         |    4 +-
 .../playwright/tests/dataset/dataset-list.spec.ts  |    4 +-
 .../src/controlPanel.tsx                           |    5 +
 .../src/transformProps.ts                          |    9 +-
 .../src/utils/isEqualColumns.ts                    |    8 +
 .../test/controlPanel.test.tsx                     |   34 +
 .../test/transformProps.test.ts                    |  159 +++
 .../BigNumberPeriodOverPeriod/transformProps.ts    |    6 +-
 .../src/BigNumber/BigNumberTotal/transformProps.ts |    6 +-
 .../BigNumberWithTrendline/transformProps.ts       |    6 +-
 .../plugin-chart-echarts/src/BigNumber/utils.ts    |   10 +-
 .../src/Bubble/transformProps.ts                   |    3 +
 .../src/Butterfly/transformProps.ts                |    3 +
 .../src/Candlestick/transformProps.ts              |    3 +
 .../src/Funnel/controlPanel.tsx                    |   13 +-
 .../src/Funnel/transformProps.ts                   |    3 +
 .../src/Gantt/transformProps.ts                    |    3 +
 .../src/Gauge/controlPanel.tsx                     |    2 +-
 .../src/Graph/transformProps.ts                    |    3 +
 .../src/Histogram/controlPanel.tsx                 |    7 +-
 .../src/Histogram/transformProps.ts                |   10 +-
 .../plugin-chart-echarts/src/Histogram/types.ts    |    1 +
 .../src/MixedTimeseries/transformProps.ts          |    3 +
 .../plugin-chart-echarts/src/Pie/transformProps.ts |    3 +
 .../src/Radar/controlPanel.tsx                     |   10 +-
 .../src/Radar/transformProps.ts                    |    3 +
 .../src/Sunburst/EchartsSunburst.tsx               |   99 +-
 .../src/Sunburst/transformProps.ts                 |   36 +-
 .../plugin-chart-echarts/src/Sunburst/types.ts     |    4 +
 .../plugin-chart-echarts/src/Sunburst/utils.ts     |  190 +++
 .../src/Timeseries/EchartsTimeseries.test.tsx      |    1 +
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |   28 +
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |   19 +
 .../src/Timeseries/constants.ts                    |    1 +
 .../src/Timeseries/transformProps.ts               |   86 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    2 +
 .../plugins/plugin-chart-echarts/src/constants.ts  |    1 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  |   55 +-
 .../plugins/plugin-chart-echarts/src/types.ts      |    3 +-
 .../plugin-chart-echarts/src/utils/forecast.ts     |   20 +-
 .../plugin-chart-echarts/src/utils/series.ts       |    5 +-
 .../src/utils/xAxisDrillByFilter.ts                |   37 +-
 .../test/BigNumber/chartDisplayLabels.test.ts      |  196 +++
 .../test/Gantt/transformProps.test.ts              |    7 +-
 .../test/Histogram/buildQuery.test.ts              |    1 +
 .../test/Histogram/transformProps.test.ts          |   12 +
 .../test/MixedTimeseries/transformProps.test.ts    |    9 +-
 .../test/Sunburst/EchartsSunburst.test.tsx         |  474 +++++++
 .../test/Sunburst/transformProps.test.ts           |  149 ++-
 .../test/Sunburst/utils.test.ts                    |   52 +
 .../test/Timeseries/Bar/controlPanel.test.ts       |   28 +
 .../test/Timeseries/EchartsTimeseries.test.tsx     |   40 +
 .../test/Timeseries/Line/controlPanel.test.ts      |   42 +
 .../test/Timeseries/helpers.ts                     |    1 +
 .../test/Timeseries/transformProps.test.ts         |  205 ++-
 .../test/utils/forecast.test.ts                    |   63 +-
 .../plugin-chart-echarts/test/utils/series.test.ts |   32 +-
 .../plugin-chart-table/src/controlPanel.tsx        |    5 +
 .../plugin-chart-table/src/transformProps.ts       |    9 +-
 .../plugin-chart-table/src/utils/isEqualColumns.ts |    8 +
 .../plugin-chart-table/test/TableChart.test.tsx    |  112 ++
 .../plugin-chart-table/test/controlPanel.test.tsx  |   34 +
 .../test/transformProps.test.tsx                   |   58 +
 .../src/layers/Contour/Contour.test.ts             |   56 +
 .../src/layers/Contour/Contour.tsx                 |    2 +-
 .../components/Chart/ChartErrorMessage.test.tsx    |    2 +-
 .../src/components/Chart/ChartErrorMessage.tsx     |    3 +-
 .../Chart/DrillBy/DrillByTemporalFilters.test.tsx  |  256 ++++
 .../DatasourceModal.pendingEdits.test.tsx          |  196 +++
 .../CollectionTable.debounce.test.tsx              |  287 ++++
 .../components/CollectionTable/index.tsx           |  231 ++--
 .../src/components/Datasource/types.ts             |   10 -
 .../components/ErrorMessage/ErrorAlert.test.tsx    |   41 +
 .../src/components/GridTable/GridTable.test.tsx    |   21 +
 .../src/components/GridTable/index.tsx             |   10 +-
 .../components/gridComponents/Chart/Chart.test.tsx |   55 +
 .../components/gridComponents/Chart/Chart.tsx      |    7 +-
 .../nativeFilters/FilterBar/utils.test.ts          |   35 +
 .../components/nativeFilters/FilterBar/utils.ts    |    5 +-
 superset-frontend/src/dashboard/types.ts           |    1 +
 .../dashboard/util/withChartDisplayLabels.test.ts  |  153 +++
 .../src/dashboard/util/withChartDisplayLabels.ts   |   61 +
 .../components/controls/ColorPickerControl.tsx     |    6 +
 .../ColorSchemeControl/ColorSchemeLabel.test.tsx   |   14 +
 .../ColorSchemeControl/ColorSchemeLabel.tsx        |    3 +
 .../ColumnConfigControl.popover.test.tsx           |  293 +++++
 .../ColumnConfigControl.test.tsx                   |   75 ++
 .../ColumnConfigControl/ColumnConfigControl.tsx    |   20 +-
 .../ControlForm/ControlForm.test.tsx               |  158 +++
 .../controls/ColumnConfigControl/types.ts          |    1 +
 .../components/controls/ComparisonRangeLabel.tsx   |   66 +-
 .../ConditionalFormattingControl.test.tsx          |  297 ++++-
 .../ContourControl/ContourControl.test.tsx         |  128 ++
 .../controls/ContourControl/ContourOption.test.tsx |  111 ++
 .../controls/ContourControl/ContourOption.tsx      |    8 +-
 .../ContourControl/ContourPopoverControl.test.tsx  |  277 ++++
 .../ContourControl/ContourPopoverControl.tsx       |   17 +-
 .../ContourControl/ContourPopoverTrigger.test.tsx  |  133 ++
 .../controls/ContourControl/index.test.tsx         |  212 +++
 .../alerts/components/AlertStatusIcon.test.tsx     |   14 +
 .../features/alerts/components/AlertStatusIcon.tsx |    1 +
 superset-frontend/src/pages/ChartList/index.tsx    |    9 +-
 .../src/pages/DashboardList/index.tsx              |    3 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |   18 +-
 superset-frontend/webpack.config.js                |   43 +-
 superset-websocket/package-lock.json               |  410 +++---
 superset-websocket/package.json                    |    4 +-
 superset/charts/api.py                             |   25 +-
 superset/commands/chart/create.py                  |    4 +
 superset/commands/chart/export.py                  |   34 +-
 superset/commands/chart/update.py                  |   19 +
 superset/commands/chart/utils.py                   |   39 +
 superset/commands/dashboard/export.py              |   51 +-
 superset/commands/dataset/create.py                |    4 +-
 superset/commands/explore/get.py                   |   14 +-
 superset/commands/export/assets.py                 |   75 +-
 superset/commands/export/models.py                 |   18 +-
 superset/commands/importers/v1/utils.py            |   24 +-
 superset/commands/semantic_layer/create.py         |   11 +
 superset/common/utils/dataframe_utils.py           |   64 +
 superset/config.py                                 |   13 +
 superset/connectors/sqla/models.py                 |  242 +++-
 superset/connectors/sqla/utils.py                  |   55 +-
 superset/daos/dashboard.py                         |   18 +-
 superset/dashboards/api.py                         |   51 +-
 superset/dashboards/schemas.py                     |   13 +
 superset/databases/api.py                          |   32 +-
 superset/datasets/api.py                           |   26 +-
 superset/datasets/schemas.py                       |   17 +-
 superset/db_engine_specs/bigquery.py               |   15 +-
 superset/explore/utils.py                          |    6 +-
 superset/importexport/api.py                       |   38 +-
 superset/jinja_context.py                          |    4 +-
 superset/mcp_service/chart/chart_helpers.py        |   23 +
 superset/mcp_service/chart/chart_utils.py          |   16 +-
 superset/mcp_service/chart/compile.py              |  176 ++-
 superset/mcp_service/chart/preview_utils.py        |    5 +-
 superset/mcp_service/chart/schemas.py              |    7 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |   98 +-
 superset/mcp_service/dashboard/layout_placement.py |   21 +-
 .../dashboard/tool/apply_dashboard_filters.py      |   34 +-
 superset/mcp_service/dashboard_scope_sql.py        |   18 +-
 superset/mcp_service/dataset/schemas.py            |   21 +
 superset/mcp_service/jwt_verifier.py               |   28 +-
 superset/models/core.py                            |    5 +-
 superset/models/dashboard.py                       |  225 +++-
 superset/models/helpers.py                         |  195 ++-
 superset/queries/api.py                            |    3 +
 superset/queries/saved_queries/api.py              |   26 +-
 superset/queries/schemas.py                        |    2 +-
 superset/security/manager.py                       |   75 +-
 superset/semantic_layers/api.py                    |   63 +-
 superset/semantic_layers/models.py                 |    3 +
 superset/sql/parse.py                              |   27 +
 superset/translations/ar/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/ca/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/cs/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/de/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/en/LC_MESSAGES/messages.po   |  166 ++-
 superset/translations/es/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/fa/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/fi/LC_MESSAGES/messages.po   |  176 ++-
 superset/translations/fr/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/it/LC_MESSAGES/messages.po   |  173 ++-
 superset/translations/ja/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/ko/LC_MESSAGES/messages.po   |  175 ++-
 superset/translations/lv/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/messages.pot                 |   98 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/nl/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/pl/LC_MESSAGES/messages.po   |  175 ++-
 superset/translations/pt/LC_MESSAGES/messages.po   |  173 ++-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  170 ++-
 superset/translations/ro/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/ru/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/sk/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/sl/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/sr/LC_MESSAGES/messages.po   |  172 ++-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |  172 ++-
 superset/translations/ta/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/th/LC_MESSAGES/messages.po   |  176 ++-
 superset/translations/tr/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/uk/LC_MESSAGES/messages.po   |  170 ++-
 superset/translations/zh/LC_MESSAGES/messages.po   |  170 ++-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  170 ++-
 superset/utils/excel.py                            |   41 +-
 superset/utils/number_format.py                    |   94 ++
 superset/utils/pandas_postprocessing/compare.py    |   14 +-
 superset/views/base_api.py                         |   24 +
 .../src/superset_e2e_semantic_stub/__init__.py     |   12 +-
 tests/integration_tests/dashboards/api_tests.py    |  617 ++++++++-
 tests/integration_tests/datasets/api_tests.py      |   45 +
 tests/integration_tests/fixtures/public_role.py    |   47 +-
 tests/integration_tests/queries/api_tests.py       |   30 +
 .../security/public_role_tests.py                  |   93 ++
 tests/unit_tests/charts/test_client_processing.py  |   41 +
 .../charts/test_exact_integer_chart_data.py        |  824 ++++++++++++
 tests/unit_tests/commands/chart/create_test.py     |  252 +++-
 tests/unit_tests/commands/chart/export_test.py     |  576 ++++++++
 tests/unit_tests/commands/chart/update_test.py     |  266 +++-
 tests/unit_tests/commands/dashboard/export_test.py |    8 +-
 tests/unit_tests/commands/dataset/test_create.py   |   11 +
 .../explore/test_get_query_authorship_bypass.py    |  100 +-
 .../unit_tests/commands/importers/v1/utils_test.py |   92 +-
 .../commands/semantic_layer/create_test.py         |   53 +-
 tests/unit_tests/common/test_dataframe_utils.py    |   53 +
 .../unit_tests/common/test_query_cache_manager.py  |   38 +
 .../common/test_query_context_processor.py         |   50 +
 tests/unit_tests/connectors/sqla/utils_test.py     |   50 +
 tests/unit_tests/dashboards/datasets_test.py       | 1381 +++++++++++++++++++-
 tests/unit_tests/databases/api_test.py             |   44 +
 tests/unit_tests/datasets/schema_tests.py          |   80 ++
 tests/unit_tests/datasource/test_query_api.py      |   24 +
 tests/unit_tests/db_engine_specs/test_bigquery.py  |   70 +
 tests/unit_tests/explore/utils_test.py             |   39 +
 tests/unit_tests/importexport/api_test.py          |   99 +-
 tests/unit_tests/jinja_context_test.py             |   74 ++
 .../mcp_service/chart/test_bullet_chart.py         |   20 +
 .../mcp_service/chart/test_bullet_tool_paths.py    |    3 +
 .../mcp_service/chart/test_chart_helpers.py        |   42 +
 tests/unit_tests/mcp_service/chart/test_compile.py |  464 +++++++
 .../test_review_query_and_preview_regressions.py   |    7 +-
 .../chart/test_time_grain_generic_axes.py          |  171 +++
 .../mcp_service/chart/tool/test_get_chart_data.py  |  365 ++++++
 .../dashboard/tool/test_apply_dashboard_filters.py |   67 +-
 .../mcp_service/native_tool_inventory.json         |   20 +-
 .../mcp_service/test_browser_hello_middleware.py   |  126 ++
 .../mcp_service/test_dashboard_scope_sql.py        |   51 +
 .../mcp_service/test_native_tool_surface.py        |   10 +-
 .../unit_tests/mcp_service/test_tool_inventory.py  |   21 +-
 .../mcp_service/test_validation_contract.py        |   17 +-
 .../models/groupby_literal_column_test.py          |  288 ++++
 tests/unit_tests/models/helpers_test.py            |  171 +++
 .../models/normalize_df_large_integer_test.py      |  307 +++++
 .../models/test_hours_offset_bound_truncation.py   |  480 ++++++-
 .../pandas_postprocessing/test_compare.py          |  109 ++
 .../security/test_dashboard_chart_labels.py        |  207 +++
 tests/unit_tests/semantic_layers/api_test.py       |  262 +++-
 .../semantic_layers/cache_policy_test.py           |    3 +-
 .../semantic_layers/e2e_stub_extension_test.py     |   42 +-
 .../semantic_layers/import_export_test.py          |    6 +-
 .../semantic_layers/metric_filter_test.py          |   72 +-
 tests/unit_tests/sql/parse_tests.py                |   44 +
 tests/unit_tests/subjects/test_raise_for_access.py |    4 +
 tests/unit_tests/utils/csv_tests.py                |   14 +
 tests/unit_tests/utils/excel_tests.py              |   38 +
 tests/unit_tests/utils/number_format_test.py       |   31 +
 .../unit_tests/views/test_parse_json_form_field.py |   54 +
 320 files changed, 23482 insertions(+), 3049 deletions(-)
 create mode 100644 .github/utsc2026-students.yml
 create mode 100755 .github/workflows/scripts/check-code-scanning-available.sh
 create mode 100755 
.github/workflows/scripts/check-code-scanning-available.test.sh
 create mode 100644 .github/workflows/utsc2026-labeler.yml
 create mode 100644 docs/admin_docs/security/oauth.mdx
 copy docs/developer_docs/extensions/{contribution-types.md => 
extension-points/semantic-layers.md} (65%)
 delete mode 100644 docs/developer_docs/extensions/semantic-execution-context.md
 delete mode 100644 docs/developer_docs/extensions/semantic-filters.md
 create mode 100644 
superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/utils.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/chartDisplayLabels.test.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/EchartsSunburst.test.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/utils.test.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-table/test/transformProps.test.tsx
 create mode 100644 
superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.test.ts
 create mode 100644 
superset-frontend/src/components/Chart/DrillBy/DrillByTemporalFilters.test.tsx
 create mode 100644 
superset-frontend/src/components/Datasource/DatasourceModal/DatasourceModal.pendingEdits.test.tsx
 create mode 100644 
superset-frontend/src/components/Datasource/components/CollectionTable/CollectionTable.debounce.test.tsx
 create mode 100644 
superset-frontend/src/dashboard/util/withChartDisplayLabels.test.ts
 create mode 100644 
superset-frontend/src/dashboard/util/withChartDisplayLabels.ts
 create mode 100644 
superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.popover.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ContourControl/ContourControl.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ContourControl/ContourOption.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.test.tsx
 create mode 100644 
superset-frontend/src/explore/components/controls/ContourControl/index.test.tsx
 create mode 100644 tests/integration_tests/security/public_role_tests.py
 create mode 100644 tests/unit_tests/charts/test_exact_integer_chart_data.py
 create mode 100644 tests/unit_tests/commands/chart/export_test.py
 create mode 100644 
tests/unit_tests/mcp_service/test_browser_hello_middleware.py
 create mode 100644 tests/unit_tests/models/groupby_literal_column_test.py
 create mode 100644 tests/unit_tests/models/normalize_df_large_integer_test.py
 create mode 100644 tests/unit_tests/security/test_dashboard_chart_labels.py
 create mode 100644 tests/unit_tests/views/test_parse_json_form_field.py

Reply via email to