Claude
6218dcbbb3
feat(dashboard): ComponentHeaderControls — Phase 2
...
Shared vertical-dots menu component for dashboard grid components.
Generic `items: ComponentMenuItem[]` API — each component (Chart,
Markdown, Row, Column, Tabs) plugs in its own list; the visual chrome
(dots icon trigger, dropdown surface, accessible label, divider
handling, danger/disabled styling) lives in this one component.
Built on `MenuDotsDropdown` from `@superset-ui/core/components` so the
trigger styling matches Chart's existing `SliceHeaderControls` — Phase
4's per-component PRs will converge `SliceHeaderControls` and the
other menu patterns (Markdown's `MarkdownModeDropdown`, Row/Col's
gear-icon + `WithPopoverMenu`) onto this same component.
Phase 2 lands the component + tests only. The actual per-component
menu conversions are user-visible UX changes (e.g. Markdown loses its
toggle-style Edit/Preview switcher and gains a dots menu) and ship in
Phase 4 alongside theme wiring per component, so each can be reviewed
in isolation rather than as a sweeping refactor.
4 passing tests: empty items renders nothing, trigger renders, onClick
fires from menu selection, disabled items don't fire onClick.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 10:58:17 -07:00
Claude
a1a3454b5c
feat(dashboard): per-component theme provider — Phase 1 (Chart PoC)
...
Adds the skeleton for granular (per-component) theming on dashboard grid
components, with the inheritance chain:
Instance theme -> Dashboard theme -> Tab theme
-> Row/Col theme -> Chart/Markdown theme
This commit lands Phase 1 from the SIP (`SIP.md` at repo root): the
storage shape and the resolver, wired into `ChartHolder` as the
proof-of-concept call site. No UI yet — `themeId` must be set via Redux
devtools / position_json hand-edit to verify visually. Phase 2 will
introduce the `ComponentHeaderControls` menu and Phase 3 the
`ThemeSelectorModal` that drives this from a real UI.
Surface:
- `LayoutItemMeta.themeId?: number | null` — optional CRUD theme id
stored per-component in `position_json` meta (no schema migration; the
meta map is already open-ended). `null` and `undefined` both mean
"inherit from parent".
- `pickEffectiveThemeId(layoutId, layout)` — pure resolver. Walks
`parents` up the layout map from the given node until it finds a
numeric `themeId` or hits `DASHBOARD_ROOT_ID`. Hop-capped at 32 to
defend against malformed parents chains.
- `useEffectiveThemeId(layoutId)` — Redux hook variant.
- `<ComponentThemeProvider layoutId={...}>` — wraps children in the
resolved theme's `SupersetThemeProvider`. Lazy-fetches via the
existing `ThemeController.createDashboardThemeProvider`, which already
caches by id so N components sharing one theme = 1 fetch. Pass-through
when no ancestor sets a `themeId`.
- `ChartHolder.tsx` — wraps the existing `<AntdThemeProvider>` (which is
a popup-container shim for fullscreen mode, not a token provider) so
per-component tokens are set before antd's ConfigProvider for popup
targeting.
Tests: 8 unit cases for `pickEffectiveThemeId` covering own / inherited /
null-skip / no-ancestor / root-stop / malformed-parents / other-meta /
missing-id.
Closes the spirit of the closed PR #36749 (which became unrebasable
after .jsx -> .tsx + React 18 + theme controller churn).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 10:28:03 -07:00
Claude
9732c130d2
docs(sip): draft granular component theming SIP
...
Draft Superset Improvement Proposal for component-level theming on
dashboard grid components (Charts, Markdown, Row, Column, Tabs) with
inheritance Instance -> Dashboard -> Tab -> Row/Col -> Chart.
Supersedes the closed PR #36749 (became unrebasable after .jsx -> .tsx
conversion, React 18 upgrade, and theme-controller churn since 2025-12).
This is a living document — kept in lockstep with the work on
`feat/granular-theming-v2`. Each phase updates the status / shortcomings
/ test-plan sections.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 10:22:15 -07:00
dependabot[bot]
85c4411041
chore(deps-dev): bump @babel/plugin-transform-modules-systemjs from 7.25.0 to 7.29.4 in /superset-embedded-sdk ( #39983 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 10:10:38 -07:00
Mayank Aggarwal
a50de459ae
fix(dashboard): restore spacing for charts inside Tabs layout ( #38729 )
2026-05-13 09:44:05 -07:00
dependabot[bot]
6216e57490
chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend ( #39698 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 09:35:42 -07:00
dependabot[bot]
cdddb99e9a
chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend ( #39880 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:34:42 -07:00
dependabot[bot]
803fed28b8
chore(deps): update react requirement from ^19.2.5 to ^19.2.6 in /superset-frontend/plugins/legacy-plugin-chart-chord ( #39929 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 09:34:26 -07:00
dependabot[bot]
8074ae2e38
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /superset-frontend/cypress-base ( #39974 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:34:11 -07:00
dependabot[bot]
577085eece
chore(deps-dev): bump fast-uri from 3.0.1 to 3.1.2 in /superset-embedded-sdk ( #39978 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:33:57 -07:00
dependabot[bot]
5d40d8aeac
chore(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0 ( #40016 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:33:14 -07:00
dependabot[bot]
b4cb780e74
chore(deps): update ace-builds requirement from ^1.43.6 to ^1.44.0 in /superset-frontend/packages/superset-ui-core ( #40017 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 09:32:35 -07:00
dependabot[bot]
aebc6fbf34
chore(deps-dev): bump @types/node from 25.6.0 to 25.7.0 in /superset-websocket ( #40052 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:32:19 -07:00
dependabot[bot]
9e749da93c
chore(deps): bump ws from 8.20.0 to 8.20.1 in /superset-websocket ( #40085 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:32:05 -07:00
dependabot[bot]
2c7e418d7b
chore(deps): bump @ant-design/icons from 6.2.2 to 6.2.3 in /docs ( #40086 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:31:51 -07:00
dependabot[bot]
6a1305fe53
chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts ( #40091 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:12:39 -07:00
Amin Ghadersohi
726d83d758
fix(mcp): remove stale created_by_fk filter references from MCP privacy layer ( #39955 )
2026-05-13 11:27:10 -04:00
jesperct
6cebba49ca
fix(AlertReportModal): TypeError when pasting text into the Alerts content form search field ( #39298 )
...
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-05-13 17:38:55 +03:00
Luiz Otavio
940779ad5f
feat(event-log): add event logging for embedded Superset ( #40083 )
2026-05-13 09:59:48 -03:00
Richard Fogaca Nienkotter
c59ab8bffd
feat(mcp): add data boundary instruction to harden against prompt injection ( #40080 )
2026-05-13 09:40:44 -03:00
Evan Rusackas
e2a8a88d36
docs: Update documentation link for ENABLE_SUPERSET_META_DB ( #40076 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-12 20:39:39 -07:00
dependabot[bot]
0d9ecb7664
chore(deps-dev): update @types/node requirement from ^25.6.0 to ^25.7.0 in /superset-frontend/packages/superset-ui-core ( #40059 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 20:34:10 -07:00
dependabot[bot]
1d220f7172
chore(deps-dev): update fs-extra requirement from ^11.3.4 to ^11.3.5 in /superset-frontend/packages/generator-superset ( #39930 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 20:33:47 -07:00
Ville Brofeldt
af4dc3a9aa
fix(re-encrypt): handle non-id PKs and make command idempotent ( #40079 )
2026-05-12 17:59:52 -07:00
Richard Fogaca Nienkotter
fa06989ed7
fix(mcp): return requested update chart previews ( #40077 )
2026-05-12 21:23:49 -03:00
dependabot[bot]
4d0cc1d7a6
chore(deps): bump zod from 4.4.1 to 4.4.3 in /superset-frontend ( #39904 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 17:23:14 -07:00
dependabot[bot]
d8b2c5872b
chore(deps-dev): bump @swc/core from 1.15.32 to 1.15.33 in /superset-frontend ( #39935 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 17:22:58 -07:00
Elizabeth Thompson
86ba63b072
fix(dashboard): prevent duplicate subdirectory prefix when toggling fullscreen ( #39534 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 16:51:37 -07:00
dependabot[bot]
4c14e16e58
chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.20.11 to 7.29.4 in /superset-frontend/cypress-base ( #39982 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:25:28 -07:00
dependabot[bot]
fe22e06011
chore(deps): bump mermaid from 11.10.0 to 11.15.0 in /docs ( #40038 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:25:09 -07:00
dependabot[bot]
9160da0d27
chore(deps-dev): bump yeoman-test from 11.3.1 to 11.5.2 in /superset-frontend ( #40058 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:24:55 -07:00
dependabot[bot]
43a89f8710
chore(deps-dev): bump terser-webpack-plugin from 5.5.0 to 5.6.0 in /superset-frontend ( #40061 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:24:37 -07:00
Varun Chawla
a77fec68d4
fix(drill-detail): make page-size selector functionally adjustable ( #37975 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-05-12 13:39:41 -07:00
Abdul Rehman
e94465208f
fix(bar-chart): cap bar width so a single data point doesn't stretch across the chart ( #39588 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-12 13:24:46 -07:00
Abdul Rehman
f2eee4ef46
fix(frontend): prevent LanguagePicker crash when locale is missing from LANGUAGES config ( #39585 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-12 13:22:36 -07:00
yeaight
7445105735
fix(explore): explain disabled chart overwrite option ( #39796 )
2026-05-12 12:53:59 -07:00
innovark
2392c8e624
fix(Select): fix Russian translations for Select ( #35751 )
...
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com >
2026-05-12 13:48:42 -04:00
Arpit Jain
39ad6b200f
docs(update): fix typos in UPDATING.md ( #40068 )
2026-05-12 23:40:22 +07:00
Igor Khrol
3363b48180
fix(spark): register Spark SQLAlchemy dialect so spark:// URIs resolve to SparkEngineSpec ( #38299 )
...
Co-authored-by: Joe Li <joe@preset.io >
2026-05-12 12:33:17 -04:00
dependabot[bot]
c9fb1bc10f
chore(deps-dev): bump @typescript-eslint/parser from 8.59.2 to 8.59.3 in /superset-frontend ( #40057 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: hainenber <dotronghai96@gmail.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com >
2026-05-12 22:27:58 +07:00
Evan Rusackas
658907a0a6
fix(gha): use sound condition gating for latest-tag step ( #40035 )
...
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-12 22:27:26 +07:00
Đỗ Trọng Hải
4a79896bb2
chore(build): replace replaceable jest-mock-console with native Jest spies ( #38643 )
...
Signed-off-by: hainenber <dotronghai96@gmail.com >
2026-05-12 21:32:08 +07:00
Đỗ Trọng Hải
b0c5b061c5
fix(sqllab): display horizontal scrollbar in data preview modal ( #39799 )
...
Signed-off-by: hainenber <dotronghai96@gmail.com >
2026-05-12 21:30:54 +07:00
Kasia
c394405fc1
fix(explore): restore spacing between tabs and content in control popovers ( #40023 )
2026-05-12 14:30:41 +02:00
Kasia
d2ae5fb275
fix(ux): remove CSS-forced uppercase from button labels ( #40049 )
2026-05-12 14:28:39 +02:00
Amin Ghadersohi
460992d89b
fix(mcp): improve not-found errors to suggest corresponding list_* tools ( #39919 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-12 02:38:10 -04:00
Amin Ghadersohi
85935b0b88
fix(mcp): handle SSL connection drop during pre-call session teardown ( #39917 )
2026-05-12 02:32:14 -04:00
innovark
fa168fcc8a
fix(Label): use correct color for label component ( #38707 )
2026-05-11 21:40:31 -07:00
Andy
a6ad0bf169
fix(re-encrypt-secrets): use db.Model.metadata to discover encrypted … ( #39390 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 21:16:41 -07:00
Abdul Rehman
fed29b3017
fix(deploy): prevent double-prefix of logo URL in subdirectory deployments ( #39472 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-11 21:13:26 -07:00