Amin Ghadersohi
06276e76c5
fix(mcp): resolve ruff E501 and formatting issues to pass pre-commit
...
- Split long string literal in schema_validator.py line 202 (E501, 94 > 88 chars)
- Apply ruff format auto-fixes to big_number.py, handlebars.py, and test_get_chart_data.py
2026-05-20 21:20:08 +00:00
Amin Ghadersohi
eb2e6bd48e
refactor(mcp): complete plugin protocol — registry bootstrap, mypy fixes, test repairs
...
On top of the dead-code elimination in the previous commit:
- Add lazy _ensure_plugins_loaded() bootstrap to ChartTypeRegistry so the
registry is populated even without importing app.py (fixes isolated test runs)
- Delegate _RegistryProxy methods to module-level functions so bootstrap runs
- Guard register() against empty chart_type strings
- Add generate_name + resolve_viz_type to ChartTypePlugin Protocol and
BaseChartPlugin; delegate generate_chart_name/_resolve_viz_type in
chart_utils to the plugin registry
- Add _with_context static helper to BaseChartPlugin (shared by all plugins)
- Fix stale 'five methods' → 'eight methods' docstring in plugin.py
- Add TypeVar _C to normalize_column_names so mypy infers correct return type
- Fix broken tests: update _pre_validate_big_number_config → _pre_validate_chart_type,
remove deleted TestNormalizeXYConfig/TestNormalizeTableConfig classes,
update runtime validator tests for removed _validate_format_compatibility /
_validate_cardinality methods, add x is not None narrowing guards
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 21:20:08 +00:00
Evan Rusackas
4a9aecda4a
fix(dashboard-import): remap chartsInScope on import ( #26338 ) ( #40140 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
Co-authored-by: Claude <claude@anthropic.com >
2026-05-20 13:41:14 -07:00
Evan Rusackas
46b2d7d7a9
test(dashboard-import): pin native filter scope rootPath preservation ( #19944 ) ( #40135 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 12:25:34 -07:00
Evan Rusackas
f8600471fa
test(datasets): regression test for Jinja not rendered on sync columns ( #25839 ) ( #40224 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:46:36 -07:00
Evan Rusackas
aa8255c55c
test(reports): regression for alerts CSV missing chart time filters ( #25538 ) ( #40232 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:42:52 -07:00
Evan Rusackas
10b7bfc8c1
test(helpers): regression for humanize locale activation ( #28331 ) ( #40233 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:42:17 -07:00
Shaitan
69adecd6a3
fix(reports): enforce server-side recipient on chart/dashboard report subscriptions ( #38847 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 10:36:42 -07:00
Evan Rusackas
c39a47cbac
test(sql-parser): pin WITH+UNION as non-mutating across dialects ( #25659 ) ( #40138 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 10:08:21 -07:00
Alexandru Soare
fb276b08dd
fix(mcp): Skip misleading trend analysis for categorical ASCII charts ( #39761 )
2026-05-20 18:04:21 +03:00
Alexandru Soare
6e8b3bf976
fix(mcp): raise right error ( #39964 )
2026-05-20 14:32:45 +03:00
Alexandru Soare
55024e8f4d
feat(mcp): Add mcp_call_id to tool responses for server log correlation ( #39776 )
2026-05-20 14:30:22 +03:00
Alexandru Soare
b98bd2a07a
fix(mcp): Block destructive DDL (DROP, TRUNCATE, ALTER) in execute_sql ( #39621 )
2026-05-20 14:29:15 +03:00
Alexandru Soare
0a3a35018c
fix(mcp): changed_on_humanized null in write tool responses (generate_dashboard, generate_chart) ( #39488 )
2026-05-20 14:08:51 +03:00
Evan Rusackas
b5ad4a7a07
test(sql-parser): pin TimescaleDB hyperfunctions parse on postgresql ( #32028 ) ( #40142 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-19 19:53:33 -07:00
Evan Rusackas
9bfa0642a1
test(sql-parser): pin quoted identifiers with spaces are not subqueries ( #32541 , #32684 ) ( #40143 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-18 14:21:59 -07:00
Elizabeth Thompson
ef0efb7493
fix(mcp): exclude self-referencing filter columns from get_schema output ( #39826 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
2026-05-18 13:51:25 -07:00
Vitor Avila
d40a5cad5d
fix(OAuth2): Re-query the OAuth2 token to avoid stale reference ( #40071 )
2026-05-18 13:07:54 -03:00
SkinnyPigeon
70419e9d8f
feat: Allow specific mcp tools to be disabled ( #39835 )
2026-05-18 07:22:02 -07:00
Evan Rusackas
34281f54a6
test(prophet): pin yhat_lower can be negative for negative series ( #21734 ) ( #40141 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-18 07:21:04 -07:00
Mafi
b66c104fde
fix(sqllab): execute prequeries on streaming connection to fix PostgreSQL CSV export ( #40194 )
...
Co-authored-by: Matt Fitzgerald <matt.fitzgerald@preset.io >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-18 09:43:06 -04:00
Evan Rusackas
3a9c54a672
fix(date_parser): suppress noisy parsedatetime DEBUG logs ( #33365 ) ( #40144 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-17 19:58:08 -07:00
Evan Rusackas
e6755d508d
fix(rls): align view permission name with REST API canonical name ( #33744 ) ( #40145 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-17 19:57:57 -07:00
Elizabeth Thompson
8d2b655c22
fix(reports): narrow spinner checks to viewport and tighten exception handling ( #39895 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 13:35:07 -07:00
Beto Dealmeida
736a51c13f
fix: OAuth2 exception should be 403 ( #40074 )
2026-05-15 14:53:02 -03:00
Richard Fogaca Nienkotter
1e2d0b5f5b
fix(mcp): defer chart preview command imports ( #40164 )
2026-05-15 12:15:33 -03:00
Shaitan
2e7a2b1f2d
fix: escape SQL identifiers in db engine spec prequeries and metadata queries ( #39840 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 09:48:38 -04:00
Michael S. Molina
a06e6ea19b
fix(extensions): add cache headers and strip Vary: Cookie for extension static assets ( #40120 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 09:23:39 -03:00
Shaitan
ee9eec25f9
fix(dataset): validate datasource access during import ( #39998 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 12:06:47 +01:00
Shaitan
ffa32414ef
fix(query): restrict query cancellation to the query owner ( #39996 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 12:05:38 +01:00
Evan Rusackas
4e09889607
test(datasets): regression coverage for #16141 (export with same table name, different schemas) ( #40123 )
...
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-14 11:08:23 -07:00
Richard Fogaca Nienkotter
8fa5a75c70
fix(mcp): apply cached adhoc filters to chart retrieval ( #40099 )
2026-05-14 14:21:54 -03:00
Mafi
144dae7c43
fix(dashboard): use datasetUuid instead of datasetId in display controls export/import (SC-104655) ( #40008 )
...
Co-authored-by: Matt Fitzgerald <matt.fitzgerald@preset.io >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 10:18:57 -07:00
Sandesh Devaraju
823eb905d3
fix(mcp): JSON-serialize order_by_cols and support sort direction ( #39952 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
2026-05-14 11:19:37 -04:00
Mehmet Salih Yavuz
8b0e63b58c
fix(rls): prevent double-apply when converting physical dataset to virtual ( #39725 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 18:05:48 +03:00
Mafi
01224007da
fix(mixed-timeseries): preserve all-NaN metric columns after pivot when Jinja evaluates to NULL ( #40005 )
...
Co-authored-by: Matt Fitzgerald <matt.fitzgerald@preset.io >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-14 07:46:34 -03:00
Richard Fogaca Nienkotter
2a1dcb79e3
fix(mcp): expose table chart type labels in chart responses ( #40060 )
2026-05-13 16:38:31 -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
Richard Fogaca Nienkotter
fa06989ed7
fix(mcp): return requested update chart previews ( #40077 )
2026-05-12 21:23:49 -03: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
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
Maxime Beauchemin
d90d3a2dea
fix(importexport): honor overwrite flag on /api/v1/assets/import ( #39502 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-11 10:24:42 -07:00
Evan Rusackas
26ef4b7ed3
fix(sqla): pass catalog and schema to get_sqla_engine in values_for_column ( #38681 )
...
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Claude <claude@anthropic.com >
2026-05-11 09:54:48 -07:00
Oleg Ovcharuk
d83b0c5ce3
feat: support creating datasets for schema-less databases ( #39433 )
...
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-05-11 08:30:13 -04:00
Maxime Beauchemin
d023fe1703
fix(trino/presto): use equality for boolean filters to support computed columns ( #39500 )
2026-05-08 16:10:27 -07:00
Amin Ghadersohi
547660dcc4
fix(mcp): ASCII chart crashes with NaN when dataset contains null values ( #39916 )
2026-05-08 17:35:15 -04:00
Amin Ghadersohi
cfb0b6e811
fix(mcp): clarify request wrapper in list_datasets, list_charts, list_dashboards ( #39920 )
2026-05-08 16:01:07 -04:00
Amin Ghadersohi
ff7dc53853
fix(mcp): get_chart_sql drops x_axis on echarts_timeseries_* and only renders one query for mixed_timeseries ( #39865 )
2026-05-08 15:29:28 -04:00
Beto Dealmeida
4311a15eb2
feat(sqlglot): Vertica dialect ( #39969 )
2026-05-08 14:34:34 -03:00