This is an automated email from the ASF dual-hosted git repository.
eschutho pushed a change to branch hughhhh/pfm-6-explore-indicator
in repository https://gitbox.apache.org/repos/asf/superset.git
discard b1b5000985c chore: regenerate the message catalogs
discard be4f9a3e6f7 fix(security): deny the Oracle functions that run their
argument as a query
discard a7daac1a521 fix(datasource): show a mapping issue the owner can save
through as a warning
discard c5d741402f5 fix(datasource): merge a column sync against the state it
comes back to
discard a296bd83c99 fix(datasets): repair the mapping when an upload replaces
a dataset's columns
discard 268615d9510 test(datasets): freeze the clock the preview budget
buckets on
discard b24f70ab17b fix(datasets): hold a mirror to the comparison the engine
performs
discard 54fe432f54c fix(datasets): decline an array element the dialect cannot
render
discard d808efd1f0a chore: regenerate the message catalogs
discard e61585070ea fix(datasets): stop the partition column help claiming it
hides the column
discard dee9cca8f8a fix(datasets): preview a numeric temporal column in its
stored representation
discard 1fa334d2899 fix(datasets): preview an array column with the literal
the chart probes
discard a533814e7b0 fix(datasets): say why preview withdraws text equality
discard 159185ed034 fix(datasets): probe a numeric filter value in the
column's number type
discard 1ee6c37febe fix(datasets): decline an offset-bearing filter value on a
full-resolution column
discard 8f4085c62ad chore(datasets): name the migration's real parent in its
docstring
discard f1dce857667 fix(datasets): check the literal resolution of an
unflagged DATE column
discard 32f997b826f fix: pfm 8 merge and review (#45132)
discard 2dc8c4b52e7 Update
superset/migrations/versions/2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py
discard 403df88c485 fix: partition-filtering on pfm-6 (#45058)
discard e302b64c33d Cursor/resolve pfm conflicts b2f7 (#45040)
discard 981ea239977 resolve conflicts
discard bafd0b55467 fix(explore): stop designating a partition column changing
its flags
discard 6b25a733cb1 chore: regenerate the message catalogs
discard 8dd7a5449df fix(datasets): preview a filter the way the chart path
mirrors it
discard 770a0e00c88 fix(security): stop a transform cancelling the
placeholder-position gate
discard 75a38ccf930 fix(datasets): decline a literal the engine reads more
coarsely than we can
discard e61f2905af5 fix(datasets): hold a text partition key to a text probe
result
discard b6df89506ea fix(datasets): drop a mirror the ranking subquery has no
filter for
discard c8a9ed11f83 fix(datasource): stop an edit reopening a row the user
collapsed
discard 7637aa2656f fix(security): deny the full-text functions that run their
argument as a query
discard 8967be64c1c fix(explore): narrow the mapping where the glyph's gate
already proves it
discard 6c987dc1ad8 docs(datasets): add the indicator to the list of things
the cache carries
discard 4b95c29163d fix(datasets): refuse a transform whose result the
partition column cannot hold
discard f8ae1a29a03 fix(datasets): only claim mirroring once a probe has
reported
discard c51d1bbb162 fix(datasets): stop a column sync resetting flags it was
not asked to change
discard b12ccffba1c fix(explore): stop the glyph promising a mirror the
engine's resolution declines
discard b4a5c78505d fix(datasets): read a filter literal as the instant the
engine compares
discard 65e0a41ad6e fix(datasets): reject a partition column the sync does not
find (R5-02)
discard 909a4ccb7e5 fix(datasets): mirror a strict bound non-strictly (R5-04)
discard fea9e2117bf test(datasets): type the two new partition mapping test
fixtures
discard 9c93e1072d1 docs(datasets): name the cache backend the probe guards
need
discard 90bc18f54a9 fix(security): deny the schema_to_xml family and enforce
the denylist on save
discard 380956a582d perf(datasets): skip the partition probe during cache-key
extraction
discard ea3ecf65146 fix(datasource): restore the collection table's row-class
and reveal props
discard e278dd03682 fix(datasets): carry the column-side mapping through a
duplicate
discard 4b93825cd94 fix(datasets): repair mapping references after a metadata
refresh
discard 52c758a4ddd fix(datasets): disarm parked transforms before an
overwrite import
discard 605276f4079 fix(datasets): default an omitted monotonic declaration to
false on import
discard 63cb0cdd98b fix(datasets): probe an epoch-millisecond filter as SQL,
not a bind value
discard deb0b756f33 fix(datasets): widen a mirror to the day when the engine
drops the time
discard 0690d1eb102 fix(datasets): substitute a probe's rendered SQL literally
discard 257df8dcd77 test(sql): cover the two SQLStatement methods directly
discard fed6baab66f docs(datasets): say what a partition value transform may be
discard 3ba0f3cce6c fix(datasets): validate the mapping against every column,
not just physical
discard e84b6d2abb8 fix(datasets): probe the transform the engine will
actually run
discard 39699dac635 chore: regenerate the OpenAPI spec and message catalogs
discard 24ca0e49b2a fix(datasets): stop the editor losing edits it cannot
show, or a sibling's
discard e722491958c fix(explore): keep the pruning glyphs across a dataset save
discard f3f49af437e fix(datasets): mirror equality only where the engine
compares exactly
discard fced8ba878e fix(datasets): repair a dangling mapping against what the
request asked for
discard 85b1addb68a fix(datasets): stop create minting a dataset no write can
fix
discard 84439af53bb fix(datasets): mirror the window each query actually
filters
discard 2bc3d778d36 fix(datasets): probe the transform with the value the
predicate compares
discard 4e9e76c6292 fix(datasets): stop import discarding what a PUT
deliberately keeps
discard 3fc2465e6bd fix(datasets): let preview refuse what the query path
already refuses
discard 681400f504f fix(datasets): require a value transform to be a bare
scalar expression
discard 1f65535fe44 fix(datasets): stop the probe mangling its own SQL and its
own results
discard b9e388c6c48 fix(datasets): let import accept the null export writes
discard deaca20d9f5 fix(datasets): gate every door a partition value transform
enters by
discard a004a0ff5b3 fix(datasets): disarm a parked transform before a mapping
change arms it
discard 311c4851779 fix(explore): guard the map-a-different-column link
against having no target
discard 04a2986326d test(datasets): drop the permission the preview route no
longer defines
discard 01eba8dfb43 fix(explore): hoist transformCanPreview, pin the
empty-string sentinel
discard c468ce5ab8c refactor(datasets): name the shared transform bound in the
preview schema
discard 3668d11d9ff fix(explore): only promise pruning where the query
actually prunes
discard af2b291095e fix(datasets): make the editor's claims match what will
actually mirror
discard c747508743a fix(datasets): close the gate preview went around, and
stop it 500ing
discard 39ebc9413df fix(datasets): give the query path the same transform gate
as the editor
discard 990410fc4fc fix(datasets): validate a partition mapping at every door,
not just PUT
discard d74a1a196ee fix(explore): let the time range control config infer its
own control type
discard 74b5d7a4122 fix(datasets): stop the save when the value transform
cannot be saved
discard c8789aa60ae fix(datasets): stop the value transform input dropping
keystrokes
discard c6389bae76b test(explore): make the time range regression tests
type-check
discard 7d0aa442b3b test(explore): pin every chart that carries a standalone
time range
discard d43a63d64fc fix(datasets): do not carry a value transform to a new
datetime column
discard 74fb38b70e4 fix(explore): a control can never be its own validation
dependant
discard aed5c95c90e fix(explore): stop the time range control clobbering its
own value
discard d4b326113b1 fix(datasets): stop a stale partition transform surviving
an API write
discard faaa56bd408 fix(explore): stop a removed or re-pointed mapping
resurrecting a stale transform
discard 89e06d861fd fix(explore): keep exactly one column holding a partition
mapping
discard 21e98cd830a style(explore): re-attach the partition column defaults
docstring
discard 1613201ffed fix(explore): keep the time range pruning glyph in sync
with field updates
discard ade1f932a1c style(explore): apply oxfmt to the partition mapping
helpers
discard 34c64203f6a fix(explore): only show the pruning glyph on filters that
actually mirror
discard 6b6450f1121 feat(explore): indicate when a filter is mirrored onto a
partition column
discard 8b832af48a2 style: let ruff format the preview sample-input return
discard 0cd9620b804 fix(datasets): correct the NULL-partition docs and stop
hopeless previews
discard d48076a9c6b fix: satisfy the frontend hooks on the partition mapping
editor
discard bc18af015d4 fix(datasets): drop an unused import from the dataset
schemas
discard 0d84c0ad9d3 docs: correct where the partition mapping controls live
discard c4899710632 fix(datasets): wrap long text in the partition mapping row
expand
discard 9c4c7480f9d feat(datasets): add the partition filter mapping editor UI
discard ca52c1c8de6 docs: document partition filter mapping
discard 94d0695d7b5 chore(datasets): add the preview strings to the message
catalogs
discard 525c57f9a07 docs: regenerate the OpenAPI spec for the preview schema
bounds
discard 49efedce789 fix(datasets): make the preview throttle atomic, bounded
and fixed-window
discard c9d55f8c363 feat(datasets): add partition mapping preview endpoint and
editor plumbing
discard 98055d6cafd feat(datasets): mirror grain-bearing ranges by widening
both bounds
discard 8d2cc3828ef fix(datasets): key the transform probe on the connection
discard 5b0029cf39d fix(datasets): keep mirrored predicates no narrower than
the filter
discard 4feadb3df2c feat(datasets): mirror filters onto the partition column
at query time
discard 5766fc9dfd7 fix(datasets): gate partition mapping validation on the
feature flag
discard cf5cb0753dd fix(datasets): make the Explore mapping indicator agree
with save-time validation
discard 91c08796a53 chore(datasets): regenerate the message catalogs and the
OpenAPI spec
discard 880a585e121 fix(datasets): don't let a partition mapping be clobbered,
blocked or orphaned
discard ce79a5b0d17 test(sql): drop a leftover merge-resolution note from
parse_tests
discard 65d414db57d fix(datasets): rebase the partition mapping migration onto
master's head
discard 86532a4586a docs(datasets): scope the PARTITION_FILTER_MAPPING flag
description
discard bedcadb4071 feat(datasets): add partition filter mapping model,
migration and validation
add cb8ff2885a6 fix(permalink): use a shared lock when re-reading a
concurrently created permalink (#45102)
add ab2c69f29cd fix(column-config): allow commas in D3 number formats
(#45145)
add e538ebfa2c9 feat(mcp): opt-in compact native tools/list and trimmed
tool guidance (#45084)
add 64b02eebed4 fix(mcp): add sort_by option to XYChartConfig (#42627)
(#44464)
add 1267bd1acee test(semantic-layer): pin layer list scoping to accessible
layers (#45101)
add 8aeb2850914 fix(mcp): keep isError through call_tool and test native
tool surface parity (#45081)
add d3c47f6212e chore(deps): bump slack-sdk from 3.44.1 to 3.45.0 (#45116)
add 0edbccc71a8 chore(deps-dev): bump trino from 0.339.0 to 0.340.0
(#45117)
add 5e6156a820c chore(deps-dev): bump gevent from 26.8.0 to 26.9.0 (#45115)
add 461cf9e49af chore(deps): bump sqlalchemy-continuum from 1.7.0 to 1.8.0
(#45114)
add 97ce269b962 chore(deps): bump cryptography from 50.0.1 to 50.0.2
(#45112)
add 2918a7b94d1 feat(i18n): extract translator context comments from
source (#44397)
add 82223373a3a chore(deps-dev): update teradatasql requirement from
>=20.0.0.68 to >=20.0.0.69 (#45162)
add d48b8486851 chore(deps): bump msgpack from 1.2.2 to 1.2.3 (#45161)
add 7e6aa124e1a chore(deps): bump pyjwt from 2.14.0 to 2.15.1 (#45159)
add 8318398da46 chore(deps): bump the security group across 1 directory
with 4 updates (#45143)
add 5faa58e7d2b chore(deps-dev): bump pymssql from 2.4.1 to 2.4.2 (#45156)
add b9e8188ad60 chore(deps): bump simplejson from 4.1.2 to 4.2.0 (#45158)
add cfacf35b11a feat(datasets): add partition filter mapping model,
migration and validation
add 32701cad987 docs(datasets): scope the PARTITION_FILTER_MAPPING flag
description
add d6899fbb973 fix(datasets): rebase the partition mapping migration onto
master's head
add 8a15801fd09 test(sql): drop a leftover merge-resolution note from
parse_tests
add 95e628aff83 fix(datasets): don't let a partition mapping be clobbered,
blocked or orphaned
add e8167e8704b chore(datasets): regenerate the message catalogs and the
OpenAPI spec
add d396c7c1088 fix(datasets): make the Explore mapping indicator agree
with save-time validation
add 236ac511b86 fix(datasets): gate partition mapping validation on the
feature flag
add 152ea2a51e4 feat(datasets): mirror filters onto the partition column
at query time
add 0396859dafe fix(datasets): keep mirrored predicates no narrower than
the filter
add 9d22fc03eee fix(datasets): key the transform probe on the connection
add 33df542abc1 feat(datasets): mirror grain-bearing ranges by widening
both bounds
add f2e95cea526 feat(datasets): add partition mapping preview endpoint and
editor plumbing
add 65627af6ef7 fix(datasets): make the preview throttle atomic, bounded
and fixed-window
add af63f8cb395 docs: regenerate the OpenAPI spec for the preview schema
bounds
add c4d7c3cd2b5 chore(datasets): add the preview strings to the message
catalogs
add 8bedc9ba3e8 docs: document partition filter mapping
add 8b89ca07543 feat(datasets): add the partition filter mapping editor UI
add 8a0858d8550 fix(datasets): wrap long text in the partition mapping row
expand
add 6757bbcccd8 docs: correct where the partition mapping controls live
add 6ba69897fd6 fix(datasets): drop an unused import from the dataset
schemas
add 9885d31c4b1 fix: satisfy the frontend hooks on the partition mapping
editor
add 9f76028bb08 fix(datasets): correct the NULL-partition docs and stop
hopeless previews
add a9a12aa145b style: let ruff format the preview sample-input return
add d32b87badfb feat(explore): indicate when a filter is mirrored onto a
partition column
add 79abd1531b8 fix(explore): only show the pruning glyph on filters that
actually mirror
add 44d13e341fa style(explore): apply oxfmt to the partition mapping
helpers
add 04a27d13e04 fix(explore): keep the time range pruning glyph in sync
with field updates
add 495a56416d7 style(explore): re-attach the partition column defaults
docstring
add d0f0c4b920d fix(explore): keep exactly one column holding a partition
mapping
add fc96f87f5c7 fix(explore): stop a removed or re-pointed mapping
resurrecting a stale transform
add 8f0f72b6b20 fix(datasets): stop a stale partition transform surviving
an API write
add 5c574a32ea5 fix(explore): stop the time range control clobbering its
own value
add 2df5810d372 fix(explore): a control can never be its own validation
dependant
add 6efddeb5208 fix(datasets): do not carry a value transform to a new
datetime column
add 2a292d2de76 test(explore): pin every chart that carries a standalone
time range
add 898f80c2a13 test(explore): make the time range regression tests
type-check
add db6f56f6b79 fix(datasets): stop the value transform input dropping
keystrokes
add 48e246f9473 fix(datasets): stop the save when the value transform
cannot be saved
add 2ea330bf846 fix(explore): let the time range control config infer its
own control type
add 4d84a74a002 fix(datasets): validate a partition mapping at every door,
not just PUT
add 5ca629f47b3 fix(datasets): give the query path the same transform gate
as the editor
add ce66bce942c fix(datasets): close the gate preview went around, and
stop it 500ing
add 70fcd70cfde fix(datasets): make the editor's claims match what will
actually mirror
add f941d39d52e fix(explore): only promise pruning where the query
actually prunes
add bbe376d6162 refactor(datasets): name the shared transform bound in the
preview schema
add c2be1fe74ac fix(explore): hoist transformCanPreview, pin the
empty-string sentinel
add 4883b1338fb test(datasets): drop the permission the preview route no
longer defines
add 99234d7499a fix(explore): guard the map-a-different-column link
against having no target
add 67af976d1f4 fix(datasets): disarm a parked transform before a mapping
change arms it
add 78810a008ef fix(datasets): gate every door a partition value transform
enters by
add 5d73057a1b9 fix(datasets): let import accept the null export writes
add aef1179a652 fix(datasets): stop the probe mangling its own SQL and its
own results
add 24333727d46 fix(datasets): require a value transform to be a bare
scalar expression
add aee46895b31 fix(datasets): let preview refuse what the query path
already refuses
add 79412b2a11a fix(datasets): stop import discarding what a PUT
deliberately keeps
add 234cf8d0503 fix(datasets): probe the transform with the value the
predicate compares
add 3ebe0a40f63 fix(datasets): mirror the window each query actually
filters
add 7a6ead6d14b fix(datasets): stop create minting a dataset no write can
fix
add 639b05def78 fix(datasets): repair a dangling mapping against what the
request asked for
add ea80cd73e60 fix(datasets): mirror equality only where the engine
compares exactly
add f442fd0a324 fix(explore): keep the pruning glyphs across a dataset save
add 6f7e7671de8 fix(datasets): stop the editor losing edits it cannot
show, or a sibling's
add f2cb8fec5df chore: regenerate the OpenAPI spec and message catalogs
add 086ab65b5a2 fix(datasets): probe the transform the engine will
actually run
add 28e17b42ee3 fix(datasets): validate the mapping against every column,
not just physical
add 1d8044b5a04 docs(datasets): say what a partition value transform may be
add 9e06ae8fc44 test(sql): cover the two SQLStatement methods directly
add 97de279cf06 fix(datasets): substitute a probe's rendered SQL literally
add 06c60d42fff fix(datasets): widen a mirror to the day when the engine
drops the time
add 1c6cf7ebd0e fix(datasets): probe an epoch-millisecond filter as SQL,
not a bind value
add 0ac3cd8ddf2 fix(datasets): default an omitted monotonic declaration to
false on import
add ce0512be65c fix(datasets): disarm parked transforms before an
overwrite import
add 6c3c4e50b59 fix(datasets): repair mapping references after a metadata
refresh
add 558626d6828 fix(datasets): carry the column-side mapping through a
duplicate
add b951ed985b5 fix(datasource): restore the collection table's row-class
and reveal props
add 3a3650460d3 perf(datasets): skip the partition probe during cache-key
extraction
add 27d3d6c9693 fix(security): deny the schema_to_xml family and enforce
the denylist on save
add 9d06e79f636 docs(datasets): name the cache backend the probe guards
need
add 79d9eb7e637 test(datasets): type the two new partition mapping test
fixtures
add 58f7edff65e fix(datasets): mirror a strict bound non-strictly (R5-04)
add d047026a828 fix(datasets): reject a partition column the sync does not
find (R5-02)
add 8cc75ad866f fix(datasets): read a filter literal as the instant the
engine compares
add d81c4a2677c fix(explore): stop the glyph promising a mirror the
engine's resolution declines
add d12ffb424a5 fix(datasets): stop a column sync resetting flags it was
not asked to change
add 8fdde95fbe8 fix(datasets): only claim mirroring once a probe has
reported
add a2c43e34dba fix(datasets): refuse a transform whose result the
partition column cannot hold
add 8d0fa391afc docs(datasets): add the indicator to the list of things
the cache carries
add 93876cca0b7 fix(explore): narrow the mapping where the glyph's gate
already proves it
add 58da3105b7e fix(security): deny the full-text functions that run their
argument as a query
add a953c07b26a fix(datasource): stop an edit reopening a row the user
collapsed
add 1537e97a7af fix(datasets): drop a mirror the ranking subquery has no
filter for
add 4a7ac878878 fix(datasets): hold a text partition key to a text probe
result
add 97197dcc8d1 fix(datasets): decline a literal the engine reads more
coarsely than we can
add 97251fc6840 fix(security): stop a transform cancelling the
placeholder-position gate
add 813baffbe0e fix(datasets): preview a filter the way the chart path
mirrors it
add 4e12be4dbd0 chore: regenerate the message catalogs
add 671bbddefe5 fix(explore): stop designating a partition column changing
its flags
add 306a61bcfeb resolve conflicts
add d4455b58cf9 Cursor/resolve pfm conflicts b2f7 (#45040)
add 7072ce26be3 fix: partition-filtering on pfm-6 (#45058)
add 3bde423f6ba Update
superset/migrations/versions/2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py
add 71814bd904b fix: pfm 8 merge and review (#45132)
add ac19c24dac6 fix(datasets): check the literal resolution of an
unflagged DATE column
add 4d149b52a79 chore(datasets): name the migration's real parent in its
docstring
add cbb15a6a188 fix(datasets): decline an offset-bearing filter value on a
full-resolution column
add f14512ba642 fix(datasets): probe a numeric filter value in the
column's number type
add eba0eb0e4e5 fix(datasets): say why preview withdraws text equality
add 7b79902610d fix(datasets): preview an array column with the literal
the chart probes
add 6ad74336d11 fix(datasets): preview a numeric temporal column in its
stored representation
add 004e96e60dc fix(datasets): stop the partition column help claiming it
hides the column
add 905fc7749a3 chore: regenerate the message catalogs
add 8f460721e6d fix(datasets): decline an array element the dialect cannot
render
add fd9e6d06092 fix(datasets): hold a mirror to the comparison the engine
performs
add 287d85da1ad test(datasets): freeze the clock the preview budget
buckets on
add cfaee55a036 fix(datasets): repair the mapping when an upload replaces
a dataset's columns
add d93d3342a34 fix(datasource): merge a column sync against the state it
comes back to
add 2b3517d9b64 fix(datasource): show a mapping issue the owner can save
through as a warning
add 6bf3f202257 fix(security): deny the Oracle functions that run their
argument as a query
add 10f8c6fb4ed chore: regenerate the message catalogs
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 (b1b5000985c)
\
N -- N -- N refs/heads/hughhhh/pfm-6-explore-indicator
(10f8c6fb4ed)
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:
docs/admin_docs/configuration/mcp-server.mdx | 130 +-
docs/developer_docs/contributing/howtos.md | 83 +-
docs/yarn.lock | 6 +-
pyproject.toml | 20 +-
requirements/base.in | 2 +-
requirements/base.txt | 12 +-
requirements/development.txt | 18 +-
scripts/translations/babel_update.sh | 7 +
scripts/translations/backfill_po.py | 79 +-
scripts/translations/check_pot_drift.py | 81 +-
superset-frontend/package-lock.json | 98 +-
superset-frontend/package.json | 4 +-
.../packages/generator-superset/package.json | 2 +-
.../src/utils/D3Formatting.ts | 1 +
.../packages/superset-ui-core/package.json | 2 +-
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../plugins/preset-chart-deckgl/package.json | 2 +-
.../ColumnConfigConstants.test.tsx | 25 +-
.../controls/ColumnConfigControl/constants.tsx | 2 +
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +
superset-frontend/src/pages/DatabaseList/index.tsx | 2 +
.../utils/getChartRequiredFieldsMissingMessage.ts | 1 +
superset/commands/dashboard/permalink/create.py | 13 +-
superset/commands/distributed_lock/release.py | 3 +-
superset/daos/key_value.py | 14 +-
superset/daos/report.py | 3 +-
superset/key_value/types.py | 30 +-
superset/mcp_service/chart/chart_helpers.py | 40 +
superset/mcp_service/chart/chart_utils.py | 106 ++
superset/mcp_service/chart/plugins/xy.py | 155 +++
superset/mcp_service/chart/schemas.py | 69 +-
superset/mcp_service/chart/tool/generate_chart.py | 139 +--
superset/mcp_service/chart/tool/update_chart.py | 65 +-
superset/mcp_service/common/pagination_schemas.py | 3 +-
superset/mcp_service/dashboard/schemas.py | 49 +-
superset/mcp_service/dataset/schemas.py | 18 +-
superset/mcp_service/mcp_config.py | 28 +-
superset/mcp_service/middleware.py | 54 +-
superset/mcp_service/server.py | 84 +-
superset/translations/ar/LC_MESSAGES/messages.po | 6 +
superset/translations/ca/LC_MESSAGES/messages.po | 6 +
superset/translations/cs/LC_MESSAGES/messages.po | 6 +
superset/translations/de/LC_MESSAGES/messages.po | 6 +
superset/translations/en/LC_MESSAGES/messages.po | 6 +
superset/translations/es/LC_MESSAGES/messages.po | 6 +
superset/translations/fa/LC_MESSAGES/messages.po | 6 +
superset/translations/fi/LC_MESSAGES/messages.po | 6 +
superset/translations/fr/LC_MESSAGES/messages.po | 6 +
superset/translations/it/LC_MESSAGES/messages.po | 6 +
superset/translations/ja/LC_MESSAGES/messages.po | 6 +
superset/translations/ko/LC_MESSAGES/messages.po | 6 +
superset/translations/lv/LC_MESSAGES/messages.po | 6 +
superset/translations/messages.pot | 6 +
superset/translations/mi/LC_MESSAGES/messages.po | 6 +
superset/translations/nl/LC_MESSAGES/messages.po | 6 +
superset/translations/pl/LC_MESSAGES/messages.po | 6 +
superset/translations/pt/LC_MESSAGES/messages.po | 6 +
.../translations/pt_BR/LC_MESSAGES/messages.po | 6 +
superset/translations/ro/LC_MESSAGES/messages.po | 6 +
superset/translations/ru/LC_MESSAGES/messages.po | 6 +
superset/translations/sk/LC_MESSAGES/messages.po | 6 +
superset/translations/sl/LC_MESSAGES/messages.po | 6 +
superset/translations/sr/LC_MESSAGES/messages.po | 6 +
.../translations/sr_Latn/LC_MESSAGES/messages.po | 6 +
superset/translations/ta/LC_MESSAGES/messages.po | 6 +
superset/translations/th/LC_MESSAGES/messages.po | 6 +
superset/translations/tr/LC_MESSAGES/messages.po | 6 +
superset/translations/uk/LC_MESSAGES/messages.po | 6 +
superset/translations/zh/LC_MESSAGES/messages.po | 6 +
.../translations/zh_TW/LC_MESSAGES/messages.po | 6 +
superset/views/dashboard/mixin.py | 1 +
.../commands/dashboard/permalink_create_test.py | 6 +-
tests/unit_tests/dao/key_value_test.py | 42 +
.../distributed_lock/distributed_lock_tests.py | 6 +-
.../mcp_service/chart/test_chart_helpers.py | 274 +++++
.../mcp_service/chart/test_chart_schemas.py | 244 ++++
.../mcp_service/chart/test_chart_utils.py | 782 ++++++++++++
.../validation/test_column_name_normalization.py | 21 +
.../chart/validation/test_dataset_validator.py | 195 ++-
.../mcp_service/native_tool_inventory.json | 1289 ++++++++++++++++++++
.../mcp_service/test_chart_tool_inventory.py | 4 +-
tests/unit_tests/mcp_service/test_mcp_server.py | 69 ++
.../mcp_service/test_middleware_logging.py | 138 ++-
.../mcp_service/test_native_tool_surface.py | 1144 +++++++++++++++++
.../test_tool_description_constraints.py | 44 +-
.../unit_tests/mcp_service/test_tool_inventory.py | 16 +-
.../mcp_service/test_tool_search_transform.py | 10 +-
tests/unit_tests/reports/config_dao_test.py | 8 +-
.../scripts/translations/backfill_po_test.py | 226 +++-
.../scripts/translations/check_pot_drift_test.py | 215 +++-
.../semantic_layers/layer_list_scope_test.py | 215 ++++
91 files changed, 6144 insertions(+), 445 deletions(-)
create mode 100644 tests/unit_tests/mcp_service/native_tool_inventory.json
create mode 100644 tests/unit_tests/mcp_service/test_native_tool_surface.py
create mode 100644 tests/unit_tests/semantic_layers/layer_list_scope_test.py