You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "aminghadersohi (via GitHub)" <gi...@apache.org> on 2026/09/26 01:16:21 UTC
[PR] fix(mcp): report a chart's live dataset id and name [superset]
aminghadersohi opened a new pull request, #44681:
URL: https://github.com/apache/superset/pull/44681
### SUMMARY
MCP chart responses read `datasource_name` from `Slice.datasource_name`. That column is stored and denormalized, and it is not refreshed when a dataset is renamed or a chart is re-pointed. So it can disagree with `get_dashboard_datasets`, which resolves the dataset through the live `Slice.table` join. Also, `ChartInfo` had no `datasource_id` field: `list_charts` loaded the column and listed it in `columns_loaded`, then dropped it during serialization. That left MCP clients with no way to see a chart's real dataset id.
Changes:
- **Live name.** `resolve_chart_datasource_name` (in `mcp_service/chart/schemas.py`) reads the name through `Slice.datasource_name_text()`. That method uses the type-guarded `table` / `semantic_view` relationships, so semantic-view charts resolve correctly too. It is used by `get_chart_info`, `list_charts`, `get_chart_sql` and the chart summaries in dashboard responses. If the datasource no longer exists, the name is `null` instead of the stale stored string. Row tuples and other objects without the resolver fall back to the stored value.
- **`datasource_id`.** Added to `ChartInfo` and `DashboardChartSummary`. It can be requested with `select_columns`, and it is removed or redacted, like the other data-model fields, for users without data-model metadata access (`remove_chart_data_model_columns` / `redact_chart_data_model_fields`). Standalone permalink reads also fill it in from the permalink's datasource.
- **`list_charts`.**
- When `datasource_name` is selected, the `table` / `semantic_view` relationships are added to the DAO load list. The DAO then returns model instances with those relationships eager-loaded, not row tuples, so the live name costs no extra per-chart query.
- `columns_loaded` now lists only fields that appear in the response. It drops model columns `ChartInfo` does not expose (e.g. `params`) and dependencies loaded only to compute another field.
Tracking: SC-121803.
### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
N/A (API response only).
Before: a chart joined to dataset 14 (`hubspot_customers.hs_flat_customer_events`) whose stored name is `superset_events_production.superset_events` reports the stored name and no `datasource_id`.
After: it reports `datasource_id: 14` and `datasource_name: "hubspot_customers.hs_flat_customer_events"`.
### TESTING INSTRUCTIONS
```
pytest tests/unit_tests/mcp_service/chart/test_live_chart_datasource.py
pytest tests/unit_tests/mcp_service
```
The new tests persist a table-backed chart and a semantic-view chart (sharing the same datasource id) whose stored `datasource_name` is stale. They also persist a chart whose dataset no longer exists. The charts are reloaded from a cold identity map, and the tests check `serialize_chart_object`, dashboard chart summaries, `get_chart_sql`'s name resolution, and the `get_chart_info` / `list_charts` tools end to end (including redaction without data-model access and `columns_loaded`).
### ADDITIONAL INFORMATION
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] Changes UI
- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))
- [ ] Migration is atomic, supports rollback & is backwards-compatible
- [ ] Confirm DB migration upgrade and downgrade tested
- [ ] Runtime estimates and downtime expectations provided
- [ ] Introduces new feature or API
- [ ] Removes existing feature or API
π€ Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on code in PR #44681:
URL: https://github.com/apache/superset/pull/44681#discussion_r4113630477
##########
superset/mcp_service/chart/tool/list_charts.py:
##########
@@ -63,6 +63,52 @@
_DEFAULT_LIST_CHARTS_REQUEST = ListChartsRequest()
+# Relationships that resolve a chart's live datasource. ``datasource_name`` is
+# read through them rather than from the stored ``Slice.datasource_name``
+# column, which can be stale after a dataset rename or a chart re-point.
+_LIVE_DATASOURCE_RELATIONSHIPS = ("table", "semantic_view")
+
+
+class _ChartListCore(ModelListCore[ChartList]):
+ """List core that loads the live datasource whenever its name is requested.
+
+ Requesting only plain columns makes the DAO return row tuples, which cannot
+ reach the ``table`` / ``semantic_view`` relationships. Adding them to the
+ DAO load list switches it to full model instances with the relationships
+ eager-loaded, so the live name costs no per-chart query.
+ """
+
+ def _call_dao_list(
+ self,
+ filters: Any,
+ order_column: str,
+ order_direction: str,
+ page: int,
+ page_size: int,
+ search: str | None,
+ columns_to_load: list[str],
+ custom_filters: dict[str, Any] | None = None,
+ ) -> tuple[list[Any], int]:
+ if "datasource_name" in columns_to_load:
+ columns_to_load = [
+ *columns_to_load,
+ *(
+ rel
+ for rel in _LIVE_DATASOURCE_RELATIONSHIPS
+ if rel not in columns_to_load
+ ),
+ ]
Review Comment:
VALID β fixed in 115530452e38732b9ab9554f715185c968af9670. list_charts replaces stored-name predicates with type-guarded live table/semantic-view name expressions before DAO counting and pagination, retaining query/saved-query names. Real-DAO regression tests cover current vs stale names, both datasource types, operators, missing datasets and pagination; these failed before the fix and pass afterward. Existing metadata filter permission checks are unchanged.
##########
superset/mcp_service/chart/schemas.py:
##########
@@ -128,7 +129,16 @@ class ChartInfo(BaseModel):
"fall back to viz_type when this field is null."
),
)
- datasource_name: str | None = Field(None, description="Datasource name")
+ datasource_id: int | None = Field(
+ None, description="ID of the dataset (or semantic view) the chart queries"
+ )
Review Comment:
VALID β fixed in 115530452e38732b9ab9554f715185c968af9670. Added datasource_id to DEFAULT_GET_CHART_INFO_COLUMNS. The new default-selection regression failed before the fix; default tool-response tests verify the live ID for authorized callers and null for callers without data-model metadata access.
##########
superset/mcp_service/chart/schemas.py:
##########
@@ -549,7 +559,41 @@ def extract_filters_from_form_data(
)
-def serialize_chart_object(chart: ChartLike | None) -> ChartInfo | None:
+def resolve_chart_datasource_id(chart: Any) -> int | None:
+ """Return the ID of the datasource a chart is joined to."""
+ datasource_id = getattr(chart, "datasource_id", None)
+ if isinstance(datasource_id, int) and not isinstance(datasource_id, bool):
+ return datasource_id
+ return None
+
+
+def resolve_chart_datasource_name(chart: Any) -> str | None:
+ """Return the chart's datasource name, read from the live datasource.
+
+ ``Slice.datasource_name`` is a stored, denormalized column that is not
+ refreshed when a dataset is renamed or a chart is re-pointed, so it can
+ name a table the chart no longer queries. ``Slice.datasource_name_text``
+ resolves the name through the type-guarded ``table`` / ``semantic_view``
+ relationships instead, and yields ``None`` when the datasource no longer
+ exists. Objects without that resolver (row tuples, lightweight stand-ins)
+ fall back to the stored value.
+ """
+ resolver = getattr(chart, "datasource_name_text", None)
+ if callable(resolver):
+ live_name = resolver()
+ if live_name is None or isinstance(live_name, str):
+ return live_name
Review Comment:
VALID β fixed in 115530452e38732b9ab9554f715185c968af9670. The shared resolve_chart_datasource_name helper uses the stored name for query/saved_query charts instead of invoking the table/semantic-view resolver. Chart serialization regressions for both types failed before and pass after. Missing tables still return no stale name, and get_chart_info/get_chart_sql retain DatasetNotAccessible for deleted datasets.
##########
superset/mcp_service/dashboard/schemas.py:
##########
@@ -1795,7 +1808,10 @@ def serialize_chart_summary(
id=chart_id,
slice_name=getattr(chart, "slice_name", None),
viz_type=getattr(chart, "viz_type", None),
- datasource_name=getattr(chart, "datasource_name", None)
+ datasource_id=resolve_chart_datasource_id(chart)
+ if include_data_model_metadata
+ else None,
+ datasource_name=resolve_chart_datasource_name(chart)
if include_data_model_metadata
else None,
Review Comment:
VALID β fixed in 115530452e38732b9ab9554f715185c968af9670. Dashboard summaries use the corrected shared resolve_chart_datasource_name helper, preserving stored names for query/saved_query charts. Dashboard serialization regressions for both types failed before and pass after; table/semantic-view live names and permission-based identifier/name redaction remain covered.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5902783426
Review completed at b4cc6fd8288555a4fc4b7e621be13fa203ecbd76: no actionable findings in the full nine-file diff. Checked live datasource resolution, filtering/counting/pagination, metadata redaction, chart/dataset permission scoping, and test coverage. Merge faa83789 preserves both the asset-catalog and datasource-metadata documentation and the overlapping backend changes.
Validation: focused datasource tests **42 passed**; full MCP unit suite **5,717 passed, 3 skipped**; chart permission-filter and Slice-model tests **53 passed**. Pre-commit passed on all nine PR files, including mypy and pylint.
Disposition: no fixes required, no commits pushed, nothing left open. Working tree clean; no services started.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "rebenitez1802 (via GitHub)" <gi...@apache.org>.
rebenitez1802 commented on code in PR #44681:
URL: https://github.com/apache/superset/pull/44681#discussion_r4160928234
##########
superset/mcp_service/dashboard/schemas.py:
##########
@@ -417,7 +421,16 @@ class DashboardChartSummary(BaseModel):
id: int | None = Field(None, description="Chart ID")
slice_name: str | None = Field(None, description="Chart name")
viz_type: str | None = Field(None, description="Visualization type")
- datasource_name: str | None = Field(None, description="Datasource name")
+ datasource_id: int | None = Field(
Review Comment:
π‘ Medium β `datasource_id` without `datasource_type`
`DashboardChartSummary` now has `datasource_id` but no `datasource_type`, and a datasource id is only unique within its type. The fixture in this PR gives a table and a semantic view the same id 1, so `get_dashboard_info` (and generate/add/remove/duplicate dashboard) can return two charts with `datasource_id: 1` that can't be told apart. A saved_query chart reports a SavedQuery id. Matching by name doesn't work either: `get_dashboard_datasets` names tables by bare `table_name`, while these summaries use `schema.table_name`.
Fix: add the type next to the id, behind the same gate (`datasource_type` is already in `CHART_DATA_MODEL_COLUMNS`):
```python
datasource_type: str | None = Field(
None,
description="Type of the datasource; datasource_id is only unique within this type",
)
```
and in `serialize_chart_summary`:
```python
datasource_type=getattr(chart, "datasource_type", None)
if include_data_model_metadata
else None,
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #44681:
URL: https://github.com/apache/superset/pull/44681#discussion_r4112661960
##########
superset/mcp_service/chart/schemas.py:
##########
@@ -128,7 +129,16 @@ class ChartInfo(BaseModel):
"fall back to viz_type when this field is null."
),
)
- datasource_name: str | None = Field(None, description="Datasource name")
+ datasource_id: int | None = Field(
+ None, description="ID of the dataset (or semantic view) the chart queries"
+ )
Review Comment:
**Suggestion:** The new `datasource_id` field is omitted from `DEFAULT_GET_CHART_INFO_COLUMNS`, so default chart responses still provide the name without its identifier.
**Assessment:** π `Major` Β· π `Occurrence: Often` Β· π·οΈ `Api mismatch`
[](https://docs.codeant.ai/cli/resolve-pr-comments-skill) [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=31b16f12005942d4861e1c5af8e804a3&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=31b16f12005942d4861e1c5af8e804a3&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
<details>
<summary><b>Prompt for AI Agent π€ </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/mcp_service/chart/schemas.py
**Line:** 132:134
**Comment:**
*Api Mismatch: The new `datasource_id` field is omitted from `DEFAULT_GET_CHART_INFO_COLUMNS`, so default chart responses still provide the name without its identifier.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=113d1d2d26a057c55db9fe4a901197ca97363d7df55fc852acbd5b2945ac21d3&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=113d1d2d26a057c55db9fe4a901197ca97363d7df55fc852acbd5b2945ac21d3&reaction=dislike'>π</a>
##########
superset/mcp_service/dashboard/schemas.py:
##########
@@ -1795,7 +1808,10 @@ def serialize_chart_summary(
id=chart_id,
slice_name=getattr(chart, "slice_name", None),
viz_type=getattr(chart, "viz_type", None),
- datasource_name=getattr(chart, "datasource_name", None)
+ datasource_id=resolve_chart_datasource_id(chart)
+ if include_data_model_metadata
+ else None,
+ datasource_name=resolve_chart_datasource_name(chart)
if include_data_model_metadata
else None,
Review Comment:
**Suggestion:** `datasource_name_text()` resolves only table and semantic-view relationships, so query or saved-query charts lose their valid stored datasource name and return `null`.
**Assessment:** π `Major` Β· π `Occurrence: Rarely` Β· π·οΈ `Logic error`
[](https://docs.codeant.ai/cli/resolve-pr-comments-skill) [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=b8a566515b5e4a2ea2eb451d18e20aaa&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=b8a566515b5e4a2ea2eb451d18e20aaa&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
<details>
<summary><b>Prompt for AI Agent π€ </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/mcp_service/dashboard/schemas.py
**Line:** 1814:1816
**Comment:**
*Logic Error: `datasource_name_text()` resolves only table and semantic-view relationships, so query or saved-query charts lose their valid stored datasource name and return `null`.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=0147e47eaebb2a0084d1f2b3c8efc2d156a493a4422d9c97f412176abaa889d5&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=0147e47eaebb2a0084d1f2b3c8efc2d156a493a4422d9c97f412176abaa889d5&reaction=dislike'>π</a>
##########
superset/mcp_service/chart/schemas.py:
##########
@@ -549,7 +559,41 @@ def extract_filters_from_form_data(
)
-def serialize_chart_object(chart: ChartLike | None) -> ChartInfo | None:
+def resolve_chart_datasource_id(chart: Any) -> int | None:
+ """Return the ID of the datasource a chart is joined to."""
+ datasource_id = getattr(chart, "datasource_id", None)
+ if isinstance(datasource_id, int) and not isinstance(datasource_id, bool):
+ return datasource_id
+ return None
+
+
+def resolve_chart_datasource_name(chart: Any) -> str | None:
+ """Return the chart's datasource name, read from the live datasource.
+
+ ``Slice.datasource_name`` is a stored, denormalized column that is not
+ refreshed when a dataset is renamed or a chart is re-pointed, so it can
+ name a table the chart no longer queries. ``Slice.datasource_name_text``
+ resolves the name through the type-guarded ``table`` / ``semantic_view``
+ relationships instead, and yields ``None`` when the datasource no longer
+ exists. Objects without that resolver (row tuples, lightweight stand-ins)
+ fall back to the stored value.
+ """
+ resolver = getattr(chart, "datasource_name_text", None)
+ if callable(resolver):
+ live_name = resolver()
+ if live_name is None or isinstance(live_name, str):
+ return live_name
Review Comment:
**Suggestion:** `datasource_name_text()` returns `None` for query or saved-query charts, so valid stored datasource names disappear instead of using the documented fallback.
**Assessment:** π `Major` Β· π `Occurrence: Sometimes` Β· π·οΈ `Logic error`
[](https://docs.codeant.ai/cli/resolve-pr-comments-skill) [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=3ee1cfd8b2ad42d59e97631c615dfdfe&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=3ee1cfd8b2ad42d59e97631c615dfdfe&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
<details>
<summary><b>Prompt for AI Agent π€ </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/mcp_service/chart/schemas.py
**Line:** 581:585
**Comment:**
*Logic Error: `datasource_name_text()` returns `None` for query or saved-query charts, so valid stored datasource names disappear instead of using the documented fallback.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=3a5ec1c38f759b2c283b2fc90656ca736d305ec960abba833d75798e06bddf80&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=3a5ec1c38f759b2c283b2fc90656ca736d305ec960abba833d75798e06bddf80&reaction=dislike'>π</a>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5850870243
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers an incremental AI Review.
- `/review full` - Manually triggers a full AI Review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5841865594
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on code in PR #44681:
URL: https://github.com/apache/superset/pull/44681#discussion_r4162018235
##########
superset/mcp_service/dashboard/schemas.py:
##########
@@ -417,7 +421,16 @@ class DashboardChartSummary(BaseModel):
id: int | None = Field(None, description="Chart ID")
slice_name: str | None = Field(None, description="Chart name")
viz_type: str | None = Field(None, description="Visualization type")
- datasource_name: str | None = Field(None, description="Datasource name")
+ datasource_id: int | None = Field(
Review Comment:
Fixed in 3ec0c45ec19e40f26e43964b42326898ebdfafb7. DashboardChartSummary includes datasource_type alongside datasource_id through the shared serializer used by dashboard info and generate/add/remove/duplicate responses. Both fields use the same data-model metadata gate. Regression tests cover table and semantic-view charts sharing an ID, query/saved-query types, and restricted/default redaction; documentation is updated. Validation: 734 unit tests passed, a final 42-test live-datasource rerun passed, and pre-commit passed (including mypy).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5849589465
<!-- Bito Reply -->
The flagged issue is correct. The `datasource_name` column in the `Slice` model is a denormalized, stored value that does not automatically update when a dataset is renamed or a chart is re-pointed, leading to stale data.
To resolve this, the pull request introduces `resolve_chart_datasource_name` in `superset/mcp_service/chart/schemas.py`, which attempts to resolve the name through live relationships (`table` or `semantic_view`) before falling back to the stored column. The `_ChartListCore` class in `superset/mcp_service/chart/tool/list_charts.py` is also updated to ensure these relationships are eager-loaded when `datasource_name` is requested, ensuring the live name is used without additional per-chart queries.
**superset/mcp_service/chart/schemas.py**
```
def resolve_chart_datasource_name(chart: Any) -> str | None:
"""Return the chart's datasource name, read from the live datasource.
``Slice.datasource_name`` is a stored, denormalized column that is not
refreshed when a dataset is renamed or a chart is re-pointed, so it can
name a table the chart no longer queries. ``Slice.datasource_name_text``
resolves the name through the type-guarded ``table`` / ``semantic_view``
relationships instead, and yields ``None`` when the datasource no longer
exists. Objects without that resolver (row tuples, lightweight stand-ins)
fall back to the stored value.
"""
resolver = getattr(chart, "datasource_name_text", None)
if callable(resolver):
live_name = resolver()
if live_name is None or isinstance(live_name, str):
return live_name
stored_name = getattr(chart, "datasource_name", None)
return stored_name if isinstance(stored_name, str) else None
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5902923300
### Acceptance at b4cc6fd8288555a4fc4b7e621be13fa203ecbd76
Tested with an in-process FastMCP client, real SQLite metadata/data databases, persisted users/roles, and RBAC enabled; no mocked authentication, authorization, DAOs, or tool results. Charts 1/2 stored `stale_events` but referenced dataset 1 (`live_events`); chart 3 referenced missing dataset 999; semantic chart 4 shared numeric datasource ID 1.
Requests below show the exact inner `request` argument; outputs show relevant response fields.
| Criterion | Verdict and evidence |
|---|---|
| Live chart name and dataset ID, including rename/repoint | **PASS** β `get_chart_info({"identifier":1,"select_columns":["id","datasource_id","datasource_name"]})` β `{"id":1,"datasource_id":1,"datasource_name":"live_events"}`; identical request after dataset rename β `renamed_events`; after repoint β ID 2 / `replacement_events`. `get_chart_sql({"identifier":1})` β name `live_events`, SQL `SELECT value AS value \nFROM live_events GROUP BY value\n LIMIT 10 OFFSET 0;`. |
| Dashboard responses agree with live datasets | **PASS** β `get_dashboard_datasets({"identifier":1})` β dataset 1 / `live_events`. `update_dashboard({"identifier":1,"dashboard_title":"Updated acceptance"})`, `add_chart_to_existing_dashboard({"dashboard_id":1,"chart_id":2})`, and `remove_chart_from_dashboard({"dashboard_id":1,"chart_id":2})` all returned `error:null`, with every retained chart reporting dataset 1 / `live_events`. |
| Semantic views, missing datasets, compatibility | **PASS** β `get_chart_info({"identifier":4,"select_columns":["id","datasource_id","datasource_name","datasource_type"]})` β ID 1 / `Live semantic` / `semantic_view`. `get_dashboard_info({"identifier":2})` returned semantic name `Live semantic` and orphan name `null`. Both `get_chart_info({"identifier":3})` and `get_chart_sql({"identifier":3})` β `DatasetNotAccessible`. Unit coverage also passes stored-name fallback for row-like/query-backed objects. |
| List fields, filtering, bounded loading | **PASS** β `list_charts({"select_columns":["id","datasource_id","datasource_name","params"],"order_column":"id","order_direction":"asc"})` β live table/semantic names, orphan name `null`, `columns_loaded:["id","datasource_id","datasource_name"]`; no `params` or internal relationships. `list_charts({"select_columns":["id"],"filters":[{"col":"datasource_name","opr":"eq","value":"live_events"}],"order_column":"id","page_size":1})` β `charts:[{"id":1}],total_count:2`. Filtering `stale_events` returned zero. Regression tests verify two SELECTs for both one and three charts, and exclude computation dependencies. |
| Metadata privacy and caller without dataset access | **PASS** β a dataset-granted reader without metadata permission, using the chart-info request above, received both datasource fields `null`; `list_charts({"select_columns":["id","datasource_id","datasource_name"]})` exposed only IDs and `columns_loaded:["id"]`; `get_dashboard_info({"identifier":1})` redacted both fields. A separate caller granted tool read/drill/SQL permissions but **no dataset/database access** received `not_found` from `get_chart_info({"identifier":1})`, `NotFound` from `get_chart_sql({"identifier":1})`, an empty chart list, and `not_found` from `get_dashboard_datasets({"identifier":1})`. |
| Standalone permalink dataset ID | **PASS** β `get_chart_info({"permalink_key":"B7QzLXK43jl","select_columns":["datasource_id","datasource_name"]})` β `{"datasource_id":1,"datasource_name":"live_events"}`. |
| Original production chart confirmation | **DEFERRED** β no production deployment access exercised; the stale-name mechanism was reproduced locally, not verified against production chart 115. |
Validation: `pytest tests/unit_tests/mcp_service/chart/test_live_chart_datasource.py -q`: **42 passed**; chart + dashboard directories: **2,846 passed, 3 skipped**; `pytest tests/unit_tests/mcp_service -q`: **5,717 passed, 3 skipped**. All **23** recorded FastMCP request/response checks passed. Branch-file pre-commit passed, including mypy, ruff, and pylint. No fix or push needed. Temporary SQLite environment removed; no containers/volumes created.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi merged PR #44681:
URL: https://github.com/apache/superset/pull/44681
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5852540023
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers an incremental AI Review.
- `/review full` - Manually triggers a full AI Review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #44681:
URL: https://github.com/apache/superset/pull/44681#discussion_r4112661129
##########
superset/mcp_service/chart/tool/list_charts.py:
##########
@@ -63,6 +63,52 @@
_DEFAULT_LIST_CHARTS_REQUEST = ListChartsRequest()
+# Relationships that resolve a chart's live datasource. ``datasource_name`` is
+# read through them rather than from the stored ``Slice.datasource_name``
+# column, which can be stale after a dataset rename or a chart re-point.
+_LIVE_DATASOURCE_RELATIONSHIPS = ("table", "semantic_view")
+
+
+class _ChartListCore(ModelListCore[ChartList]):
+ """List core that loads the live datasource whenever its name is requested.
+
+ Requesting only plain columns makes the DAO return row tuples, which cannot
+ reach the ``table`` / ``semantic_view`` relationships. Adding them to the
+ DAO load list switches it to full model instances with the relationships
+ eager-loaded, so the live name costs no per-chart query.
+ """
+
+ def _call_dao_list(
+ self,
+ filters: Any,
+ order_column: str,
+ order_direction: str,
+ page: int,
+ page_size: int,
+ search: str | None,
+ columns_to_load: list[str],
+ custom_filters: dict[str, Any] | None = None,
+ ) -> tuple[list[Any], int]:
+ if "datasource_name" in columns_to_load:
+ columns_to_load = [
+ *columns_to_load,
+ *(
+ rel
+ for rel in _LIVE_DATASOURCE_RELATIONSHIPS
+ if rel not in columns_to_load
+ ),
+ ]
Review Comment:
**Suggestion:** `datasource_name` filters still query the stale `Slice.datasource_name` column, so current names do not match while old names can return incorrect charts.
**Assessment:** π `Major` Β· π `Occurrence: Sometimes` Β· π·οΈ `Api mismatch`
[](https://docs.codeant.ai/cli/resolve-pr-comments-skill) [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=b74365d83f9c4fc6842f417a2c20d0c5&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=b74365d83f9c4fc6842f417a2c20d0c5&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset)
<details>
<summary><b>Prompt for AI Agent π€ </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/mcp_service/chart/tool/list_charts.py
**Line:** 92:100
**Comment:**
*Api Mismatch: `datasource_name` filters still query the stale `Slice.datasource_name` column, so current names do not match while old names can return incorrect charts.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=704c7a4b42a13f72244491140ebc313626e3e383c636b892d5facb1a8dcd2842&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F44681&comment_hash=704c7a4b42a13f72244491140ebc313626e3e383c636b892d5facb1a8dcd2842&reaction=dislike'>π</a>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5944162097
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers an incremental AI Review.
- `/review full` - Manually triggers a full AI Review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5902060688
Addressed the βNaming rule mirrored in SQLβ suggestion from Run #e5979c in b4cc6fd8288555a4fc4b7e621be13fa203ecbd76. Added the requested cross-reference to SqlaTable.name beside the SQL expression, plus six parity cases comparing SQL filtering with the Python name and chart serialization for null, empty, and populated schemas, with and without a catalog. This guards against future naming-rule drift without changing the model API.
Validation: MCP chart tests: 2,197 passed, 3 skipped; dashboard, privacy, and schema-discovery tests: 666 passed. All applicable branch-scoped pre-commit hooks passed, including mypy. Master was merged in faa83789d0807bf4ba1ab0649b306280aa7e76fc, preserving both documentation sections.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5851530674
### <span aria-hidden="true">β
</span> Deploy Preview for *superset-docs-preview* ready!
| Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">π¨</span> Latest commit | 115530452e38732b9ab9554f715185c968af9670 |
|<span aria-hidden="true">π</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/6ab86d0480c17b0008570b14 |
|<span aria-hidden="true">π</span> Deploy Preview | [https://deploy-preview-44681--superset-docs-preview.netlify.app](https://deploy-preview-44681--superset-docs-preview.netlify.app) |
|<span aria-hidden="true">π±</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br /><br /><br />_Use your smartphone camera to open QR code link._</details> |
|<span aria-hidden="true">π€</span> Make changes | [Run an agent on this branch](https://app.netlify.com/projects/superset-docs-preview/agent-runs#DcpBCoAgEADAv-y5hbVMpR_0jHUVDCrFJIjo73mbw7xQaj5KgwVgAF_5lNR9CapROZrwkIL7dkeUxLVh4MZXbP2GWPb8rKFvw96ZQNqRKOuJyM2WvNLw_Q) |
---
<!-- [superset-docs-preview Preview](https://deploy-preview-44681--superset-docs-preview.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5841896436
## [Codecov](https://app.codecov.io/gh/apache/superset/pull/44681?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `35.29412%` with `22 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 57.11%. Comparing base ([`181422f`](https://app.codecov.io/gh/apache/superset/commit/181422fc604a8a49a4710e0aafa7a5b1277bbab7?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`3ed9be0`](https://app.codecov.io/gh/apache/superset/commit/3ed9be033bdd90bc62c985b620001bffe44a2247?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
| [Files with missing lines](https://app.codecov.io/gh/apache/superset/pull/44681?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [superset/mcp\_service/chart/schemas.py](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&filepath=superset%2Fmcp_service%2Fchart%2Fschemas.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvbWNwX3NlcnZpY2UvY2hhcnQvc2NoZW1hcy5weQ==) | 31.25% | [11 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [superset/mcp\_service/chart/tool/get\_chart\_info.py](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&filepath=superset%2Fmcp_service%2Fchart%2Ftool%2Fget_chart_info.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvbWNwX3NlcnZpY2UvY2hhcnQvdG9vbC9nZXRfY2hhcnRfaW5mby5weQ==) | 0.00% | [5 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [superset/mcp\_service/chart/tool/list\_charts.py](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&filepath=superset%2Fmcp_service%2Fchart%2Ftool%2Flist_charts.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvbWNwX3NlcnZpY2UvY2hhcnQvdG9vbC9saXN0X2NoYXJ0cy5weQ==) | 44.44% | [5 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [superset/mcp\_service/chart/tool/get\_chart\_sql.py](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&filepath=superset%2Fmcp_service%2Fchart%2Ftool%2Fget_chart_sql.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvbWNwX3NlcnZpY2UvY2hhcnQvdG9vbC9nZXRfY2hhcnRfc3FsLnB5) | 0.00% | [1 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/44681?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
> :exclamation: There is a different number of reports uploaded between BASE (181422f) and HEAD (3ed9be0). Click for more details.
>
> <details><summary>HEAD has 31 uploads less than BASE</summary>
>
>| Flag | BASE (181422f) | HEAD (3ed9be0) |
>|------|------|------|
>|python|28|1|
>|presto|5|1|
></details>
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #44681 +/- ##
===========================================
- Coverage 81.12% 57.11% -24.02%
===========================================
Files 2956 2956
Lines 178436 178461 +25
Branches 41341 41345 +4
===========================================
- Hits 144765 101926 -42839
- Misses 30966 75552 +44586
+ Partials 2705 983 -1722
```
| [Flag](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Ξ | |
|---|---|---|
| [hive](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [mysql](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [postgres](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [presto](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `38.68% <35.29%> (-0.01%)` | :arrow_down: |
| [python](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `38.68% <35.29%> (-46.73%)` | :arrow_down: |
| [sqlite](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [unit](https://app.codecov.io/gh/apache/superset/pull/44681/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/superset/pull/44681?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(mcp): report a chart's live dataset id and name [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #44681:
URL: https://github.com/apache/superset/pull/44681#issuecomment-5903898326
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers an incremental AI Review.
- `/review full` - Manually triggers a full AI Review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org